资讯动态

同花顺公式教程:从语法到自定义指标实战

发布时间:2026/10/21 5:35:23 来源:尧图企业网站定制
简介这份《同花顺公式教程.pdf》面向股票投资者与量化选股初学者系统讲解TDX公式体系的使用与编写方法帮助读者借助计算机快速完成行情分析、条件选股与交易策略测试。教程围绕四大类公式编辑器展开技术指标公式用于绘制分析曲线条件选股公式实现智能选股五彩K线公式对满足条件的K线形态着色标记交易系统公式则通过设定买卖点进行模拟操作与参数测试。内容还涵盖公式编写规则、系统函数说明、常用技术指标、公式管理器的树形结构与查找方式以及公式的加密、引入与输出等管理操作。资源包为1个PDF文件大小约4.1MB结构完整、便于随时查阅。目前已有1876人学习下载适合希望从零掌握公式编写、构建个人选股与交易规则的投资者参考。1. 同花顺公式教程.pdf从一份文档到一套能跑的自定义指标很多人第一次拿到《同花顺公式教程.pdf》这类资料翻两页就放下了——满屏的语法符号、函数名、参数表看着像编程手册又像数学课本不知道从哪下手。但真正在盘面上用过自定义指标的人都清楚这份文档的价值不在于“读完”而在于“查着用”。它本质上是一套公式语言的语法参考加函数字典核心用途是让你在同花顺的公式管理器里写出自己的技术指标、条件选股和预警信号。举个最直接的场景软件自带MACD是固定12、26、9参数但你想改成8、17、9做短线或者把金叉条件叠加成交量过滤这时候就必须自己写公式。教程里讲的就是这套语言的规则——变量怎么定义、引用怎么取、绘图函数怎么调。适合两类人一是想摆脱“拿来主义”、按自己交易逻辑定制指标的人二是需要批量做条件选股、把复盘思路固化成代码的人。不需要你会C或Python但需要你愿意花半小时理解它的语法逻辑。2. 公式语言的核心骨架变量、引用与输出2.1 变量定义与赋值规则同花顺公式语言的变量定义非常直接不需要声明类型直接写名字加冒号或等号即可。这里有个关键区别冒号:表示输出到图表等号表示中间变量不显示。很多人写公式发现图上多了一堆乱七八糟的线就是因为把中间变量用了冒号。{ 正确写法中间变量用等号输出用冒号 } MA5:MA(CLOSE,5); { 中间变量不画线 } MA10:MA(CLOSE,10); { 中间变量不画线 } CROSS_UP:MA5MA10; { 输出值为1或0画线 }逻辑说明MA(CLOSE,5)表示对收盘价求5周期简单移动平均。CROSS_UP输出的是一个布尔值序列1代表条件成立0代表不成立。参数说明CLOSE是内置变量代表收盘价也可以换成OPEN、HIGH、LOW、VOL。数字5是周期参数改大改小直接影响灵敏度。变量名不能和内置函数重名比如你不能定义一个叫MA的变量。另外公式语言对大小写不敏感close和CLOSE效果一样但建议统一用大写方便阅读。2.2 数据引用与周期控制公式里最常用的引用就是K线数据。除了CLOSE、OPEN这些当前周期数据还可以用REF函数取历史值。比如REF(CLOSE,1)就是昨天的收盘价。这个函数在写“今日突破昨日高点”这类条件时必用。{ 取前N周期数据 } PREV_CLOSE:REF(CLOSE,1); { 昨日收盘 } PREV_HIGH:REF(HIGH,1); { 昨日最高 } BREAK_PREV_HIGH:CLOSEPREV_HIGH; { 今日收盘突破昨日最高 }逻辑说明REF(X,N)返回N周期前的X值N必须是常量不能是变量。参数说明N1表示前一周期N5表示前五周期。注意如果当前K线数量不足N1根返回值会是无效值公式可能不显示或报错。跨周期引用要用#符号比如CLOSE#WEEK取周线收盘价。这个功能在写多周期共振条件时很有用但要注意跨周期引用会拖慢计算速度选股时如果全市场扫描尽量少用。2.3 输出控制与绘图函数输出到图表后还可以控制画线方式。DRAWTEXT可以在指定位置写字STICKLINE可以画柱状图COLOR系列函数可以改颜色。这些在教程里都有但新手最容易忽略的是NOAXIS和NODRAW——前者让指标不显示坐标轴后者让输出不画线只做条件判断。{ 条件满足时在最低价下方画文字 } DRAWTEXT(CROSS_UP,LOW*0.98,金叉); { 画红色柱线宽度8 } STICKLINE(CROSS_UP,0,1,8,0),COLORRED;逻辑说明DRAWTEXT第一个参数是条件第二个是位置第三个是文字内容。STICKLINE参数依次是条件、起点、终点、宽度、是否空心。参数说明宽度值越大柱子越粗空心参数0为实心、1为空心。颜色函数写在语句末尾用逗号隔开。提示绘图函数只在主图或副图指标里生效条件选股公式里写了也不会显示但不会报错容易让人误以为公式没生效。3. 从教程到实战写一个可用的自定义指标3.1 搭建一个均线成交量过滤的选股公式光看语法没用直接写一个能跑的条件选股公式。需求5日均线上穿10日均线且当日成交量大于5日均量同时收盘价站上20日均线。这个逻辑在教程里对应的是MA、CROSS、VOL几个函数的组合。{ 均线金叉量能过滤选股公式 } MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); MA20:MA(CLOSE,20); VOL5:MA(VOL,5); { 条件15日线上穿10日线 } COND1:CROSS(MA5,MA10); { 条件2成交量大于5日均量 } COND2:VOLVOL5; { 条件3收盘价在20日线上方 } COND3:CLOSEMA20; { 综合条件输出 } SELECT:COND1 AND COND2 AND COND3;逻辑说明CROSS(A,B)表示A从下方上穿B返回布尔值。AND是逻辑与三个条件同时成立才输出1。参数说明所有周期参数都可以改比如把5、10改成3、7就是更短线的版本。SELECT作为输出变量名在条件选股界面里会被识别为选股结果。写完保存后在“条件选股”里选中这个公式执行一次全市场扫描就能得到当天满足条件的股票列表。注意如果当天数据还没收盘结果会随盘中变化建议收盘后跑。3.2 参数优化与回测验证公式写出来只是第一步参数合不合适要靠回测。同花顺自带的回测功能可以指定时间段和初始资金但很多人不知道怎么把自定义公式接进去。正确做法是在公式管理器里把公式类型设为“交易系统”然后加上买卖条件。{ 交易系统公式示例均线金叉买入死叉卖出 } MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); { 买入条件 } BUY:CROSS(MA5,MA10); { 卖出条件 } SELL:CROSS(MA10,MA5);逻辑说明交易系统公式里BUY和SELL是保留字分别对应买入和卖出信号。参数说明回测时可以在设置里调整手续费和滑点默认值往往偏低建议手动改成万三手续费加千一滑点更接近实盘。回测结果重点看三个数总收益率、最大回撤、胜率。如果胜率很高但最大回撤也很大说明止损没做好如果总收益高但交易次数极少可能是参数过拟合。教程里不会告诉你这些但这是实战里必须自己判断的。3.3 把公式接入预警系统选股是盘后的事预警是盘中的事。同花顺的预警系统支持自定义公式但有个限制预警公式里不能用REF取未来数据也不能用跨周期引用。所以写预警公式要尽量简单只依赖当前周期数据。{ 盘中预警放量突破20日高点 } HH20:HHV(HIGH,20); { HHV取20周期内最高值 } BREAK:CLOSEREF(HH20,1) AND VOLMA(VOL,5)*1.5;逻辑说明HHV(HIGH,20)取最近20根K线的最高价REF(HH20,1)取前一周期该值避免用当前未完成K线。参数说明VOLMA(VOL,5)*1.5表示成交量大于5日均量的1.5倍这个倍数可以按自己需求调1.5到2.5之间比较常用。设置预警时在预警界面选择这个公式指定监控的股票池和触发频率。注意预警频率不要设太高否则盘中频繁弹窗反而干扰操作。一般设1分钟或5分钟检查一次就够了。4. 避坑与排查公式不生效的五个常见原因4.1 现象公式保存后图上不显示原因最常见的是输出变量用了等号而不是冒号。等号定义的变量只在内存里计算不会画到图上。另一个可能是公式类型选错了比如把指标公式建成了选股公式选股公式不画线。解决检查所有需要显示的变量把:改成:。然后在公式管理器里确认公式类型是“技术指标”而不是“条件选股”。如果还是不行点“测试公式”看有没有语法报错。4.2 现象选股结果为空或明显不对原因数据周期不对。比如公式里用了日线数据但选股时设置的是分钟周期结果自然不对。另一个原因是REF的周期数超过了数据长度比如新股上市不足20天REF(CLOSE,20)就取不到值。解决在选股界面确认周期设置和公式设计一致。对于新股可以在公式开头加一个数据长度判断IF(BARSCOUNT(CLOSE)20,0,1)数据不足20根时直接返回0避免无效计算。4.3 现象预警频繁触发但实际没机会原因用了未来函数或者未完成K线。比如CLOSE在盘中是变动的如果预警条件里直接用了CLOSE盘中价格一波动就可能触发但收盘时条件又不成立了。解决预警公式里尽量用REF(CLOSE,1)代替CLOSE或者加一个时间过滤比如只在14:30之后才允许触发。另外检查有没有用到ZIG、PEAK这类未来函数它们在预警里会导致信号漂移。4.4 现象回测收益很高但实盘完全不行原因过拟合。参数调得太细比如把均线周期设成7、13这种非标准值回测时刚好拟合了历史走势但未来不会重复。另一个原因是回测时没扣手续费和滑点实盘一扣就亏。解决用多组参数分别回测看收益是否稳定。如果只有某一组参数特别高其他都一般大概率是过拟合。另外把手续费设成万三、滑点设成千一再跑一遍回测如果收益大幅缩水说明策略本身利润空间太薄。4.5 现象公式在A股票上正常B股票上报错原因B股票可能有停牌、除权或者数据缺失。停牌期间K线不更新REF取到的可能是停牌前的数据导致逻辑混乱。除权会导致价格跳空均线类指标会失真。解决在公式里加除权判断或者直接用前复权数据。同花顺里可以在公式管理器设置里勾选“使用前复权数据”。对于停牌股票加一个VOL0的条件过滤掉停牌日。5. 进阶技巧用公式管理器做批量维护与版本管理5.1 公式的导入导出与批量备份写多了公式之后管理是个麻烦事。同花顺的公式管理器支持导出为.exp文件但一次只能导出一个。批量备份的土办法是直接复制安装目录下的formula文件夹里面按公式类型分了子目录。# 假设安装目录在D盘备份公式文件夹 # Windows下用robocopy做增量备份 robocopy D:\同花顺安装目录\formula E:\公式备份\formula /MIR /LOG:E:\公式备份\backup.log逻辑说明/MIR表示镜像模式源目录删掉的文件备份目录也删掉保持完全一致。/LOG把操作记录写到日志文件方便排查。参数说明如果只想备份不删除把/MIR换成/E。这个命令可以做成计划任务每周自动跑一次。注意不同版本的同花顺公式文件夹路径可能不同一般在安装目录的bin或data子目录下找包含.alg或.fnc文件的文件夹就是。5.2 用注释和版本号管理公式迭代公式写多了过两个月自己都忘了当时为什么这么写。养成在公式开头加注释的习惯记录版本、日期、修改内容。同花顺公式语言支持大括号{}包裹的注释也支持双斜杠//单行注释。{ 公式名称均线金叉选股 } { 版本v1.2 } { 日期2025-06-15 } { 修改记录增加成交量过滤条件调整均线周期为5/10 } { 参数MA5周期5MA10周期10量比阈值1.5 } MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); VOL5:MA(VOL,5); COND1:CROSS(MA5,MA10); COND2:VOLVOL5*1.5; SELECT:COND1 AND COND2;逻辑说明注释不参与计算但能让你半年后还能看懂。参数说明把可调参数写在注释里改的时候直接对照。如果公式复杂建议把参数提取到公式管理器的“参数设置”里这样不用改代码就能调参。5.3 一个验证公式是否可靠的小技巧写完一个公式别急着上实盘。先用“历史回放”功能跑一遍看看过去半年里信号出现的位置和实际走势是否吻合。同花顺的历史回放可以手动控制K线前进逐根验证。具体操作在K线图上按F5进入分析周期设置选“历史回放”然后加载公式。每按一次前进键K线走一根公式输出同步更新。重点看信号出现后3到5根K线的走势如果大部分信号后面都是反向行情说明逻辑有问题。我自己的习惯是任何新公式先跑三个月历史回放信号次数少于10次的直接放弃样本太少没有统计意义。信号次数在20到50次之间的再看胜率和盈亏比。只有回放验证通过的公式才会放进预警系统里跑模拟盘。希望帮到你。本文还有配套的精品资源点击获取

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

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

免费获取报价 →
↑