龙听期货论坛's Archiver

龙听 发表于 2024-11-9 11:11

鼎元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]