深入解析通达信公式编写逻辑,从基础指标到高级选股策略,助您打造专属交易体系。
涵盖:技术指标编写 · 选股公式开发 · 交易信号优化 · 实战案例解析
在股票投资中,标准化的技术指标往往无法满足个性化需求。通过掌握通达信公式,您可以:
本教程旨在为您提供一套完整的通达信公式学习路径,无论是零基础新手还是有一定编程经验的投资者,都能在这里找到所需的知识。
掌握通达信公式的语法是编写任何指标或选股策略的前提。以下是最核心的概念和函数。
通达信公式主要处理数值型数据。常见的内置变量包括:
| 变量名 | 含义 | 示例 |
|---|---|---|
| CLOSE | 收盘价 | CLOSE > 10.5 |
| OPEN | 开盘价 | OPEN < CLOSE |
| HIGH | 最高价 | HIGH 0.98 |
| LOW | 最低价 | LOW + 0.1 |
| VOL | 成交量 | VOL > MA(VOL, 5) |
| AMOUNT | 成交额 | AMOUNT / VOL |
函数是公式的灵魂。以下是编写通达信公式时最常用的几类函数:
MA(CLOSE, N):计算N日简单移动平均线。
EMA(CLOSE, N):计算N日指数移动平均线,对近期价格更敏感。
REF(CLOSE, N):引用N日前的收盘价。
例如:REF(CLOSE, 1) 表示昨收,REF(CLOSE, 5) 表示5日前的收盘价。
COUNT(COND, N):统计N周期内满足条件COND的次数。
BARSLAST(COND):上一次条件成立到当前的周期数。
IF(COND, A, B):如果COND为真,返回A,否则返回B。
CROSS(A, B):A上穿B,即金叉。
通达信公式主要分为技术指标公式和选股公式,它们的输出方式有所不同:
当掌握基础语法后,您可以尝试更复杂的逻辑,以实现更精准的交易信号。
利用通达信公式的多周期引用功能,您可以在日线图上参考周线或月线的数据。这有助于判断大趋势对当前小级别行情的影响。
// 示例:获取周线的收盘价 WEEK_CLOSE := REF(C, (WEEKDAY - 1)); // 简化示例,实际需使用特定函数如 WMA 或引用周线数据 // 更准确的方式是使用“周期引用”功能,或在公式中设置“多周期”参数
在编写选股公式时,经常需要组合多个条件。使用 AND(与)、OR(或)、NOT(非)可以构建复杂的筛选逻辑。
// 示例:股价突破20日均线,且成交量放大超过昨日 COND1 := C > MA(C, 20); COND2 := V > REF(V, 1) 1.5; XG: COND1 AND COND2;
在编写通达信公式时,务必警惕“未来函数”(如ZIG, PEAK, TROUGH)。这些函数会根据后续数据改变历史信号,导致回测结果失真。建议使用REF、MA等确定性函数。
以下是几个经典的通达信公式案例,您可以直接复制到软件中测试。
逻辑描述:股价在低位盘整后,突然出现成交量放大,且收盘价站上5日均线。
// 定义低位:过去60天内最低价 LOWEST_LOW := LLV(LOW, 60); // 当前价格在低位附近(例如低于前期高点的80%) IN_LOW_POSITION := C < HHV(HIGH, 60) 0.8; // 成交量放大:今日成交量大于5日均量的1.5倍 VOL_SURGE := VOL > MA(VOL, 5) 1.5; // 价格站上5日线 CROSS_5MA := C > MA(C, 5); // 最终选股条件 XG: IN_LOW_POSITION AND VOL_SURGE AND CROSS_5MA;
使用说明:将此代码保存为选股公式,运行后筛选出的股票可能在短期内有上涨动能。
逻辑描述:5日、10日、20日均线依次向上排列,表明趋势强劲。
MA5 := MA(C, 5); MA10 := MA(C, 10); MA20 := MA(C, 20); // 多头排列条件 LONG_ARRANGE := MA5 > MA10 AND MA10 > MA20; // 趋势向上:今日收盘价大于昨日收盘价 TREND_UP := C > REF(C, 1); // 选股输出 XG: LONG_ARRANGE AND TREND_UP;
使用说明:适用于趋势跟踪策略,在牛市或个股主升浪中效果较好。
逻辑描述:MACD出现金叉,且成交量同步放大。
// MACD计算 DIF := EMA(C, 12) - EMA(C, 26); DEA := EMA(DIF, 9); MACD := (DIF - DEA) 2; // 金叉条件 GOLDEN_CROSS := CROSS(DIF, DEA); // 成交量放大 VOL_INCREASE := VOL > REF(VOL, 1); // 选股输出 XG: GOLDEN_CROSS AND VOL_INCREASE;
使用说明:结合成交量过滤假金叉,提高信号可靠性。
熟悉通达信软件界面,了解基本指标(MA, MACD, KDJ)的含义和用法。阅读本教程第一部分。
学习公式编辑器,掌握变量、函数、逻辑运算符。尝试修改现有指标,理解其代码逻辑。
根据交易策略编写自定义指标和选股公式。使用历史数据回测,优化参数。
探索多周期引用、自定义画图函数、条件选股预警等高级功能,构建完整的量化交易体系。
常用函数包括:MA(移动平均线)、EMA(指数移动平均线)、REF(引用前N日数据)、COUNT(统计满足条件的周期数)、IF(条件判断)、HIGH(最高价)、LOW(最低价)、OPEN(开盘价)、CLOSE(收盘价)、VOL(成交量)、AMOUNT(成交额)等。
在公式编辑器中,点击“测试公式”按钮,系统会检查语法错误。此外,可以使用“画线工具”或“输出变量”在K线图上直观查看中间变量的值,逐步排查逻辑问题。如果公式运行缓慢,检查是否有复杂的循环或大量计算。
通达信本身不提供强大的自动化回测引擎,但可以通过“条件选股”功能手动统计历史信号,或使用其自带的“策略测试器”(部分版本支持)进行简单回测。对于复杂回测,建议导出数据到其他平台(如Python、Excel)进行详细分析。
未来函数(如ZIG, PEAK, TROUGH, BACKSET)会根据后续数据改变历史信号。例如,ZIG函数在价格反转后会重新绘制之前的信号,导致回测结果看似完美,但实盘中无法复现。因此,在编写选股和交易公式时,应避免使用未来函数。
优化建议:1. 减少不必要的计算,如使用REF替代复杂循环;2. 设置合理的参数范围,避免过拟合;3. 使用“条件选股”时的“执行范围”限制,只在特定板块或股票池中运行;4. 定期更新公式,适应市场变化。