代码如下:
if tsellholding(1)>0 and ENTERBARS>0 and sp=1 then begin
if c>cpre+atrx1*JJATRX*atr then begin
紧急平空跨周期:SELLshort(1 ,TSELLHOLDING(1),marketr),ORDERQUEUE;
DEBUGFILE('D:\TEST.TXT','紧急平空跨周期 jjpc=%.0f',JJPC);
DEBUGFILE('D:\TEST.TXT','tsellholding=%.0f',tsellholding(l));
DEBUGFILE('D:\TEST.TXT','sp=%.0f',sp);
DEBUGFILE('D:\TEST.TXT','当前价=%.0f',c);
END;
有一个平仓操作
自己输出的日志
2017-05-12 14:16:43.769 紧急平空跨周期 jjpc=0
2017-05-12 14:16:43.784 tsellholding=1
2017-05-12 14:16:43.800 sp=1
2017-05-12 14:16:43.816 当前价=2979
说明已经进了if吧,而且执行了平仓之后的日志输出。但是系统自带的日志显示,没有发出平仓信号:
2017-05-12 14:16:41.175 【图表】RB10 运行完毕
2017-05-12 14:16:42.222 【图表】RB10 运行完毕
2017-05-12 14:16:43.175 【图表】RB10 运行完毕
2017-05-12 14:16:44.206 【图表】RB10 运行完毕
2017-05-12 14:16:45.175 【图表】RB10 运行完毕
2017-05-12 14:16:46.222 【图表】RB10 运行完毕
2017-05-12 14:16:47.175 【图表】RB10 运行完毕
更为奇怪的是,似乎并不是漏单,因为之后每次轮询,都记录了自定义日志输出,却没有平仓操作。
如16分44秒时也发出了信号,但仍旧没有平仓委托
2017-05-12 14:16:44.769 紧急平空跨周期 jjpc=-182000
2017-05-12 14:16:44.769 tsellholding=1
2017-05-12 14:16:44.769 sp=1
2017-05-12 14:16:44.769 当前价=2979
请问是怎么回事呢?
没办法
要检测实际持仓,只有用tsellholding了。图表没有这个功能啊
非常不建议使用,这个是后台函数,而图表交易系统又是虚拟数据交易系统,实际账户跟随下单。这两个系统的原理就不同。如果这样使用的话,那么你必须明白图表和后台两个系统的差别,根据目前情况,那就直接是修改策略思想的活。
可尝试去 公式区 简单说下自己的策略思路,工作人员会推荐合适的交易系统(图表 or 后台)。
[此贴子已经被作者于2017/5/12 17:24:54编辑过]
额 我暂时不考虑用后台
只想求图表的解决方案,是tsellholding的问题吗?代码里也正确输出了当前持仓呀
而且以前没问题,这种情况第一次出现
这里的输出是没有问题,但是它会影响到历史上的条件变化,图表中使用
tsellholding会很大概率造成漏单现象。
建议可以使用模拟账户,把空头平仓后,跟之前的图表做个对比,图上很多地方肯定发生偏移。