使用Filter过滤掉重复信号
语法:
Filter(条件,15);
就是15根K线之内的重复信号不会重复开仓,但是平仓因为与开仓信号不同,所以不受影响。
如果使用计数器来控制开仓,可以这样写:
variable:OpenCount=0; //开仓计数变量
variable:OpenTime=CurrentTime; //开仓时间变量
DuoDan:=多单进场条件; //用你的条件替换这里的红色文字
KongDan:=空单进场条件; //用你的条件替换这里的红色文字
If DuoDan And OpenCount<2 And CurrentTime-OpenTime<=30 then Begin //多单开仓条件成立,并且30分钟内开仓次数小于2就开多单
SellShort(1,0,mkt),OrderQueue; //先平空单
Buy(1,1,mkt),OrderQueue; //开多单
OpenCount:=OpenCount+1; //计数变量+1
If OpenCount=1 then //第一次开仓时记录开仓时间
OpenTime:=currenttime;
End
If KongDan And OpenCount<2 And CurrentTime-OpenTime<=30 then Begin //空单开仓条件成立,并且30分钟内开仓次数小于2就开空单
Sell(1,0,mkt),OrderQueue; //先平多单
BuyShort(1,1,mkt),OrderQueue; //开空单
OpenCount:=OpenCount+1; //计数变量+1
If OpenCount=1 then //第一次开仓时记录开仓时间
OpenTime:=currenttime;
End
If CurrentTime-OpenTime>=30 then begin //当前时间与开仓时间比,超过了30分钟,开仓计数变量重置
OpenCount:=0;
openTime:=CurrentTime;
End
//你可以参照这段代码进行加工