鼎元C++期货量化/程序化教程【如何限制发送委托的时间以避免在非交易时间出现委托订单?】
使用场景:1、在程序化实际运行中会碰到在非交易时间就发送委托的情况,这多是因为时间没有设置好。
2、中国国内现在的期货市场交易时间范围如下:
(1)、白天交易时间:上午盘时间:09:00 - 10:15,10:30-11:30;
(2)、下午盘时间:13:30-15:00;
(3)、夜盘时间:21:00-23:00;有些特殊品种(黄金、白银夜盘:21:00-2:30;有色品种盘:21:00-1:00);
3、根据想交易的品种可能修改一下策略在这些相关的时间内才发委托,否则不发委托或策略直接不运行。
4、设置策略时间:(一般不用改)[code]string timeStart = "08:50:00";
string timePause = "15:32:00";
string timeResume = "20:50:00";
string timeStop = "02:32:00";
string state = "stop";[/code]5、设置策略委托限制时间:[code]
void test::OnMarketData(CThostFtdcDepthMarketDataField* t) //监测有新的tick价格传入,即是否处于交易时间
{
if (state != "run")return; //如何策略不处于run状态返回
if (t->OpenInterest < 1)return; //持仓信息小于1返回
if (t->InstrumentID != sInst)return; //数据的合约名称与交易界面设置的合约不一致,多是交易界面设置的合约错误导致的,检查一下即可
mapMd[t->InstrumentID] = *t;
string sss = t->UpdateTime;
if ((sss >= "08:54:59" && sss <= "08:59:59") || (sss >= "20:54:59" && sss <= "20:59:59") || (sss >= "10:14:59" && sss <= "10:29:59"))return; //集合竞价时段与休市阶段返回,不委托下单,交易黄金原油有色类品种特殊再设置
[/code]
页:
[1]