variable
:maxprofit:=
0
,P1:=
0
,P2:=
0
;
input
:m1(
4
,
1
,
100
,
10
),m2(
8
,
1
,
100
,
10
),m3(
16
,
1
,
100
,
10
),m4(
32
,
1
,
100
,
10
);
bbi:(
ma
(
close
,m1)+
ma
(
close
,m2)+
ma
(
close
,m3)+
ma
(
close
,m4))/
4
;
input
:ss(
5
,
1
,
100
,
1
);
cz:=
abs
(bbi-
ref
(bbi,
1
));
up:=bbi>
ref
(bbi,
1
);
down:=bbi<
ref
(bbi,
1
);
平空开多X:=up
and
ref
(up,
1
)
and
cross
(
c
,bbi)
and
cz>
ref
(cz,
1
);
平多开空X:=down
and
ref
(down,
1
)
and
cross
(bbi,
c
)
and
cz>
ref
(cz,
1
) ;
平空开多:=
REF
(平空开多X,
1
);
平多开空:
REF
(平多开空X,
1
);
if
平空开多
then
begin
IF
HOLDING
<>
0
THEN
P2:=
0
;
sellshort
(
holding
<
0
,
HOLDING
,
LIMITR
,
O
);
buy
(
holding
=
0
,ss,
LIMITR
,
O
);
if
holding
=
0
then
maxprofit:=
0
;
end
if
平多开空
then
begin
IF
HOLDING
<>
0
THEN
P1:=
0
;
sell
(
holding
>
0
,
HOLDING
,
LIMITR
,
O
);
buyshort
(
holding
=
0
,SS,
LIMITR
,
O
);
if
holding
=
0
then
maxprofit:=
0
;
end
IF
P1<>
0
AND
h
>=P1
AND
HOLDING
=
0
and
c
>bbi
THEN
止盈后开多:
BUY
(
1
,SS,
MARKETR
);
IF
P2<>
0
AND
L
<=P2
AND
HOLDING
=
0
and
c
<bbi
THEN
止盈后开空:
BUYSHORT
(
1
,SS,
MARKETR
);
win:=
0
; win2:=
0
;
if
holding
>
0
and
enterbars
>=
0
then
begin
P2:=
0
;
win:=(
h
-
enterprice
);
if
win>maxprofit
then
BEGIN
maxprofit:=win; P1:=
H
;
END
win2:=(maxprofit-win)/maxprofit*
100
;
end
if
holding
<
0
and
enterbars
>=
0
then
begin
P1:=
0
;
win:=(
enterprice
-
l
);
if
win > maxprofit
then
BEGIN
maxprofit:=win;P2:=
L
;
END
win2:=(maxprofit-win)/maxprofit*
100
;
end
浮动盈亏点数:win;
最大盈利:maxprofit;
浮动盈亏幅度:
100
*win/
AVGENTERPRICE
;
多止损:
sell
(浮动盈亏幅度 < -
2
,
0
,
marketr
);
if
win2 >=
30
and
win >
0
then
begin
多止赢:
sell
(
1
,
0
,
marketr
);
end
空止损:
sellshort
(浮动盈亏幅度 < -
2
,
0
,
marketr
);
IF
win2 >=
30
and
win >
0
THEN
BEGIN
空止赢:
sellshort
(
1
,
0
,
marketr
);
END
if
holding
=
0
then
maxprofit:=
0
;
持仓:
holding
;