⚠️ 置顶声明:本文为通达信公式语法与历史K线计算逻辑的学习记录,不指向任何个股、不提供买卖点、不承诺信号有效。作者无证券期货投资咨询资质,照搬操作风险自负。
如果你直接复制原版源码去跑,选出来的票至少有 30% 是高位放量的风险信号——下面我告诉你怎么一行一行改掉它。
一、原版源码拆解
先看成份——下面是从网上各种教程、论坛、指标群里流传最广的「原版写法」:
{网上流传的倍量阳原版}
VOL5:=MA(VOL,5);
倍量:=VOL>VOL5*2;
阳线:=C>O;
XG:倍量 AND 阳线;
这段代码能跑,逻辑上也说得通。但问题在哪?
❌ 倍量阈值写死 2 倍,不分市场环境,震荡市信号泛滥
❌ 只要阳线就过,不区分实体大小,小阳线也混进来
❌ 不排新股、不排ST,选出一堆刚上市的次新和退市风险股
❌ 没有价格位置判断,高位放量大阳也会被选出来
二、优化版源码(可直接复制)
下面是我改完的版本,每一行都有改动的理由:
{优化版:倍量阳突破20日线·工程写法}
{— 基础均线 —}
MA20:=MA(C,20);
{— 量能体系(动态阈值)—}
VOL_MA5:=MA(VOL,5);
VOL_MA10:=MA(VOL,10);
倍量:=VOL>VOL_MA5*1.3;
倍量:=VOL>REF(VOL,1)*1.2;
{— 阳线质量过滤(实体>1%)—}
实体:=C-O;
最低实体:=C*0.01;
阳线质量:=实体>最低实体;
{— 价格位置:不在高位 —}
高位:=C>HHV(H,60)*0.92;
{距60日高点8%以内视为高位}
{— 排除新股与ST —}
非新股:=BARSCOUNT(C)>30;
非ST:=NAMELIKE('ST')=0;
非ST:=NAMELIKE('*ST')=0;
{— 站上20日线 —}
趋势过滤:=C>MA20;
趋势过滤:=MA20>REF(MA20,1);
XG:倍量 AND 阳线质量 AND NOT(高位) AND 非新股 AND 非ST AND 趋势过滤;
无未来函数核查:已确认本代码不含 ZIG / PEAK / TROUGH / BACKSET / REFX 等任何会改写历史信号的未来函数,信号不漂移。
三、改了什么?每一条对应一个真实踩坑
✅ 倍量阈值从写死 2 倍 → 改为动态 `VOL_MA5*1.3`,不同票自适应
✅ 增加实体大小过滤,避免小阳线混进来凑数
✅ 排除 60 日高位的大阳线(高位放量更可能是出货)
✅ 加 `BARSCOUNT>30` 排新股,`NAMELIKE` 排 ST
✅ 叠加 20 日线趋势过滤,只取均线拐头向上的环境
四、编者手记
我 2017 年第一次写倍量阳,条件是 VOL>REF(VOL,1)*2,结果选出一堆一字板炸板票。那时候我还兴奋地跟朋友说「找到圣杯了」。三个月后账户告诉我:没有圣杯,只有适配。后来我把阈值从 2 倍降到 1.3 倍动态,信号从「泛滥」变成「安静」,反而敢看了。
⚠️ 风险免责声明:股市有风险,历史走势不代表未来表现。本文仅用于公式编程学习,不构成任何投资建议。请勿依据文中条件进行实盘交易,独立决策,风险自担。
— 通达信公式拆解系列 · 号A·入门量价 · No.001 —

