通达信主图副图指标源码详解与实战调参经验
2026/9/20 16:43:36 网站建设 项目流程

简介:面向通达信金融终端用户,这份综合主图副图指标源码将基本面数据与市场走势整合在同一个图表界面,省去频繁切换页面的步骤。文档以教程形式讲解指标公式的构成与含义,适合有一定技术分析基础的投资者用于自选股监控、买卖点研判和仓位参考。资源压缩包共包含1个doc文件,整体大小277KB,内容紧凑集中,拿到后可直接对照公式逐段理解。目前已有一百九十二人学习下载,属于轻量实用的参考类工具。具体来看,公式会自动展示品种类型、所属板块、上市天数、股东人数、人均持股等基础信息,并用DRAWTEXT_FIX固定显示在图上;主图部分增加获利筹码比例、净利润增长、开盘幅度、箱体顶底与黄金分割线,同时以EMA和SMA计算支撑位,辅助识别价格趋势和潜在反转点。此外还给出净资产、公积金、未分利润等财务数据,帮助投资者快速把握公司质地与市场情绪,值得通达信爱好者收藏使用。 很多老股民折腾了几年通达信,电脑里存了几十上百个公式,最后真正打开软件会去看的、能坚持用的,其实就那么一两个。我自己的通达信里也长期躺着这么一套综合主图副图指标,不是网上那种花里胡哨、信号满天飞的版本,而是我自己一点点调出来的,主图和副图搭配着看,一眼就能判断趋势、位置和量能配合情况。这篇文章就把这套指标的完整源码、设计逻辑和实际使用中的调参心得分享出来,适合有一定通达信公式基础、想摆脱"指标越多越不会操作"困境的朋友参考。

整套指标的核心思路其实很简单:主图管方向,副图管时机,两者共振才动手。主图负责把趋势结构和关键价位画清楚,副图负责在量能和动量上给出具体的信号提示,不追求每次都买在最低卖在最高,但要求每一笔操作都有依据。

1. 这套主图副图指标的设计思路:先想清楚要解决什么问题

1.1 为什么市面上的"万能指标"总是让人亏钱

刚接触通达信公式的时候,我也走过一段弯路,看到网上分享的"擒龙战法""跟庄秘籍"就迫不及待地导入,结果往往是信号多到让人麻木,今天金叉明天死叉,今天突破明天破位,最后根本不知道听谁的。后来我总结出一个规律:大部分免费分享的综合指标,问题不是出在源码有错,而是出在设计目标不明确

一个指标如果要同时承担判断趋势、捕捉买卖点、预警超买超卖、提示主力动向这么多任务,那它每个任务都做不精。就像一把瑞士军刀,功能再多,关键时刻你还是想找一把专门的菜刀。我自用的这套主图副图指标,在设计之初就只给自己定了三个任务:

  • 判断当前走势是上升趋势、下降趋势还是震荡整理
  • 找到趋势中相对安全的介入区域和离场区域
  • 用副图的量能信号过滤掉主图上那些"假突破"

除此之外的事情,比如预测具体涨幅、计算庄家成本、判断筹码分布,我一概不在这套指标里做。边界清晰之后,公式写起来简单了,信号也干净了。

1.2 主图和副图的分工逻辑

我这里说的主图和副图,不是指把几个指标硬塞进一个窗口,而是它们各自承担的分析职责要错开。我的主图指标走的是"裸K线加辅助线"风格,不在主图上堆砌大量信号文字,因为K线上写字太多,蜡烛实体一多根本看不清。主图只画三类东西:均线组、趋势通道线、关键价位标记。所有亮眼的"买入""卖出"文字提示,全部放在副图里输出。

副图指标走的是"量价配合"风格,把成交量、价格动能和一个综合得分放在同一个坐标体系里对比。这样做的好处是,你在主图上看到一个关键价位被测试,马上扫一眼副图,就能判断这次测试有没有量能配合,该不该动手。

提示:主图越干净越好,副图越直观越好。凡是让主图上一团乱的函数,比如 DRAWICON、DRAWTEXT 在主图上频繁输出,我都会先砍掉,信号全部挪到副图。

2. 主图指标的核心算法与源码实现

2.1 趋势通道线的计算原理

主图指标里最重要的部分是那条长期趋势线。我没有用传统的布林带或者唐奇安通道,而是用了一个变种的均线通道。

传统布林带的问题在于,它的上下轨和中间的均线距离是基于标准差计算的,行情平静的时候通道收得很窄,很容易被一根阳线就突破上轨,造成连续突破信号。我的做法是给均线设置了自适应系数——当价格波动加剧时,通道自动放宽;当行情走平时,通道略微收窄但不会过分挤压。

具体算法说起来不复杂:

  • 先计算一条 N 日的指数移动平均线作为基准线
  • 再用 ATR(平均真实波幅)乘以一个倍数作为通道宽度
  • 最后用基准线加减通道宽度,画出上轨和下轨

ATR 本身就是衡量波动幅度的指标,用它做通道宽度,天然具备自适应特点。我在源码里的参数如下。

N:=20; M:=2.2; MID:EMA(CLOSE,N); TMP:=ATR(N)*M; UPPER:MID+TMP; LOWER:MID-TMP;

这里 M 的取值 2.2 我调过很多次。取值太小,比如 1.5,通道会频繁被价格触碰到,信号变多但准确率下降;取值太大,比如 3.0,通道又太宽松,等价格跌到下轨时往往已经深套。从我的实盘回溯来看,在日线周期下 2.0 到 2.4 是一个比较理想的区间。

2.2 关键价位标记逻辑

通道线只是给出一个区域概念,实际操作中还要落点到具体价位。我把最近一段时间内的分形高低点标在主图上,作为左侧的参考价位。

分形高点的定义是:一根K线的最高价,比它左边两根和右边两根K线的最高价都高。分形低点同理。这个逻辑用通达信源码写出来很直白,但有一个细节要注意:分形确认需要等待右侧两根K线走完,也就是说信号天然存在两天的滞后。如果你不能接受这种滞后,可以选择放弃这类信号,改用普通的阶段高低点。

我的处理方式是用未来函数去画已经确认的分形,避免信号漂移。

HH:=REF(HIGH,2)=HHV(HIGH,5); LL:=REF(LOW,2)=LLV(LOW,5);

这两行代码的意思是:判断两日前的最高价是不是最近五根K线的最高价,如果是,就认为那里是一个分形高点。这样写确认信号是固定的,画出来之后不会随着后面K线变化而消失或移动。这一点非常重要,做指标的人如果在带未来函数的写法上不小心,复盘时看到的信号和盘中实际看到的信号就会不一样,容易产生"指标很神"的错觉。

2.3 主图源码完整给出

下面的代码可以直接复制到通达信的"公式管理器"里,新建一个主图叠加公式。

{===== 自用综合主图 =====} N:=20; M:=2.2; MID:EMA(CLOSE,N),COLORWHITE,LINETHICK2; TMP:ATR(N)*M; UPPER:MID+TMP,COLORLIBLUE; LOWER:MID-TMP,COLORLIBLUE; FILLRGN(UPPER,MID,UPPER>MID,COLOR3300CC),COLOR3300CC; FILLRGN(MID,LOWER,MID>LOWER,COLOR333366),COLOR333366; {分形高低点标记} HH:=REF(HIGH,2)=HHV(HIGH,5); LL:=REF(LOW,2)=LLV(LOW,5); DRAWNUMBER(HH,HIGH*1.01,REF(HIGH,2)),COLORRED; DRAWNUMBER(LL,LOW*0.99,REF(LOW,2)),COLORGREEN; {20日最高最低的突破参考} H20:=HHV(HIGH,20); L20:=LLV(LOW,20); DRAWLINE(L20=LOW,LOW,H20=HIGH,HIGH,0),COLORYELLOW;

在通达信里,FILLRGN函数用于填充区域,DRAWNUMBER用于在指定位置显示数字,DRAWLINE则在两个条件成立的点之间画趋势线。这套主图画出来的效果是:一根白色均线在中间,上下两条蓝色通道线包裹价格,通道内部有淡色填充,黄色斜线连接阶段高低点,红绿数字标出分形价位。

由于用到了ATR函数,这个公式在不同周期下的表现会有差异。日线图上的参数是我调好的,如果你切到 60 分钟或者周线,M 值通常需要微调。60 分钟级别波动更随机,M 建议调到 2.5 左右;周线级别趋势更稳定,M 可以降到 1.8 到 2.0。

3. 副图指标的核心算法与源码实现

3.1 量价配合的判断方式

副图部分我采用的是"量能+动量+综合信号"的三段式布局。为什么要三段式?因为在通达信的同一个副图窗口里,如果只用一条线来表示全部信息,很难同时看到量能的变化和价格动能的变化,而这两者恰恰是判断突破真假的关键。

量能部分不是简单画一个成交量柱状图就完事,而是对成交量做了平滑处理,再算出量比——也就是当前成交量相对于过去一段时间平均成交量的倍数。量比大于 1.5 说明明显放量,小于 0.8 说明缩量。这个量比值用副图的柱状图来表示,超过 1.5 的部分用醒目颜色标出。

动量部分我用了一个改良版的 RSI,不是传统 14 日 RSI,而是把计算周期拆成快慢两个,让快线穿越慢线的位置成为参考信号。这样比单看一个数值更直观,金叉死叉一目了然。

3.2 综合信号的生成逻辑

综合信号是整个副图的灵魂,它把量能、动量和主图通道位置三者结合起来,输出一个 0 到 100 的得分。这个得分不是简单的平均,而是加权计算:

  • 主图价格处于通道上半区,加 30 分
  • 量比大于 1.5,加 30 分
  • 快线位于慢线上方,加 40 分

满分为 100。当得分大于 80 时,副图输出"强势"文字;在 50 到 80 之间,输出"观望";低于 50 则输出"弱势"。这种打分方式最大的好处是,把多个维度的信息压缩成一个可执行的结论,而不是给出一堆互相矛盾的指标值让你自己纠结。

3.3 副图源码完整给出

{===== 自用综合副图 =====} VOL_S:=MA(VOL,5); VOL_L:=MA(VOL,20); 量比:VOL/VOL_L,COLORSTICK; 放量线:1.5,COLORRED,DOTLINE; RSI_S:=SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100; RSI_L:=SMA(MAX(CLOSE-LC,0),14,1)/SMA(ABS(CLOSE-LC),14,1)*100; 动量快线:RSI_S,COLORWHITE; 动量慢线:RSI_L,COLORYELLOW; 得分:IF(CLOSE>MID,30,0)+IF(VOL>VOL_L*1.5,30,0)+IF(RSI_S>RSI_L,40,0),COLORMAGENTA,NODRAW; DRAWTEXT(得分>80,85,'强势 '),COLORRED; DRAWTEXT(得分<50,15,'弱势 '),COLORGREEN;

代码里的LC是前一日收盘价的系统函数,MID是主图公式里的那条均线值。这里要注意一个跨公式引用的问题:如果你想在副图里直接使用主图计算的 MID 值,需要在主图公式里用MID:EMA(CLOSE,N);而不是:=赋值,这样 MID 才会作为输出变量被保存下来,副图公式才能引用到。

注意:副图公式如果引用主图公式的变量,最好把两个公式合并成一个独立的副图公式,或者将 MID 的计算代码复制到副图公式里。通达信的跨公式引用如果没有写好公式名称前缀,输出会不稳定,这是不少新手经常踩的坑。

4. 主图副图配合使用的实战规则与经验

4.1 共振买入信号怎么确认

指标写好了,最终还是要落到操作上。我在实际使用中总结了一套比较机械的规则,宁可用机械规则牺牲掉一部分弹性,也不要在盘中临时起意。

第一类是"通道回踩低吸"信号,需要同时满足三个条件:

  • 主图中价格回踩到 LOWER 下轨附近,收盘价没有有效跌破下轨
  • 副图得分在 50 以上,且量比大于 1
  • 动量快线在慢线附近拐头向上,或者已经形成金叉

三个条件同时成立时,我才会考虑建立底仓。如果只有价格到了下轨但副图没有配合,我不会动手,因为这说明要么趋势还没走完,要么量能不足,价格可能继续阴跌。

第二类是"分形突破追涨"信号。当主图价格突破最近的一个分形高点,同时副图得分大于 80、量比大于 2 时,可以用较小的仓位追一下强势突破。这种操作的风险相对高,因为它本质上是在情绪最热烈的时候进场,所以仓位必须控制住。

4.2 卖出信号的优先级问题

很多人的指标在卖出上设计得比买入粗糙得多,其实卖出才是决定最终盈亏的关键环节。我的卖出规则分三档:

  • 保守卖出:副图得分跌破 50,同时动量快线下穿慢线
  • 标准卖出:主图价格跌破 MID 均线,且副图得分小于 70
  • 趋势卖出:主图价格跌破 LOWER 下轨

实际操作中,我通常以"标准卖出"为主要执行信号,保守卖出作为移动止盈的参考。举个例子,如果一只票已经浮盈 15%,副图得分从 90 跌到 65,虽然还没到标准卖出条件,但我会先止盈一半,剩下的仓位按标准卖出信号清掉。

4.3 一套指标要跑赢"人肉复盘"才算合格

指标最终好不好用,只能靠历史数据去检验。我每次调完参数,都会选 10 到 20 只不同行业的股票,在日线图上往前翻两到三年,把每一个买入信号和卖出信号都记录下来,统计胜率和盈亏比。这个工作虽然枯燥,但非常重要,因为很多指标在参数优化的时候拟合得非常好,换一批股票就失灵了。

我的做法是:优化参数时用一批样本,验证时用另一批完全没参与参数调整的股票。如果在验证样本上表现明显变差,说明参数过拟合了,需要重新调整。经过几轮验证之后,这套主图副图指标在我的股票池里,日线级别的信号胜率大概能维持在六成上下,盈亏比在 2:1 左右,作为辅助决策工具基本够用了。

5. 编写通达信公式源码时的坑与破解方法

5.1 未来函数是最大的隐形杀手

通达信公式里最危险的问题就是未来函数。很多网上下载的指标看起来信号精准得离谱,股价最低点精确提示"买",最高点精确提示"卖",十有八九是用了未来函数。常见的未来函数包括ZIGPEAKTROUGHBACKSETDRAWLINE在特定写法下也会产生未来效果。

判断一个公式有没有未来函数的土办法很简单:在副图里加载这个指标,然后随便找一个信号,把鼠标移动到信号出现的K线上,注意观察信号是不是会随着后面K线的出现而变化。如果过几天你再回头看,原来的信号位置变了或者消失了,那这个公式就有未来函数。

自用指标里,我刻意避免了 ZIG 类的函数,分形高低点也是用固定的REF(HIGH,2)=HHV(HIGH,5)方式确认,确保信号一旦画出来就不会漂移。

5.2 颜色和画线函数的选择

通达信的画线函数看起来简单,但细节上有个容易忽略的地方:STICK画柱线是按收盘价和昨日收盘价的关系自动分配颜色的,如果你想统一柱线的颜色,需要指定COLORSTICK或者直接给每个输出单独设置颜色。

我在副图里写的量比:VOL/VOL_L,COLORSTICK;实际上会根据量比数值相对昨日的变化自动变红或变绿。如果你想严格按"量比大于 1.5 红,小于 0.8 绿"来分类,就得拆成两个输出分别画,否则颜色逻辑会跟你的想法不一样。

5.3 跨周期和跨公式引用的坑

这套主图副图指标如果只是在日线使用,基本不需要跨周期引用。但如果你希望把日线的趋势信号显示在 30 分钟或 60 分钟图上,就必须用到#DAY这样的跨周期引用语法。跨周期引用的写法并不复杂,但你得清楚一个原则:分钟级别引用的日线数据,只有当日线K线走完才会刷新,盘中引用到的是昨天的数据,所以信号会有滞后。

跨公式引用也是类似,如果你在主图公式里用:=赋值了一个中间变量,副图公式里是引用不到的。必须把它定义为输出变量,或者用引用指标名.变量名的方式显式调用,否则副图会在"未定义变量"上报错。

5.4 公式加载卡顿的原因排查

有时候公式逻辑没写错,但软件跑起来很卡,尤其是切换 K 线周期的时候,要转好几圈才出图。这通常是因为公式里用了大范围循环或者复杂的数组计算。通达信的公式语言本质上是向量化的,简单的函数组合执行很快,但如果你在一个公式里大量使用FOR循环语句,或者在 DRAWICON 里画了成千上万个图标,卡顿几乎是必然的。

我这套指标在主图和副图里都没有用循环语句,所有计算都是标准的序列函数,实盘加载基本是即时的。如果在你的通达信版本上还是卡,优先检查是不是软件版本太老,或者同时加载了很多其他公式占用了内存。

6. 从"能用"到"好用":参数微调与个人化改造

6.1 不同周期下的参数调整参考

这套主图副图指标在不同周期下的参考参数并不一样。日线级别的默认参数是 N=20,M=2.2,RSI 快慢周期是 6 和 14。但如果你把它用到 60 分钟级别,建议做三处调整:

  • N 从 20 降到 12 到 15,因为分时级别趋势变化更快,均线太长会跟不上
  • M 从 2.2 升到 2.5 到 2.8,因为分钟线的波动噪音更大,通道要更宽一些
  • 放量线的阈值从 1.5 降到 1.2,分钟级别的放量幅度不如日线那么极端

周线级别则反过来,N 可以上调到 25 或 30,M 下调到 1.8,因为周线的趋势更稳定,通道太宽会导致信号过少。

6.2 如何把指标信号接入选股公式

当你通过复盘确认了这套指标的信号价值,下一步自然会想用它来自动选股。通达信支持将主图或副图里的输出变量名直接用在选股公式里。办法是新建一个独立的选股公式,把需要引用的条件原样写进去,然后用FILTER函数消除连续重复的信号。

举个例子,如果你想选"回踩下轨且副图得分大于 50"的股票,可以把核心判断逻辑简化为下面这几行:

MID:=EMA(CLOSE,20); LOWER:=MID-ATR(20)*2.2; 得分:=IF(CLOSE>MID,30,0)+IF(VOL>MA(VOL,20)*1.5,30,0)+IF(RSI6>RSI14,40,0); 选股:LOW<LOWER AND CLOSE>LOWER AND 得分>50;

注意选股条件里我加了CLOSE>LOWER,目的是排除那些已经有效跌破下轨的股票。选股公式跑出来之后,建议再人工确认一下股票的基本面和消息面,指标选出的只是技术面合格的候选池。

指标这东西,说到底是对价格和成交量的一种数学表达,它不会替你思考,但可以帮你在混乱的行情里快速找到重点。这套主图副图我前前后后用了大半年,从最开始的频繁微调参数,到后来固定下来只在极端行情里才做修正,最大的体会是:一套你完全理解逻辑的普通指标,远比一个你不懂原理的"神级指标"更有价值。如果你在导入或者使用过程中遇到输出不对的情况,优先检查三件事——未来函数、跨公式变量引用、参数是否匹配当前周期,八成问题都出在这三个地方。

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

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

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

立即咨询