|
|
@@ -1,5 +1,5 @@
|
|
1
|
|
-FS:=80;
|
|
2
|
|
-分数MIN:=IF(MACHINETIME<094500,FS-15,IF(MACHINETIME<100000,FS-10,IF(MACHINETIME<130000,FS-5,FS)));
|
|
|
1
|
+FS:=75;
|
|
|
2
|
+分数MIN:=IF(MACHINEDATE<094500,FS-15,IF(MACHINEDATE<100000,FS-10,IF(MACHINEDATE<130000,FS-5,FS)));
|
|
3
|
3
|
|
|
4
|
4
|
{多维度市场牛熊状态模型}
|
|
5
|
5
|
N1:=21;
|
|
|
@@ -40,8 +40,8 @@ WEAK_INDUSTRY:=
|
|
40
|
40
|
HY_TREND_ANGLE < -ANGLE AND
|
|
41
|
41
|
MA(HY_INDEXV,N2)/REF(MA(HY_INDEXV,N2),5)<0.8;
|
|
42
|
42
|
|
|
43
|
|
-HS300C:="399300$CLOSE";
|
|
44
|
|
-REL_STR:=IF(REF(C,N1)!=0 AND REF(HS300C,N1)!=0, (C/REF(C,N1)) / (HS300C/REF(HS300C,N1)) - 1, 0);
|
|
|
43
|
+HS300C:="SZ399300$CLOSE";
|
|
|
44
|
+REL_STR:=(C/REF(C,N1))/(HS300C/REF(HS300C,N1))-1;
|
|
45
|
45
|
IND_BULL:=FILTER(REL_STR>0.12 AND REL_STR>REF(REL_STR,1),3);
|
|
46
|
46
|
IND_BEAR:=FILTER(REL_STR<-0.18 AND REL_STR<REF(REL_STR,1),3);
|
|
47
|
47
|
|
|
|
@@ -71,8 +71,8 @@ MARKET:=IF(BULL_SCORE,1, IF(BEAR_SCORE,2,3));{1:牛市,2:熊市,3:震荡市或
|
|
71
|
71
|
_DDX:=(LARGEINTRDVOL-LARGEOUTTRDVOL)*10000/FINANCE(7);
|
|
72
|
72
|
_DDY:=IF(TRADENUM>0,(TRADEOUTNUM-TRADEINNUM)*100/TRADENUM,0);
|
|
73
|
73
|
|
|
74
|
|
-资金分DDX:= 权重DDX * MIN(1, MAX(0, (_DDX - 0.3)/(1.4 - 0.3)));
|
|
75
|
|
-资金分DDY:= 权重DDY * MIN(1, MAX(0, (_DDY - 10)/(30 - 10)));
|
|
|
74
|
+资金分DDX:= IF(_DDX>1.4, 权重DDX, IF(_DDX>1.2, 权重DDX-1, IF(_DDX>1.0, 权重DDX-2, IF(_DDX>0.8, 权重DDX-3, IF(_DDX>0.6, 权重DDX-4, IF(_DDX>0.3, 权重DDX-5, 0))))));
|
|
|
75
|
+资金分DDY:= IF(_DDY>50, 权重DDY, IF(_DDY>40, 权重DDY-1, IF(_DDY>30, 权重DDY-2, IF(_DDY>20, 权重DDY-3, IF(_DDY>15, 权重DDY-4, 0)))));
|
|
76
|
76
|
|
|
77
|
77
|
资金分:=资金分DDX + 资金分DDY;
|
|
78
|
78
|
|
|
|
@@ -84,19 +84,18 @@ _DDY:=IF(TRADENUM>0,(TRADEOUTNUM-TRADEINNUM)*100/TRADENUM,0);
|
|
84
|
84
|
现价:=DYNAINFO(7);
|
|
85
|
85
|
分时均价:=DYNAINFO(11);
|
|
86
|
86
|
|
|
87
|
|
-日内涨幅:=(C-OPEN)/OPEN*100; {聚焦日内}
|
|
88
|
|
-涨幅扩大:=日内涨幅 > MA(日内涨幅,5) AND 日内涨幅 > REF(日内涨幅,1);
|
|
|
87
|
+当前涨幅:=(C-REF(C,1))/REF(C,1)*100;
|
|
|
88
|
+涨幅扩大:=当前涨幅 > MA(当前涨幅,5) AND 当前涨幅 > REF(当前涨幅,1);
|
|
89
|
89
|
|
|
90
|
|
-LC:=REF(CLOSE,1);
|
|
91
|
|
-RSI_VAL:=SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),14,1)*100;
|
|
92
|
|
-RSI上限:=70;
|
|
|
90
|
+RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
|
|
|
91
|
+K:=SMA(RSV,3,1);
|
|
|
92
|
+D:=SMA(K,3,1);
|
|
|
93
|
+J:=3*K-2*D;
|
|
|
94
|
+KDJ上限:=90;
|
|
93
|
95
|
|
|
94
|
|
-OBV_VAL:=SUM(IF(C>REF(C,1),VOL,IF(C<REF(C,1),-VOL,0)),0);
|
|
95
|
|
-OBV_MA:=MA(OBV_VAL,5);
|
|
96
|
|
-OBV确认:=OBV_VAL > OBV_MA;
|
|
|
96
|
+量价初始分:=IF(量比判断, 权重量价*0.4, 0) + IF(现价>分时均价, 权重量价*0.4, 0) + IF(涨幅扩大, 权重量价*0.2, 0);
|
|
|
97
|
+量价分:=IF(MARKET==1, 量价初始分, IF(J<KDJ上限, 量价初始分, 0));
|
|
97
|
98
|
|
|
98
|
|
-量价初始分:=IF(量比判断, 权重量价*0.3, 0) + IF(现价>分时均价, 权重量价*0.3 , 0) + IF(涨幅扩大, 权重量价*0.2, 0) + IF(OBV确认, 权重量价*0.2, 0);
|
|
99
|
|
-量价分:=IF(MARKET==1, 量价初始分, IF(RSI_VAL<RSI上限, 量价初始分, 0));
|
|
100
|
99
|
|
|
101
|
100
|
{板块效应强化机制}
|
|
102
|
101
|
行业排名:=HORCALC(HYBLOCK, 105, 1, 0);
|
|
|
@@ -108,8 +107,7 @@ OBV确认:=OBV_VAL > OBV_MA;
|
|
108
|
107
|
IF(行业排名<=3, 权重板块*0.5,
|
|
109
|
108
|
IF(行业排名<=5, 权重板块*0.4,
|
|
110
|
109
|
IF(行业排名<=10, 权重板块*0.2,
|
|
111
|
|
- IF(行业排名<=20, 权重板块*0.1,
|
|
112
|
|
- 0)))))
|
|
|
110
|
+ 0))))
|
|
113
|
111
|
+ IF(行业热度>=3, 权重板块*0.4,
|
|
114
|
112
|
IF(行业热度>=2, 权重板块*0.3,
|
|
115
|
113
|
IF(行业热度>=1, 权重板块*0.2,
|
|
|
@@ -117,9 +115,8 @@ OBV确认:=OBV_VAL > OBV_MA;
|
|
117
|
115
|
0);
|
|
118
|
116
|
|
|
119
|
117
|
{资金效率筛选}
|
|
120
|
|
-成交额万元 := DYNAINFO(10)/10000;
|
|
121
|
|
-行业平均涨幅 := 100 * HORCALC(HYBLOCK, 105, 2, 0);
|
|
122
|
|
-当前涨幅:=(C-REF(C,1))/REF(C,1)*100;
|
|
|
118
|
+成交额万元 := DYNAINFO(8)/10000;
|
|
|
119
|
+行业平均涨幅 := 100 * HORCALC(HYBLOCK, 105, 2, 0);
|
|
123
|
120
|
超额涨幅 := 当前涨幅 - 行业平均涨幅;
|
|
124
|
121
|
阈值 := MA(VOL,20)/10000;
|
|
125
|
122
|
资金效率 := IF(成交额万元 > 阈值 AND 成交额万元 > 0, 超额涨幅 / LOG(成交额万元), 0);
|
|
|
@@ -129,34 +126,35 @@ OBV确认:=OBV_VAL > OBV_MA;
|
|
129
|
126
|
IF(资金效率 >= 0.5, 权重资效*0.4,
|
|
130
|
127
|
0))));
|
|
131
|
128
|
|
|
132
|
|
-{波动筛选}
|
|
133
|
|
-日收益率 := IF(REF(C,1)!=0, C/REF(C,1)-1, 0);
|
|
134
|
|
-波动率:=STD(日收益率,20);
|
|
135
|
|
-VAR1:= -1.645 * 波动率 * SQRT(252); {95%置信水平}
|
|
136
|
|
-波动分 := IF(VAR1 > -0.05, 权重波动,
|
|
137
|
|
-IF(VAR1 > -0.1, 权重波动*0.8,
|
|
138
|
|
-IF(VAR1 > -0.15, 权重波动*0.6,
|
|
139
|
|
-IF(VAR1 > -0.2, 权重波动*0.4, 0))));
|
|
|
129
|
+{夏普比率筛选器}
|
|
|
130
|
+RF := 0.025; {2025年最新无风险利率(2.5%)}
|
|
|
131
|
+日收益率 := IF(REF(C,1)!=0, C/REF(C,1)-1, 0);
|
|
|
132
|
+年化收益 := (EMA(日收益率,20)*252) - RF;
|
|
|
133
|
+年化波动 := (STD(日收益率,20)+0.0001)*SQRT(252);
|
|
|
134
|
+夏普值 := 年化收益 / 年化波动;
|
|
|
135
|
+夏普阈值 := IF(年化波动>0.3, 0.5, 0.8);
|
|
|
136
|
+波动分:=IF(夏普值>夏普阈值 AND 夏普值>=8,权重波动,
|
|
|
137
|
+ IF(夏普值>夏普阈值 AND 夏普值>=6,权重波动*0.8,
|
|
|
138
|
+ IF(夏普值>夏普阈值 AND 夏普值>=4,权重波动*0.6,
|
|
|
139
|
+ IF(夏普值>夏普阈值 AND 夏普值>=2,权重波动*0.4,
|
|
|
140
|
+ IF(夏普值>夏普阈值 AND 夏普值>=1,权重波动*0.2,
|
|
|
141
|
+ 0)))));
|
|
140
|
142
|
|
|
141
|
143
|
{趋势判断}
|
|
142
|
|
-MID:=MA(C,20);
|
|
143
|
|
-UPPER:=MID + 2*STD(C,20);
|
|
144
|
144
|
短期穿越1:= 现价 > MA(C,5);
|
|
145
|
145
|
短期穿越2:= MA(C,5) > MA(C,10);
|
|
146
|
|
-短期穿越3:= MA(C,10) > MA(C,20);
|
|
147
|
|
-BOLL穿越:=现价 > UPPER;
|
|
148
|
|
-换手率下限:=IF (MACHINETIME<094500,0.5,IF (MACHINETIME<100000, 0.5, 0.5));
|
|
149
|
|
-换手率条件:=DYNAINFO(36)>换手率下限;
|
|
150
|
|
-趋势分:=IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3 AND BOLL穿越, 权重趋势,
|
|
151
|
|
-IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3, 权重趋势*0.8,
|
|
152
|
|
-IF(换手率条件 AND 短期穿越1 AND 短期穿越2, 权重趋势*0.5,
|
|
153
|
|
-IF(换手率条件 AND 短期穿越1, 权重趋势*0.2,
|
|
154
|
|
-0))));
|
|
|
146
|
+短期穿越3:= MA(C,10) < MA(C,20);
|
|
|
147
|
+换手率下限:=IF (MACHINETIME<094500,0.1,IF (MACHINETIME<100000, 0.15, 0.2));
|
|
|
148
|
+换手率条件:=DYNAINFO(36)<换手率下限;
|
|
|
149
|
+趋势分:=IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3, 权重趋势,
|
|
|
150
|
+ IF(换手率条件 AND 短期穿越1 AND 短期穿越2, 权重趋势*0.5,
|
|
|
151
|
+ IF(换手率条件 AND 短期穿越1, 权重趋势*0.2,
|
|
|
152
|
+ 0)));
|
|
155
|
153
|
|
|
156
|
154
|
{风险控制与信号强化}
|
|
157
|
155
|
大盘趋势:=INDEXC > MA(INDEXC,50) AND (DYNAINFO(60)/(DYNAINFO(60)+DYNAINFO(61)))>0.3;
|
|
158
|
156
|
流通市值过滤:=FINANCE(40)/100000000;
|
|
159
|
|
-流通市值达标:=流通市值过滤>10;
|
|
|
157
|
+流通市值达标:=流通市值过滤>20;
|
|
160
|
158
|
市盈率条件:=IF(DYNAINFO(40)>0 AND DYNAINFO(40)<=HYSYL*1.1,1,0);
|
|
161
|
159
|
风险分:=IF(SAFESCORE>80,
|
|
162
|
160
|
IF(流通市值达标, 权重风险*0.2, 0)
|
|
|
@@ -169,19 +167,20 @@ IF(换手率条件 AND 短期穿越1, 权重趋势*0.2,
|
|
169
|
167
|
市盈率极限:=IF(DYNAINFO(40)<=0 OR DYNAINFO(40)>300,1,0);
|
|
170
|
168
|
其他分:=IF(量比<=量比下限,-10,0)+IF(市盈率极限,-10,0);
|
|
171
|
169
|
|
|
|
170
|
+
|
|
172
|
171
|
{不是有效代码直接得分为0}
|
|
173
|
|
-沪市主板:=CODELIKE('60') AND NOT(CODELIKE('688'));
|
|
174
|
|
-深市主板:=CODELIKE('000') OR CODELIKE('001') OR CODELIKE('002') OR CODELIKE('30');
|
|
175
|
|
-有效代码:=(沪市主板 OR 深市主板) AND NOT(NAMELIKE('ST'));
|
|
|
172
|
+沪市主板:=CODELIKE('60') AND NOT(CODELIKE('688'));
|
|
|
173
|
+深市主板:=CODELIKE('000') OR CODELIKE('001') OR CODELIKE('002') OR CODELIKE('30');
|
|
|
174
|
+有效代码:=沪市主板 OR 深市主板 AND NOT(NAMELIKE('ST'));
|
|
|
175
|
+
|
|
176
|
176
|
|
|
177
|
177
|
{总分计算(满分100)}
|
|
178
|
|
-信号强度初始:= (资金分 + 量价分 + 板块分 + 资效分 + 波动分 + 趋势分 + 风险分 + 其他分) * 有效代码;
|
|
179
|
|
-信号强度:=MAX(MIN(信号强度初始,100),0);
|
|
|
178
|
+信号强度:= (资金分 + 量价分 + 板块分 + 资效分 + 波动分 + 趋势分 + 风险分 + 其他分) * 有效代码;
|
|
180
|
179
|
|
|
181
|
|
-买入阈值:=分数MIN + 5*(MARKET-2);
|
|
|
180
|
+买入阈值:=IF(MARKET==1,分数MIN+5, IF(MARKET==3,分数MIN-5,分数MIN));
|
|
182
|
181
|
|
|
183
|
182
|
{即时价格必须小于某涨幅}
|
|
184
|
183
|
最高涨幅:=(H-REF(C,1))/REF(C,1)*100;
|
|
185
|
184
|
涨幅上限:=IF((CODELIKE('688') OR CODELIKE('30')), 12, 6);
|
|
186
|
185
|
|
|
187
|
|
-买入信号:信号强度>=买入阈值 AND 最高涨幅<涨幅上限;
|
|
|
186
|
+买入信号:信号强度>=买入阈值 AND 最高涨幅<涨幅上限;
|