 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
- gxx978
|
那是因为前面没有平仓信号时,TYPEBAR(1,2)返回值是-1,所以不能直接写TYPEBAR(1,2)>0,还要加上前面没有平仓信号的情况,如下:
ATR:=MA(TR,20);
//交易条件
开多条件:=C>REF(HHV(H,20),1)AND (TYPEBAR(1,2)>0 OR TYPEBAR(1,2)=-1);//TYPEBAR(1,2)>0在本根K平多后不会开多,之后的K不受限制
平多条件1:=C<ENTERPRICE-2*REF(ATR,OPENBAR);
平多条件2:=C<REF(LLV(L,5),1);
开空条件:=C<REF(LLV(L,20),1)AND (TYPEBAR(1,4)>0 OR TYPEBAR(1,4)=-1);//TYPEBAR(1,4)>0在本根K平空后不会开空,之后的K不受限制
平空条件1:=C>ENTERPRICE+2*REF(ATR,OPENBAR);
平空条件2:=C>REF(HHV(H,5),1);
//交易系统
IF HOLDING=0 THEN BEGIN
BUY(开多条件,1,LIMIT,C);
BUYSHORT(开空条件,1,LIMIT,C);
END
IF HOLDING>0 THEN SELL(平多条件1 OR 平多条件2 ,1,LIMIT,C);
IF HOLDING<0 THEN SELLSHORT(平空条件1 OR 平空条件2 ,1,LIMIT,C);
|
|