等级: 免费版
- 注册:
- 2021-7-23
- 曾用名:
|

楼主 |
发表于 2022-5-25 13:25
|
显示全部楼层
帮我看行这个代码是不是被我哪里改错了 有设置趋势里只开仓两次 但是图表走的时候都不止两次 有时候都7 8次开仓
VARIABLE:KD_FALG=0,KK_FALG=0;
EMA100:EMA(C,100);
//成立时为多头趋势否者为空头趋势
KTXS:EMA100>REF(EMA100,1) AND REF(EMA100,1)>REF(EMA100,2);
IF(EMA100>=REF(EMA100,1),EMA100,DRAWNULL),LINETHICK2,COLORRED;//多头红色
IF(EMA100<=REF(EMA100,1),EMA100,DRAWNULL),LINETHICK1,COLORGREEN;//空头绿色
KD_COND:KTXS=1 and ref(KTXS=1,1) and ref(low>EMA100,1) and low<EMA100;//开多条件
KK_COND:KTXS=0 and ref(KTXS=0,1) and ref(high<EMA100,1) and high>EMA100;//开空条件
duomaxProfit:=HHV(H,ENTERBARS+1)-AVGENTERPRICE;
kongmaxProfit:=AVGENTERPRICE-LLV(L,ENTERBARS+1);
if duomaxProfit=1 and HOLDING>0 then begin
多头止盈:SELL(1,HOLDING,MARKET);
KD_FALG:=KD_FALG+1;//记录多头平仓次数,
END
if kongmaxProfit=1 and HOLDING<0 then begin
空头止盈:SELLSHORT(HOLDING<0,HOLDING,MARKET);
KK_FALG:=KK_FALG+1;//记录空头平仓次数
END
if duomaxProfit>=10*MINDIFF and (HHV(H,ENTERBARS+1)-c)>=5*MINDIFF then 多移动:SELL(1,holding,MARKET);
if kongmaxProfit>=10*MINDIFF and (c-LLV(L,ENTERBARS+1))>=5*MINDIFF then 空移动:SELLSHORT(1,holding,MARKET);
if KD_COND=1 then begin
BUY(HOLDING=0 AND KD_FALG<2,1,MARKET);
KK_FALG:=0;//在多头趋势下,将空头的平仓标志置0
END
if KK_COND=1 then begin
BUYSHORT(HOLDING=0 AND KK_FALG<2,1,MARKET);
KD_FALG:=0;
END
if KTXS=0 then begin
SELL(HOLDING>0,HOLDING,MARKET); //当多头趋势转换为空头趋势时,平多头仓位
KD_FALG:=0;
end
if KTXS=1 then begin
SELLSHORT(HOLDING<0,HOLDING,MARKET);//当空头趋势转换为多头趋势时,平空头仓位
KK_FALG:=0;
end
|
|