我无法确定任何特定时间的交易时段。
有四个可能的会话,在此图片中显示来自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);
感谢您的帮助
答案 0 :(得分:1)
首先,您需要每个市场的DateTimes(开始和结束)的数据源。然后,
根据参数currentTime
,您可以通过执行简单的检查来检查它是否在于:
if (currentTime.Ticks >= marketOpen.Ticks && currentTime.Ticks <= marketClose.Ticks)
{
//Market is open!
}
以上假设currentTime
与市场处于同一时区。如果不是,那么我建议将所有有问题的时间转换为UTC,这样就可以确定您是否拥有合适的时区。