
提起黑马股很多人第一反应是连续涨停、K线像火箭一样往上窜。但真正靠黑马吃到大肉的交易者几乎没有一个是等它涨到人尽皆知之后才进场的。这篇文章要聊的不是怎么追已经跑起来的妖股而是反过来——在下跌末段或长期横盘的尾声用量化条件把“跌透了、资金开始回补、均线即将形成多头排列”的标的提前筛出来等它启动再跟。这就是“黑马反弹抄底”选股公式的核心思路。整篇内容会从逻辑拆解、通达信源码实操、复盘验证到参数优化一步步把整个选股体系展开适合已经会用通达信看盘、想从“看图说话”升级到“条件筛选”的读者。1. 黑马的定义误区你追的从来不是黑马是接盘位1.1 黑马的第一性原理低吸资金与追高资金的根本差异黑马股的共同特征并不是“涨幅大”而是“启动前无人问津、启动后迅速脱离成本区”。主力资金要想在低位拿到足够筹码必然要让股价经历一段漫长的阴跌或横盘把不坚定的持仓者震荡出局。当换手率萎缩到极限、日成交量连续处于地量区时往往意味着浮筹已经清洗得差不多这时候才具备反弹甚至走出一波大行情的基础。而散户的典型操作恰恰相反大多数人只关注涨幅榜前列等一只票已经拉出两三个涨停才开始“研究基本面”结果买在了主力的成本区之上。这里最核心的差异是资金进场的位置完全不同。低吸资金建仓成本低持股耐心足追高资金成本高一有回调就恐慌。同一个涨停K线对低吸资金是加速信号对追高资金却是离场信号。如果选股公式能把你的视角从“谁在涨”切换到“谁具备了启动条件”你就已经避开了最大的亏损来源。这也是为什么我宁可花时间写“黑马反弹抄底”这类公式也不愿意用那些“昨日涨停”“连板数大于3”的高位接力公式。1.2 抄底为何总抄在半山腰指标背离是前提不是结论很多人抄底失败不是指标用错了而是把“跌了很多”当成“快到底了”。一只股票从20块跌到10块跌了50%你觉得够便宜了可它还能继续跌到7块。所以单纯依赖“跌幅大”或者“市盈率低”做抄底决策本质上是在接飞刀。技术分析里经常提到的“底背离”指的是股价创新低而MACD或RSI指标不再创新低说明下跌动能衰竭。但在公式层面背离只是一个“前提条件”它告诉我做空力量减弱但并没有告诉我多头力量开始占优。从减空到转多中间还差一个“资金主动回补”的信号。这个信号通常表现为下跌末期成交量极度萎缩随后某天突然放量收阳配合短期均线拐头向上。我在写公式的时候会把背离类条件和量价启动类条件放在同一个逻辑表达式里而不是单独使用任何一个。因为只有两个条件共振才能把“可能见底”升级成“大概率开始反弹”。1.3 指标公式在证券软件里的角色它是过滤器不是水晶球必须先把一个观念摆正任何指标公式都不会预测未来它只是把你眼睛看得过来的几百只票压缩成几十个符合特定模式的候选标的。以通达信为例全市场几千只股票人工一个个翻K线不仅慢而且容易漏掉真正漂亮的形态。编写选股公式本质是把你自己的交易逻辑翻译成计算机能识别的语言然后让它在收盘后帮你做一次全市场的筛选。这引出一个重要的纪律公式选出来的票只代表“符合技术特征”不代表“一定会涨”。它减少的是你的搜索成本而不是你的决策风险。我习惯上在公式选股的结果出来之后还会人工看一遍K线位置、板块归属和最近的消息面再决定是否进入观察池。整个过程里公式占三成人力判断占七成。2. 黑马反弹抄底选股公式的核心维度量、价、势缺一不可从我的实操经验看一个合格的黑马反弹抄底公式至少要覆盖三个维度成交量、价格结构、趋势动能。这三者互为印证单独拎出任何一个都容易产生大量假信号。2.1 量能维度地量、量能饱和度与资金回补量能是整个公式里最不应该被忽略的维度。地量是洗盘结束的信号但这个信号有一个前提之前的下跌应该是缩量下跌而不是放量出货。如果一只股票从高位下来每个下跌波段都伴随巨大成交量那说明筹码还在大量换手主力未必拿到了足够的低位筹码后续反弹的持续性就要打折。社区里经常听到“量能饱和度”这个词很多副图指标里画了一个类似圆圈的东西数值在0到1之间来回摆动。它的核心逻辑并不神秘计算当日成交量在过去若干日成交量波动区间中的位置。接近0说明量能极度萎缩接近1说明量能极度放大。最理想的抄底信号是量能饱和度先是贴着地板的“0”区域磨了几天随后突然跳升到高位区这时候配合一根阳线就是资金回补的实质证据。我这里给出一个简化版本量能位置: (VOL-LLV(VOL,30))/(HHV(VOL,30)-LLV(VOL,30)0.000001); 地量:量能位置0.15; 放量:量能位置0.8;这里LLV和HHV分别取最近30日成交量的最低值和最高值分母加0.000001是为了防止股票停牌或连续一字导致最大值等于最小值时出现除零错误。通达信里这类细节一旦忽略公式一运行就会报错或出奇怪的结果。2.2 价格维度均线粘合、平台突破与斜率拐头价格结构上黑马启动前最常见的形态是均线粘合。5日、10日、20日均线绞在一起说明最近一段时间市场的平均持仓成本高度一致多空双方进入僵持状态。僵持意味着变盘临界点向上突破就是趋势启动向下破位就是新一轮下跌。在通达信里均线粘合可以用标准差或者“均线之间的最大距离”来描述。我常用的是把三条均线的平均值减去三条均线的最大值再除以最大值得到一个“发散度”指标M5:MA(CLOSE,5); M10:MA(CLOSE,10); M20:MA(CLOSE,20); 粘合度: (MAX(MAX(M5,M10),M20)-MIN(MIN(M5,M10),M20))/MAX(MAX(M5,M10),M20);粘合度小于某阈值说明均线收敛当某一天股价放量收阳、收盘价同时站上这三根均线的时候往往就是平台突破的起涨点。这里我不建议直接用“CROSS(CLOSE,M20)”这一类单一金叉条件因为股价来回穿越均线会制造大量假信号。更好的做法是要求“收盘价连续N日站稳20日线”或“5日线上穿10日线的同时10日线仍保持向上斜率”。2.3 趋势维度MACD底背离在公式中的简化表达趋势维度解决的是“方向”问题。短周期的量能和价格结构可以告诉你“今天有资金动手了”但如果中期趋势还是空头反弹很容易变成一日游。所以公式里必须加入一个中期趋势过滤最常见的做法是用MACD或者指数平均线EMA(CLOSE,60)来代表中期方向。MACD底背离在人工看盘时很好理解但在公式里写完整版很繁琐需要比较两个相邻低点对应的股价和MACD柱值。社区里很多人会直接用“MACD柱由绿转红且DIF上穿DEA”这个简化条件牺牲一点精度换取信号的可编程性。我也倾向于这种折中因为完整版的底背离识别写起来不算难但在选股公式里跑全市场会导致信号数量过少实用性反而下降。简化表达可以是DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); H1:CLOSEMA(CLOSE,20); H2:DIFDEA; H3:MACD:2*(DIF-DEA), 只需要H1 AND H2;把这些条件组合在一起就构成了一个兼顾量、价、势三方面的雏形。下一步才是把它写成完整的通达信选股公式。3. 通达信源码实操黑马反弹抄底选股公式的搭建全过程这一章是很多人最想直接抄作业的部分。我会先快速过一遍通达信公式编辑器的基本规则再给出一份可直接粘贴的示例源码最后专门讲几个容易让公式“看起来完美、实盘翻车”的坑。3.1 通达信公式编辑器入门函数与语法速览通达信的公式语言并不复杂核心就两个符号一是“:”表示中间变量赋值只计算不输出二是“:”表示输出到主图或副图。常用函数其实用不了几个CLOSE、OPEN、HIGH、LOW、VOL是行情基础数据MA、EMA是均线REF是引用N周期前的值COUNT是统计条件成立次数CROSS是金叉判断HHV和LLV是区间最高最低值。再加上一个COND函数的条件判断基本就够写绝大多数选股公式了。编写指标公式时建议先在“公式管理器”里新建一个“技术指标公式”做验证在副图或主图看到信号形态没问题之后再复制一份改成“条件选股公式”。直接在“条件选股公式”里调试是很痛苦的因为你看不到中间变量的曲线出了问题只能干瞪眼。3.2 黑马反弹抄底选股公式源码附注释下面是我用于教学演示的一个完整版本逻辑上就是前面说的量、价、势三结合{黑马反弹抄底示例选股公式-仅用于技术学习} {--- 量能维度 ---} VOL30L:LLV(VOL,30); VOL30H:HHV(VOL,30); 量能位置: (VOL-VOL30L)/(VOL30H-VOL30L0.000001); 地量区: 量能位置0.15; 放量确认: 量能位置0.8; {--- 价格维度 ---} M5:MA(CLOSE,5); M10:MA(CLOSE,10); M20:MA(CLOSE,20); M60:MA(CLOSE,60); 粘合度:(MAX(MAX(M5,M10),M20)-MIN(MIN(M5,M10),M20))/MAX(MAX(M5,M10),M20); 均线粘合: 粘合度0.05; 站上20日线: CLOSEM20; 5日线拐头: M5REF(M5,1); {--- 趋势维度 ---} DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); MACD红柱: DIFDEA; 中期趋势: CLOSEM60; {--- 组合条件 ---} 选股: 地量区 AND 放量确认 AND 均线粘合 AND 站上20日线 AND 5日线拐头 AND MACD红柱 AND 中期趋势;注意这个公式里的“地量区 AND 放量确认”会形成一个矛盾同一根K线上量能位置不可能同时小于0.15又大于0.8。所以我实际写的时候会把“地量区”作为一种历史状态来理解也就是“最近几天内出现过地量”需要用COUNT或REF函数去表达例如“最近5日内出现过地量且今日放量”。这一处是新手最常犯的逻辑错误下一章我会专门演示怎么改正。3.3 主图叠加信号把买点直接画在K线上选股公式只能筛出“今天符合条件的股票”但同一个股票什么时候符合、前面经历了什么选股公式看不出来。所以我会再写一个主图叠加公式在满足条件的K线上做标记方便复盘{黑马反弹抄底主图信号-示例} M5:MA(CLOSE,5); M10:MA(CLOSE,10); M20:MA(CLOSE,20); M60:MA(CLOSE,60); 量能位置: (VOL-LLV(VOL,30))/(HHV(VOL,30)-LLV(VOL,30)0.000001); 地量区: 量能位置0.15; 放量确认: 量能位置0.8; 粘合度:(MAX(MAX(M5,M10),M20)-MIN(MIN(M5,M10),M20))/MAX(MAX(M5,M10),M20); 信号: COUNT(地量区,5)1 AND 放量确认 AND 粘合度0.05 AND CLOSEM20 AND M5REF(M5,1) AND M5M10 AND M10M20 AND CLOSEM60; DRAWICON(信号,LOW*0.98,1); STICKLINE(信号,OPEN,CLOSE,3,0),COLORYELLOW;DRAWICON的第三个参数1表示画一个向上的箭头图标STICKLINE则是把满足条件的K线用黄色实体标出来。这样你在主图上一眼就能看到历史上哪些K线被公式标记过后面涨了还是跌了复盘效率会高很多。3.4 最容易被忽视的坑未来函数是怎么毁掉一个公式的这是全文我想强调三遍的问题。通达信里有一批函数会在计算当前值时引用未来数据典型的有ZIG、PEAK、TROUGH、BACKSET以及一些利用REFX开头的函数。它们在做历史回看时会把“未来的高低点”当作已知条件所以指标信号在历史K线上极其精准但如果用于实盘选股第二天开盘一刷新信号可能直接消失或变成另一根K线上的点。很多“胜率90%”的网传指标一到实战就原形毕露原因就是用了未来函数。验证方法很简单看信号是否在某根K线出现后随着后续行情发展发生漂移。如果一根K线当时没有信号过了几天才在那个位置补出信号那就是被未来函数美化了。我自己验指标第一步永远是检查源码里有没有ZIG、BACKSET这些词有就直接剔除。这也是为什么我上面给的示例公式只用了MA、EMA、REF、COUNT这些历史确定型函数。4. 逐行拆解公式逻辑为什么这样写改了会怎样光有源码还不算完。如果你不理解每一行在做什么遇到行情变化就不知道怎么调。这一章把公式拆开揉碎讲清楚每个条件的意义、参数选择的理由以及社区里那些常见指标量能饱和度、三步点睛、四维共振等都是怎么跟这类公式配合的。4.1 缩量回调的条件拆解地量不是目的是状态公式里“最近5日内出现过地量”这个条件本质上是在确认筹码惜售。很多人把它理解成“今天量越小越好”这是错的。地量本身不产生买点它只是告诉你“卖压衰竭了”真正的买点要等之后的放量来确认。所以逻辑顺序必须是“先地量、后放量”时间上有先后不能用AND把它们塞在同一个周期里。用通达信的表达就是地量出现: COUNT(VOLLLV(VOL,30)*1.2,5)1;等号右边的意思是最近5个交易日里至少有一天成交量低于过去30日最低量的1.2倍。这个1.2是一个经验余量因为完全等于最低量几乎不会出现稍微放一点容差能让信号不至于少得离谱。如果你的观察周期偏长比如做周线级别可以把这个容差改成1.5信号会多一些但假信号也会跟着多一些。4.2 放量启动的条件拆解量能位置大于0.8意味着什么量能位置大于0.8代表当前成交量已经处于过去30日成交区间的顶部区域。但这里有一个容易被忽略的细节如果股票前面几天是连续缩量的地量区突然放量超过0.8这个量能未必很大只是因为30日区间的上下限被地量拉大了。所以“大于0.8”是相对位置不是绝对大小最好再叠加一个VOLMA(VOL,5)*1.5做保险防止单日量能只是“矮子里拔将军”。这种双重要求的思想在社区热门的“四维共振”指标里也能看到。它通常不是靠单个神奇函数而是把量能位置、价格位置、资金流指标、时间周期放在一起做同频共振信号数量少但一旦出现胜率相对有保障。我在自己的公式里借鉴了同样的思路只是指标选择上偏向于底层行情数据不依赖那些容易未来函数的隐藏变量。4.3 参数周期选择背后的统计逻辑5、20、60是怎么来的公式里的5、10、20、60这些数字不是随便拍的。5日线代表一周的平均成本20日线约等于一个月的交易周期60日线则是整个季度的趋势分界线。把这几个周期组合起来覆盖了短线资金、中线资金和机构资金的常用持仓节奏。指数均值回归的统计特性决定了当一个标的的短期成本快速回归到中期成本附近时后续选择方向的概率和幅度都会增大这是均线粘合条件有效的底层原因。如果你做的是小盘题材股可以把周期缩短比如5、10、20换成3、5、10如果你做的是大盘蓝筹或指数ETF周期可以拉长到10、30、60。参数没有绝对最优只有适合某种行情节奏的相对最优。我自己的习惯是保留一组基准参数然后按流通市值分层做微调。4.4 辅助副图量能饱和度、三步点睛类指标的叠加思路通达信社区里的指标名字千奇百怪“量能饱和度圆圈”“三步点睛”“三步掘金”“新布林极限”“海龟交易系统”……但它们的内在逻辑大多是相通的。量能饱和度本质上就是量能位置类指标三步点睛是三个买入条件同时满足的共振信号新布林极限是把布林带做了变形寻找价格冲出轨道后的回归机会海龟交易系统则是经典的唐奇安通道突破策略。我不建议把七八个指标全部塞进一个选股公式里因为条件越多信号越少最后可能一个月都选不出一只票。更合理的做法是主公式负责“量、价、势”三个核心维度副图指标只做人工复核时的辅助判断。比如主公式选出一批票之后打开副图看一下量能饱和度是否处于从低位拐头的阶段三步点睛类信号是不是在同一区域连续出现如果是再把这只票放进重点观察池。5. 实战复盘用历史K线检验黑马选股公式的筛选效果写公式容易验证公式才是真正的体力活。我自己要求每一个指标公式都要经过至少一年的历史数据复盘统计信号数量、胜率、平均盈利幅度和最大回撤才会放到实盘选股里。5.1 我的回测流程数据范围与统计口径回测不需要复杂的量化平台在通达信里就能做。先选定一段历史区间比如2020年1月到2021年6月把全市场股票都纳入用选股公式每天跑一遍记录每天选出的股票代码。然后逐个统计这些股票在信号出现后5日、10日、20日的涨跌幅再算出平均盈利、胜率和最大亏损。这里要特别注意“幸存者偏差”问题。现在软件里看到的股票列表是当下的那些在2020年被选出、后来退市或长期停牌的股票如果你用的是当前导入的历史数据很可能根本看不到。所以更严谨的做法是用当时的行情数据文件做回放或者至少在统计时剔除掉因退市而缺失的样本不然胜率会被虚高。5.2 成功样本横盘蓄势后的放量突破在回测里我见过最典型的成功样本是这样一只股票股价在一个狭窄的箱体里横盘了大约8周成交量先是缓慢萎缩到地量然后在某个交易日突然放大到前5日均量的2倍以上当天收出一根中阳线直接站上20日均线同时MACD红柱放大。选股公式在当天收盘后给出信号随后20个交易日内股价走出了一波比较流畅的上涨最大涨幅超过30%。这类样本的共同特征非常明显它们在此之前都经历了一个充分的“缩量-止跌-异动”三部曲。地量确认抛压枯竭横盘整理让均线充分粘合放量阳线是资金主动进场的第一个可识别证据。公式能抓住的正是这个第三阶段的启动点。5.3 失败样本下跌中继的假反弹我同样记录了不少失败案例。最典型的一种是股价从高位快速下跌中间出现一根放量反弹阳线公式给出信号但随后股价继续下跌把反弹全部吞掉。复盘时发现那个放量是下跌中继里存量资金的出货反抽均线并没有真正粘合因为前期下跌太快均线发散度仍然很大只是被我的容差参数放松后误判成了粘合。这给了我一个重要教训粘合度阈值不能一概而论。前期波动剧烈的股票均线天然发散度就高0.05的阈值往往过早地把它认定为粘合。解决方法是把粘合度条件改成“过去20日波动率衰减”这一类动态条件或者把阈值提高到0.08再看信号是否有改善。5.4 用案例样本修正参数一次真实的调试记录我记得有一次调试把粘合度阈值从0.05改成0.08之后信号数量从三个月26个增加到47个但胜率从68%掉到54%。这说明阈值放宽引入了大量低质量样本。我又试着把放量倍率从1.5提高到2.0信号数量降到19个胜率回升到72%。最后综合考虑信号数量和胜率我保留了0.06的粘合度阈值和1.8的放量倍率作为那一段行情下的较优组合。这个调试过程其实没有任何高深的东西就是不断改变参数、统计结果、观察胜率曲线的变化。关键是每一次只改一个参数不要同时动好几个否则你根本分不清是哪个改动导致了胜率变化。6. 进阶优化黑马选股公式的常见失效场景与应对再好的公式遇到某些行情环境也会频繁失手。这一章聊几个我在实战里总结出来的失效场景以及对应的处理思路。6.1 常见失效场景缩量阴跌、高开假量、利空突袭最让这类公式头疼的是缩量阴跌。股价每天跌一点点量能始终是地量这个过程可能会持续几个月。公式里的“地量区 AND 均线粘合”很容易在某个时点被触发但因为没有放量阳线的确认底部迟迟出不来。这类信号通常不值得交易除非你愿意承担较长时间的时间成本。高开假量是另一个坑某天开盘大幅高开成交量大得吓人但盘中持续走低收盘甚至翻绿。量能位置条件满足了价格位置条件却是在最高点附近追进去的。对付这种情况我会在公式里加一个当日涨幅约束比如“CLOSEREF(CLOSE,1) AND CLOSEREF(CLOSE,1)*1.07”排除掉跳空高开的极端走势。利空突袭没法预防但可以通过流程规避公式选股结果出来之后先搜一下有没有突然的公告、解禁、减持之类的消息。有些技术形态做得再漂亮一个突发利空就能瞬间打破。6.2 参数自适应不同行情阶段怎么调多头趋势市里公式的均线多头条件很容易满足信号数量多可以适当提高放量倍率和粘合度要求只做最强势的标的。震荡市里信号数量少且容易反复我会把粘合度阈值放宽一点同时要求收盘价必须站上20日线超过3天避免当天上冲第二天就被打回。单边下跌市里最好直接关闭选股公式空仓或者只做指数级别的超跌反弹因为逆势选股的成功率再高碰到系统性下跌也会被一并带走。这种“看环境调参数”的思路本质上就是很多人提到的“三步点睛”“四维共振”背后想解决的事在不同维度同时给信号加持。我越来越觉得参数不是越固定越好而是要在大的行情框架下做动态调整。6.3 组合过滤板块效应、指数环境与仓位管理指标公式只是第一层过滤实盘里我还会加上板块和指数的环境过滤。如果选出来的股票所属板块整体处于上升趋势指数也站在20日线上方那这只票的成功概率会显著提高。相反如果板块里其他个股都在破位下跌只有它自己出现抄底信号我一般会把它放回观察池而不是马上进场。仓位管理同样重要。我的习惯是首次信号只试仓等股价站上60日线且量能持续放大后再加仓。如果信号出现后3天内跌破启动阳线的最低价无条件止损。这看起来和指标公式没关系但恰恰是决定盈亏曲线的关键。公式帮你找到好的赛道仓位和纪律才是确保你在赛道上活下来的安全带。我个人用了几年这类选股公式最大的感受是它改变的不是“预测能力”而是“复盘效率”。以前翻几百只股票要一晚上现在收盘后几分钟就能得到一批候选剩下的时间用来做人工精读和基本面排查。如果你也想试建议先从我给的示例公式出发跑三个月历史数据记录每一笔信号的后续走势再根据你自己的风险偏好去调整参数。别迷信任何现成源码把所有公式都当成一个需要驯服的过滤器你才能真正用它赚到认知范围内的钱。