1.逻辑上有不完整地方。 “如果开仓不下跌20个点止盈” “如果加了6次仓后不再下跌” 这个还要有额外的限制条件才行。 多少周期内不下跌20个点止盈?加仓6次之后多久不下跌?
2.,”则从第一手到第7手的总点数/7)+20点,止盈
你1中所说的是开仓后240分钟内没有下跌到20点止盈,是这个意思对吧?
我可能没说清楚,一般不直接用具体时间跨度,举个例子一般这样:N个K线周期内没有下跌到20个点。 用240分钟这种具体时间跨度的话,还要考虑到你运行周期多少多少,转换和计算都不方便。 你考虑下。
VARIABLE:n:=0;
cs:=60;//这里自行修改值,当前运行的是1分钟周期写60,是30分钟周期就写2400,是10秒周期就写10,总之要把周期数转换成秒数
kctime:=OPENBAR*cs;//首次开仓以来的秒数
jctime:BARSLAST(n=6)*cs;//最近一次加仓到6手到当前K位置的秒数
if c>ref(c,1) then begin buy(holding=0,1,market);end //buycond 是你自己初始定义的开仓条件
if n<=20 and ENTERPRICE-c>=10*MINDIFF and holding>0 and kctime<=240*60 then
begin
buy(1,1,market);//按照上次开仓价格下跌10点来加仓
n:=n+1;
end
if n>=6 and jctime>=240*60 and count(ref(c,1)>c,BARSLAST(n=6))=0 then //加仓6次之后,超过240*60 秒收盘价格没有再下跌平仓
begin
sell(holding>0,holding,limit,AVGENTERPRICE+29*MINDIFF);//限价平仓
n:=0;
end