一、原版源码拆解
网上最常见的写法:阴线:=REF(C<O,2) AND REF(C,2)/REF(O,2)<0.97; 十字星:=REF(H>MAX(C,O) AND REF(L<MIN(C,O),1) AND ABS(REF(C,1)-REF(O,1))/REF(O,1)<0.03; 阳线:=C>O AND C/REF(C,1)>1.03 AND C>(REF(O,2)+REF(C,2))/2; 早晨之星:阴线 AND 十字星 AND 阳线;
主要问题有:
🔍 二、深度拆解:早晨之星的"时间窗口"假设
1. 逻辑死穴:三根 K 线的时序约束
早晨之星的核心逻辑是"空头力竭→犹豫→多头反攻",这要求三根 K 线在短时间内完成。如果第二根"十字星"和第三根"大阳"之间隔了几天,形态意义就完全不同了。原版公式用 REF(,1) 和 REF(,2) 硬编码时间,不够灵活。
2. 函数陷阱:ABS 除零与 REF 链
计算十字星实体占比时,若 REF(O,1) 接近 0(极端行情),分母会出问题。此外,连续 REF(,1)、REF(,2) 的写法可读性差,调试困难。
3. 视觉盲区:阳线要"覆盖"多少?
教科书说第三根阳线要"覆盖第一根阴线实体的 50% 以上",原版只要求 C>中点,门槛太低。经验上覆盖 60%-70% 以上,反转可信度才明显提升。
📊 三、数据回测:不同覆盖比例下的信号特征
不同覆盖比例阈值下的信号特征(沪深 300,描述性统计):
| 市场环境 | 参数/条件 | 信号特征 | 结论 |
|---|---|---|---|
| 覆盖>50%(宽松) | 信号多 | 适中 | 下跌中继占比较高 |
| 覆盖>70%(严格) | 信号少 | 较少 | 反转可信度明显提升 |
| 覆盖>70%+放量确认 | 信号极少 | 少 | 质量最高但频率很低 |
🔧 四、优化版源码(可直接复制)
{早晨之星 · 工程优化版}
{参数区: COVER:50,90,70; VOL_M:1.2,3,1.5}
大阴线:=REF(C,2)/REF(O,2)<0.95;
{第一根:跌幅>5%的大阴线}
十字星:=ABS(REF(C,1)-REF(O,1))/MAX(REF(O,1),0.01)<0.03;
{第二根:实体占比<3%的缩量小星}
中点:=(REF(O,2)+REF(C,2))/2;
覆盖比例:=(C-中点)/(REF(O,2)-REF(C,2))*100;
大阳线:=C>O AND C/REF(C,1)>1.03 AND 覆盖比例>COVER;
{第三根:放量阳线覆盖阴线实体>COVER%}
放量:=VOL>REF(VOL,1)*VOL_M;
位置合理:=REF(C,2)<MA(C,20);
{— 综合选股 —}
XG:
大阴线
AND 十字星
AND 大阳线
AND 放量
AND 位置合理;
五、这次改了什么?
核心优化:
1. 量化覆盖比例:用参数 COVER 控制第三根阳线覆盖第一根阴线的百分比;
2. 分母保护:MAX(REF(O,1),0.01) 避免极端行情除零;
3. 放量确认:要求第三根阳线成交量放大,过滤无量反抽;
4. 位置过滤:限定第一根阴线处于 MA20 下方,确保是低位反转。
【编者手记】早晨之星是教科书里最经典的底部反转形态,但现实中"长得像"的票远多于"真是"的票。我的经验是:宁可错过,不要误判。把覆盖比例和量能门槛提高后,信号确实少了很多,但剩下的那些,值得你花时间人工过一遍。

