通达信指标公式编辑实战:从函数到选股全解析 📅 发布时间:2026/9/21 2:40:27 👁 浏览次数: 简介通达信指标公式编辑教程为使用通达信软件进行技术分析的用户提供了一份系统的公式编写指南尤其适合希望自建指标、选股条件或交易规则的投资者与量化爱好者。整个资源仅包含1个PDF文件约1.23MB内容紧凑全面。教程围绕四大类公式编辑器展开技术指标公式编辑器用于绘制分析图上的指标线条件选股公式编辑器实现智能选股五彩K线公式编辑器以颜色标识历史K线形态交易系统公式编辑器则可设定买卖点进行模拟测试。同时详细讲解了公式管理器、公式编辑器中的常用功能如参数设置、画线方法、测试公式、参数精灵等帮助读者理解公式的新建、修改、加密、引入与输出。目前已有1795人学习下载适合刚接触通达信公式编写或希望系统整理公式知识的学习者学后可独立编写并调试自己的技术分析公式。 通达信指标公式编辑教程大全(函数指标实例)文件.pdf从编辑器到实战一次性把公式系统讲透如果你打开通达信软件看到满屏红红绿绿的均线、MACD、KDJ就以为这些是软件“自带”的那说明你还没真正碰过这个工具的上层玩法。实际上通达信里所有你能看到的技术指标本质上都是公式系统跑出来的结果。换句话说指标不是“用”出来的而是“写”出来的。这两年我在社区里看很多朋友问“通达信指标公式怎么学”也看过不少人拿着一大段源码却不知道从哪下手。网上教程鱼龙混杂有的只讲几个函数名字有的贴一段源码让你直接抄抄完也不知道错在哪。我整理这份“通达信指标公式编辑教程大全”的思路是想把公式编辑器、函数、指标实例这三块拼接起来让它变成一条可以按图索骥的学习路径——这个PDF既是入门手册也是写公式时的速查字典。这篇文章我就按这套思路把核心内容拆开讲清楚。1. 通达信公式系统的整体架构先看清软件在背后做了什么很多教程一上来就丢给你一组函数然后让你“照着敲”。这种学法最大的问题在于你根本不知道公式是怎么被加载、计算、绘制的所以一旦指标表现不符合预期你连排查的思路都没有。这一节先建立整体认知。1.1 公式在通达信里到底是“什么”通达信公式系统本质上是一个类脚本引擎。它加载一段文本代码按行解析、逐句执行最后把计算结果映射到主图或副图的坐标轴上。你可以把公式理解为一份“画图说明书”它告诉软件在哪个位置画线、在哪个位置画柱、什么时候填充颜色、什么时候给出文字提示。这套系统有三类核心概念公式类型、公式代码、函数库。公式类型决定计算结果挂在哪儿主图叠加还是副图独立坐标公式代码就是你要写的源码函数库则是一套已封装好的“工具人”——你不需要自己算五日均价直接调MA()就行。1.2 公式类型的区别主图、副图、选股、条件通达信的公式管理器快捷键CtrlF里公式分成几个类型每个类型的用途和限制完全不同公式类型应用位置典型用途输出限制技术指标公式主图或副图K线叠加、均线、MACD、KDJ等可以有多个输出绘制线条/柱状条件选股公式选股器筛选满足特定条件的股票只能有一个最终输出买点条件交易系统公式主图信号买入/卖出提示需要同时给出开仓和平仓逻辑五彩K线公式主图对K线做着色标记输出布尔条件满足则给特定颜色预警公式盘中监控实时提示符合条件的股票逻辑同条件选股新手最常见的误区是把“技术指标公式”当“条件选股公式”用结果在选股器里根本找不到。哪怕主图指标画得再漂亮它也不会出现在选股列表里——因为公式类型不匹配系统根本不会以“能否选出股票”的视角去执行它。1.3 公式文件在电脑里是怎么存的用记事本写.txt也能写公式关键在于最后要粘贴到通达信公式管理器里。通达信公式保存后会以特定格式写入安装目录下的T0002或T0003相关文件不同版本可能略有差异。所以备份公式时很多人直接复制源码到记事本保存这其实是更稳妥的方式——你永远知道自己写了一份什么代码。我强烈建议源码都用外部文本兜底保存一份。软件自带的新建/修改窗口虽然方便但如果哪天重装系统或软件更新把公式库冲掉了你没备份就真的全没了。2. 指标公式的语言规范变量、赋值与输出语句的底层逻辑通达信公式的语法不像Python或C那么严格它极其精简但精简不等于乱来。理解它的一套固定规则后面写什么公式都顺。2.1 变量中间量与输出量的界定在通达信里变量分为“中间变量”和“输出变量”。中间变量用:赋值输出变量用:赋值。比如MA5:MA(C,5); {中间变量参与计算但不直接画线} MA10:MA(C,10); {输出变量会在指标窗口直接画线}这行代码里MA5被定义为中间变量它被算出来但不显示在指标窗MA10则会被绘制出来。很多人一开始不知道:和:的区别导致所有中间量全画出来了窗口乱成蜘蛛网。2.2 输出语句一条输出一条线别贪多每个输出语句对应一条曲线或一组柱子。老手写指标的习惯是“输出克制”能隐藏中间计算就尽量隐藏主图最多叠加三到五条趋势线副图指标控制在两三条核心线以内。因为输出越多图越丑数据越容易互相干扰。2.3 公式代码的书写规范与注释通达信公式的注释用花括号{}包裹比如{这是注释}。多写注释是个好习惯尤其是三个月后再看自己写的源码如果没有注释你会彻底忘记“当年为什么要这么判断”。命名规范上变量名尽量用字母加数字组合避免中文变量名——虽然通达信支持中文变量名但有些旧版本或导出导入场景下中文变量容易出乱码。特别是从论坛复制源码时中文注释和中文变量常常变成乱码的源头。2.4 数据周期和复权对公式的影响同一段公式放到日线、周线、分时图计算结果是完全不同的。因为C收盘价、H最高价等引用的数据在不同周期下数值不同。此外前复权、后复权、不复权状态下价格数据也不同会导致均线、指标数值全变。这其实不属于公式语法问题而是数据层面的问题。但新手经常困惑“我公式明明没改为什么不同电脑上选的股票不一样”大概率就是两台电脑的复权设置不一样。3. 函数才是公式的灵魂常用函数分类详解与实例通达信提供了一批内置函数涵盖了行情数据引用、数学计算、统计、绘图、条件判断等方方面面。这一节聚焦最常用、最能撑起一个指标骨架的函数。3.1 行情数据类函数指标的地基所有的技术指标都建立在行情价格和成交量数据之上。通达信里最核心的几个数据函数是OPEN开盘价、CLOSE收盘价、HIGH最高价、LOW最低价——简称OHLC。VOL成交量、AMOUNT成交额。DATE、TIME当前K线日期/时间。在公式里引用时不需要加括号直接写C就代表收盘价V代表成交量。这一点和大部分编程语言不同——通达信里“变量”和“函数”的区分没那么严格像C本身更像是系统内置的价格序列。3.2 数学运算与统计函数算法核心写指标一定会涉及计算和统计这几个函数出现频率极高函数作用示例MA(X,N)求X的N周期简单移动平均MA(C,20)表示20日均线EMA(X,N)求X的N周期指数移动平均EMA(C,12)常用于快线REF(X,N)引用N周期前的X值REF(C,1)表示昨收HHV(X,N)/LLV(X,N)N周期内最高值/最低值HHV(H,20)表示20日最高价SUM(X,N)N周期总和SUM(VOL,5)表示5日成交量总和ABS(X)绝对值ABS(C-O)表示实体大小CROSS(A,B)A上穿B返回1否则0CROSS(MA5,MA10)是经典金叉信号3.3 绘图与显示函数让指标“看得见”写了计算结果还要让它呈现在屏幕上。绘图类函数是“包装层”负责把数值变成图形。常用的有DRAWICON(COND,PRICE,TYPE)满足COND条件时在PRICE位置画图标。DRAWTEXT(COND,PRICE,TEXT)满足条件时写文字。STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY)画柱状线常用于满足某种条件时高亮K线。COLORRED、COLORBLUE等给线条或文字上色。DRAWKLINE(H,O,L,C)在副图绘制迷你K线图。比如下面这个例子我想在价格突破60日均线时在K线下方标一个“买”字MA60:MA(C,60); DRAWTEXT(CROSS(C,MA60),LOW*0.98,买),COLORRED;写完后副图或主图上满足条件的位置就会标注“买”字。这类“信号提示”极适合快速构建自己的观察体系。3.4 条件判断与逻辑运算公式的决策器技术指标不是只画线很多时候要做“判断”。通达信的条件表达方式和多数语言一致AND、OR、NOT、、、等都能用。例如我想表达“股价站上20日线且成交量大于5日均量的1.2倍”MA20:MA(C,20); VOL5:MA(VOL,5); COND:CMA20 AND VOLVOL5*1.2;这个COND就是一个布尔型0或1序列后续可以把它拿去画图、选股或者进一步叠加其他条件。3.5 引用类函数跨周期、跨股票取数通达信公式最强的地方之一是可以用“代码.数据”的格式引用其他股票或品种的数据。比如我在研究某只股票时想参考大盘指数的强弱可以在公式里写INDEXC:INDEXC;这就是引用大盘指数的收盘价。还有DRAWBK等跨周期函数能在日线上引用周线的均线数据。跨周期引用威力很大但坑也不少——尤其是周期对齐问题。用之前建议先小范围测试别一上来就放到选股公式里跑全市场。4. 从零搭建一个实战指标双均线量能突破公式的完整实现理论知识说再多不动手写一遍等于没学。我带大家写一个实际可用的主图叠加指标双均线量能突破。这个指标解决的真实问题是——当股价站稳20日均线、且成交量突然放大时给出“关注信号”。4.1 先明确交易逻辑任何指标在动手之前都应该先写清楚逻辑不然就是胡写一通。这里的逻辑很简单计算5日、20日均线。当前收盘价高于20日均线趋势向上。当日成交量大于5日均量的1.5倍放量。三条条件同时满足时在K线下方画信号。这个信号表达的语义是“震荡后可能出现方向选择且多头暂时占优。”注意这只是一个观察信号不是买入建议。4.2 编写源码打开通达信公式管理器新建一个“技术指标公式”命名为“双均线量能突破”代码如下{ 双均线量能突破 } MA5:MA(C,5),COLORWHITE; MA20:MA(C,20),COLORYELLOW; VOL5:MA(VOL,5); COND:CMA20 AND VOLVOL5*1.5 AND MA5REF(MA5,1); DRAWICON(COND,LOW*0.97,1);逐行解释第一行是注释用来标识公式名称和用途。MA5:MA(C,5),COLORWHITE;输出5日均线白色。MA20:MA(C,20),COLORYELLOW;输出20日均线黄色。VOL5:MA(VOL,5);计算5日均量作为中间变量不画线。COND是综合判断条件收盘价大于20日均线成交量大于5日均量的1.5倍且5日均线方向向上。DRAWICON(COND,LOW*0.97,1);符合条件时在最低价下方画一个图标图标编号为1通常是向上箭头。4.3 加载与观察公式写完后点击“测试公式”系统会告诉你有没有语法错误。确认通过后随便打开一只股票日线图按CtrlO或调出指标窗口找到“双均线量能突破”并加载。这时留意两点第一信号出现的位置是否均匀分布在K线下方如果全屏都是信号说明条件设得太宽如果一屏一个都没有说明条件太严。第二检查信号出现后股价后续走势看这个信号对你的观察体系有没有预测力。实际调试中你会发现很多信号出现在真假突破的临界点上这是正常现象——指标只是工具无法消除市场不确定性。4.4 参数化改造把数字变成可调节参数上面代码里5、20、1.5都是写死的下次想调参数还得改代码很麻烦。通达信支持参数定义在公式编辑器的参数设置区可以加三个变量N1默认5最小1最大60N2默认20最小1最大120N3默认1.5最小1.0最大5.0代码改成MA5:MA(C,N1),COLORWHITE; MA20:MA(C,N2),COLORYELLOW; VOL5:MA(VOL,N1); COND:CMA20 AND VOLVOL5*N3 AND MA5REF(MA5,1); DRAWICON(COND,LOW*0.97,1);这样你就能在指标参数窗口直接调N1、N2、N3不用进编辑器反复改代码。参数化的本质是把经验值和使用场景解耦让同一个公式适配不同周期、不同风格的观察需求。5. 写公式必踩的坑乱码、语法报错与信号缺失的完整排查链路写公式时遇到报错、乱码、信号不符合预期是每个新手的必经之路。我把自己踩过、看别人踩过的坑汇总一下按“现象→原因→解决”的方式拆解。5.1 从论坛复制的源码乱码了怎么处理这是最高频的问题。通达信论坛老源码里大量使用中文注释和中文变量名当你从网页复制到公式编辑器时由于网页编码和通达信内部编码不一致中文很容易变成乱码。排查链路先看乱码是只出现在注释里还是变量名也乱了。如果只是注释乱把整段注释删掉重写或直接清空不影响公式逻辑。如果是中文变量名乱码通常伴随语法错误。乱码破坏了变量名一致性系统认为“MA均线”和“MA线”是两个不同变量必然报错。最稳妥的办法是把所有中文变量名替换成英文比如“均价线:... ”改成AVGLINE:...。还有一个“元凶”——全角字符。有些源码是从Word或PDF里复制出来的括号、逗号、分号可能是全角符号通达信只认半角。先报错时优先检查是不是全角问题。5.2 语法报错最常见的原因通达信的报错信息对新手不算友好常见错误有“未定义的变量”代码里有个变量名根本没赋值就使用了。在通达信里没有被:或:定义过的名字系统不知道是什么。“缺少分号”每个完整语句行末要加分号。“括号不匹配”公式里嵌套括号多了少了都会有提示。这类错误建议从最外层逐层检查或者把长表达式拆成多行中间变量。我之前教朋友写公式他报错十次有八次是括号问题。后来我给他的建议是一行只写一个判断条件然后分步合并这样定位错误快得多。5.3 公式明明没报错但信号就是不出这是比语法错误更让人抓狂的情况。我也是从这种处境里爬出来的。你写了一段条件结果图上干干净净。排查思路按优先级来先分清是“条件永不成立”还是“条件成立但没画出来”。检查输出语句本身——比如DRAWICON的第二个参数绘制位置是否写在了图形范围之外。用临时输出验证条件。把COND直接作为输出变量画出来比如COND:条件判断;如果它在副图里画出来的值一直是0说明条件确实不成立不是绘图问题。检查条件中的除法或比值。是否可能出现除零比如VOLVOL5*1.5不会除零但如果你写的是VOL/VOL51.5而VOL5在某个周期为0整行判断就可能失效。检查REF引用的边界。用了REF(..., 20)之类的引用如果K线数量不足早期数据算不出来图形前端一片空白是正常的。5.4 指标信号“闪烁”的成因与化解信号闪烁指同一根K线盘中看有信号收盘后看没了。这在盘中选股时特别常见。本质原因是盘中数据在变化你的公式引用了未定型的价格或成交量数据。比如收盘价还在变动CMA20的条件就可能摇摆。解决方案分几种引进“确认延迟”当天收盘后基本定型再触发信号比如用次日开盘确认。用ISLASTBAR判断是否是最后一根K线盘中不对当前K线输出信号。选股公式跑盘后数据用日线收盘数据回测别拿它盘中预警。这个坑极容易踩但很多教程不会说。我自己的经验是盘中预警公式要单独写别跟收盘复盘公式混用两种时间尺度对信号的稳定性要求完全不同。6. 从指标到选股公式类型转换与效率优化写指标不只是为了看图很多人最终的目标是让电脑帮忙把全市场几千只股票筛一遍。这就涉及从“指标公式”到“条件选股公式”的转换。6.1 指标公式怎么变成选股公式原则很简单条件选股公式里你只需要给出一个最终逻辑判断结果末尾必须有且仅有一个输出值非0即视为满足条件。比如前面写的“双均线量能突破”指标如果要做成选股公式就把输出和画图部分全部去掉只保留条件MA5:MA(C,5); MA20:MA(C,20); VOL5:MA(VOL,5); COND:CMA20 AND VOLVOL5*1.5 AND MA5REF(MA5,1); COND;最后一行COND;是选股结果输出。条件选股器会扫描每只股票最后一根K线COND等于1就被选出来。注意选股公式不能有画线、写文字等绘图语句否则在选择器里会提示“条件选股公式不允许包含绘图函数”。6.2 选股公式跑不快性能瓶颈在哪如果你把公式放在“条件选股”里全市场扫描有时会发现速度很慢。瓶颈往往出在这几个地方跨周期引用太多每次计算都要做周期换算。引用了大量其他股票数据比如在每只股票里都去引用全市场指数计算量大。公式里写了复杂的循环逻辑通达信脚本本身不是为高频循环设计的尽量避免。优化长年跑选股的公式我的经验是把不必要的历史周期压缩比如HHV(H,250)这种长周期引用计算成本比HHV(H,10)高很多如果选股逻辑并不需要这么长的历史窗口就把周期降下来。另外选股前先在自选股里跑通逻辑再放到全部A股去跑不然一个报错或死循环会耗掉你半小时。6.3 预警公式与排序功能通达信的条件预警功能允许你设置实时候选池一旦某只股票满足条件就弹窗或发消息。公式逻辑和选股公式一致但要注意盘中数据的不稳定性前面说的“信号闪烁”问题在预警场景会被放大。如果你想做盘中预警最好在条件里加一条“当日涨幅在某区间”或“成交量已基本稳定”之类的过滤减少频繁触发。还有一个被很多人忽视的宝藏功能是“指标排序”。在报价表界面右键选择“指标排序”可以把全市场股票按某个指标的数值从大到小或从小到大排列。比如按“当日量比”或“5日涨幅”排序瞬间就能找到当前市场最活跃的票。这个功能不需要选股公式那么严格的单一输出指标公式本身就能排。7. 公式的进阶方向DLL扩展、最新函数与常见问题解答到这一节你已经能把普通指标公式写通了。再往上走会碰到两类问题一是通达信内置函数不够用怎么办二是遇到一些奇奇怪怪的新函数和新需求怎么处理。7.1 DLL扩展什么时候你需要写底层代码通达信公式语言功能再强也覆盖不了所有计算需求。当你需要复杂的排序算法、自研数据接口、外部数据接入时就得考虑写DLL插件。通达信DLL编写的思路是在C/C里实现特定接口函数编译成DLL放到通达信指定目录然后在公式里用DLLCALL之类的函数调用。这个话题非常大普通用户通常用不到但如果你写量化或高频分析会绕不开。这里只提醒三件事DLL接口要按通达信官方提供的头文件和数据交换结构来写调用约定、参数顺序都不能出错。用32位还是64位DLL要看你的通达信版本弄错直接加载失败。DLL发布后务必在不同行情环境下测试处理空数据、停牌数据时最容易崩。我自己建议能用公式函数解决的事绝不上DLL。DLL维护成本高、门槛陡峭、出错不好排查除非公式实在实现不了否则不要轻易碰。7.2 通达信软件里的行业板块与概念板块数据引用很多人想在公式里分析板块归属。通达信提供了板块相关的函数比如通过“板块指数”、BLOCKSETNUM等函数获取板块数据。实际中我更多是配合自定义板块来用把自选股按逻辑分组然后公式里引用自定义板块数据可以大幅减少误选。但要注意通达信里的行业板块和概念板块会不定期调整。你之前写的公式依赖某个行业分类如果板块成分变了指标信号自然也会变。这就是为什么有些股友会发现“软件里的行业板块怎么变了”的原因——这类变动是数据源层面的不是公式层面能控制的。做板块轮动策略时最好定期核对板块成分股列表避免拿旧数据跑新策略。7.3 常用函数速查RSI、SAR、SAR等指标源码的逻辑框架论坛上经常有“RSI指标源码公式”“SAR指标公式源码”之类的帖子。其实这些经典指标通达信内置都带了你看源码只是为了理解它们的计算逻辑。RSI的核心是考察一段时间内收盘涨跌幅的力量对比源码里离不开SMA、MAX、ABS这些函数SAR则用到IF嵌套和REF递推写出准确版本并不容易。对初学者来说复盘经典指标源码的最大价值不是“重新发明轮子”而是看懂它的骨架提炼出函数组合套路。我把这套阅读源码的方法总结成三个步骤先找输出变量确认它画什么线。沿着输出变量的赋值关系向前倒推列出依赖的中间变量。把中间变量归类哪些是数据引用哪些是统计计算哪些是条件判断哪些是绘图指令。理顺这三步一份看似十几行的源码半小时内就能完全吃透。7.4 遇到“指标带密码”怎么办通达信允许公式作者设置密码保护阻止查看源码。网上下载的指标常有“指标带密码怎么解锁”的疑问。这里要明确一点如果作者没有公开源码反编译或破解密码在软件许可和版权角度都不受支持而且你根本不知道加密源码背后隐藏了什么交易逻辑随便拿来用风险极高。我的建议是绕开有密码的指标找同思路的开源写法。绝大多数所谓“独门指标”脱掉加密外壳后底层逻辑无非是量价、均线、波动率的组合你自己写完全可以实现还更清楚它的适用边界。8. 复盘与心得我的通达信公式学习路径与几句话忠告我把上面这些内容整理下来回想自己从完全看不懂公式到能独立写选股、调试DLL插件的过程其实没那么多神秘感就是“概念理解—拆解源码—动手改写—踩坑复盘”反复循环。如果你刚入门我建议按这个顺序走先把公式编辑器里每个按钮摸一遍然后手打一遍MA均线公式再看MACD/KDJ的源码自己照着思路写一个“价格突破N日高点”的选股条件最后再把选股结果导出来和手动复盘对比看看选出来的东西靠自己眼睛能不能发现共同特征。踩过几次坑之后你会慢慢形成自己的“公式工具箱”。比如我自己的库里放着趋势类、量能类、情绪类、风险过滤类四个文件夹每个文件夹下的公式都留有参数调整记录和适用场景备注。时间久了它们就像兵器库里的一件件工具什么时候用什么心里大概有数。最后一句话公式写得好不好不取决于你会背多少函数而取决于你对你盯的那只股票、那个板块的走势特征有多熟悉。指标永远是工具市场永远是第一个老师。本文还有配套的精品资源点击获取