如题,在我的程式化里我的本意是一旦止损平仓后就反手开仓一次,部分代码如下:
IF (C-ENTERPRICE)/ENTERPRICE>0.014 THEN BEGIN
SELLSHORT(HOLDING<0,100%,NEXTOPEN);
BUY(HOLDING=0,1,NEXTOPEN);
YC:=YC+1;
END
但是今晚郑醇1809 空仓止损后连开了两手多单,如何修改程序让它只开一单?
交易记录

此主题相关图片如下:360截图20180531001119831.jpg
代码行是同一行的吗,这个感觉像是信号闪烁引起的
48分的出现信号了,然后消失接着在49分钟这跟k上出现。可以考虑加入debugfile调试下条件看下会否盘中的条件在k线过后会变化
老大:止损反手代码如下,
IF (C-ENTERPRICE)/ENTERPRICE>0.014 THEN BEGIN
SELLSHORT(HOLDING<0,100%,NEXTOPEN);
BUY(HOLDING=0,1,NEXTOPEN);
YC:=YC+1;
END
它们不在一行
而且从分时图上看也不应该闪烁呀(价格没有反复,一直往前走的呀)
从代码来看,在49分钟K上下单的话,如果信号稳定,那么50的K应该是无法触发的。因为这时候虚拟持仓是大于0的,50的K是开不了仓的。但是你这日志记录,却是连续2个K都触发了。说明49的K上的信号 后来很可能消失了。
你这个应该有其他代码吧,其他代码闪烁导致ENTERPRICE发生了变化,间接造成了闪烁。
请看我截图的第一个交易日志上倒数第三行:
2018-05-30 22:48:43.702 【回报】106350635:MA809 - 已成交 1 价格:2763 开 买
这已经明确有持仓了,条件HOLDING<0和HOLDING=0都不成立了,那为什么22:49:08.374又会触发 “BUY(HOLDING=0,1,NEXTOPEN)”?
我用的是1秒固定轮询。