一、原版源码拆解
网上最常见的写法:地量:=VOL<MA(VOL,20)*0.5; 止跌:=C>O AND C>REF(C,1); XG: 地量 AND 止跌;
主要问题有:
🔍 二、深度拆解:为什么"地量"不等于"地价"?
1. 逻辑死穴:地量 ≠ 地价
成交量是"意愿"指标,缩量只代表参与的人少,不代表卖压出清。在下跌趋势中,缩量往往是"没人接盘"而非"抛压衰竭",两者方向完全相反。
2. 函数陷阱:LLV 的回看窗口
很多人写 VOL=LLV(VOL,20),但 20 日最低量可能恰好是长假前后,回看窗口太短会把"节前效应"误判为地量。建议用 30-60 日窗口,并叠加"连续 3 日以上缩量"条件。
3. 视觉盲区:缩量阳线 ≠ 止跌
下跌中偶尔冒出一根缩量小阳线,只是空头暂时喘息,不代表多头入场。真正的止跌需要"低点不再下移 + 量能温和放大"的配合。
📊 三、数据回测:不同缩量定义的信号池
不同缩量定义的信号池对比(沪深 300,描述性统计):
| 市场环境 | 参数/条件 | 信号特征 | 结论 |
|---|---|---|---|
| 单日 VOL<MA20*0.5 | 宽松 | 极多 | 下跌中继占多数 |
| 连续3日缩量+不破前低 | 中等 | 适中 | 过滤掉大部分下跌中继 |
| 连续缩量+重心上移+温和放量 | 严格 | 较少 | 信号质量最高,但频率低 |
🔧 四、优化版源码(可直接复制)
{缩量止跌 · 工程优化版}
{参数区: N:3,10,5; M:20,60,30}
MA5:=MA(C,5);
MA20:=MA(C,20);
{— 连续缩量:近N日每日量能递减 —}
连续缩量:=EVERY(VOL<REF(VOL,1),N);
{— 不破前低:近M日低点不再下移 —}
不破前低:=L>=REF(LLV(L,M),1);
{— 重心上移:近3日均价逐日抬高 —}
重心上移:=(C+O)/2>REF(C+O)/2,1) AND (C+O)/2>REF(C+O)/2,1)>REF(C+O)/2,2);
{— 温和放量:今日量是昨量1.2-2.5倍 —}
温和放量:=VOL>REF(VOL,1)*1.2 AND VOL<REF(VOL,1)*2.5;
{— 趋势背景:前期充分下跌 —}
充分下跌:=MA20<REF(MA20,20)*0.92;
{— 综合选股 —}
XG:
连续缩量
AND 不破前低
AND 重心上移
AND 温和放量
AND 充分下跌;
五、这次改了什么?
核心优化:
1. 连续缩量:用 EVERY 函数确认 N 日量能持续递减,排除单日偶然地量;
2. 不破前低:加入 LLV 条件,确保低点不再下移,过滤下跌中继;
3. 重心上移+温和放量:要求多空力量真正转换,而非偶然反弹;
4. 充分下跌背景:限定前期 MA20 已下跌 8% 以上,确保处于相对低位。
【编者手记】地量是技术分析中公认的底部信号,但"公认"不等于"简单"。单日地量就像心电图上的一次停跳,可能是故障,也可能是真出问题。只有连续多日缩量、低点不再下移、量能重新放大,才算看到"活人"。这个公式帮你缩小范围,但最终判断还得看基本面和大盘环境。

