QBX3_1M:
SELFDATA
(
'QBX3_1M'
);
QBX3_3M:
SELFDATA
(
'QBX3_3M'
);
QBX3_5M:
SELFDATA
(
'QBX3_5M'
);
QBX3_10M:
SELFDATA
(
'QBX3_10M'
);
QBX3_15M:
SELFDATA
(
'QBX3_15M'
);
QBX3_30M:
SELFDATA
(
'QBX3_30M'
);
QBX3_1H:
SELFDATA
(
'QBX3_1H'
);
VARIABLE
:QBX3[
7
]:=(QBX3_1M,QBX3_3M,QBX3_5M,QBX3_10M,QBX3_15M,QBX3_30M,QBX3_1H);
VARIABLE
:QBX3_DURATION[
7
]:=(
60
,
180
,
300
,
600
,
900
,
1800
,
3600
);
VARIABLE
:SIG_PERIOD1[
7
]:=(
22
,
22
,
22
,
22
,
22
,
22
,
22
);
VARIABLE
:SIG_NUM1[
7
]:=(
3
,
5
,
5
,
10
,
10
,
15
,
30
);
VARIABLE
:SIG_DURATION1[
7
]:=(
3
,
5
,
5
,
10
,
10
,
15
,
30
);
VARIABLE
:SIG_PERIOD2[
7
]:=(
22
,
22
,
22
,
22
,
22
,
22
,
1
);
VARIABLE
:SIG_NUM2[
7
]:=(
5
,
10
,
10
,
15
,
15
,
30
,
0
);
VARIABLE
:SIG_DURATION2[
7
]:=(
5
,
10
,
10
,
15
,
15
,
30
,
60
);
VARIABLE
:SIG_PERIOD3[
7
]:=(
22
,
22
,
22
,
22
,
22
,
1
,
3
);
VARIABLE
:SIG_NUM3[
7
]:=(
10
,
15
,
15
,
30
,
30
,
0
,
0
);
VARIABLE
:SIG_DURATION3[
7
]:=(
10
,
15
,
15
,
30
,
30
,
60
,
180
);
SW5S_RANK:
SELFDATA
(
'SW5S_RANK'
);
SW1M_RANK:
SELFDATA
(
'SW1M_RANK'
);
SS:=
1
;
GLOBALVARIABLE
:ORDER_DURATION:=
0
;
GLOBALVARIABLE
:ZS:=
C
;
GLOBALVARIABLE
:GBG:=
C
,GBD:=
C
;
平多条件:=
DYNAINFO
(
34
)=ZS;
平空条件:=
DYNAINFO
(
28
)=ZS;
IF
GBD>ZS
AND
TBUYHOLDING
(
1
)>
0
THEN
BEGIN
ZS:=GBD;
END
IF
GBG<ZS
AND
TSELLHOLDING
(
1
)>
0
THEN
BEGIN
ZS:=GBG;
END
IF
平多条件
AND
TBUYHOLDING
(
1
)>
0
THEN
TSELL
(
1
,
TBUYHOLDING
(
1
),
MKT
);
IF
平空条件
AND
TSELLHOLDING
(
1
)>
0
THEN
TSELLSHORT
(
1
,
TSELLHOLDING
(
1
),
MKT
);
FOR
N=
7
DOWNTO
1
DO
BEGIN
IF
QBX3[N]>
0
AND
TBUYHOLDING
(
1
)=
0
THEN
BEGIN
SIG1:=#TICK_SIG
.
PULSE_2ND(SIG_DURATION3[N]*
2
,QBX3[N])#;
IF
SIG1
THEN
BEGIN
TBUY
(
1
,SS,
LMT
,
DYNAINFO
(
28
)+
MINDIFF
,
0
);
ZS:=
CALLSTOCK
(
''
,
VTLOW
,SIG_PERIOD3[N],SIG_NUM3[N]);
ORDER_DURATION:=SIG_DURATION3[N];
GBD:=
STKINDIEX
(
''
,
'GBDSX.GBD'
,
0
,SIG_PERIOD3[N],SIG_NUM3[N],
300
);
GBG:=
STKINDIEX
(
''
,
'GBDSX.GBG'
,
0
,SIG_PERIOD3[N],SIG_NUM3[N],
300
);
BREAK
;
END
SIG1:=#TICK_SIG
.
PULSE_2ND(SIG_DURATION2[N]*
2
,QBX3[N])#;
IF
SIG1>
0
AND
SIG1*(QBX3_DURATION[N]/SIG_DURATION2[N])/QBX3[N]>
2
THEN
BEGIN
TBUY
(
1
,SS,
LMT
,
DYNAINFO
(
28
)+
MINDIFF
,
0
);
ZS:=
CALLSTOCK
(
''
,
VTLOW
,SIG_PERIOD2[N],SIG_NUM2[N]);
ORDER_DURATION:=SIG_DURATION2[N];
GBD:=
STKINDIEX
(
''
,
'GBDSX.GBD'
,
0
,SIG_PERIOD2[N],SIG_NUM1[N],
300
);
GBG:=
STKINDIEX
(
''
,
'GBDSX.GBG'
,
0
,SIG_PERIOD2[N],SIG_NUM1[N],
300
);
BREAK
;
END
SIG1:=#TICK_SIG
.
PULSE_2ND(SIG_DURATION1[N]*
2
,QBX3[N])#;
IF
SIG1>
0
AND
SIG1*(QBX3_DURATION[N]/SIG_DURATION1[N])/QBX3[N]>
2
THEN
BEGIN
TBUY
(
1
,SS,
LMT
,
DYNAINFO
(
28
)+
MINDIFF
,
0
);
ZS:=
CALLSTOCK
(
''
,
VTLOW
,SIG_PERIOD1[N],SIG_NUM1[N]);
ORDER_DURATION:=SIG_DURATION1[N];
GBD:=
STKINDIEX
(
''
,
'GBDSX.GBD'
,
0
,SIG_PERIOD1[N],SIG_NUM1[N],
300
);
GBG:=
STKINDIEX
(
''
,
'GBDSX.GBG'
,
0
,SIG_PERIOD1[N],SIG_NUM1[N],
300
);
BREAK
;
END
END
IF
QBX3[N]<
0
AND
TSELLHOLDING
(
1
)=
0
THEN
BEGIN
SIG1:=#TICK_SIG
.
PULSE_2ND(SIG_DURATION3[N]*
3
,
ABS
(QBX3[N]))#;
IF
SIG1
THEN
BEGIN
TBUYSHORT
(
1
,SS,
LMT
,
DYNAINFO
(
34
)-
MINDIFF
,
0
);
ZS:=
CALLSTOCK
(
''
,
VTHIGH
,SIG_PERIOD3[N],SIG_NUM3[N]);
ORDER_DURATION:=SIG_DURATION3[N];
GBD:=
STKINDIEX
(
''
,
'GBDSX.GBD'
,
0
,SIG_PERIOD3[N],SIG_NUM3[N],
300
);
GBG:=
STKINDIEX
(
''
,
'GBDSX.GBG'
,
0
,SIG_PERIOD3[N],SIG_NUM3[N],
300
);
BREAK
;
END
SIG1:=#TICK_SIG
.
PULSE_2ND(SIG_DURATION3[N]*
2
,
ABS
(QBX3[N]))#;
IF
SIG1
THEN
BEGIN
TBUYSHORT
(
1
,SS,
LMT
,
DYNAINFO
(
34
)-
MINDIFF
,
0
);
ZS:=
CALLSTOCK
(
''
,
VTHIGH
,SIG_PERIOD2[N],SIG_NUM2[N]);
ORDER_DURATION:=SIG_DURATION2[N];
GBD:=
STKINDIEX
(
''
,
'GBDSX.GBD'
,
0
,SIG_PERIOD2[N],SIG_NUM2[N],
300
);
GBG:=
STKINDIEX
(
''
,
'GBDSX.GBG'
,
0
,SIG_PERIOD2[N],SIG_NUM2[N],
300
);
BREAK
;
END
SIG1:=#TICK_SIG
.
PULSE_2ND(SIG_DURATION1[N]*
2
,
ABS
(QBX3[N]))#;
IF
SIG1
THEN
BEGIN
TBUYSHORT
(
1
,SS,
LMT
,
DYNAINFO
(
34
)-
MINDIFF
,
0
);
ZS:=
CALLSTOCK
(
''
,
VTHIGH
,SIG_PERIOD1[N],SIG_NUM1[N]);
ORDER_DURATION:=SIG_DURATION1[N];
GBD:=
STKINDIEX
(
''
,
'GBDSX.GBD'
,
0
,SIG_PERIOD1[N],SIG_NUM1[N],
300
);
GBG:=
STKINDIEX
(
''
,
'GBDSX.GBG'
,
0
,SIG_PERIOD1[N],SIG_NUM1[N],
300
);
BREAK
;
END
END
END
MSGOUT
(
ISLASTBAR
=
1
,
STKLABEL
&
' '
&
NUMTOSTR
(
TBUYHOLDING
(
1
),
0
)&
' '
&
NUMTOSTR
(
TBUYHOLDING
(
1
),
0
));