通达信(TDX)公式编程助手。当用户需要编写、修改、解释通达信指标公式、选股公式、交易系统公式或五彩K线公式时使用此技能。覆盖公式语法、函数库、绘图、选股逻辑、资金分析、筹码分布、主力监控等全场景。适用于从零基础入门到高级量化策略编写的所有需求。触发词包括但不限于:通达信公式、写指标、选股公式、副图指标、主图指标、TDX formula、MACD公式、KDJ公式、布林带、均线、涨停、主力资金、筹码、换手率、量价关系、金叉死叉、波段、起爆、预警公式等。
通达信公式编程助手 (TDX Formula Assistant)
功能概述
通达信公式编程助手 (TDX Formula Assistant)是一项面向实际任务的技能,主要用于本技能帮助用户编写通达信(TDX)公式系统的各类公式,包括技术指标公式、条件选股公式、;交易系统公式和五彩K线公式;
核心要点
- 通达信公式系统是一套功能强大的计算机描述语言,通过对;
- 每日行情数据和财务数据进行运算,输出指标曲线、选股结果或交易信号;
- 适用场景:;
使用与执行
编写均线、MACD、KDJ、布林带、RSI等技术指标;编写条件选股公式(涨。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
结果检查与注意事项
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通达信公式编程助手 (TDX Formula Assistant)
概述
本技能帮助用户编写通达信(TDX)公式系统的各类公式,包括技术指标公式、条件选股公式、 交易系统公式和五彩K线公式。通达信公式系统是一套功能强大的计算机描述语言,通过对 每日行情数据和财务数据进行运算,输出指标曲线、选股结果或交易信号。
适用场景:
- 编写均线、MACD、KDJ、布林带、RSI等技术指标
- 编写条件选股公式(涨停、放量、突破、金叉等)
- 编写主力资金、筹码分布、控盘度等高级指标
- 编写主图叠加指标或副图指标
- 编写五彩K线形态识别公式
- 编写交易系统买卖信号公式
- 解释或修改现有公式
- 优化公式参数和逻辑
参考文档索引
本技能包含以下参考文档,按需加载:
references/syntax_guide.md— 公式语法规则、数据类型、运算符、公式类型详解(编写任何公式前必读)references/functions_reference.md— 完整函数库手册,按类别索引(查找具体函数用法时加载)references/formula_examples.md— 实战公式案例库,按策略类型分类(参考已有公式或寻找灵感时加载)references/common_patterns.md— 常用公式模式与代码模板(快速套用时加载)
加载策略:先通读本SKILL.md掌握核心概念与工作流,再根据具体任务加载对应参考文档。
核心语法速览
语句结构
每条语句由四部分组成,必须以英文分号 ; 结尾:
变量名 赋值符 表达式 ;
两种赋值符(关键区别)
| 赋值符 | 含义 | 是否在图上画线显示 | 示例 |
|---|---|---|---|
: |
输出赋值 | 是,变量名和值会显示在界面,并画出曲线 | MA5:MA(C,5); |
:= |
中间赋值 | 否,仅用于计算,界面不可见但代码可引用 | MA10:=MA(C,10); |
行情数据简写
| 全称 | 简写 | 含义 |
|---|---|---|
| CLOSE | C | 收盘价 |
| OPEN | O | 开盘价 |
| HIGH | H | 最高价 |
| LOW | L | 最低价 |
| VOL | V | 成交量(手) |
| AMOUNT | AMO | 成交额(元) |
运算符
- 算术:
+-*/ - 比较:
><>=<==!=(注意:等于用单=) - 逻辑:
AND(或&&)、OR(或||)、NOT - 注释:
{ 这是注释 }
最简公式示例
{ 5日均线指标 }
MA5:MA(C,5);
MA10:MA(C,10);
{ 均线金叉选股公式 }
XG:CROSS(MA(C,5),MA(C,10));
四大公式类型
| 类型 | 用途 | 输出要求 | 安装位置 |
|---|---|---|---|
| 技术指标公式 | 在图上画出指标曲线 | 1~50条输出线 | 主图叠加 / 副图 |
| 条件选股公式 | 筛选符合形态的个股 | 仅1个输出(0或1) | 选股器 |
| 交易系统公式 | 标注买卖信号并回测 | 买入/卖出信号 | 交易系统 |
| 五彩K线公式 | 给K线着色标识形态 | 仅1个输出 | K线图(Ctrl+K) |
选股公式编写要点:将指标公式中的画线输出(:)改为不输出赋值(:=),最后一条语句
用 : 输出一个0/1逻辑值即可。例如:
{ 指标公式版本 }
MA5:MA(C,5);
金叉:CROSS(MA5,MA(C,10));
{ 转为选股公式 }
MA5:=MA(C,5);
XG:CROSS(MA5,MA(C,10));
公式编写工作流
步骤1:明确需求
向用户确认以下要素:
- 公式类型:选股公式?主图指标?副图指标?五彩K线?交易系统?
- 核心逻辑:想捕捉什么信号?(金叉?涨停?放量突破?主力进场?)
- 适用周期:日线?周线?分钟线?
- 过滤条件:是否排除ST股?排除科创板/创业板?价格区间限制?
步骤2:选择函数
根据需求查阅 references/functions_reference.md 选择合适函数:
| 需求方向 | 关键函数 |
|---|---|
| 均线趋势 | MA, EMA, SMA, WMA, CROSS, REF |
| 量价关系 | VOL, AMOUNT, MA(V,N), SUM |
| 涨跌幅 | REF(C,1), C/REF(C,1), ZTPRICE, DTPRICE |
| K线形态 | OPEN, CLOSE, HIGH, LOW, ABS, MAX, MIN |
| 筹码分布 | COST, WINNER, PPART, LWINNER |
| 资金流向 | AMOUNT, VOL, FINANCE, DYNAINFO |
| 技术指标 | RSI, KDJ, MACD, BOLL, CCI, DMI |
| 时间周期 | PERIOD, DATE, TIME, YEAR, MONTH, DAY |
| 板块过滤 | INBLOCK, CODELIKE, NAMELIKE |
| 财务数据 | FINANCE, FINVALUE, FINONE, GPJYVALUE |
| 统计计算 | HHV, LLV, COUNT, SUM, STD, AVEDEV, SLOPE |
| 绘图标注 | STICKLINE, DRAWTEXT, DRAWICON, DRAWBAND |
步骤3:编写公式
遵循以下规范:
- 所有标点符号必须使用英文半角
- 每条语句以分号
;结尾 - 中间变量用
:=赋值,输出变量用:赋值 - 选股公式最后一条输出语句命名为
XG或具有描述性的名称 - 用
{ }添加注释说明每段逻辑 - 变量名不能以数字开头,不能与函数名冲突
- 中文变量名可以使用,但建议用英文或拼音以避免编码问题
步骤4:添加修饰与绘图(仅指标公式)
指标公式可添加颜色、线型等修饰:
MA5:MA(C,5),COLORWHITE,LINETHICK2; MA10:MA(C,10),COLORYELLOW; MA20:MA(C,20),COLORMAGENTA,DOTLINE;
常用修饰符:
- 颜色:COLORRED, COLORGREEN, COLORBLUE, COLORYELLOW, COLORWHITE, COLORMAGENTA, COLORCYAN
- 线宽:LINETHICK1 ~ LINETHICK7(数字越大越粗),LINETHICK0 不画线
- 线型:DOTLINE(虚线), POINTDOT(点线), CIRCLEDOT(圆点), CROSSDOT(十字)
- 特殊:NODRAW(不画线仅计算), STICK(柱状), VOLSTICK(成交量柱), COLORSTICK(彩色柱)
步骤5:验证与优化
检查清单:
- 所有标点为英文半角
- 每条语句有分号结尾
- 括号配对完整
- 变量名无冲突
- 选股公式仅有一个输出
- 无未来函数误用(BACKSET, REFX, ZIG, XMA等是未来函数,选股慎用)
- 逻辑条件合理,不过于宽松或严苛
- 添加了适当的过滤(ST排除、涨跌幅限制等)
常见公式模板
模板1:均线金叉选股
MA短:=MA(C,5); MA长:=MA(C,10); XG:CROSS(MA短,MA长) AND VOL>REF(VOL,1);
模板2:涨停板选股
{ 通用涨停判断(含科创板/创业板20%、ST股5%)}
涨跌系数:=IF((INBLOCK('科创板') OR INBLOCK('创业板')),0.1988,
IF(INBLOCK('ST板块'),0.04988,0.0988));
涨停:=C>=ZTPRICE(REF(C,1),涨跌系数) AND C=H AND PERIOD=5;
XG:涨停;
模板3:放量突破选股
放量:=V>MA(V,5)*1.5; 突破20日新高:=C>REF(HHV(H,20),1); 均线多头:=MA(C,5)>MA(C,10) AND MA(C,10)>MA(C,20); XG:放量 AND 突破20日新高 AND 均线多头;
模板4:MACD金叉选股
DIFF:=EMA(C,12)-EMA(C,26); DEA:=EMA(DIFF,9); MACD:=2*(DIFF-DEA); XG:CROSS(DIFF,DEA) AND MACD>0;
模板5:KDJ低位金叉选股
RSV:=(C-LLV(L,9))/(HHV(H,9)-LLV(L,9))*100; K:=SMA(RSV,3,1); D:=SMA(K,3,1); J:=3*K-2*D; XG:CROSS(K,D) AND K<30;
模板6:RSI超卖反弹选股
LC:=REF(C,1); RSI1:=SMA(MAX(C-LC,0),6,1)/SMA(ABS(C-LC),6,1)*100; RSI2:=SMA(MAX(C-LC,0),12,1)/SMA(ABS(C-LC),12,1)*100; XG:CROSS(RSI1,RSI2) AND RSI1<30;
模板7:布林带突破选股
MID:=MA(C,20); UPPER:=MID+2*STD(C,20); LOWER:=MID-2*STD(C,20); 突破上轨:=C>UPPER; 缩口:=UPPER-LOWERMA(V,5);
模板8:换手率选股
{ 计算换手率,区分沪深京市场 }
HSL:=IF((SETCODE==0||SETCODE==1||SETCODE==2),100*VOL,VOL)/(FINANCE(7)/100);
XG:HSL>3 AND HSL<15 AND C>MA(C,20) AND V>REF(V,1);
模板9:主力筹码控盘副图指标
控盘度:=(EMA(C,12)-REF(EMA(C,36),1))/REF(EMA(C,36),1)*100+50,NODRAW; 低控盘:IF(控盘度>=50 AND 控盘度<60,控盘度,0),COLORYELLOW; 中控盘:IF(控盘度>=60 AND 控盘度<80,控盘度,0),COLORRED; 高控盘:IF(控盘度>=80,控盘度,0),COLORMAGENTA; STICKLINE(控盘度>=50,50,控盘度,2.5,0),COLORYELLOW; STICKLINE(控盘度>=60,60,控盘度,2.5,0),COLORRED; STICKLINE(控盘度>=80,80,控盘度,2.5,0),COLORMAGENTA;
模板10:通用过滤条件模块
{ 在选股公式开头添加,过滤不符合条件的股票 }
去ST:=IF(NAMELIKE('S') OR NAMELIKE('*'),0,1);
去科创板:=NOT(CODELIKE('688'));
去创业板:=NOT(CODELIKE('300'));
去北交所:=NOT(CODELIKE('8')) AND NOT(CODELIKE('4'));
去停牌:=DYNAINFO(17)>0;
价格范围:=C>2 AND C<100;
流通盘:=CAPITAL/100<100000; { 流通盘小于10亿股 }
过滤条件:=去ST AND 去科创板 AND 去北交所 AND 去停牌 AND 价格范围;
注意事项与常见错误
1. 标点符号问题
- 最常见错误:使用了中文标点(:,;)而非英文半角(:,;)
- 复制公式时可能带入不可见字符,导致报错
2. 未来函数警告
以下函数会使用未来数据,在选股公式中慎用(会导致回测表现虚高):
BACKSET— 将当前位置到N周期前设为1REFX/REFXV— 引用未来周期数据ZIG/PEAK/TROUGH— 之字转向类XMA— 偏移移动平均DHIGH/DLOW/DCLOSE/DVOL— 不定周期数据
3. 数据下载依赖
INDEXC等大盘函数需要下载对应指数数据FINANCE/FINVALUE财务函数需要下载专业财务数据GPJYVALUE交易类数据函数需要对应数据下载CALCSTOCKINDEX跨品种引用需要对应品种数据已下载
4. 周期适配
COST/WINNER等筹码函数仅对日线有效PERIOD函数判断当前周期类型(0=1分钟,5=日线,6=周线)- 分时公式需要使用
FROMOPEN/TOTALFZNUM等分时函数
5. 选股公式输出
- 选股公式有且仅有一个输出,输出值为1表示选中
- 选股公式中不建议使用绘图函数(DRAWTEXT等)
- 选股公式中不建议使用
NODRAW修饰
编写策略建议
从简单到复杂
新手编写公式时,建议先写核心条件,验证通过后再逐步添加过滤条件:
- 先写出最核心的信号(如金叉、突破)
- 在通达信中测试,确认能正常选出股票
- 逐步添加过滤条件(成交量、均线方向、换手率等)
- 每加一个条件就测试一次,确保不出错
参数化设计
将常用数值定义为参数,方便后续调整:
{ 参数定义区 }
N1:=5; { 短期均线周期 }
N2:=10; { 长期均线周期 }
M:=1.5; { 放量倍数 }
{ 计算区 }
MA短:=MA(C,N1);
MA长:=MA(C,N2);
放量:=V>MA(V,5)*M;
{ 输出区 }
XG:CROSS(MA短,MA长) AND 放量;
模块化思维
将复杂公式拆分为独立模块,每段加注释:
{ === 1. 趋势判断模块 === }
均线多头:=MA(C,5)>MA(C,10) AND MA(C,10)>MA(C,20) AND C>MA(C,60);
{ === 2. 量能确认模块 === }
放量:=V>MA(V,5)*1.5 AND V>MA(V,20);
{ === 3. 形态确认模块 ===}
涨停:=C/REF(C,1)>1.095 AND C=H;
近期涨停:=COUNT(涨停,10)>=1;
{ === 4. 最终信号 === }
XG:均线多头 AND 放量 AND 近期涨停;
给编程小白的特别指导
如果用户是编程零基础,遵循以下教学策略:
- 用自然语言描述逻辑:先用大白话描述公式想表达的意思,再翻译成代码
- 逐行解释:每行代码都用注释说明含义
- 从模板开始:推荐用户从本文件的"常见公式模板"中选择最接近的模板修改
- 解释赋值符:重点解释
:=(计算用,不显示)和:(显示画线)的区别 - 解释函数:每个用到的函数都说明"输入什么→输出什么"
- 提供安装步骤:公式写完后,简要说明如何在通达信中安装使用
示例教学对话:
用户:我想写一个5日均线和10日均线金叉的选股公式
助手:
金叉就是短期均线从下方穿过长期均线,在通达信中用CROSS函数表示。
完整公式如下:
MA5:=MA(C,5); { 计算5日均线,用:=因为这只是中间步骤不需要显示 }
MA10:=MA(C,10); { 计算10日均线 }
XG:CROSS(MA5,MA10); { 输出金叉信号,CROSS(A,B)表示A上穿B }
安装方法:
1. 打开通达信,按Ctrl+F打开公式管理器
2. 选择"条件选股公式"→"其他类型"→"新建"
3. 公式名称填"均线金叉"
4. 将上面代码粘贴到公式编辑区
5. 点击"测试公式"确认无误后保存
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
