资讯动态

通达信公式编写教程完整版:从看盘直觉到可执行信号

发布时间:2026/10/16 11:28:54 来源:尧图企业网站定制
简介这份Word版教程面向具备一定开发经验、希望入门通达信公式编写的初学者系统讲解公式系统的四大类型技术指标公式、条件选股公式、交易系统公式与五彩K线公式并给出从公式管理器新建、插入函数到测试保存的完整编写路径。资源包内共1个doc文件约1MB内容涵盖公式函数用法与编写实例如用HIGH、CLOSE、LOW、OPEN、VOL描述K线价格用CROSS判断均线交叉用REF引用历史数据用AND并列条件并附行情函数简表便于检索。教程还以均线指标和“股价小于每股净资产”选股公式为例逐步演示参数填写、动态翻译与测试流程帮助读者快速掌握指标、选股、交易系统及五彩K线的编写技能。目前已有8291人学习适合作为通达信公式编写的入门参考。1. 通达信公式编写教程完整版从看盘直觉到可执行信号的那道坎很多人第一次打开通达信公式管理器面对那一排函数列表和空白的编辑框脑子里想的其实是同一件事我明明在K线上能一眼看出来的形态为什么写成公式就跑不出来这个标题——通达信公式编写教程完整版——说的就是这件事把「看盘经验」翻译成「机器能执行的判断逻辑」。它解决的不是选股圣杯问题而是让你从「手动翻票」变成「条件触发提醒」从「事后复盘」变成「盘中预警」。适合谁适合已经会用通达信看盘、但每次筛选都靠肉眼翻页的从业者也适合想把交易规则固化下来、减少情绪干扰的量化入门者。公式语言本身不复杂难的是把模糊描述拆成精确条件这一步跨过去后面都是体力活。2. 公式语言的地基数据字段、周期与计算顺序2.1 先搞清楚公式能拿到哪些数据通达信公式的本质是对每根K线取一组字段做运算。最常用的字段就那么几个开盘价OPEN、最高价HIGH、最低价LOW、收盘价CLOSE、成交量VOL、成交额AMOUNT。除此之外还有VOLINSTK持仓量期货用、HYBLOCK行业板块这类扩展字段。你写公式时不需要声明这些变量系统在每根K线上自动填充。关键认知公式是逐K线计算的。第 N 根K线上的CLOSE就是第 N 根K线的收盘价REF(CLOSE,1)才是前一根的收盘价。这个「逐根推进」的模型决定了后面所有逻辑的写法。很多人翻车就翻在这里——以为CLOSE是当前最新价其实在历史K线上它是那根K线的收盘价只有在最后一根未完成K线上才近似等于最新价。{ 最小可用公式输出收盘价与5日均线 } MA5:MA(CLOSE,5); C:CLOSE;这段代码里MA(CLOSE,5)是系统内置函数对CLOSE做5周期简单移动平均。冒号:表示输出到图形上分号;结束语句。逻辑说明每根K线都算一次所以画出来是连续曲线。参数说明MA的第二个参数是周期数改成10就是10日均线。注意MA5和C是自定义的输出名不能和保留字冲突。2.2 周期参数怎么设才不打架通达信公式可以跨周期引用但有个坑你在日线图上写的公式如果内部用了MA(CLOSE,5)它算的是日线5日均线但如果用CALCSTOCKINDEX或MACD.MACD这种跨周期引用就要注意周期对齐问题。常见做法是主图公式只做当前周期计算选股公式单独建一个周期在选股界面指定。不要在一个公式里混用多个周期的均线除非你明确知道#WEEK、#MONTH这类后缀的引用规则。周期后缀含义典型用途无当前周期主图指标#WEEK周线周线选股#MONTH月线月线过滤#MIN55分钟短线预警参数设置上我一般把可调参数抽出来放在公式头部用INPUT声明{ 带参数的均线公式 } N:INPUT(5,1,60,1); { 周期默认5范围1-60步长1 } MA_N:MA(CLOSE,N);逻辑说明INPUT让用户在公式管理器里直接改参数不用改代码。参数说明第一个值是默认值第二个是最小值第三个是最大值第四个是步长。这样写出来的公式复用性高同一套逻辑改个参数就能试不同周期。2.3 计算顺序与引用规则公式从上到下逐行执行后面的语句可以引用前面定义的变量。但有个限制不能循环引用。比如A:B1; B:A1;这种会报错。另外REF、SUM、HHV这类函数是对历史序列做运算返回的也是序列不是单值。{ 计算近5日最高价和当前价的关系 } HH:HHV(HIGH,5); { 5日内最高价 } CURR:CLOSE; { 当前收盘价 } RATIO:(CURR-HH)/HH*100; { 偏离百分比 }逻辑说明HHV(HIGH,5)返回每根K线往前数5根内的最高价所以HH是一个序列。RATIO计算当前价相对5日高点的偏离。参数说明HHV第二个参数是回溯根数改成10就是10日高点。注意RATIO在最高点当天会是0之后为负值这是正常的。3. 从条件到信号选股公式的完整写法3.1 条件表达式的写法与优先级选股公式的核心是输出一个布尔值满足条件输出1不满足输出0。通达信用AND、OR、NOT做逻辑组合用、、、、、!做比较。优先级是比较运算 NOTANDOR。保险起见复杂条件一律加括号。{ 选股条件收盘价站上5日线且成交量大于5日均量 } COND1:CLOSE MA(CLOSE,5); COND2:VOL MA(VOL,5); SELECT:COND1 AND COND2;逻辑说明COND1和COND2分别输出布尔序列SELECT是最终选股条件。参数说明MA(CLOSE,5)是5日均线MA(VOL,5)是5日均量。注意选股公式最后一行必须是输出语句否则系统不知道你要选什么。3.2 用FILTER和CROSS做信号过滤CROSS(A,B)表示 A 上穿 B返回布尔值。FILTER(COND,N)表示条件成立后未来 N 根K线内不再重复输出信号。这两个函数是写预警公式的利器。{ 均线金叉信号且10日内只提示一次 } MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); JC:CROSS(MA5,MA10); SIGNAL:FILTER(JC,10);逻辑说明CROSS(MA5,MA10)在5日线上穿10日线当天为真。FILTER(JC,10)把这个信号过滤成10天内只出现一次。参数说明FILTER第二个参数是过滤周期改成20就是20天内只提示一次。注意FILTER只影响输出不影响JC本身的计算。3.3 把选股公式挂到预警系统里公式写好后要让它真正跑起来需要配置预警。步骤是公式管理器 → 新建选股公式 → 粘贴代码 → 测试通过 → 保存。然后在「预警」设置里添加条件选择刚建的公式设定监控范围和触发方式。{ 盘中预警用放量突破前高 } PRE_HIGH:REF(HHV(HIGH,20),1); { 前20日最高价不含当天 } BREAK:CLOSE PRE_HIGH; VOL_UP:VOL MA(VOL,5)*1.5; { 成交量大于5日均量1.5倍 } ALERT:BREAK AND VOL_UP;逻辑说明REF(HHV(HIGH,20),1)取前20日最高价排除当天避免自己突破自己。VOL_UP用1.5倍均量做放量确认。参数说明1.5是放量倍数可以改成2.0做更严格过滤。注意预警公式里不要用FILTER否则盘中可能漏掉信号。4. 避坑与排查那些让公式「看起来对但跑不出来」的细节4.1 未来函数最隐蔽的翻车点现象公式在历史K线上信号完美实盘却完全对不上。原因用了ZIG、PEAK、TROUGH这类未来函数它们会引用未来数据。解决选股和预警公式里禁用未来函数只用REF、HHV、LLV这类只回溯历史的函数。检查方法在公式管理器里点「测试」如果提示「含未来函数」直接换写法。4.2 数据对齐除权除息导致的断层现象均线在除权日出现巨大跳空信号失真。原因未做复权处理。解决在公式里用CLOSE时确保图表设置了前复权。或者在公式里用REF(CLOSE,1)时注意除权日的价格突变。常见做法是选股公式里加一句IF(ABS(CLOSE/REF(CLOSE,1)-1)0.11,0,1)过滤掉除权日。4.3 参数范围INPUT设太宽导致误操作现象用户把周期参数改成0或负数公式报错或输出异常。原因INPUT的最小值没设好。解决INPUT(5,1,60,1)里第二个参数是1确保不会出现0周期。另外步长设1还是0.1要看参数类型周期类用整数步长。4.4 输出冲突多个公式画在同一区域现象主图公式和副图公式互相覆盖看不清。原因输出名重复或坐标轴冲突。解决主图公式用MAIN前缀副图用SUB前缀。或者用DRAWTEXT、DRAWICON做标记不直接输出数值。4.5 性能问题循环太多导致卡顿现象公式加载慢切换周期时卡死。原因用了大量FOR循环或嵌套SUM。解决能用MA、HHV内置函数就别自己写循环。通达信的内置函数是C实现的比公式层循环快几个数量级。5. 进阶技巧把公式写成可维护的模块5.1 用STKINDI做跨公式引用当你有一套核心逻辑比如自定义的趋势判断不想在每个公式里重复粘贴可以把它单独存成一个指标公式然后用STKINDI引用。{ 引用自定义指标 MYTREND 的输出 } TREND:STKINDI(,MYTREND.TREND,0,0);逻辑说明STKINDI第一个参数是品种代码空字符串表示当前品种第二个是公式名和输出名后两个是周期和偏移。参数说明周期0表示当前周期偏移0表示不偏移。这样改核心逻辑时只改一个地方所有引用它的公式自动更新。5.2 用DRAWTEXT和DRAWICON做可视化标记信号光有数值不够要在图上标出来。DRAWTEXT(COND,PRICE,TEXT)在条件成立时在指定价格位置写文字DRAWICON(COND,PRICE,TYPE)画图标。{ 金叉时在最低价下方画图标 } MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); JC:CROSS(MA5,MA10); DRAWICON(JC,LOW*0.99,1); { 1号图标通常是向上箭头 }逻辑说明DRAWICON在JC为真时在LOW*0.99位置画1号图标。参数说明图标编号1-30具体样式在公式管理器里能预览。注意LOW*0.99是为了让图标不遮挡K线可以改成LOW*0.98放更低。5.3 参数优化用INPUT做批量测试同一套逻辑不同参数表现差异很大。与其手动改代码不如把参数抽出来在公式管理器里直接调。{ 可调参数的均线交叉公式 } SHORT:INPUT(5,2,20,1); LONG:INPUT(20,10,60,1); MA_S:MA(CLOSE,SHORT); MA_L:MA(CLOSE,LONG); JC:CROSS(MA_S,MA_L);逻辑说明SHORT和LONG两个参数让用户自己调。参数说明默认5和20范围分别是2-20和10-60。我一般会先用默认值跑一遍然后逐步调SHORT看信号频率变化找到和自己交易节奏匹配的组合。5.4 一个我踩过的坑REF的偏移量别乱用早期写公式时我为了让信号「看起来更准」在REF里用了负数偏移比如REF(CLOSE,-1)以为能引用未来数据做「预判」。结果实盘完全不能用因为未来数据根本不存在。血泪经验REF的第二个参数只能是正数或0负数在回测里可能不报错但实盘一定翻车。后来我养成习惯写完公式先看有没有REF带负数的有就立刻改掉。5.5 验证方法用「历史回放」检查信号质量公式写完后别急着上实盘。通达信有「历史回放」功能可以逐根K线回放看信号在历史走势中的表现。具体操作在K线图上右键 → 历史回放 → 选择起始日期 → 逐根前进。重点看信号出现后价格是否真的按预期方向走有没有在震荡区间频繁触发极端行情下是否失效。这个步骤花10分钟能省掉后面很多后悔药。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑