我无法找出哪些人交易会话任何特定时间在不在。确定是否多时间之间当前的时间跨度
有四种可能的会议,显示在这张照片从ForexFactory.com
采取
我有这个方法,我需要检查的是currentTime是在指定的交易时段。
public bool IsTradingSession(TradingSession tradingSession, DateTime currentTime)
{
//currentTime is in local time.
//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.ToLocalTime(Exchange.CurrentSessionOpen);
DateTime sessionEnd = Exchange.ToLocalTime(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);
谢谢
.NET日期时间是非常困难的正确使用,尤其是在不同的时区。如果您可以影响使用标准日期时间的决定,请考虑查看http://code.google.com/p/noda-time/。 – 2012-07-11 03:06:45
如果'currentTime'始终处于一致的时区,那么UTC不是必需的;坚持当地时间为了简单不会伤害。 – 2012-07-11 03:58:06
@Kirk Broadhurst是的,这是我的问题与dthorpe的答案,因为我在我的评论中提到 – parliament 2012-07-11 03:59:52