简介这份通达信公式源码文档以“危中择机 金砖选股”为核心策略适合熟悉通达信操作、希望借助自定义指标在震荡行情中捕捉风险背后上涨机会的股票技术分析者。文档对公式中的齐胸、齐腰、齐踝等基于WINNER赢家函数的指标含义、状态1至状态5的划分逻辑、TJ1-TJ6触发条件、BT001-BT004买入组合以及DXBT长期趋势信号和怒放、半开等最终买入信号做了逐条注释与拆解并解释了FILTER函数在消除短期假信号中的作用。包体为单个doc说明文件1个doc共138KB内容简明适合对照通达信软件边看边调试。目前已有113人学习下载。通过阅读可掌握整套选股公式的构造思路、参数含义与信号过滤方法在此基础上结合自身策略调整阈值提升在不同行情下的应用能力。1. 危中择机选股公式抄底与避雷并存“危中择机”这四个字在通达信公式圈里代表一类基于“超跌反弹风险过滤”思想的选股模型。它不是简单的“跌多了就买”而是在识别个股短期出现非理性杀跌、情绪过度恐慌的同时叠加成交量萎缩、主力资金异动、关键技术位支撑等多重条件筛选出安全边际相对较高、反弹动能积蓄充分的标的。比较典型的“金砖”选股变体通常会在形态上要求“大阴线不破前低”、“连续缩量止跌”、“分时或日线级别出现背离”等信号来区分真正的黄金坑和下跌中继。这个公式最实用的场景是震荡市和急跌后的修复期。在单边下跌行情中任何“危”都可能演变成“危上加危”因此这类公式必须包含趋势过滤条件否则回撤会非常惨烈。对有一定经验、能看懂开盘和收盘行为的交易者来说这类公式能帮你把盯盘范围从四千多只票缩小到几十只对完全的新手它更像个学习模板能帮你理解“条件组合”在选股中的具体表达方式。需要明确的是选股公式解决的是“找出符合条件股票”的效率问题它不保证胜率更不是收益承诺。接下来就顺着公式的编写、测试、排错和进阶使用这条线把这类指标彻底讲透。2. 选股公式的底层逻辑从“危”到“机”的条件映射2.1 “危”的信号如何量化跌幅、阴线数量与乖离率在通达信的公式语言里最直接表达“危”的指标是短期跌幅和乖离率。常见做法是用C/REF(C,N)-1计算N日跌幅配合BIGLOSS CO*0.97之类的大阴线识别。但纯粹的暴跌容易选到基本面崩坏或高位跳水的票所以实际公式中要限制“累计跌幅的范围”避免从涨停板跌下来的票也被扫进来。我一般倾向于把“危”拆成三层去看。第一层是阶段跌幅比如5日或10日累计跌幅超过15%但不超过30%太高的跌幅往往意味着资金已经夺路而逃接飞刀的风险极大第二层是阴线质量要求最近3天里至少有2根实体阴线且阴线实体要大于下影线说明空头还在发力而不是已经衰竭第三层是乖离率用BIAS (C-MA(C,20))/MA(C,20)要求BIAS小于-8%但大于-20%确保股价确实偏离了20日成本线又没有偏得太离谱。2.2 “机”怎么确认缩量、支撑与资金回流的组合仅仅超跌不构成买入理由。真正让超跌变成机会的是“抛压衰竭”和“承接出现”这两个事实。抛压衰竭最直观的指征是成交量用VMA(V,5)*0.7表示当天缩量到5日均量七成以下说明卖盘不愿在这个位置割肉了更严谨一点可以用V/REF(VOL,1)来看单日量比量比小于0.8且收阴线或十字星往往是变盘前兆。支撑条件最好借用布林带或均线系统。以20日均线为锚如果股价最低价触及MA(C,20)*0.97附近出现探底回升即下影线大于实体两倍这是一个很经典的“长下影线止跌”信号。在“金砖”类公式里还常加入一个资金回流的动作用AMOUNT/REF(AMOUNT,1)1.2或者直接引用资金流类指标确认当天有增量资金进场。资金回流和缩量看似矛盾实际上描述的是“先缩量、后放量”的两个交易日状态不是同一天。2.3 过滤条件比买入信号更重要在写公式之前先想清楚“什么情况不做”这比想清楚“什么情况做”更能决定公式的命运。一般我会在选股公式里硬性加上三条过滤当前股价必须站在年线之下确保选的是超跌而非强势股回踩流通盘不能太小也不能太大用小盘股容易乌龙指或涨跌停失真用超级大盘股又很难有超额反弹所以流通市值在50亿到300亿之间比较合适剔除ST和最近有退市风险警示的票直接通过名称函数排除。另外如果当日大盘环境极差比如大盘跌幅超过3%任何选股信号都该被无视。通达信里可以用INDEXC/REF(INDEXC,1)-1拿到指数涨跌幅做成一个总闸门。这一层过滤决定了公式在熊市里是让你亏5%还是亏20%的区别。条件模块常用函数/写法典型参数作用阶段跌幅C/REF(C,10)-1-0.15 到 -0.30识别超跌阴线实体CO AND (O-C) (C-L)*2实体为下影2倍确认空头形态20日乖离率(C-MA(C,20))/MA(C,20)-8% 到 -20%监控偏离程度量能萎缩V MA(V,5)*0.7低于5日均量7成判断抛压枯竭支撑下影(MIN(C,O)-L) (MAX(C,O)-MIN(C,O))*2下影大于实体2倍捕捉承接总闸门INDEXC/REF(INDEXC,1)-1 -0.03大盘跌幅小于3%系统性风险控制3. 手写“危中择机”选股公式核心代码与参数速查3.1 公式代码逐行拆解以下这个公式是我常用的一个基础版本兼顾了可读性和实际选股效果命名为“危中择机”。直接在通达信的公式管理器里新建一个“选股公式”类型选择“条件选股”把代码粘贴进去。完整代码如下{危中择机选股公式 - 适用于日线周期} {风险控制闸门 - 大盘当日不能大跌} INDEX_DROP : (INDEXC/REF(INDEXC,1)-1) -0.03; {条件110日累计跌幅在15%-30%之间} DROP10 : C/REF(C,10)-1; RISK_DROP : DROP10 -0.15 AND DROP10 -0.30; {条件220日乖离率在-8%到-20%之间} BIAS20 : (C-MA(C,20))/MA(C,20)*100; RISK_BIAS : BIAS20 -8 AND BIAS20 -20; {条件3最近3天中至少有2根实体阴线} YINXIAN : C O AND (O-C) 0; YIN_COUNT : COUNT(YINXIAN,3); RISK_YIN : YIN_COUNT 2; {条件4当日缩量成交量低于5日均量*0.7} VOL_SHRINK : V MA(V,5)*0.7; {条件5出现长下影线下影长度实体长度的2倍} SHADOW : MIN(C,O)-L; BODY : MAX(C,O)-MIN(C,O); RISK_SHADOW : SHADOW BODY*2 AND BODY0; {条件6非ST且股价大于3元过滤低价垃圾股} NOT_ST : NAMELIKE(ST)0 AND NAMELIKE(*)0; PRICE_OK : C 3; {最终组合} SIGNAL : RISK_DROP AND RISK_BIAS AND RISK_YIN AND VOL_SHRINK AND RISK_SHADOW AND NOT_ST AND PRICE_OK; SELECT SIGNAL;3.2 关键参数怎么调从“选出”到“选优”这段代码里有几个参数决定了选出来股票的“性格”。如果选出来的票太多优先收紧DROP10的下限把-0.15改成-0.18这会要求更大跌幅数量立刻瘦身如果选得太少放开BIAS20的上限从-8放宽到-6让更多刚触发超跌的股票进入视野。COUNT(YINXIAN,3)这个函数是计数的意思统计3天内满足括号内条件的天数。改成COUNT(YINXIAN,3)1会纳入更多只跌了一天的票灵敏度提高但误报也随之增多保持2对下跌趋势确认得更扎实相对保守。我建议在实盘跟踪时先用2运行两周后根据自己的风险偏好再决定要不要放宽。RISK_SHADOW这个条件在公式中比较严格因为下影线超过实体两倍在日线级别不是每天都有。如果你用30分钟或60分钟周期选股这个条件会频繁触发但可靠性会下降。这就是为什么这个公式的目标周期应该锁定在“日线”的原因周期越短噪音越大。3.3 如何把源码从 Word 文档安全导入通达信标题里提到“.doc”文件实际是通达信公式源码的常见分发格式。常见做法是通过公式管理器手动复制步骤相对固定。操作路径是打开通达信 → 按CtrlF打开公式管理器 → 选“条件选股公式” → 新建 → 公式名称填“危中择机”将源码粘贴到“公式正文”大框里 → 点“测试公式”系统会提示“测试通过”。如果有语法错误通达信会用红色高亮提示行号对照;和:查漏补缺即可。需要注意的是从 Word 文档复制代码时经常会把中文标点或空格带进代码编辑器。通达信的公式语法只认英文标点一个中文分号就能让整个公式测试失败。所以粘贴后用系统自带的“替换”功能把中文括号、分号、逗号替换成英文状态。比较典型的坑是公式里的注释{}不小心被 Word 自动替换成了全角花括号导致大段代码变成注释而被跳过。纯文本的“公式源码”不涉及任何外部依赖不需要安装了未来函数或扩展库的支持所以导入的兼容性一般没问题。如果公式测试失败第一看标点符号第二看变量名是否和系统保留字冲突比如ZIG、BACKSET之类第三就是看括号是否配平。4. 选股效果验证与排序从“选出”到“可用”的必经之路4.1 用条件选股和“成功率测试”快速回测公式写好后第一步不是在实盘里点“选股”而是打开通达信的“功能” → “选股器” → “条件选股”找到刚建的“危中择机”点击“选股入板块”跑一遍看看当前市场能选出几只。如果选出来的数量为0不代表公式错了可能只是当前市场不满足超跌条件你可以调整条件里的参数或者换到历史某一天去验证。通达信自带“公式性能测试”入口一般在“公式管理器”里选中公式后点“测试”或者在“条件选股”界面点“历史测试”。推荐用“成功率测试”功能设置测试时间段为一到两年买入规则选“次日开盘买入”卖出规则选“5日收益大于10%算成功”或“5日最高价涨幅大于8%”。这么做是为了检验“出现信号之后短期是不是真的有反弹”这一核心逻辑。测试结果中重点看两列成功率和平均收益。一个能用但不完美的超跌反弹模型在震荡市里成功率应该在45%到55%之间平均收益应该是正数。如果成功率低于40%说明“危”的识别太宽泛飞刀接太多如果成功率高于65%反而要小心因为可能是参数过拟合换个时间段就失效。4.2 结合排序功能挑出“金砖”选股公式本质上是“海选”选出几十只之后还需要做质量排序。通达信的“综合选股”或“排序”功能可以帮上忙常见做法是把选出的票按“涨幅乖离率从大到小”或“量比从低到高”排优先关注跌幅大但同时缩量明显的标的。我一般会手动排序如下几个指标当日量比、换手率和20日跌幅。量比低代表当日交易冷清换手率在2%到6%之间代表有存量资金博弈但还没有完全失控。如果你懂一点扩展的“自定义数据”也可以把“主力资金净流入”作为排序项但这不是通达信内置数据需要外接数据源复杂度较高。新手不建议一开始就上这个先用最基础的行情指标排序就够了。4.3 回测结果的解读误区最常见的一个误区是只盯着成功率忽略“亏损单的平均亏损”和“盈利单的平均盈利”。假设公式成功率50%但成功时只涨5%失败时跌10%长期执行依然是亏损的。我们必须把公式的期望收益算出来公式可以写成成功率*平均盈利 - (1-成功率)*平均亏损期望值为正逻辑才成立。提示任何回测都隐含了“未来函数”风险尤其是使用了ZIG、PEAKA等未来函数的公式成功率会被严重高估。本公式中用的都是REF、COUNT、MA等基础函数理论上在信号出现的当天收盘后就能确定不存在未来函数问题。另一个容易忽略的点是“跌停板无法买入”的现实约束。如果公式选出的股票当天都是跌停或一字板第二天开盘可能根本买不进。所以在回测时最好把买入条件设为“次日开盘价涨幅小于5%且未跌停”这样才贴近真实成交情况。5. 公式的进阶用法从选股公式到盘中预警5.1 把条件直接变成“盘中预警”通达信的选股公式和“预警公式”写法几乎一样只是触发的时机不同。多数做预警的工程师会把选股条件拆成两批一批在开盘后立即触发一批在午后14:30之后触发。开盘时主要用“昨收跌幅乖离”和“消息面缺口”来做条件下午则更多依赖当日分时走势和量能结构。“危中择机”公式本身偏日线级别盘中预警时通常建议把周期切成60分钟或30分钟来用。具体改法是在公式管理器新建“预警公式”粘贴同样的代码但把MA(C,20)改成MA(C,40)以适配更短的周期波动。同时把INDEX_DROP去掉因为盘中指数跌幅变化太快容易造成频繁的假信号。5.2 与“macd8大形态选股公式”结合的过滤思路从检索中看到MACD形态类选股公式也是热门需求。一个比较实用的做法是将“危中择机”作为入场时机把“MACD底背离”作为方向过滤。具体来说用MACD.DIF和MACD.DEA的交叉状态加上股价新低而DIF不新低的背离判断来去掉那些下跌动能仍然很强的票。这样做的实际意义是超跌加上指标钝化反弹的概率会更高。MACD底背离的判断公式写成DIF : MACD.DIF; LOW_NEW : LLV(LOW,10); DIF_NEW : LLV(DIF,10); BELAI : LOW_NEW REF(LOW_NEW,1) AND DIF_NEW REF(DIF_NEW,1);这段代码的逻辑是10日内的最低价比昨天的10日最低价更低但DIF的10日最低值没有同步创新低说明做空动能在背离。将这个BELAI条件用 AND 加到主公式中能过滤掉大量“阴跌不止”的恶性票。5.3 实盘节奏什么时候运行这个公式最后给你一个实盘运行节奏的参考这部分完全来自我自己的使用习惯。收盘后用日线公式选一遍把结果存进板块晚上做功课次日开盘后30分钟内用60分钟周期版本做预警重点看前一日选出个股是否出现加速下探后企稳。对于日内已经涨幅超过3%的票不要追等回踩分时均线再考虑。这样即是用公式来完成“危中择机”的发现、验证和触发三步。不要每天机械性地跑公式只在指数连续下跌3天以上或者单日大跌之后再用有效性会明显好于天天扫射。公式是工具如何使用工具的时机才是真正拉开差距的地方。本文还有配套的精品资源点击获取