0

我无法确定任何特定时间处于哪个交易时段。

有四个可能的会话,显示在这张取自 ForexFactory.com 的图片中

在此处输入图像描述

我有这个方法,我需要检查当前时间是否在指定的交易时段内。

public bool IsTradingSession(TradingSession tradingSession, DateTime currentTime)
{

    //Regular session is 5PM - next day 5PM, this is the session in the picture.
    //Irregular sessions also occur for example late open (3AM - same day 5PM)  or early close (5PM - next day 11AM)
    DateTime sessionStart = Exchange.CurrentSessionOpen;
    DateTime sessionEnd = Exchange.CurrentSessionClose;

    if(tradingSession == TradingSession.Sydney)
        return ....... ? true : false;
    if(tradingSession == TradingSession.Tokyo)
        return ....... ? true : false;        
    if(tradingSession == TradingSession.London)
        return ....... ? true : false;
    if (tradingSession == TradingSession.NewYork)
        return ....... ? true : false;

    return false;
}

利用:

    bool isSydneySession = IsTradingSession(TradingSession.Sydney, CurrentTime);
    bool isTokyoSession = IsTradingSession(TradingSession.Tokyo, CurrentTime);
    bool isLondonSession = IsTradingSession(TradingSession.London, CurrentTime);
    bool isNewYorkSession = IsTradingSession(TradingSession.NewYork, CurrentTime);

谢谢你的帮助

4

1 回答 1

1

首先,您需要每个市场的 DateTimes(开始和结束)的数据源。然后,根据参数currentTime,您可以通过执行简单的检查来检查它是否在其中:

if (currentTime.Ticks >= marketOpen.Ticks && currentTime.Ticks <= marketClose.Ticks)
{
    //Market is open!
} 

currentTime以上是与市场处于同一时区的假设。如果不是,那么我建议将所有有问题的时间都转换为 UTC,这样就不存在您是否拥有正确的时区的问题。

于 2012-07-10T18:57:08.873 回答