RSI与MACD双金叉选股公式:我拆源码时发现"共振"只看同日,快慢指标不同步全被忽略(附修复版)

风险提示:本文通达信指标公式仅作技术教学与研究使用,不构成任何投资建议。股市有风险,入市需谨慎,不可直接依据公式信号交易。

拆这个公式时,我停在了第8行:MACD金叉 AND RSI金叉。这要求两个金叉在同一天发生。但RSI(相对强弱指标)反应很快,MACD(指数平滑异同移动平均线)反应很慢。主力启动行情时,往往是RSI先金叉,过几天MACD才跟上。原版公式这种"同日共振"的要求,会漏掉绝大多数真正的启动点。

先给结论,再讲道理:"双金叉共振"的本质是不同周期、不同性质的指标达成共识。RSI代表短期动量,MACD代表中期趋势。真正的共振,不需要它们在分秒不差的时间点重合,只要在相近的时间窗口内(如5天内)先后发出信号即可。原版公式的"同日"要求,过于苛刻且不符合市场实际。

一、原版源码长这样

DIF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIF,9);
MACD金叉:=CROSS(DIF,DEA);

LC:=REF(C,1);
RSI:=SMA(MAX(C-LC,0),6,1)/SMA(ABS(C-LC),6,1)*100;
RSI金叉:=CROSS(RSI,20);

选股:MACD金叉 AND RSI金叉;

源码分别计算MACD和RSI的金叉,并要求两者同日发生,未考虑时间容错和位置过滤。

二、公式体检评分表

以下为基于源码逻辑的主观结构评分,未经历史数据验证,仅作拆解参考。

评分项得分说明
语法完整性95通达信可运行,无语法错误
逻辑完整度50时间窗口过于狭窄,且未区分金叉发生的位置(低位/高位)
信号可用性40信号极其稀少,且多为滞后确认,易错过最佳买点

系列编号:本文为「1000个公式拆解」系列 · 综合系 · 第 18 篇(18/1000)。

三、问题一:时间窗口不匹配

如前所述,RSI和MACD的灵敏度不同。要求同日金叉,就像要求短跑运动员和马拉松运动员同时冲线一样不现实。应该允许RSI先金叉,MACD在之后几天内跟上。

四、问题二:金叉位置决定成败

RSI金叉发生在20以下(超卖区)才是可靠的买入信号,如果在80以上金叉,反而是卖出信号。原版公式只看了金叉,没看位置。

五、问题三:缺少趋势背景

在下跌趋势中,MACD和RSI也会出现金叉,但这往往是反弹而非反转。公式如果没有判断中长期均线或前期重要支撑,容易在弱势中抄底。

六、适用环境

低位启动区 ✓ 震荡市转强 △ 需结合量能 高位滞涨或下跌趋势 ✗

七、修复版源码

{=== RSI与MACD双金叉选股 · 修复版(通达信可运行)===}
{--- MACD 定义 ---}
DIF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIF,9);
MACD金叉:=CROSS(DIF,DEA);
{--- RSI 定义 ---}
LC:=REF(C,1);
RSI6:=SMA(MAX(C-LC,0),6,1)/SMA(ABS(C-LC),6,1)*100;
RSI金叉:=CROSS(RSI6,20);
{=== 改动1:时间容错窗口(5天内先后金叉)===}
共振窗口:=COUNT(MACD金叉,5)>=1 AND COUNT(RSI金叉,5)>=1;
{=== 改动2:位置过滤,MACD在零轴附近或上方 ===}
位置合理:=DIF>-0.1 AND DEA>-0.1;
{=== 改动3:趋势过滤,股价在20日线上方 ===}
趋势向好:=C>MA(C,20) AND MA(C,20)>REF(MA(C,20),1);
{=== 改动4:排除ST及数据不足 ===}
排雷:=NOT(NAMELIKE('ST') OR NAMELIKE('*ST')) AND COUNT(C>0,60)=60;
选股:共振窗口 AND 位置合理 AND 趋势向好 AND 排雷;

修复思路:放宽时间窗口至5天内,要求RSI从超卖区(20以下)金叉,MACD在零轴附近或上方,且股价站在20日线上,提高共振质量。

八、实战操作建议

  • 用法:寻找RSI率先从低位金叉,随后几天MACD也出现金叉的股票。重点关注两者在零轴附近的共振。

  • 确认:双金叉出现后,若股价能放量突破短期均线压制,可视为介入时机。

  • 止损:跌破双金叉发生时的最低价,或MACD再度死叉,应果断止损。

九、三条启发

启发一:指标共振不是"同时发生",而是"同向发力"。给不同速度的指标一点时间差,更符合市场规律。

启发二:RSI解决"有没有动力"的问题,MACD解决"趋势稳不稳"的问题。两者结合,胜率更高。

启发三:永远在指标金叉的"右侧"交易,不要在金叉前盲目预测。


相关阅读

最近发表
在线客服
QQ:332879389
联系电话
13605084160