chengjie пре 3 месеци
родитељ
комит
413cbd2a9a

+ 47 - 48
src/test/通达信公式1.txt

@@ -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 最高涨幅<涨幅上限; 

+ 20 - 23
src/test/通达信公式2.txt

@@ -1,5 +1,5 @@
1 1
 { 动态市场状态模型 }
2
-FS:=80;
2
+FS:=70;
3 3
 分数MIN:=IF(MACHINETIME<094500,FS-15,IF(MACHINETIME<100000,FS-10,IF(MACHINETIME<130000,FS-5,FS)));
4 4
 
5 5
 { 市场牛熊判断 }
@@ -52,7 +52,7 @@ WEEK_TREND:=WEEK_EMA>REF(WEEK_EMA,3);
52 52
 BULL_SCORE:=(COND_BULL + STRONG_INDUSTRY + IND_BULL + WEEK_TREND)>=3;
53 53
 BEAR_SCORE:=(COND_BEAR + WEAK_INDUSTRY + IND_BEAR + NOT(WEEK_TREND))>=3;
54 54
 
55
-MARKET:=IF(BULL_SCORE,1, IF(BEAR_SCORE,2,3));{1:牛市,2:熊市,3:震荡市或不确定};
55
+MARKET:IF(BULL_SCORE,1, IF(BEAR_SCORE,2,3));{1:牛市,2:熊市,3:震荡市或不确定};
56 56
 
57 57
 { 动态权重 - 根据市场强度调整 }
58 58
 牛熊强度:=EMA_INDEX/LONG_EMA_INDEX-1; 
@@ -80,11 +80,11 @@ _DDY:=IF(TRADENUM>0,(TRADEOUTNUM-TRADEINNUM)*100/TRADENUM,0);
80 80
 资金分DDX:= 权重DDX * MIN(1, MAX(0, (_DDX - 0.3)/(1.4 - 0.3)));
81 81
 资金分DDY:= 权重DDY * MIN(1, MAX(0, (_DDY - 10)/(30 - 10)));
82 82
 资金分北向:= 权重北向 * MIN(1, MAX(0, 北向占比2/3)); { 3%为阈值 }
83
-资金分:资金分DDX + 资金分DDY + 资金分北向;
83
+资金分:资金分DDX + 资金分DDY + 资金分北向;
84 84
 
85 85
 { 量价模型优化 - 解决早盘失效 }
86
-量比:=V/REF(MA(V,5),1);
87
-量比MIN:=IF(MACHINETIME<100000,2.5,IF(MACHINETIME<143000,2,1.8)); { 调整量比阈值 }
86
+量比:=DYNAINFO(17);
87
+量比MIN:= 2 + (INDEXV / REF(INDEXV,20) - 1) * 0.5; { 调整量比阈值 }
88 88
 量比判断:=量比 > 量比MIN;
89 89
 
90 90
 现价:=C;
@@ -105,13 +105,13 @@ OBV确认:=OBV_VAL > OBV_MA;
105 105
            IF(现价>分时均价, 权重量价*0.3 , 0)  + 
106 106
            IF(早盘涨幅, 权重量价*0.2, 0) + 
107 107
            IF(OBV确认, 权重量价*0.2, 0);
108
-量价分:IF(MARKET=1, 量价初始分, IF(RSI_VAL<RSI上限, 量价初始分, 0));
108
+量价分:IF(MARKET=1, 量价初始分, IF(RSI_VAL<RSI上限, 量价初始分, 0));
109 109
 
110 110
 { 行业排名使用内置函数 }
111 111
 行业排名:=HORCALC(HYBLOCK, 105, 1, 0);
112 112
 行业热度:=HORCALC(HYBLOCK, 105, 2, 0)*100;
113 113
 
114
-板块分:IF(行业热度>=0, 
114
+板块分:IF(行业热度>=0, 
115 115
 		ROUND(
116 116
 		IF(行业排名<=2, 权重板块*0.6, 
117 117
 		IF(行业排名<=3, 权重板块*0.5, 
@@ -132,7 +132,7 @@ OBV确认:=OBV_VAL > OBV_MA;
132 132
 超额涨幅 := 当前涨幅 - 行业平均涨幅; 
133 133
 阈值 := MA(AMOUNT,20)/1000000; { 调整为百万元 }
134 134
 资金效率 := IF(成交额万元 > 阈值 AND 成交额万元 > 0, 超额涨幅 / LOG(成交额万元), 0);  
135
-资效分:IF(资金效率 >= 2, 权重资效, 
135
+资效分:IF(资金效率 >= 2, 权重资效, 
136 136
         IF(资金效率 >= 1.5, 权重资效*0.8, 
137 137
         IF(资金效率 >= 1.0, 权重资效*0.6, 
138 138
         IF(资金效率 >= 0.5, 权重资效*0.4, 
@@ -143,7 +143,7 @@ OBV确认:=OBV_VAL > OBV_MA;
143 143
 真实波幅:=MAX(MAX(H-L,ABS(H-REF(C,1))),ABS(L-REF(C,1)));
144 144
 波动率:=MA(真实波幅,20)/REF(C,20); { ATR相对波动率 }
145 145
 VAR1:= -1.645 * 波动率 * SQRT(126);  { 半年周期 }
146
-波动分 : IF(VAR1 > -0.05, 权重波动,
146
+波动分数:IF(VAR1 > -0.05, 权重波动,
147 147
 IF(VAR1 > -0.1, 权重波动*0.8,
148 148
 IF(VAR1 > -0.15, 权重波动*0.6,
149 149
 IF(VAR1 > -0.2, 权重波动*0.4, 0))));
@@ -161,7 +161,7 @@ BOLL穿越:=C > UPPER;
161 161
 挂单厚度:=(DYNAINFO(58)+DYNAINFO(59))/CAPITAL;
162 162
 换手率条件:=DYNAINFO(37)>0.5 AND 流通市值>30 AND 挂单厚度>15; { 综合流动性 }
163 163
 
164
-趋势分1:IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3 AND BOLL穿越, 权重趋势,
164
+趋势分1:=IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3 AND BOLL穿越, 权重趋势,
165 165
 IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3, 权重趋势*0.8,
166 166
 IF(换手率条件 AND 短期穿越1 AND 短期穿越2, 权重趋势*0.5,
167 167
 IF(换手率条件 AND 短期穿越1, 权重趋势*0.2,
@@ -171,7 +171,7 @@ DIFF := EMA(C,12) - EMA(C,26);
171 171
 DEA := EMA(DIFF,9);
172 172
 MACD确认 := CROSS(DIFF,DEA) AND BARSLAST(CROSS(DEA,DIFF))>5;
173 173
 趋势分2 :=趋势分1 * IF(MACD确认, 1.2, 1);
174
-趋势分:IF(趋势分2> 权重趋势, 权重趋势, 趋势分2);
174
+趋势分:IF(趋势分2> 权重趋势, 权重趋势, 趋势分2);
175 175
 
176 176
 
177 177
 { 风险控制增强 }
@@ -183,7 +183,7 @@ MACD确认 := CROSS(DIFF,DEA) AND BARSLAST(CROSS(DEA,DIFF))>5;
183 183
 ROE连续:=COUNT(FINANCE(30)>15,4)=4; { 近4年ROE>15% }
184 184
 研发占比:=FINANCE(64)/AMOUNT>0.05; { 研发费用率>5% }
185 185
 
186
-风险分:IF(SAFESCORE>80,
186
+风险分:IF(SAFESCORE>80,
187 187
             IF(流通市值达标, 权重风险*0.2, 0) 
188 188
           + IF(市盈率条件, 权重风险*0.2, 0) 
189 189
           + IF(大盘趋势, 权重风险*0.2, 0)
@@ -193,8 +193,8 @@ ROE连续:=COUNT(FINANCE(30)>15,4)=4; { 近4年ROE>15% }
193 193
 
194 194
 { 其他过滤 }
195 195
 量比下限:=0.8;
196
-市盈率极限:=IF(STRCMP(DYNAINFO(39),'-')=0 OR DYNAINFO(39)<=0 OR DYNAINFO(39)>300,1,0);
197
-其他分:IF(量比<=量比下限,-10,0)+IF(市盈率极限,-10,0);
196
+市盈率极限:=IF(NOT(DYNAINFO(39)) OR DYNAINFO(39)<=0 OR DYNAINFO(39)>300,1,0);
197
+其他分:IF(量比<=量比下限,-10,0)+IF(市盈率极限,-10,0);
198 198
 
199 199
 { 股票池过滤 }
200 200
 沪市主板:=CODELIKE('60') AND NOT(CODELIKE('688'));
@@ -202,16 +202,13 @@ ROE连续:=COUNT(FINANCE(30)>15,4)=4; { 近4年ROE>15% }
202 202
 有效代码:=(沪市主板 OR 深市主板) AND NOT(NAMELIKE('ST')) AND NOT(NAMELIKE('*'));
203 203
 
204 204
 { 总分计算 }
205
-信号强度初始:= (资金分 + 量价分 + 板块分 + 资效分 + 波动分 + 趋势分 + 风险分 + 其他分) * 有效代码;
205
+信号强度初始:= (资金分 + 量价分 + 板块分 + 资效分 + 波动分 + 趋势分 + 风险分 + 其他分) * 有效代码;
206 206
 信号强度:MAX(MIN(信号强度初始,100),0);
207 207
 
208
-买入阈值:=分数MIN + 5*(MARKET-2);
209
-
210
-{ 买入条件优化 }
208
+{熔断条件}
211 209
 最高涨幅:=(H-REF(C,1))/REF(C,1)*100;
212 210
 涨幅上限:=IF((CODELIKE('688') OR CODELIKE('30')), 12, 6);
213
-流动性达标:=挂单厚度>20 AND 流通市值>30;
214
-{熔断条件}
215
-熔断条件:= (INDEXC/REF(INDEXC,5)-1)*100 < -2;{ 大盘瞬间暴跌停止买入建议 }
216
-
217
-买入信号:=信号强度>=买入阈值 AND 最高涨幅<涨幅上限 AND 流动性达标 AND NOT(熔断条件);
211
+熔断条件1:= 最高涨幅>=涨幅上限;{ 当前涨太高了 }
212
+熔断条件2:= (INDEXC/REF(INDEXC,5)-1)*100 < -2;{ 大盘瞬间暴跌停止买入建议 }
213
+买入阈值:=分数MIN + 5*(MARKET-2);
214
+买入信号:=信号强度>=买入阈值 AND NOT(熔断条件1) AND NOT(熔断条件2);

+ 20 - 23
src/test/通达信公式9_在线使用最终版.txt

@@ -1,5 +1,5 @@
1 1
 { 动态市场状态模型 }
2
-FS:=80;
2
+FS:=70;
3 3
 分数MIN:=IF(MACHINETIME<094500,FS-15,IF(MACHINETIME<100000,FS-10,IF(MACHINETIME<130000,FS-5,FS)));
4 4
 
5 5
 { 市场牛熊判断 }
@@ -80,11 +80,11 @@ _DDY:=IF(TRADENUM>0,(TRADEOUTNUM-TRADEINNUM)*100/TRADENUM,0);
80 80
 资金分DDX:= 权重DDX * MIN(1, MAX(0, (_DDX - 0.3)/(1.4 - 0.3)));
81 81
 资金分DDY:= 权重DDY * MIN(1, MAX(0, (_DDY - 10)/(30 - 10)));
82 82
 资金分北向:= 权重北向 * MIN(1, MAX(0, 北向占比2/3)); { 3%为阈值 }
83
-资金分:资金分DDX + 资金分DDY + 资金分北向;
83
+资金分:=资金分DDX + 资金分DDY + 资金分北向;
84 84
 
85 85
 { 量价模型优化 - 解决早盘失效 }
86
-量比:=V/REF(MA(V,5),1);
87
-量比MIN:=IF(MACHINETIME<100000,2.5,IF(MACHINETIME<143000,2,1.8)); { 调整量比阈值 }
86
+量比:=DYNAINFO(17);
87
+量比MIN:= 2 + (INDEXV / REF(INDEXV,20) - 1) * 0.5; { 调整量比阈值 }
88 88
 量比判断:=量比 > 量比MIN;
89 89
 
90 90
 现价:=C;
@@ -105,13 +105,13 @@ OBV确认:=OBV_VAL > OBV_MA;
105 105
            IF(现价>分时均价, 权重量价*0.3 , 0)  + 
106 106
            IF(早盘涨幅, 权重量价*0.2, 0) + 
107 107
            IF(OBV确认, 权重量价*0.2, 0);
108
-量价分:IF(MARKET=1, 量价初始分, IF(RSI_VAL<RSI上限, 量价初始分, 0));
108
+量价分:=IF(MARKET=1, 量价初始分, IF(RSI_VAL<RSI上限, 量价初始分, 0));
109 109
 
110 110
 { 行业排名使用内置函数 }
111 111
 行业排名:=HORCALC(HYBLOCK, 105, 1, 0);
112 112
 行业热度:=HORCALC(HYBLOCK, 105, 2, 0)*100;
113 113
 
114
-板块分:IF(行业热度>=0, 
114
+板块分:=IF(行业热度>=0, 
115 115
 		ROUND(
116 116
 		IF(行业排名<=2, 权重板块*0.6, 
117 117
 		IF(行业排名<=3, 权重板块*0.5, 
@@ -132,7 +132,7 @@ OBV确认:=OBV_VAL > OBV_MA;
132 132
 超额涨幅 := 当前涨幅 - 行业平均涨幅; 
133 133
 阈值 := MA(AMOUNT,20)/1000000; { 调整为百万元 }
134 134
 资金效率 := IF(成交额万元 > 阈值 AND 成交额万元 > 0, 超额涨幅 / LOG(成交额万元), 0);  
135
-资效分:IF(资金效率 >= 2, 权重资效, 
135
+资效分:=IF(资金效率 >= 2, 权重资效, 
136 136
         IF(资金效率 >= 1.5, 权重资效*0.8, 
137 137
         IF(资金效率 >= 1.0, 权重资效*0.6, 
138 138
         IF(资金效率 >= 0.5, 权重资效*0.4, 
@@ -143,7 +143,7 @@ OBV确认:=OBV_VAL > OBV_MA;
143 143
 真实波幅:=MAX(MAX(H-L,ABS(H-REF(C,1))),ABS(L-REF(C,1)));
144 144
 波动率:=MA(真实波幅,20)/REF(C,20); { ATR相对波动率 }
145 145
 VAR1:= -1.645 * 波动率 * SQRT(126);  { 半年周期 }
146
-波动分 : IF(VAR1 > -0.05, 权重波动,
146
+波动分数:=IF(VAR1 > -0.05, 权重波动,
147 147
 IF(VAR1 > -0.1, 权重波动*0.8,
148 148
 IF(VAR1 > -0.15, 权重波动*0.6,
149 149
 IF(VAR1 > -0.2, 权重波动*0.4, 0))));
@@ -161,7 +161,7 @@ BOLL穿越:=C > UPPER;
161 161
 挂单厚度:=(DYNAINFO(58)+DYNAINFO(59))/CAPITAL;
162 162
 换手率条件:=DYNAINFO(37)>0.5 AND 流通市值>30 AND 挂单厚度>15; { 综合流动性 }
163 163
 
164
-趋势分1:IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3 AND BOLL穿越, 权重趋势,
164
+趋势分1:=IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3 AND BOLL穿越, 权重趋势,
165 165
 IF(换手率条件 AND 短期穿越1 AND 短期穿越2 AND 短期穿越3, 权重趋势*0.8,
166 166
 IF(换手率条件 AND 短期穿越1 AND 短期穿越2, 权重趋势*0.5,
167 167
 IF(换手率条件 AND 短期穿越1, 权重趋势*0.2,
@@ -171,7 +171,7 @@ DIFF := EMA(C,12) - EMA(C,26);
171 171
 DEA := EMA(DIFF,9);
172 172
 MACD确认 := CROSS(DIFF,DEA) AND BARSLAST(CROSS(DEA,DIFF))>5;
173 173
 趋势分2 :=趋势分1 * IF(MACD确认, 1.2, 1);
174
-趋势分:IF(趋势分2> 权重趋势, 权重趋势, 趋势分2);
174
+趋势分:=IF(趋势分2> 权重趋势, 权重趋势, 趋势分2);
175 175
 
176 176
 
177 177
 { 风险控制增强 }
@@ -183,7 +183,7 @@ MACD确认 := CROSS(DIFF,DEA) AND BARSLAST(CROSS(DEA,DIFF))>5;
183 183
 ROE连续:=COUNT(FINANCE(30)>15,4)=4; { 近4年ROE>15% }
184 184
 研发占比:=FINANCE(64)/AMOUNT>0.05; { 研发费用率>5% }
185 185
 
186
-风险分:IF(SAFESCORE>80,
186
+风险分:=IF(SAFESCORE>80,
187 187
             IF(流通市值达标, 权重风险*0.2, 0) 
188 188
           + IF(市盈率条件, 权重风险*0.2, 0) 
189 189
           + IF(大盘趋势, 权重风险*0.2, 0)
@@ -193,8 +193,8 @@ ROE连续:=COUNT(FINANCE(30)>15,4)=4; { 近4年ROE>15% }
193 193
 
194 194
 { 其他过滤 }
195 195
 量比下限:=0.8;
196
-市盈率极限:=IF(STRCMP(DYNAINFO(39),'-')=0 OR DYNAINFO(39)<=0 OR DYNAINFO(39)>300,1,0);
197
-其他分:IF(量比<=量比下限,-10,0)+IF(市盈率极限,-10,0);
196
+市盈率极限:=IF(NOT(DYNAINFO(39)) OR DYNAINFO(39)<=0 OR DYNAINFO(39)>300,1,0);
197
+其他分:=IF(量比<=量比下限,-10,0)+IF(市盈率极限,-10,0);
198 198
 
199 199
 { 股票池过滤 }
200 200
 沪市主板:=CODELIKE('60') AND NOT(CODELIKE('688'));
@@ -202,16 +202,13 @@ ROE连续:=COUNT(FINANCE(30)>15,4)=4; { 近4年ROE>15% }
202 202
 有效代码:=(沪市主板 OR 深市主板) AND NOT(NAMELIKE('ST')) AND NOT(NAMELIKE('*'));
203 203
 
204 204
 { 总分计算 }
205
-信号强度初始:= (资金分 + 量价分 + 板块分 + 资效分 + 波动分 + 趋势分 + 风险分 + 其他分) * 有效代码;
206
-信号强度:MAX(MIN(信号强度初始,100),0);
205
+信号强度初始:= (资金分 + 量价分 + 板块分 + 资效分 + 波动分 + 趋势分 + 风险分 + 其他分) * 有效代码;
206
+信号强度:=MAX(MIN(信号强度初始,100),0);
207 207
 
208
-买入阈值:=分数MIN + 5*(MARKET-2);
209
-
210
-{ 买入条件优化 }
208
+{熔断条件}
211 209
 最高涨幅:=(H-REF(C,1))/REF(C,1)*100;
212 210
 涨幅上限:=IF((CODELIKE('688') OR CODELIKE('30')), 12, 6);
213
-流动性达标:=挂单厚度>20 AND 流通市值>30;
214
-{熔断条件}
215
-熔断条件:= (INDEXC/REF(INDEXC,5)-1)*100 < -2;{ 大盘瞬间暴跌停止买入建议 }
216
-
217
-买入信号:=信号强度>=买入阈值 AND 最高涨幅<涨幅上限 AND 流动性达标 AND NOT(熔断条件);
211
+熔断条件1:= 最高涨幅>=涨幅上限;{ 当前涨太高了 }
212
+熔断条件2:= (INDEXC/REF(INDEXC,5)-1)*100 < -2;{ 大盘瞬间暴跌停止买入建议 }
213
+买入阈值:=分数MIN + 5*(MARKET-2);
214
+买入信号:信号强度>=买入阈值 AND NOT(熔断条件1) AND NOT(熔断条件2);