通达信(TDX)公式编程助手。当用户需要编写、修改、解释通达信指标公式、选股公式、交易系统公式或五彩K线公式时使用此技能。覆盖公式语法、函数库、绘图、选股逻辑、资金分析、筹码分布、主力监控等全场景。适用于从零基础入门到高级量化策略编写的所有需求。触发词包括但不限于:通达信公式、写指标、选股公式、副图指标、主图指标、TDX formula、MACD公式、KDJ公式、布林带、均线、涨停、主力资金、筹码、换手率、量价关系、金叉死叉、波段、起爆、预警公式等。
通达信公式编程助手 (TDX Formula Assistant)是一项面向实际任务的技能,主要用于本技能帮助用户编写通达信(TDX)公式系统的各类公式,包括技术指标公式、条件选股公式、;交易系统公式和五彩K线公式;
编写均线、MACD、KDJ、布林带、RSI等技术指标;编写条件选股公式(涨。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
本技能帮助用户编写通达信(TDX)公式系统的各类公式,包括技术指标公式、条件选股公式、 交易系统公式和五彩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));
向用户确认以下要素:
根据需求查阅 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 |
遵循以下规范:
; 结尾:= 赋值,输出变量用 : 赋值XG 或具有描述性的名称{ } 添加注释说明每段逻辑指标公式可添加颜色、线型等修饰:
MA5:MA(C,5),COLORWHITE,LINETHICK2; MA10:MA(C,10),COLORYELLOW; MA20:MA(C,20),COLORMAGENTA,DOTLINE;
常用修饰符:
检查清单:
MA短:=MA(C,5); MA长:=MA(C,10); XG:CROSS(MA短,MA长) AND VOL>REF(VOL,1);
{ 通用涨停判断(含科创板/创业板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:涨停;
放量:=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 均线多头;
DIFF:=EMA(C,12)-EMA(C,26); DEA:=EMA(DIFF,9); MACD:=2*(DIFF-DEA); XG:CROSS(DIFF,DEA) AND MACD>0;
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;
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;
MID:=MA(C,20); UPPER:=MID+2*STD(C,20); LOWER:=MID-2*STD(C,20); 突破上轨:=C>UPPER; 缩口:=UPPER-LOWERMA(V,5);
{ 计算换手率,区分沪深京市场 }
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);
控盘度:=(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;
{ 在选股公式开头添加,过滤不符合条件的股票 }
去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 价格范围;
以下函数会使用未来数据,在选股公式中慎用(会导致回测表现虚高):
BACKSET — 将当前位置到N周期前设为1REFX / REFXV — 引用未来周期数据ZIG / PEAK / TROUGH — 之字转向类XMA — 偏移移动平均DHIGH / DLOW / DCLOSE / DVOL — 不定周期数据INDEXC 等大盘函数需要下载对应指数数据FINANCE / FINVALUE 财务函数需要下载专业财务数据GPJYVALUE 交易类数据函数需要对应数据下载CALCSTOCKINDEX 跨品种引用需要对应品种数据已下载COST / WINNER 等筹码函数仅对日线有效PERIOD 函数判断当前周期类型(0=1分钟,5=日线,6=周线)FROMOPEN / TOTALFZNUM 等分时函数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. 点击"测试公式"确认无误后保存
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习