求助:如何获取一个交易品种当天的开始交易时间与结束交易时间?如:标准普尔500指数,有时交易时间是1:00-23:00 有时是1:00-22:59分
参考
bool SymbolInfoSessionTrade( string name, // symbol name ENUM_DAY_OF_WEEK day_of_week, // day of the week uint session_index, // session index datetime& from, // session beginning time datetime& to // session end time );
https://www.mql5.com/en/docs/marketinformation/symbolinfosessiontrade
Documentation on MQL5: Market Info / SymbolInfoSessionTrade
- www.mql5.com
Market Info / SymbolInfoSessionTrade - Reference on algorithmic/automated trading language for MetaTrader 5
我试了试,2019年3月13号 收盘时间是:22:59分,但用下面代码获取的是:23:15分;
MqlDateTime GetEtime ;
MqlDateTime TM;
TimeCurrent(TM);
SymbolInfoSessionTrade(NULL,ENUM_DAY_OF_WEEK(TM.day_of_week),0,Btime,Etime); //Etime = 1970.01.01 23:15:00
该函数返回的from,to 是不包含日期的,只有时,分,你需要自己把日期加上,如果你不加日期就默认是1970.01.01
一般来说只用到当日,确定当下是否在交易时段。
Ziheng Zhuang:
该函数返回的from,to 是不包含日期的,只有时,分,你需要自己把日期加上,如果你不加日期就默认是1970.01.01
一般来说只用到当日,确定当下是否在交易时段。
我知道,日期是忽略不计的。关键是时间获取的不对。2019年3月13号 收盘时间是:22:59分,但用下面代码获取的是:23:15分;
用代码获取的时段其实就是品种属性中规定的时段,正常情况与实际的交易时段是吻合的,除了节假日休市等特殊的情况会不一致。
如果2019年3月13号是个特殊的交易日,那不吻合是有可能的。
Ziheng Zhuang:
用代码获取的时段其实就是品种属性中规定的时段,正常情况与实际的交易时段是吻合的,除了节假日休市等特殊的情况会不一致。
也就是说正常交易日代码获取是正常的,测试中代码就是属性规定的时间。谢谢了!