近来用金字塔交易的时候,经常会发生无法实盘成交的情况,但是在图标上显示了开平仓信号的,个人认为此情况和时序有关,请开发人员仔细查一下。
我在策略中,打印了调试信息:
IF SIG != 0 THEN
DEBUGFILE2('D:\TEST.TXT', STKLABEL + ': ' + NUMTOSTR(DATE, 0) + ' ' + NUMTOSTR(TIME, 0) + ' SIG %.0f', SIG, 1);
在这个调试信息之后才会调研BUY和SELL指令。
未开仓情况1,调试信息的输出片段
2018-06-07 09:32:13.220 510050: 1180606 150000 SIG 5
2018-06-07 09:32:13.220 510050: 1180607 93100 SIG 1
在9点32分13秒才发出信号1,表示要开仓,但实盘未成交。
PlaceOrder中的信息
2018-06-07 09:32:07.128 【图表】510050 运行完毕
9点32分07秒就检查了,此时我的策略还没有计算完成,当然检查不到信号,也就没有成交了。
未开仓情况2,调试信息的输出片段
2018-06-14 09:30:06.417 510050: 1180612 150000 SIG 5
2018-06-14 09:30:06.417 510050: 1180613 134600 SIG 1
2018-06-14 09:30:06.432 510050: 1180613 150000 SIG 5
最后一条信息,说明在30分06秒432毫秒的时候,我的策略发出信号5,表示要平仓,但实盘未成交。
PlaceOrde中的信息:
2018-06-14 09:04:18.052 【回报】057105009821 : 登录成功
2018-06-14 09:30:06.152 【图表】510050 运行完毕
2018-06-14 09:30:06.152 【图表】510050 运行完毕
这里数据表明,在30分06秒152毫秒的时候图表已经运行完毕,也是在策略完成之前
再看一个能成交的案例,调试信息
2018-06-07 14:01:14.666 150153: 1180607 95400 SIG 5
2018-06-07 14:01:14.671 150153: 1180607 140100 SIG 1
PlaceOrder中的信息
2018-06-07 14:01:15.185 【图表】框架:duan8 触发下单 BUY 品种 150153 下单K线 2018.06.07 14:01:00 公式:mid_stock_1 窗格ID:Window4 代码行:94
2018-06-07 14:01:15.186 【图表】模型下单 1500
2018-06-07 14:01:15.187 【图表】下单系数调整后 手数:1500
2018-06-07 14:01:15.187 【图表】直接下单
2018-06-07 14:01:15.190 【图表】框架:duan8 触发下单 BUY 品种 150153 下单K线 2018.06.07 14:01:00 公式:mid_stock_1 窗格ID:Window4 代码行:96
2018-06-07 14:01:15.191 【图表】模型下单 1500
2018-06-07 14:01:15.191 【图表】下单系数调整后 手数:1500
2018-06-07 14:01:15.192 【图表】直接下单
2018-06-07 14:01:15.194 【图表】150153 运行完毕
这个时间在后,故能实盘成交。
你的sig是开平仓的条件?
从日志来看都是运行完毕并没有条件满足触发的记录。
在不了解您程序所有的情况,看下会不会是这个情况
同一个交易语句在一根k上只会触发一次,而debugfile没有这个限制所以造成输出sig满足但是没有交易
可否发一段可供工作人员测试的代码