简介:通达信指标公式编辑教程大全(函数+指标+实例)是一份围绕TDX公式系统的完整教程,面向股票技术分析爱好者与量化选股初学者,系统讲解如何利用行情数据进行指标编写、条件选股与交易系统建模,覆盖从公式基础到策略验证的完整链路。文档依次介绍了技术指标公式、条件选股、五彩K线、交易系统、公式管理器等核心模块的编辑与调用方法,涵盖函数语法、参数设置、主图叠加与副图坐标、公式加密输出等细节,并结合具体实例演示从新建公式到回测验证的完整流程。资源仅含1个docx文档,共553KB,内容紧凑,便于按章节索引公式编辑器与函数参考;目前已有293人学习,适合希望自主搭建选股策略、理解通达信公式底层逻辑的投资者快速上手。
1. 通达信公式系统:一套被低估的行情描述语言
通达信的公式系统,本质上是一套面向行情数据的领域专用语言(DSL)。它不像 Python 那般通用,却在行情序列处理上有着极高效率:你不需要写循环,REF、HHV、COUNT这类函数天然按周期迭代,这让指标表达从“算法实现”变成了“规则描述”。很多人把精力花在四处找所谓“源码”上,却忽略了公式编辑器本身就提供了完整的调试、测试和参数优化环境。本文以《通达信指标公式编辑教程大全(函数+指标+实例)》为主线,把公式管理器的四类编辑器、关键函数语义和常见坑点一次讲透,适合刚接触公式编写、想从“抄指标”转向“写指标”的投资者,也适合需要用通达信做量化验证的 IT 从业者。文中涉及的所有函数名和调用方式均以通达信内置语法为准。
2. 四类公式编辑器:先分清你要写的是哪一种
2.1 技术指标公式:唯一可以画线的类型
技术指标公式是四类编辑器里最基础、也是唯一直接输出图形曲线的类型。它的核心约束是:至少一条输出线,最多六条输出线。这个限制决定了它的用途——表达“状态”,而不是表达“动作”。比如常见的 MACD,DIF、DEA、MACD 柱三条线,就是典型的技术指标输出。
画线方法分为主图叠加和副图两种。主图叠加适合围绕价格波动的指标,比如均线系统;副图适合表达量能、动量类数据,比如 RSI、KDJ。判断标准很简单:输出值的量纲是否与价格一致,一致就主图,不一致就副图。
在公式管理器中新建技术指标时,需要注意“坐标位置”这一项。它允许你指定在哪些数值处画水平坐标线,比如 RSI 可以设置0;20;50;80;100,这样超买超卖区域一目了然。这个设置只对副图指标生效,主图叠加指标不显示该选项。
2.2 条件选股公式:单输出的布尔判断
条件选股公式的核心特征是:有且仅有一个输出,且输出逻辑是“是否满足条件”。它不关心条件成立后怎么画线,只关心当前周期是否触发信号。典型应用场景是:选出最近一个周期出现金叉的股票。
这里要特别注意它与五彩 K 线公式的区别。条件选股只对最新数据做判断,也就是说它天然是“当前周期视角”;而五彩 K 线公式对历史所有数据都做提示,输出是在 K 线图上用颜色标注。用工程化的语言说,条件选股是“单次查询”,五彩 K 线是“全量标注”。
2.3 交易系统公式:带上买卖规则的完整闭环
交易系统公式在条件选股的基础上做了延伸:它要求恰好两个输出——买入点和卖出点。这两个输出被系统用来做模拟交易,进而可以统计胜率、收益曲线、最大回撤等指标。
这个设计对量化思维非常重要。很多人在写指标时只关注“买点”,忘记了“卖点才是决定盈亏的关键”。交易系统公式强迫你同时定义买入和卖出规则,否则无法通过编译。它还支持参数优化,可以针对不同参数组合做回测,选出历史表现最优的参数集。
2.4 五彩 K 线公式:条件选股的视觉化变体
五彩 K 线公式是条件选股公式的“染色版本”。它同样只有单一输出,但输出的结果不是选股列表,而是对 K 线形态进行颜色标注。适合用来识别连续形态,比如三连阳、跳空缺口、放量长阳等。
一个实用的做法是:先写好条件选股公式,确认逻辑正确后,复制一份改成五彩 K 线公式,把输出改为条件赋值即可。这样既保留了选股能力,又能在 K 线图上直观看到历史所有触发点。
3. 公式编辑器的关键设置与调试手段
3.1 参数设计:从“写死”到“可调”
公式可以携带 0 到 6 个参数,每个参数需要设定名称、最小值、最大值和缺省值。参数的意义在于把“经验值”从算法中剥离出来,让使用者不需要修改公式本体就能调整灵敏度。
以均线金叉为例:
M1:=MA(CLOSE,5); M2:=MA(CLOSE,10); CROSS(M1,M2);如果直接把周期写死为 5 和 10,那么每次调整都需要进入公式编辑器修改源码。更规范的做法是参数化:
N1:=5; N2:=10; M1:=MA(CLOSE,N1); M2:=MA(CLOSE,N2); CROSS(M1,M2);但这样依然不够优雅。正确的做法是在公式编辑器的参数表中定义 N1、N2 两个参数,设置最小值和最大值(比如 1 到 250),这样在调用指标时可以直接通过鼠标调整参数滑块,无需进入编辑器。参数精灵则允许你用一段文字描述参数的用法,其中Param#1会被替换为第一个参数的实际值。
设计参数时有一个容易被忽略的原则:最小值与最大值的跨度决定了参数的“可探索空间”。跨度太小,参数优化失去意义;跨度太大,优化耗时且容易过拟合。常见做法是给出 1 到 250 的默认范围,再根据实际经验收敛到常用区间。
3.2 密码保护:加密公式的边界
公式编辑器提供密码保护功能,勾选后需要输入密码,加密后的公式在修改、查看和导出时都需要密码验证。这里有一个实际使用中的坑:加密公式的图标是红色锁形,系统自带公式是绿色锁形,如果你要修改系统自带公式,建议先另存为用户公式再修改,避免影响系统原始定义。
密码保护会对公式内容做混淆处理,但这不代表绝对安全。如果你从外部引入公式,发现源码不可见,说明对方做了加密。此时若要参考其算法,只能通过输出结果反推,无法直接查看源码。
3.3 公式测试与动态提示
测试公式按钮用于检查语法错误。通达信的公式语法错误提示相对明确,常见的有:
- 函数参数个数不匹配
- 变量未定义
- 括号不匹配
- 输出线数量超过限制
动态提示功能在输入函数名时同步显示中文语义,对初学者非常友好。但要注意:动态提示只对标准函数库生效,自定义变量不会触发提示。
3.4 画线方法与坐标设置
画线方法的选择直接决定指标的可读性。主图叠加指标没有独立的坐标空间,它直接叠加在 K 线图上,因此数值范围必须与价格匹配。副图指标拥有独立的坐标空间,可以自由设定坐标范围。
坐标位置的设置支持分号分隔的多个数值,系统会在指定位置画水平线。这些线是辅助参考线,常见于 RSI(30/50/70)、KDJ(20/80)等超买超卖类指标。
额外 Y 轴分界是一个容易被忽略的功能。它允许你在副图坐标中标记重要的数值分界线,以白色线显示。区别于坐标位置(深红色线),额外 Y 轴分界更适合标记“关键阈值”而非“常规分位”。
4. 函数语义精讲:从“会用”到“用对”
4.1 大盘函数与常数函数:数据维度的切换
通达信公式系统的数据维度分为个股和大盘两层。大盘函数以INDEX为前缀,包括收盘价(INDEXC)、成交量(INDEXV)、上涨家数(INDEXADV)等。这些函数用于判断个股与大盘的相对强弱,比如计算个股涨跌与大盘涨跌的差值。
常数函数中最常用的是CAPITAL和FINANCE。CAPITAL返回流通盘大小,以手为单位。换手率公式可以写作100*VOL/CAPITAL,这里的 100 是百分比换算系数。FINANCE(N)按编号返回财务数据,比如FINANCE(30)是净利润,FINANCE(33)是每股收益。
使用FINANCE函数时有一个时间窗口的问题:财务数据是定期更新的,通常滞后于行情数据。在选股公式中使用财务数据时,要注意数据更新日期,否则可能用到过期数据。动态行情函数DYNAINFO(N)则是实时数据,比如DYNAINFO(7)是最新价,DYNAINFO(3)是昨收。两者的本质区别在于:FINANCE是周期性更新的静态数据,DYNAINFO是逐笔变动的动态数据。
4.2 引用函数:时间序列的核心操作
引用函数是通达信公式系统最精华的部分。REF(X,A)引用 A 周期前的 X 值,是所有跨周期比较的基础。REF(CLOSE,1)在日线上就是昨收。REFDATE(X,A)则引用指定日期的数据,需要传入具体的日期格式,比如REFDATE(CLOSE,20240101)表示 2024 年 1 月 1 日的收盘价。
BARSLAST(X)返回上一次条件成立到当前的周期数,这个函数在统计“距离上次某事件发生多久”的场景中极其有用。比如统计上一次涨停到当前的周期数:
ZT:=CLOSE/REF(CLOSE,1)>=1.095 AND CLOSE=HIGH; BARSLAST(ZT);BARSSINCE(X)返回第一次条件成立到当前的周期数,适合用来计算“上市以来第一次满足某条件的时间距离”。比如:
BARSSINCE(HIGH>20);COUNT(X,N)统计 N 周期内条件 X 成立的次数,SUM(X,N)求和,HHV(X,N)和LLV(X,N)求极值。这里需要特别注意的是 N 的取值:N=0表示从第一个有效值开始。这在高频数据或新股上市初期会引入极大计算量,要注意选股时的性能开销。
BACKSET(X,N)是较难理解的函数之一:它将当前位置到 N 周期前的数据设为 1。它的应用场景是“标记某个条件成立后的回溯区间”,常用来做信号确认。典型误区是把它与FILTER混淆。FILTER(X,N)是条件成立后过滤后续 N 周期的重复信号,两者用途相反。
4.3 指标函数:成本分布与转向类函数
COST(X)表示 X% 获利盘的价格,该函数仅对日线分析周期有效。它基于筹码分布理论计算,是衡量套牢盘与获利盘比例的重要工具。典型用法:
COST(10);表示 10% 获利盘的价格,即有 10% 的持仓量在该价格以下,其余 90% 为套牢盘。这个函数在判断支撑位时有独特价值。
PEAK(K,N,M)与PEAKBARS(K,N,M)基于之字转向函数ZIG(K,N),用于识别波峰及其位置。K 取 1 表示最高价,0 表示开盘价,N 为转向百分比。这类函数适合自动识别高低点,但需要注意:ZIG函数使用未来数据,在实盘中会出现信号漂移,不建议直接用于交易信号,更适合用于历史形态统计。
SAR(N,S,M)是抛物转向指标,N 为计算周期,S 为步长,M 为极值。SARTURN(N,S,M)返回转向信号(1 表示向上转向,-1 表示向下转向)。SAR 指标在趋势行情中表现优异,但在震荡行情中会频繁翻转,参数设置时步长不宜过小。
4.4 移动平均族函数:MA、EMA、SMA 的差异
MA(X,N)是简单移动平均,权重均等;EMA(X,N)是指数平滑移动平均,近期数据权重更大;SMA(X,N,M)是变权移动平均,通过 M 调节平滑程度。三者看似相近,实则算法逻辑差异很大:
MA(CLOSE,5); // 5日均价 EMA(CLOSE,5); // 5日指数平滑均价 SMA(CLOSE,5,1); // 5日变权均价,M=1时为特殊EMAEMA的递归性质使得它在数据量较小时与MA差异明显,早期数据点权重被反复衰减。DMA(X,A)是动态移动平均,平滑因子 A 是变量序列,典型用法DMA(CLOSE,VOL/CAPITAL)是用换手率作为平滑因子,将成交量因素纳入价格平滑逻辑中。
5. 从指标到选股再到交易系统:一条完整的上手路径
很多人在学会单个函数后就停下来了,但通达信公式的真正价值在于“组合”。这里给出一个完整的上手路径:以均线系统为蓝本,逐步扩展成条件选股公式和交易系统公式。
5.1 第一步:先写一个副图技术指标
N:=5; M:=10; MA1:=MA(CLOSE,N); MA2:=MA(CLOSE,M); DIF:MA1-MA2,COLORSTICK;这段代码计算两条均线的差值,并用柱线显示在副图上。COLORSTICK是红绿柱的画线方法,当差值为正时显示红色,为负时显示绿色。先确保这条公式能正确编译显示,再进一步扩展。
5.2 第二步:扩展为条件选股公式
N:=5; M:=10; MA1:=MA(CLOSE,N); MA2:=MA(CLOSE,M); CROSS(MA1,MA2);条件选股公式只保留最后一个输出,且必须是逻辑判断。CROSS(MA1,MA2)表示 MA1 上穿 MA2,即金叉。这里的:=是中间变量赋值,不产生输出线。
写选股公式时有一个常见错误:把多个输出都写在公式里。条件选股公式只允许一条输出,必须用中间变量屏蔽掉图形输出。
5.3 第三步:升级为交易系统公式
N:=5; M:=10; MA1:=MA(CLOSE,N); MA2:=MA(CLOSE,M); ENTERLONG:CROSS(MA1,MA2); EXITLONG:CROSS(MA2,MA1);ENTERLONG和EXITLONG是交易系统公式的固定输出名称,分别表示买入和卖出信号。系统会根据这两个信号进行模拟交易。这种均线金叉死叉系统过于简单,实盘效果有限,但作为理解交易系统机制的最小可行示例是合适的。
5.4 参数优化与验证
交易系统公式支持参数优化功能。设置 N 和 M 的取值范围(比如 1 到 60),系统会在每个参数组合下执行模拟交易,输出收益、胜率、最大回撤等统计数据。这本质上是一种网格搜索的参数调优方法,与机器学习中的超参搜索类似。
优化时要注意过拟合风险:历史表现最好的参数组合在未来未必有效。一个折中的做法是分段验证,比如用前 3 年数据选出最优参数,再用后 1 年数据验证该参数的表现,而非直接选用全量数据下的最优参数。
5.5 实战:一个包含过滤条件的选股公式
ZT:=CLOSE/REF(CLOSE,1)>=1.095 AND CLOSE=HIGH; COUNT(ZT,5)>=2 AND MA(CLOSE,5)>MA(CLOSE,10);这段代码选出最近 5 日出现至少 2 次涨停、且 5 日均线在 10 日均线上方的股票。COUNT(ZT,5)>=2是强度过滤条件,MA(CLOSE,5)>MA(CLOSE,10)是趋势过滤条件,两个条件叠加有效降低了信号频率。运行选股前建议先用测试公式检查语法,再通过条件选股平台跑全市场。如果结果数量过大,增加过滤条件;如果结果过少,放宽COUNT的周期或次数阈值。
另外值得强调的是公式编辑器中容易被忽略的用法注释功能。在公式发布或自用留存时,在用法注释中注明算法逻辑、参数含义和使用注意事项,几个月后回头看代码时会省去大量回忆成本。配合参数精灵,可以把参数调整与含义说明同步呈现。这两项习惯的价值,在公式从“自用”转向“分享”时体现得最为明显。
本文还有配套的精品资源,点击获取