在论坛搜索过,发现有类似问题,但没有明确的解决方案,请高手帮助。希望写一个出现开仓信号后,先把原来反方向的仓单平掉,然后开新仓,但实际模拟数据测试,发现总是只平仓之后没有开新仓,理论上没有同方向的单同时存在而产生干扰,每次只开一手,然后平仓,然后再开。平仓完成后,holding肯定是0
//开多 kd=开多条件
IF kd THEN BEGIN
IF HOLDING<0 THEN 平空:SELLshort(1,手数,MARKET),ORDERQUEUE;
交易次数:=交易次数+1;
else
开多:BUY(kd AND HOLDING=0,手数,market),ORDERQUEUE;
交易次数:=交易次数+1;
END
//开空 kk=开空条件
IF kk THEN BEGIN
IF HOLDING>0 THEN 平多:SELL(1,手数,MARKET),ORDERQUEUE;
交易次数:=交易次数+1;
else
开空:BUYSHORT(kk AND HOLDING=0,手数,MARKET),ORDERQUEUE;
交易次数:=交易次数+1;
END
请教该如何修改才可以实现平仓后马上开仓
else之前是没有的,后来改来改去加上去的,可能有些多余,应该不需要。
本意思是如果满足开多或开空条件时,如果持仓不不是0,就先平仓,持仓0时,就直接开仓
IF kd THEN BEGIN
平空:SELLshort(holding<0,手数,MARKET),ORDERQUEUE;
开多:BUY(kd AND HOLDING=0,手数,market),ORDERQUEUE;
交易次数:=交易次数+1;
END
//开空 kk=开空条件
IF kk THEN BEGIN
平多:SELL(holding>0,手数,MARKET),ORDERQUEUE;
开空:BUYSHORT(kk AND HOLDING=0,手数,MARKET),ORDERQUEUE;
交易次数:=交易次数+1;
END
谢版主,似乎可以了。不过图形中平多开空或者平空开多的字重叠了,是否可以利用类似drawtext的绘图函数来控制,比如下面这种格式:
平空:=SELLshort(holding<0,手数,MARKET),ORDERQUEUE;
开多:=BUY(kd AND HOLDING=0,手数,market),ORDERQUEUE;
drawtext(平空,“平空”,x,color00ffff);
drawtext(开多,“开多”,x,colorred);
这个不行,图中的“开多”“平空”之类字体都是系统自带的,不能以代码的形式修改