VARIABLE:lossnum=0, flag=0;
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
if flag=0 then begin
SS:=1;
flag=1;
end
开多平空条件:=CROSS(K,D) AND K<20 ;
开空平多条件:=CROSS(D,K) AND K>80 ;
平空:SELLSHORT(开多平空条件,0,MARKET);
开多:BUY(开多平空条件,SS,MARKET);
平多:SELL(开空平多条件,0,MARKET);
开空:BUYSHORT(开空平多条件,SS,MARKET);
//当连赢1次时,下次开仓数为3,当连赢2次时,下次开仓数是2,当连赢大于等于3时,下次开仓数为1;
//当连亏1次时,下次开仓数为1,当连亏2次时,下次开仓数是2,当连亏大于等于3时,下次开仓数为3;
//判断当前最近一次盈亏是否为第一次盈利状态,是则将全局变量置为0;
if NUMPROFIT( 1)>0 and NUMPROFIT( 2) <0 and ENTERBARS=-1 then begin
lossnum:=0;
ss:=3;//连赢0次之后开仓数量设置为3手
end
cac:ENTERBARS;
if NUMPROFIT( 1)>0 and NUMPROFIT( 2) >0 and ENTERBARS=-1 then lossnum:=lossnum+1;//统计连赢次数
if lossnum=1 then ss:=2;//连赢1次之后开仓数量设置为2手
if lossnum>=2 then ss:=1;//连赢2次之后开仓数量设置为1手
//判断当前最近一次盈亏是否为第一次亏损状态,是则将全局变量置为0;
if NUMPROFIT( 1)<0 and NUMPROFIT( 2) >0 and ENTERBARS=-1 then begin
lossnum:=0;
ss:=1;//连亏0次之后开仓数量设置为1手
end
if NUMPROFIT( 1)<0 and NUMPROFIT( 2) <0 and ENTERBARS=-1 then lossnum:=lossnum-1;//统计连亏次数
if lossnum=-1 then ss:=2;//连亏1次之后开仓数量设置为2手
if lossnum<=-2 then ss:=3;//连亏2次之后开仓数量设置为3手
你要的百分比方式,你自己通过资金计算出具体手数。将修改对应条件下的ss