通达信公式拆解:倍量阳选股原版有什么问题?我是怎么改的 ——从一段被抄了8000次的源码说起

⚠️ 置顶声明:本文为通达信公式语法与历史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 —


相关阅读

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