INPUT
:P(
26
,
20
,
40
,
2
),S(
12
,
5
,
30
,
3
),M(
9
,
2
,
20
,
2
);
INPUT
:手数(
1
,
1
,
10000
,
10
);
VARIABLE
:ZS=
C
;
VARIABLE
:MAXHL=
C
;
VARIABLE
:MINLOW=
C
;
DISTL:=
NEWLBARS
(
L
,
1
);
DISTH:=
NEWHBARS
(
H
,
1
);
HI20:=
REF
(
HHV
(
H
,
20
),
1
);
LO20:=
REF
(
LLV
(
L
,
20
),
1
);
GBD1:=
REF
(
L
,DISTL);
GBD2:=
REF
(GBD1,DISTL);
GBD:=
IF
(GBD2>
0
,
MAX
(
LLV
(
L
,
20
),GBD2),
LLV
(
L
,
20
));
GBG1:=
REF
(
H
,DISTH);
GBG2:=
REF
(GBG1,DISTH);
GBG:=
IF
(GBG2>
0
,
MIN
(
HHV
(
H
,
20
),GBG2),
HHV
(
H
,
20
));
SAR1:=
SAR
(
10
,
2
,
20
),
CIRCLEDOT
;
DIFF :=
EMA
(
CLOSE
,S) -
EMA
(
CLOSE
,P);
DEA :=
EMA
(DIFF,M);
MACD :=
2
*(DIFF-DEA);
COND1:=
ANY
(
REF
(SAR1>
HIGH
,
1
)
AND
SAR1<
HIGH
,
3
)=
1
;
COND2:=
ANY
(
CROSS
(DIFF,DEA),
3
)=
1
AND
DIFF<
5
;
开多条件:=COND1
AND
COND2;
CONK1:=
ANY
(
REF
(SAR1<
LOW
,
1
)
AND
SAR1>
LOW
,
3
)=
1
;
CONK2:=
ANY
(
CROSS
(DEA,DIFF),
3
)=
1
;
开空条件:=CONK1
AND
CONK2;
多损上移条件:=
HIGH
>MAXHL
AND
GBD>ZS;
空损下移条件:=
LOW
<MINLOW
AND
GBG<ZS;
平多条件:=
REF
(
HIGH
,
1
)<ZS ;
平空条件:=
REF
(
LOW
,
1
)>ZS ;
IF
开多条件
AND
HOLDING
=
0
THEN
BEGIN
BUY
(
1
,手数,
MARKET
);
ZS:=GBD;
MAXHL:=
HIGH
;
END
IF
多损上移条件
AND
HOLDING
>
0
THEN
BEGIN
ZS:=GBD;
MAXHL:=
HIGH
;
END
IF
开空条件
AND
HOLDING
=
0
THEN
BEGIN
BUYSHORT
(
1
,
1
,
MARKET
);
ZS:=GBG;
MINLOW:=
LOW
;
END
IF
空损下移条件
AND
HOLDING
<
0
THEN
BEGIN
ZS:=GBG;
MINLOW:=
LOW
;
END
IF
平多条件
AND
HOLDING
>
0
AND
ENTERBARS
>
1
THEN
SELL
(
1
,
HOLDING
,
MARKET
);
IF
平空条件
AND
HOLDING
<
0
AND
enterbars
>
1
THEN
SELLSHORT
(
1
,
HOLDING
,
MARKET
);
止损线:ZS;