想实现:连续亏损3次以上或者资金回撤10%,停止程序建仓,如果有仓位,只出场不建仓.资金盈利5¥ 或者 连续亏损到10次 或者 连续盈利3次 重新 开启程序 进场
这个要怎么实现
源码如下:
aa:ma(c,100);
bb:ma(c,300);
KD:=cross(c,aa) and c>=bb ; //开多条件
PD:=cross(aa,c); //平多条件
KK:=cross(aa,c) and c<=bb; //开空条件
PK:=cross(c,aa); //平空条件
平空:SELLSHORT(PK,10,MARKET); //平空信号
开多:BUY(KD AND HOLDING=0,1,MARKET); //开多信号
平多:SELL(PD,1,MARKET); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,MARKET); //开空信号
资产:asset,noaxis;
连亏 这个 可以参考这个例子.
VARIABLE:ct:=0;
aa:=ma(c,5);
bb:=ma(c,10);
KD:=cross(c,aa) and c>=bb ; //开多条件
PD:=cross(aa,c); //平多条件
KK:=cross(aa,c) and c<=bb; //开空条件
PK:=cross(c,aa); //平空条件
连亏次数:ct;
if pk and holding<0 then
begin
平空:SELLSHORT(PK,10,MARKET);
ct:=if(NUMPROFIT(1)<0,ct+1,0);
end
开多:BUY(KD AND HOLDING=0 and ct<=3,1,MARKET);
if pd and holding>0 then
begin
平多:SELL(PD,1,MARKET);//平多信号
ct:=if(NUMPROFIT(1)<0,ct+1,0);
end
//开多信号
开空:BUYSHORT(KK AND HOLDING=0 and ct<=3,1,MARKET);
用的全局变量。但是这里面没有考虑再次进场问题。这个可以你自行尝试下。
那么资金回撤4%和重新开启进出场的条件呢,应该怎么弄?
连亏三次后停止建仓,这个时候你本身就停止了建仓
后面开启建仓的条件也都无法满足了,连续盈利、连续亏损10次都和连亏3次是反集