通达信跟庄筹码副图源码拆解:从EMA到筹码盈亏度
2026/9/19 22:01:22 网站建设 项目流程

简介:这是一份面向股票技术分析爱好者与通达信指标编写者的副图指标源码文档,核心是「跟庄筹码」副图公式,且明确不含未来函数,适合希望研究筹码分布与跟庄逻辑、需要可复用源码进行二次调试的投资者。资源包共1个doc文件,约182KB,内容以源码文本与配套贴图说明为主,便于直接复制到通达信公式管理器中使用。源码以EMA1至EMA120多条指数移动平均线构建均价线,再衍生出R值、R1值、M3至M55均线、黄金线与跟庄线,并进一步计算筹码、筹码2、周筹码、筹码盈亏度、HZL、LZH、BC、ZGHZ、ZGLZ等指标,配合DRAWBAND与STICKLINE完成多空色带与柱状可视化。目前已有3411人学习下载,读者可据此理解筹码盈亏度的计算链路、金叉死叉信号与高低点标记方式,并在此基础上调整参数或组合选股条件。

1. 为什么这套跟庄筹码副图值得单独拆一遍

很多人拿到一份通达信副图源码,第一反应是直接丢进公式管理器点确定,能画出来就算成功。但跟庄筹码这类指标,真正决定它能不能用的不是画线好不好看,而是它背后的计算链条有没有断。这套源码从 EMA1 一路推到 EMA120,再合成均价线、R、R1、M 系列、黄金线、跟庄线,最后落到筹码盈亏度,中间任何一环理解错,副图上那根红蓝柱子就会骗你。它最大的特点是全程无未来函数,所有引用都是当根或历史数据,不会出现信号漂移。适合已经会写基础公式、想把副图指标从“能用”推到“知道为什么能用”的人。下面按计算链、筹码构造、绘图落地、参数调优四段拆开讲。

2. 从 EMA 到黄金线:跟庄筹码的计算链拆解

2.1 均价线为什么用七条 EMA 而不是一条 MA

源码开头定义了 EMA1 到 EMA120 共七条指数移动平均线,然后直接取算术平均得到均价线。这里用 EMA 而不是 MA,核心原因是 EMA 对最新价格赋予更高权重,短周期反应更快,长周期又不会像 MA 那样在窗口边界突然跳变。七条线覆盖 1、5、10、20、30、60、120 七个周期,基本把日内、周级、月级、半年级的成本区间都框住了。

EMA1:=EMA(C,1); EMA5:=EMA(C,5); EMA10:=EMA(C,10); EMA20:=EMA(C,20); EMA30:=EMA(C,30); EMA60:=EMA(C,60); EMA120:=EMA(C,120); 均价线:=(EMA1+EMA5+EMA10+EMA20+EMA30+EMA60+EMA120)/7;

逻辑说明:EMA(C,N) 中 C 是收盘价,N 是周期。EMA1 实际等于收盘价本身,所以均价线里已经隐含了当根价格。参数说明:如果你做的是超短线,可以把 EMA120 换成 EMA90 缩短长周期权重;做中线则保持 120 不动,因为 120 日大约对应半年交易日,是筹码沉淀的常用分界。

2.2 R 与 R1:最低价、最高价和均价的加权融合

R 和 R1 是这套指标的第一个分水岭。R 用最低价和均价做 2:3 加权,R1 用最高价和均价做 2:3 加权,然后两者再取平均进入 EMA 计算。这个设计的意图是把当根 K 线的极值信息和多周期均价信息揉在一起,避免单纯用收盘价导致影线信息丢失。

R:=(2*L+3*均价线)/5; R1:=(2*H+3*均价线)/5; M3:=EMA((R+R1)/2,3); M5:=EMA((R+R1)/2,5); M8:=EMA((R+R1)/2,8),COLORWHITE; M13:=EMA((R+R1)/2,13); M21:=EMA((R+R1)/2,21),COLORYELLOW; M34:=EMA((R+R1)/2,34); M55:=EMA((R+R1)/2,55);

逻辑说明:(R+R1)/2 是当根融合价,再对它做 3、5、8、13、21、34、55 七条 EMA。这组周期不是随便选的,3-5-8-13-21-34-55 是斐波那契数列的常见变体,短中长过渡平滑。参数说明:M8 和 M21 分别给了白色和黄色,是为了在副图上快速识别中短周期位置,改颜色不影响计算。

2.3 黄金线与跟庄线:两条基准线的分工

黄金线是 M3 到 M55 七条线的平均,再套一层 EMA,周期取这七个数字之和除以 7,也就是 19.86 约等于 20。跟庄线则是对 (R+R1)/2 的 2 周期最低值再做 3 周期 EMA。两条线一个代表多周期融合中枢,一个代表短期下沿支撑。

黄金线:=EMA((M3+M5+M8+M13+M21+M34+M55)/7,(3+5+8+13+21+34+55)/7); 跟庄线:=EMA(LLV((R+R1)/2,2),3),COLORWHITE,LINETHICK1;

逻辑说明:LLV((R+R1)/2,2) 取最近两根融合价的最低值,再 EMA3 平滑,得到一条偏下沿的跟庄线。黄金线在上方作为中枢,跟庄线在下方作为支撑,两者差值就是后面筹码的分子。参数说明:跟庄线的 LLV 周期 2 和 EMA 周期 3 都可以调,改成 LLV 3 和 EMA 5 会让线更钝,适合波动大的品种。

2.4 筹码与筹码2:用 COST 做波动归一化

筹码的核心公式是 (跟庄线-黄金线)/(COST(90)-COST(10))*100。COST 是通达信的成本分布函数,COST(90) 表示 90% 筹码集中在这个价格以下,COST(10) 表示 10% 筹码集中在这个价格以下。两者之差就是筹码主分布区的宽度,用它做分母,等于把价格差值归一化成百分比,不同价位的股票才能横向比较。

筹码:=(跟庄线-黄金线)/(COST(90)-COST(10))*100,COLOR00FFFF; 筹码2:=(跟庄线-黄金线)/(COST(90)-COST(13))*100,COLOR00FFFF; 周筹码:=EMA(筹码,5),LINETHICK1,COLORRED; 筹码盈亏度:=2*(筹码2-周筹码);

逻辑说明:筹码2 把分母的 COST(10) 换成 COST(13),分母略小,结果略大,用来和筹码做差分。周筹码是筹码的 5 周期 EMA,代表慢线。筹码盈亏度 = 2*(筹码2-周筹码),本质是快慢线差值的放大,放大系数 2 是为了让副图柱子更明显。参数说明:COST 的 90/10/13 三个分位可以按品种调整,小盘股筹码集中,可以改成 95/5;大盘股分散,保持 90/10 更稳。

变量计算来源作用可调参数
均价线七条 EMA 均值多周期成本中枢EMA 周期组合
R/R1极值与均价加权融合当根极值信息加权比 2:3
黄金线M 系列均值再 EMA中枢基准外层 EMA 周期
跟庄线融合价 LLV 再 EMA下沿支撑LLV 2 / EMA 3
筹码盈亏度筹码2 与周筹码差分副图柱状信号放大系数 2

3. 筹码盈亏度的信号构造与副图绘制

3.1 HZL 与 LZH:零轴穿越的两种方向

筹码盈亏度围绕零轴波动,上穿零轴记为 HZL,下穿零轴记为 LZH。源码用 CROSS 函数捕捉这两个事件,再用 BARSLAST 计算距离上一次穿越的周期数 BC。这个 BC 是后面取极值窗口的关键。

HZL:=CROSS(筹码盈亏度,0); LZH:=CROSS(0,筹码盈亏度); BC:=BARSLAST(HZL OR LZH)+1; ZGHZ:=IF(筹码盈亏度>0,HHV(筹码盈亏度,BC),0); ZGLZ:=IF(筹码盈亏度<0,LLV(筹码盈亏度,BC),0);

逻辑说明:BARSLAST(HZL OR LZH) 返回上一次穿越到当前的周期数,加 1 是为了让窗口至少为 1。ZGHZ 在零轴上方取 BC 窗口内的最高值,ZGLZ 在零轴下方取最低值。参数说明:BC 窗口会随穿越自动伸缩,不需要手动设;如果你觉得柱子太长,可以在 HHV/LLV 外面再套一层 EMA 平滑。

3.2 DRAWBAND 与 STICKLINE:红蓝柱和渐变带

副图的视觉主体由 DRAWBAND 和 STICKLINE 完成。DRAWBAND 画的是填充带,ZGHZ 到 0 用暗红 RGB(105,77,77),ZGLZ 到 0 用暗绿 RGB(80,0,0) 和 RGB(66,88,66)。STICKLINE 画的是柱体,零轴上方用 COLORLIMAGENTA,下方用 COLORLICYAN,再叠加一层黄色和棕色表示当日相对前一日的变化。

DRAWBAND(ZGHZ,RGB(105,77,77),0,RGB(77,77,77)); DRAWBAND(ZGLZ,RGB(80,0,0),0,RGB(66,88,66)); STICKLINE(筹码盈亏度>0,0,筹码盈亏度,3,0),COLORLIMAGENTA; STICKLINE(筹码盈亏度<0,0,筹码盈亏度,3,0),COLORLICYAN; STICKLINE(筹码盈亏度>REF(筹码盈亏度,1),0,筹码盈亏度,1.5,0),COLORYELLOW; STICKLINE(筹码盈亏度<REF(筹码盈亏度,1),0,筹码盈亏度,1.5,0),COLORBROWN;

逻辑说明:STICKLINE 的第四个参数是宽度,3 是主柱,1.5 是叠加的细柱。第五个参数 0 表示实心。REF(筹码盈亏度,1) 是前一根值,用来判断当日是增强还是减弱。参数说明:宽度 3 和 1.5 可以按屏幕分辨率调,高分屏可以改成 4 和 2;颜色代码是 BGR 顺序,改色时注意别把红绿写反。

提示:DRAWBAND 的两个填充带在零轴附近会重叠,如果发现颜色发灰,把 ZGHZ 和 ZGLZ 的 IF 条件里的 0 改成极小值如 0.001,避免零轴处反复填充。

3.3 筹码D、周筹码D 与趋势线:三条参考线

源码后半段又定义了筹码D、周筹码D 和筹码趋势。筹码D 是筹码2 的重复定义但加了 LINETHICK2,周筹码D 是周筹码的加粗版,筹码趋势是 2*EMA(筹码,55)。这三条线的作用是给柱体提供趋势参照。

筹码D:(跟庄线-黄金线)/(COST(90)-COST(13))*100,COLOR00FFFF,LINETHICK2; 周筹码D:EMA(筹码,5),LINETHICK2,COLORRED; IF(筹码D>=REF(筹码D,1),筹码D,DRAWNULL),COLORLIBLUE,LINETHICK2; 筹码趋势:2*EMA(筹码,55),LINETHICK2,COLORMAGENTA; IF(筹码趋势<REF(筹码趋势,1),筹码趋势,DRAWNULL),COLORLIGRAY,LINETHICK2;

逻辑说明:IF 配合 DRAWNULL 是通达信里实现“条件变色”的常用写法,当筹码D 大于前一日时画蓝色,否则不画,这样上升段和下降段颜色不同。筹码趋势乘以 2 是为了让它和柱体在同一量级。参数说明:EMA(筹码,55) 的 55 是长周期平滑,改成 34 会更敏感,改成 89 更钝。

4. 把源码装进通达信:公式管理器实操与排错

4.1 新建副图公式的完整步骤

打开通达信,按 Ctrl+F 调出公式管理器,选“技术指标公式”下的“其他类型”,点新建。公式名称填“跟庄筹码副图”,画线方法选“副图”,然后粘贴源码。注意源码里有中文变量名和全角空格,粘贴后要检查一遍。

# 通达信公式管理器操作路径 Ctrl+F -> 技术指标公式 -> 其他类型 -> 新建 公式名称: 跟庄筹码副图 画线方法: 副图 粘贴源码 -> 测试公式 -> 确定

逻辑说明:测试公式按钮会做语法检查,如果报错会提示行号。参数说明:画线方法必须选副图,选主图会导致 DRAWBAND 和 STICKLINE 覆盖 K 线。如果公式管理器版本较老,可能不支持 DRAWBAND,需要升级到较新版本。

4.2 常见报错与修复对照

报错信息原因修复方法
未定义的变量 COST公式类型选错改为技术指标公式
DRAWBAND 函数不存在版本过旧升级通达信或用 STICKLINE 替代
变量名重复筹码D 与筹码2 重名保留一个,另一个改名
全角空格从 doc 复制带入用编辑器替换全角空格为半角
输出线过多超过副图限制注释掉不用的线

逻辑说明:COST 函数只在技术指标公式里可用,选成条件选股公式会直接报未定义。DRAWBAND 是较新版本才有的绘图函数,老版本只能用 STICKLINE 模拟。参数说明:副图默认最多显示 6 条线,超出部分会被截断,建议把不用的线用大括号注释掉。

4.3 无未来函数的验证方法

验证无未来函数最直接的方法是看源码里有没有 REF 负值、ZIG、PEAK、TROUGH 这类函数。这套源码只用了 EMA、LLV、HHV、COST、CROSS、BARSLAST、REF 正值,全部是历史或当根数据。另一个方法是把副图信号和实际 K 线对照,如果柱子在某根 K 线收盘后就固定不变,说明没有未来函数。

{ 检查未来函数的快速方法:搜索以下关键字 } { ZIG, PEAK, TROUGH, REF(X,-N), BACKSET, FILTER } { 本源码只含:EMA, LLV, HHV, COST, CROSS, BARSLAST, REF(X,1) }

逻辑说明:REF(X,-N) 是引用未来数据,BACKSET 会回填历史,FILTER 在某些写法下也会引入未来。参数说明:如果必须用 ZIG 类函数,要在副图上标注“含未来”,否则实盘会信号漂移。

注意:从 doc 文件复制源码时,中文引号和全角空格是最常见的坑。建议先粘贴到纯文本编辑器,用查找替换把全角空格换成半角,再粘进公式管理器。

5. 参数调优与多品种适配的进阶技巧

5.1 用参数表快速切换短线与中线配置

这套源码的硬编码周期较多,直接改源码容易改乱。更稳的做法是把关键周期抽成参数,在公式管理器里用参数列表管理。下面给出短线和中线两套配置。

参数短线配置中线配置说明
长周期 EMA90120决定均价线长度
跟庄线 LLV23越大越钝
跟庄线 EMA35平滑系数
周筹码 EMA35快慢线切换
筹码趋势 EMA3455趋势线平滑

逻辑说明:短线配置把长周期从 120 缩到 90,跟庄线更敏感,适合日内和隔日。中线配置保持 120 和 55,信号更稳但滞后。参数说明:改参数后要重新测试公式,确认没有变量未定义。

5.2 用 COST 分位适配不同市值品种

COST(90)-COST(10) 是筹码宽度,小盘股筹码集中,这个差值小,筹码值会被放大;大盘股筹码分散,差值大,筹码值被压缩。适配方法是按市值调整分位。

{ 小盘股:筹码集中,用 95/5 收窄分母 } 筹码小盘:=(跟庄线-黄金线)/(COST(95)-COST(5))*100; { 大盘股:筹码分散,用 85/15 放宽分母 } 筹码大盘:=(跟庄线-黄金线)/(COST(85)-COST(15))*100; { 默认:保持源码的 90/10 } 筹码默认:=(跟庄线-黄金线)/(COST(90)-COST(10))*100;

逻辑说明:COST(95)-COST(5) 比 COST(90)-COST(10) 小,分母小则结果大,适合小盘股。COST(85)-COST(15) 更大,结果更温和,适合大盘股。参数说明:分位调整幅度不要超过 10 个点,否则筹码值会失真。

5.3 副图与主图联动看盘的一个技巧

把跟庄筹码副图和主图 K 线放在同一窗口,用“叠加”功能把黄金线和跟庄线画到主图上,可以直观看到价格和筹码中枢的位置关系。具体做法是在主图公式里引用副图变量,或者直接把黄金线和跟庄线的计算复制到主图公式末尾。

{ 主图叠加:把黄金线和跟庄线画到 K 线上 } 黄金线主图:EMA((M3+M5+M8+M13+M21+M34+M55)/7,(3+5+8+13+21+34+55)/7),COLORYELLOW; 跟庄线主图:EMA(LLV((R+R1)/2,2),3),COLORWHITE; { 注意:M 系列和 R/R1 需要在主图公式里重新计算 }

逻辑说明:主图叠加需要把副图里的中间变量全部复制过去,因为通达信公式之间不共享变量。参数说明:叠加后主图线会变多,建议只叠加黄金线和跟庄线两条,其余用副图看。

5.4 信号过滤:用 BC 窗口长度剔除震荡假信号

筹码盈亏度在零轴附近反复穿越时,BC 窗口会很短,ZGHZ 和 ZGLZ 的柱子也会很短,这些大多是震荡假信号。过滤方法是在 STICKLINE 条件里加一个 BC 下限。

{ 只画 BC 大于 3 的柱子,过滤短窗口震荡 } STICKLINE(筹码盈亏度>0 AND BC>3,0,筹码盈亏度,3,0),COLORLIMAGENTA; STICKLINE(筹码盈亏度<0 AND BC>3,0,筹码盈亏度,3,0),COLORLICYAN; { BC 小于等于 3 的柱子不画,减少噪音 }

逻辑说明:BC 是距离上一次零轴穿越的周期数,BC 越小说明穿越越频繁,信号越不可靠。加 BC>3 后,只有持续 4 根以上的方向才画柱。参数说明:BC 下限可以按品种波动率调,波动大的品种可以设到 5,波动小的保持 3。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询