通达信资金涌动金钻副图指标源码逐行解析与实战验证
2026/9/18 14:50:58 网站建设 项目流程

简介:这是一份面向通达信用户的副图指标源码文档,适合具备一定技术分析基础、希望借助资金流向判断买卖时机的投资者。指标由资金能量、主力资金、金线银线、爆发线、起步线、抄底线等组件构成,通过价格与成交量加权、EMA平滑等算法追踪主力资金强度,并以金叉死叉及文字提示给出加仓、半仓、空仓等信号,源码结构完整,便于按个人需求修改参数或二次优化。资源包共1个doc文件,约320KB,内容为可直接导入通达信使用的公式源码,并附有作者使用心得与信号说明。目前已有497人学习下载,适合想研究主力资金集散、丰富副图信号体系的中高级交易者参考。

1. 一份副图指标源码,为什么值得逐行拆开看

通达信公式系统里,副图指标是最容易被低估的一类。很多人拿到一份.doc格式的源码,第一反应是复制进公式管理器点确定,看到副图有柱子有线条就完事。但真正决定这个指标能不能用的,不是它画出来好不好看,而是每一行公式背后的量价逻辑是否自洽。这份「资金涌动金钻副图指标」源码把资金能量、主力资金 EMA、金线银线差离、以及一套抄底/爆发/加仓的文字信号塞进了同一个副图,结构上属于典型的「多模块拼装型」指标。它适合已经会打开公式管理器、但还没搞明白STICKLINEEMACROSS之间怎么配合的人。下面按数据流顺序拆,拆完你能自己改参数、自己判断哪一段是噪音。

2. 资金能量柱与主动买卖量的量价计算

2.1 AVPRICE 与 BB 公式的推导逻辑

源码开头定义了两个价格基准:AVPRICE:=(2*OPEN+2*CLOSE+2*HIGH+2*LOW)/8,本质是(O+C+H+L)/4的等价写法,只是把权重拆成 2 倍再除以 8。INDEXAVP同理,用的是大盘的INDEXH/INDEXL/INDEXO/INDEXC。这两个值分别代表个股和大盘的「均价中枢」。

核心的买卖量估算在BB这一行:

AA:=AVPRICE; BB:=((VOL)*((AA)*(2) - HIGH - LOW))/(HIGH - LOW); CC:=IF((HIGH = LOW) AND (AA < REF(AA,1)),((-1))*(VOL),VOL); A:=IF((HIGH = LOW),CC,BB); B:=SUM(A,11); BBD:=(((B)/((CAPITAL)*(11)))*(10000)); BB1:=IF((BBD < 150) AND (BBD > (-150)),BBD,150);

BB的分子是2*均价 - 最高 - 最低,这个差值衡量的是收盘价在当日振幅中的位置偏向:均价越靠近最高价,差值越正,说明买盘把价格顶在上沿;越靠近最低价,差值越负。再乘以成交量,就得到一个带方向的「资金流估算值」。CC处理的是HIGH = LOW的一字板情况,此时分母为 0 会出错,所以用前一日均价比较来判断方向。

B是 11 日累加,BBD除以CAPITAL*11再乘 10000,做的是流通盘归一化——这一步很关键,否则大盘股和小盘股的柱子高度没有可比性。BB1IF把数值夹在 ±150 之间,防止极端值把副图坐标撑爆。

2.2 STICKLINE 画柱与 NODRAW 隐藏数值

买方能量指标:=IF((BB1 > 0),BB1,0); STICKLINE((BB1 > 0),0,买方能量指标,2,0),COLOR00FFFF; 主动买量:IF((BB1 > 0),BB1,0),COLOR00FFFF,NODRAW; 主动卖量:IF((BB1<0),BB1,0),COLOR00FF00,NODRAW;

STICKLINE(条件, 起点, 终点, 宽度, 空心)的第五个参数0表示实心柱。这里只在BB1>0时画青色柱,负值部分被源码注释掉了({STICKLINE((BB1 < 0)...)}),所以副图上你只看到买方能量。NODRAW的作用是让这两个输出只参与后续计算、不在图上画线,但数值仍可在十字光标的数据窗口里读到。

参数含义常见调整
SUM(A,11)中的 11资金流累加周期改小到 5 更灵敏,改大到 20 更平滑
CAPITAL流通股本不可改,由通达信自动填充
±150夹逼阈值副图纵轴范围小盘股可缩到 ±80
STICKLINE宽度2柱子粗细改 1 变细,改 3 变粗

注意:CAPITAL在部分指数或板块数据中可能为 0,导致除零。如果你把这段公式挂到指数副图上发现柱子消失,先检查CAPITAL是否有值。

3. 主力资金 EMA 与金线银线的交叉信号

3.1 主力资金线的 30 日随机指标平滑

主力资金:EMA(100*(C-LLV(LOW,30))/(HHV(H,30)-LLV(LOW,30)),3),COLORRED,LINETHICK2; 即将爆发线: 65,COLOR00FF00; 起爆线:80,COLORWHITE,LINETHICK1; DRAWTEXT(CROSS(主力资金,起爆线),主力资金,'◆爆发!') ,COLORYELLOW;

100*(C-LLV(LOW,30))/(HHV(H,30)-LLV(LOW,30))是标准的 30 日随机指标(类似 KDJ 的 RSV),值域 0~100。外面套EMA(...,3)做 3 日平滑,得到一条 0~100 区间的主力资金曲线。65 是「即将爆发线」,80 是「起爆线」。CROSS(A,B)在 A 上穿 B 时返回 1,配合DRAWTEXT在曲线上打「◆爆发!」标记。

这里有个容易踩的坑:DRAWTEXT的第二个参数是文字锚定的 Y 坐标,写主力资金意味着文字跟着曲线走。如果曲线在 80 附近,文字可能和起爆线重叠,视觉上很乱。常见做法是改成DRAWTEXT(CROSS(主力资金,起爆线),82,'◆爆发!'),把文字固定在 82 的高度。

3.2 金线银线的差离与红绿柱

TMD:=C-REF(C,1); 金线:100*EMA(EMA(TMD,N1),N1)/EMA(EMA(ABS(TMD),N1),N1),COLORWHITE,LINETHICK1; 银线:MA(金线,N2),COLOR00FF00,LINETHICK1; STICKLINE(金线>银线 , 金线,银线 ,1.5,0),COLORRED,LINETHICK2; STICKLINE(银线>金线,金线,银线,1.5,0),COLORGREEN,LINETHICK2;

TMD是收盘价日变动,金线的公式100*EMA(EMA(TMD,N1),N1)/EMA(EMA(ABS(TMD),N1),N1)是双重 EMA 归一化,值域大致 -100~100,本质是一个动量振荡器。N1:=9N2:=5在源码最前面定义。银线是金线的 5 日简单移动平均。

红绿柱的逻辑很直观:金线在银线上方画红柱(多头动量),下方画绿柱(空头动量)。STICKLINE的起点终点分别是金线和银线的值,所以柱子高度就是两线的差值。

爆发线:30,COLORFF00FF,LINETHICK1; 起步线:0,COLORWHITE,LINETHICK1; 抄底线:-25,COLORWHITE,LINETHICK1; DRAWTEXT(CROSS(金线,爆发线),金线,'◆爆发!') ,COLORWHITE; DRAWTEXT(CROSS(金线,起步线),金线,'■加仓!') ,COLORWHITE; DRAWTEXT(CROSS(金线,抄底线),金线,'●半仓!') ,COLORWHITE;

三条水平参考线把金线的运行区间切成四段:30 以上是爆发区,0~30 是加仓区,-25~0 是半仓区,-25 以下是抄底观察区。CROSS(金线,爆发线)在金线上穿 30 时打「◆爆发!」,CROSS(金线,起步线)在上穿 0 时打「■加仓!」,CROSS(金线,抄底线)在上穿 -25 时打「●半仓!」。

注意:DRAWTEXT在历史 K 线上会重复绘制,如果同一根 K 线同时触发多个CROSS,文字会叠在一起。建议在公式管理器里把不常用的信号注释掉,只留当前策略需要的。

3.3 参数调整对照表

参数源码值调大效果调小效果
N19金线更平滑,信号减少金线更灵敏,信号增多
N25银线滞后加大,红绿柱持续更久银线紧跟金线,柱体变短
主力资金 EMA 周期3曲线更平滑,爆发信号延迟曲线更抖,假信号增多
起爆线80信号更少但更严格信号更多但可能提前

4. 出击信号的 VAR 系列计算与实战验证

4.1 VAR11~VARA 的嵌套逻辑

源码末尾有一段以VAR开头的计算,这是另一套独立的超买超卖判断:

VAR11:=HHV(HIGH,9)-LLV(LOW,9); VAR12:=HHV(HIGH,9)-CLOSE; VAR13:=CLOSE-LLV(LOW,9); VAR14:=VAR12/VAR11*100-70; VAR15:=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60))*100; VAR6:=(2*CLOSE+HIGH+LOW)/4; VAR7:=SMA(VAR13/VAR11*100,3,1); VAR8:=LLV(LOW,34); VAR9:=SMA(VAR7,3,1)-SMA(VAR14,9,1); VARA:=IF(VAR9>100,VAR9-100,0); VARB:=HHV(HIGH,34); AA1:= VARA*2; BB5:= EMA((VAR6-VAR8)/(VARB-VAR8)*100,13); VARC:=EMA(0.667*REF(BB5,1)+0.333*BB5,2); CC5:SMA(VAR15,20,1),COLOR000000; CC1:SMA(CC5,5,1),COLOR000000; 出击:IF((CROSS(CC5,CC1) AND (CC1 < 顶) ),80,0),COLOR00FF00;

VAR11是 9 日最高最低价差,VAR12是最高价与收盘价的距离,VAR13是收盘价与最低价的距离。VAR14VAR12/VAR11放大 100 倍再减 70,得到一个偏空方的强度值。VAR7VAR13/VAR11的 3 日 SMA,偏多方。VAR9是两者之差,VARAVAR9>100时减去 100,否则归零。

CC5CC1VAR15的 20 日和 5 日 SMA,颜色设为COLOR000000(黑色),在深色背景上基本看不见,属于「隐藏计算线」。出击信号在CC5上穿CC1CC1 < 顶(顶=85)时输出 80,否则输出 0。

4.2 把源码导入通达信的完整步骤

  1. 打开通达信,按Ctrl+F调出公式管理器。
  2. 在「技术指标公式」下新建一个副图公式,命名如ZJYDJZ
  3. .doc里的源码全文粘贴进去,注意去掉 Word 可能带入的智能引号。
  4. 点击「测试公式」,确认无语法错误后确定。
  5. 在 K 线图副图区域右键,选择「选择指标」,找到ZJYDJZ加载。
{ 如果只想保留核心信号,可以精简为以下最小集 } 主力资金:EMA(100*(C-LLV(LOW,30))/(HHV(H,30)-LLV(LOW,30)),3),COLORRED,LINETHICK2; 起爆线:80,COLORWHITE; DRAWTEXT(CROSS(主力资金,起爆线),82,'爆发'),COLORYELLOW;

精简版去掉了资金能量柱和 VAR 系列,只保留主力资金曲线和爆发信号,适合副图空间有限时使用。

4.3 用 Python 做信号回测验证

通达信本身不带回测,但可以把导出的日线数据拉到 Python 里验证信号胜率:

import pandas as pd import numpy as np # 假设 df 包含 date, open, high, low, close, volume df = pd.read_csv('stock_daily.csv') df['llv30'] = df['low'].rolling(30).min() df['hhv30'] = df['high'].rolling(30).max() df['rsv'] = 100 * (df['close'] - df['llv30']) / (df['hhv30'] - df['llv30']) df['main_force'] = rsv.ewm(span=3, adjust=False).mean() # 生成爆发信号:主力资金上穿 80 df['signal'] = ((df['main_force'] > 80) & (df['main_force'].shift(1) <= 80)).astype(int) # 计算信号后 5 日收益率 df['fwd_ret'] = df['close'].shift(-5) / df['close'] - 1 win_rate = df.loc[df['signal'] == 1, 'fwd_ret'].mean() print(f'信号次数: {df["signal"].sum()}, 5日平均收益: {win_rate:.4f}')

ewm(span=3, adjust=False)对应通达信的EMA(...,3)adjust=False保证递推方式一致。shift(-5)取未来 5 日收盘价,计算信号触发后的持有收益。跑一遍你就能看到这个信号在具体标的上的真实表现,而不是只看源码里写的「准确率 90%」。

注意:回测时要用前复权数据,否则除权日的价格跳空会让信号完全失真。通达信导出数据时在「盘后数据下载」里勾选「前复权」。

5. 副图指标的多周期共振与公式管理器技巧

5.1 用跨周期引用做日线周线共振

通达信支持在日线公式里引用周线数据,语法是"指标名.输出名#WEEK"。把主力资金信号做成周线过滤:

{ 日线副图中引用周线主力资金 } 周主力:="ZJYDJZ.主力资金#WEEK"; 日主力:=EMA(100*(C-LLV(LOW,30))/(HHV(H,30)-LLV(LOW,30)),3); 共振爆发:IF(CROSS(日主力,80) AND 周主力>60,1,0),COLORRED; DRAWTEXT(共振爆发,85,'共振'),COLORYELLOW;

#WEEK表示取周线周期的值,周主力>60作为过滤条件,只有日线和周线同时处于强势区才触发共振信号。这样能把日线上的假突破过滤掉一部分。

5.2 公式管理器 6.06 的导入导出

通达信公式管理器 6.06 支持.tn6格式的导入导出。如果你拿到的是.doc源码,需要先手动粘贴;如果是.tn6文件,直接在公式管理器里点「导入」即可。导出时选中公式点「导出」,会生成.tn6文件,方便备份和迁移。

操作路径格式
导入源码公式管理器 → 新建 → 粘贴手动
导入文件公式管理器 → 导入.tn6
导出备份选中公式 → 导出.tn6
批量迁移复制T0002\signals目录文件夹

5.3 一个容易被忽略的细节:STICKLINE 的层级

当副图里同时有STICKLINE柱子和LINETHICK2曲线时,绘制顺序决定谁遮谁。通达信按公式书写顺序绘制,后写的覆盖先写的。如果你发现主力资金红线被柱子挡住,把STICKLINE移到主力资金那行之前即可。这个细节在源码里没有体现,但实际加载后经常遇到。

最后一招:把DRAWTEXT的信号文字改成DRAWICON图标,副图会干净很多。DRAWICON(CROSS(主力资金,起爆线),主力资金,1)里的1是通达信内置图标编号,具体编号可以在公式管理器的「插入图标」里查。图标比文字占位小,多个信号同时出现时不会糊成一片。

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

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

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

立即咨询