
简介这是一份面向通达信软件用户的选股公式源码文档旨在通过多项技术指标共振条件筛选具备上涨潜力的个股适合有一定技术分析基础、希望通过公式化方式辅助选股的投资者。压缩包内共1个doc文档大小约20KB文档包含完整的通达信指标公式源码并对DIF、DEA、BOLL等核心指标的编写思路与含义进行了说明。公式要求同时满足收盘价高于开盘价、成交量较前一日放大两倍、MACD形成金叉且DIF不大于0、以及收盘价突破布林带中轨等条件本质上结合了趋势、动能与量价关系可在通达信软件中直接加载使用。目前已吸引158人学习。对于想理解选股逻辑并尝试自定义条件的用户来说这份文档提供了可复用的源码与参数注释方便在此基础上调整周期或阈值形成自己的策略。1. “精准找牛选股”背后其实是一套公式转换流程很多人在网盘、股票论坛里下载到《精准找牛选股.doc》这类文件打开后复制出长长一段通达信指标公式源码第一反应就是粘进公式管理器。结果要么提示“缺少分号”要么副图确实画出了红绿柱但打开“条件选股”列表却根本找不到它更别说自动批量筛股票。问题不在公式本身而在绝大多数这类文档只提供副图指标源码不提供条件选股公式。副图指标负责把信号画在 K 线下方条件选股公式负责在收盘后扫全市场返回真或假两者在通达信里是两套不同的公式类型只有把指标逻辑改造成一秒返回布尔值的代码才算完成从“看图”到“选股”的跨越。这篇内容要做的就是讲清这段转换路径指标公式怎么读、选股公式怎么写、参数怎么调、未来函数怎么避开以及跑完结果后如何验证信号质量。2. 指标公式与选股公式的区别先懂“画线”和“出结果”的差异2.1 三种公式类型的分工不要搞混通达信公式管理器里新建公式时会看到多个分类最常用的是“技术指标公式”“条件选股公式”和“五彩 K 线公式”。它们共用同一套语法内核但契约完全不同。公式类型输出方式能否直接用于选股技术指标公式在主图或副图输出线、柱、文字、图标允许同时输出多条线不能选股器不读取绘图结果条件选股公式最终只输出一个布尔值1 或 01 表示满足条件能条件选股和预警直接调用五彩 K 线公式按条件给 K 线涂色用于视觉识别不能它只是着色规则“精准找牛选股”这种标题本质上是把指标和选股两件事合在一起卖。但源码往往只写了副图部分所以拿到源码后的标准动作是先判断它属于哪种类型再决定是直接放条件选股还是先做输出改造。凡是代码里出现STICKLINE、DRAWICON、DRAWTEXT、DRAWBAND这类绘图函数的几乎可以断定是技术指标公式不能直接出现在选股器列表里。2.2 牛股逻辑在通达信里怎么变成条件所谓“精准找牛”常见逻辑不是哪一个神秘函数而是几组条件叠加趋势、量能、突破、动量。趋势用均线排列表达比如 5 日线在 10 日线上方、10 日线在 20 日线上方量能用成交量与近期均量的比值表达突破用收盘价突破过去 N 日最高价表达动量用 MACD 的 DIF 与 DEA 关系表达。把这些写成一串判断式代码层面并不难。难点在于选股公式要求“最后一行作为结果”而且所有中间变量必须用:赋值不能产生多个输出。很多人在这一步栽跟头中间行少写一个冒号公式管理器立刻提示“输出变量过多”或者把指标公式里画柱子的那行直接留下导致条件选股结果变成一条价格曲线而不是 0/1 判断。2.3 同一段逻辑的指标版与选股版对比先看一个典型的指标版写法M5:MA(CLOSE,5); M10:MA(CLOSE,10); M20:MA(CLOSE,20); JX:IF(M5M10 AND M10M20, 1, 0); 量比:VOL/MA(VOL,5); STICKLINE(JX1,0,量比,3,0),COLORRED;这段代码可以在副图画出红色柱子表示当前处于均线多头状态。但把它直接放进条件选股公式会怎样STICKLINE在选股公式里没有意义而且最后一行并不是一个可判断真假的表达式。改造后的选股版应该长这样M5:MA(CLOSE,5); M10:MA(CLOSE,10); M20:MA(CLOSE,20); JX:M5M10 AND M10M20; 选股:JX AND VOLMA(VOL,5)*1.3;最后一行“选股”就是这个条件的最终输出返回 1 表示满足返回 0 表示不满足。两版对比能看出改造的核心不是重写逻辑而是去掉绘图、合并条件、锁定唯一输出。这个原则贯穿所有 doc 里的指标源码转换。3. 把源码改造成通达信选股公式标准改法与参数设置3.1 新建条件选股公式的正确入口在通达信客户端里按CtrlF打开公式管理器点击“新建”先选择“条件选股公式”分类再填写公式名称例如“精准找牛选股”。这里有一个普遍误区很多人直接在原有副图指标上点“修改”改完保存后它仍然在技术指标分类下选股器永远不会加载它。必须在新建时选对分类。代码写完后先点“测试公式”通过后再“确定”。如果测试区提示语法错误会定位到具体行号比如“缺少操作数”这时回到代码里检查括号是否成对、条件里是否出现中文标点。习惯上我会把所有逗号、括号、分号全部用英文半角变量名只用字母和数字避免签名、特殊符号混入。3.2 一个可以直接改的选股公式骨架下面这段骨架是常见的“突破前高 多头排列 放量”组合适合作为起点改造N1:20; N2:5; M5:MA(CLOSE,5); M10:MA(CLOSE,10); M20:MA(CLOSE,20); 量均:MA(VOL,N2); 平台高:REF(HHV(HIGH,N1),1); 多头:M5M10 AND M10M20; 放量:VOL量均*1.3 AND CLOSEOPEN; 突破:CLOSE平台高; 选股:多头 AND 放量 AND 突破;代码里要注意平台高的写法。HHV(HIGH,20)表示最近 20 个周期最高价但今天是这 20 天之一如果直接用CLOSEHHV(HIGH,20)当今天股价创新高时自身也参与比较条件永远成立。正确做法是REF(HHV(HIGH,20),1)取昨天为止的 20 日最高价再用今天的收盘价去突破它。这个细节是“精准找牛”这类突破型选股公式能不能用的关键。量均用 N2 日成交量均值作为基准放量同时要求收盘大于开盘过滤掉放量下跌。实际使用中可以把*1.3改成参数让公式管理器里的参数优化功能自动扫描不同倍率下的选股数量。3.3 参数化让阈值变成可调旋钮公式里写死数字每次改条件都要重新编辑代码。更规范的做法是把阈值提升为参数在公式开头声明这样可以在公式管理器的参数列表里直接调整也能接入通达信的“参数优化”功能。参数默认值建议范围调大后的效果N12010~60突破参考的前高周期变长更偏中期趋势信号减少N253~10量能均线周期变长对单日放量不敏感V_RATIO1.31.1~2.0放量倍数提高条件收紧明显减少选股数量参数改动后要重新测试公式。注意通达信参数名不能与系统函数同名比如不要用VOL、HHV作为参数名否则公式直接报错。调参时不要追求一步到位建议先用宽松参数跑出 30 到 50 只股票再逐步收紧到 10 只以内这样能感觉出每个参数控制的是哪一类形态。3.4 用 COUNT 与 FILTER 控制信号密度突破类公式有一个常见毛病一只股票连续几天收盘价都高于前高选股器就天天把它选出来结果列表被同一只股票刷屏。这时可以用COUNT限制信号出现频率例如要求最近 3 天内第一次信号才入选突破条件:CLOSE平台高; 突破启动:突破条件 AND NOT(REF(突破条件,1)); 选出:COUNT(突破启动,3)1 AND 突破启动;REF(突破条件,1)是看昨天的条件是否已经成立NOT取反后表示“昨天没突破今天突破”。外层再套COUNT(…,3)1表示近 3 天至少出现过一次这个“突破启动”动作。这能保留主升浪刚起步的那根信号过滤掉连续处于高位平台的重复信号。4. 实战搭一个三层过滤公式趋势、量能、动量4.1 三层过滤的设计思路上一章给出的骨架只有趋势和量能两层实战里容易被日内情绪干扰。更稳的做法是再加一层动量确认构成“趋势 量能 动量”三层过滤。趋势层保证股票在上涨通道里量能层保证资金在进场动量层保证短期动能没有衰竭。三者同时满足才输出最终信号。下面这个完整公式可以直接复制到条件选股公式里测试参数部分集中在开头方便后续调整SHORT:12; LONG:26; MID:9; M5:MA(CLOSE,5); M10:MA(CLOSE,10); M20:MA(CLOSE,20); M60:MA(CLOSE,60); DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:EMA(DIF,MID); MACD值:(DIF-DEA)*2; 平台高:REF(HHV(HIGH,20),1); 趋势:CLOSEM60 AND M5M10 AND M10M20; 量能:VOLMA(VOL,5)*1.2; 动量:DIFDEA AND MACD值REF(MACD值,1); 突破:CLOSE平台高; 选股:趋势 AND 量能 AND 动量 AND 突破;注意MACD值:使用了赋值写法不会产生输出。如果你照搬网上 MACD 副图源码里面通常写的是MACD:(DIF-DEA)*2;单冒号意味着输出一条线放进选股公式就会报“输出变量过多”而且颜色函数、柱线粗细参数也会一起报错。4.2 参数与灵敏度调整这套公式共 4 组可调参数MACD 的 SHORT、LONG、MID以及放量倍数。MACD 参数建议保持默认 12、26、9因为 DIF 和 DEA 的交叉周期已经被市场广泛验证改动后选出的股票往往偏离标准节奏。真正值得调的是放量倍数和平台周期。放量倍数的参考标准是牛市环境下*1.2会选出上百只需要配合其他条件继续压震荡市里*1.5可能一个月选不出几只说明市场整体缩量不是公式出问题。平台周期 20 天适合日线如果看周线选股建议改成 10 周即前 10 周高点作为平台压力。4.3 未来函数与信号漂移的排查“精准找牛”类公式最需要提防的是未来函数。所谓未来函数就是公式在计算当前 K 线信号时偷偷引用了未来数据导致收盘后回看的信号位置和当时实盘完全不同。常见的未来函数包括BACKSET、ZIG、PEAK、TROUGH、DRAWLINE、CURRBARSCOUNT等。排查方法很简单在 doc 源码里搜索这些关键词。一旦出现BACKSET基本可以判定该公式只适合“画图装好看”不适合直接做选股。CURRBARSCOUNT在条件选股公式里也经常被用来定位最后一根 K 线这会让历史每一天的选股结果都不一样属于典型的信号漂移源。选股公式的正确约束是所有比较都基于当前周期及之前的数据不引用任何“未来”位置的返回函数。提示不要把副图指标里的信号位置当作选股信号历史回测结果。副图可以在 K 线中间位置画箭头选股只能在每根 K 线收盘后判断一次两者天然有时间差。4.4 常见运行报错与修正实战中遇到最多的是下面几类问题对照排查比反复改逻辑更快现象根因处理方式“缺少分号”或“缺操作数”公式里混入全角括号、中文逗号把括号逗号全部替换成英文半角“输出变量过多”中间行用了:而不是:除了最后一行全部改成:“变量未定义”引用了其他副图指标名称把所依赖的源码复制粘贴进当前公式选股结果为 0条件交集太苛刻先放宽量能倍数到 1.1再逐步收紧收盘选股与盘中预警数量差异大盘中触发后价格回落收盘条件不再成立预警时增加“当日涨幅大于 0”之类的保护条件每次修改后点“测试公式”测试通过不等于逻辑正确还要把范围切成“自选股”快速看几眼选出的股票是否符合预期再放倒全市场跑。5. 从 doc 到选股器源码落地与信号验证的 5 个细节5.1 复制 doc 源码前先做文本清洗从 Word 文档复制通达信公式源码最容易踩的是不可见字符。Word 会自动把英文引号变成中文引号、英文括号保留但前后全角空格混入这类字符在公式管理器里会变成红色报错点。粘贴前先在编辑器里做三个替换全角括号替换成半角括号全角空格替换成半角空格中文冒号替换成英文冒号。如果源码第一行是{精准找牛副图}这类注释花括号保留它属于通达信合法注释。5.2 选股范围与结果归档运行选股时建议进入“功能 → 选股器 → 条件选股”选股范围从“全部 A 股”改为“沪深 A 股”执行前勾选“选股结果放入板块”新建一个名为“牛股池”的板块。这样每次结果都累计在一块方便横向比较连续几天的候选股变化。5.3 用三日表现检验信号有效性选股公式跑完后人工验证比迷信“全网最准”更可靠。把结果按照信号日期分组随机抽取 10 只手动翻看信号出现后 3 天的 K 线统计有多少只 3 日内最高价继续上涨。如果少于 6 只说明条件偏左侧需要加强动量层如果超过 8 只往往说明条件过于保守虽然精准但选出的机会太少。判断标准不是胜率越高越好而是回看收益是否对得起等待时间。5.4 备份公式文件通达信公式保存在安装目录T0002下重装软件或更换电脑前直接备份整个T0002目录。公式管理器里导出的文件通常是 .tn6 格式但光标公式、预警设置散落在不同位置复制整个目录最稳妥。把写好的精准找牛选股公式单独导出分享给同事之前记得先移除依赖的外部指标引用否则对方测试时同样会卡在“变量未定义”。5.5 用数量检视法反推参数合理性每天收盘后跑一次统计选股数量是一个极便宜的诊断手段。数量长期超过 50 只说明条件太宽命中率必然稀释数量连续一周为 0说明参数与当前市场风格不匹配。调整逻辑顺序是先放宽量能再到动量保持趋势和突破条件不变直到每天能稳定产出 5 到 20 只候选股再回头精确打磨量价阈值。本文还有配套的精品资源点击获取