
等级: 新手上路
- 注册:
- 2022-6-28
- 曾用名:
|

楼主 |
发表于 2022-6-28 17:26
|
显示全部楼层
老师,改写后,出现CROSS(MA1,MA2)后的第一个信号开多后都会立即平多,然后第二根k再开多。第二个问题是开多平多后,再次开多会出现开多平多再开多平多多个信号。请帮检查哪里出错
INPUT:A(10,0,1000,1 );
INPUT:B(60,0,1000,1 );
INPUT:M(20,0,200,1 );
INPUT:N(1,1,1000,1 );
//中间变量
MA1:MA(CLOSE,A);
MA2:MA(CLOSE,B);
TR1 :=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR :=MA(TR1,M);
H1:=HHV(C,9);
L1:=LLV(C,9);
SS:=N;
HEN:=BARSLAST(CROSS(MA1,MA2));
HX:=HHV(C,HEN);
LEN:=BARSLAST(CROSS(MA2,MA1));
LX:=LLV(C,LEN);
//交易条件
KD:=MA1>MA2 AND C=H1 ;//开多条件
KK:=MA1<MA2 AND C=L1;//开空条件
PD:=CROSS(MA2,MA1);
PK:=CROSS(MA1,MA2);
//止损条件
DTZS:=C<(HX-2*ATR);
KTZS:=C>(LX+2*ATR);
//交易系统
SELL(HOLDING>0 AND PD,HOLDING,MARKET);
SELLSHORT(HOLDING<0 AND PK,HOLDING,MARKET);
BUY(HOLDING=0 AND KD,SS,MARKET);
BUYSHORT(HOLDING=0 AND KK,SS,MARKET);
SELL(HOLDING>0 AND DTZS,HOLDING,MARKET);
SELLSHORT(HOLDING<0 AND KTZS,HOLDING,MARKET); |
|