交易时段间隔时间

时间:2012-07-10 18:45:24

标签: c# session datetime

我无法确定任何特定时间的交易时段。

有四个可能的会话,在此图片中显示来自ForexFactory.com

enter image description here

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

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);

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

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

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

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