ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

集合竞价抓涨停:MACD背离与斐波那契的量化选股实战复盘

集合竞价抓涨停:MACD背离与斐波那契的量化选股实战复盘 先说清楚这不是一个拿来就能躺赢的圣杯策略。把交易策略包装成稳赚工具的内容你直接关掉就行。集合竞价抓涨停这件事本质上是一场概率游戏而量化模型存在的意义是把盘感这种说不清道不明的东西拆解成可以被回测、被验证、被复盘的规则。这篇文章是我自己把MACD背离和斐波那契结合进集合竞价选股框架后的完整复盘包含因子逻辑、操作步骤、回测中踩过的坑以及实盘和回测之间那些让人头疼的差异。这套方法适合谁适合已经对技术分析有基础认知想从凭感觉买票过渡到按规则交易的人。如果你还没搞清楚集合竞价的基本规则建议先补一下基础知识再回来看。1. 集合竞价里到底藏着哪些有效信息很多人一提集合竞价就想到9:25那一下的价格跳动实际上竞价阶段的数据远比最终开盘价有信息量。这个阶段是全天多空双方第一次正面交锋主力资金的真实意图往往会通过挂单和撤单的节奏暴露出来。1.1 竞价机制里被忽视的细节集合竞价从9:15持续到9:25但前后两段规则完全不同。9:15到9:20这五分钟订单可以挂也可以撤很多游资会在这里挂大买单制造强势假象然后在9:19:59集体撤单。9:20到9:25这五分钟订单只可挂不可撤这五分钟内留下的委托单才是真金白银参考价值远高于前五分钟。9:25那一刻产生的开盘价是市场在不可撤单约束下达成的均衡价。之后9:25到9:30这几分钟是连续竞价前的静默期很多人忽略了这段时间但如果你用的是Level-2行情可以清楚看到买卖五档的挂单变化和逐笔委托的动向这是判断资金是否坚定最直观的窗口。我在初筛股票池时会重点盯四个数据维度竞价涨幅高开幅度在2%到5%之间最佳。高开太少说明资金意愿不足高开超过7%则追高风险陡增容易买到情绪高点。竞价成交额开盘前最后一笔撮合金额最好在2000万以上成交额太小说明关注度不够涨停封板的概率自然降低。竞价换手率结合个股流通盘看通常1%到4%之间是比较健康的活跃度。未匹配量的方向如果开盘前未匹配买单持续累积说明抢筹意图真实如果是未匹配卖单不断出现再好看的价格图形都要警惕。1.2 真假强势的辨别方法竞价高开不等于资金强势这一个认识的转变让我少交了很多学费。有些票高开7个点看着气势如虹结果开盘三分钟直接跳水有些票只高开2个点但竞价阶段买单是层层往上扫的开盘后反而一路走强。一个非常实用的观察点是9:20到9:25之间价格曲线的形态。真强势的票这五分钟内的价格是稳步抬升的买一位置的挂单量越积越多假强势的票价格会在高位反复横跳或者最后几十秒突然往下砸一下。前一种情况说明卖压在被主动消化后一种情况说明有资金在借高开出货。另一个容易被忽略的维度是板块效应。如果当天某板块内多只个股竞价阶段集体高开说明有板块级资金在运作这种情况下个股的成功率会明显提升。单打独斗的个股竞价再好看也要打个折扣因为没有板块合力的票很难抵御市场的随机波动。2. MACD背离在竞价阶段的使用边界MACD背离是技术分析里被讲烂了的概念但大部分人在集合竞价场景下根本用错了方向。集合竞价只有十分钟用一分钟、五分钟级别的MACD去看背离数据点太少随机噪声淹没信号基本没有参考价值。2.1 背离判断的正确时间级别我在这个策略里用到的MACD背离是在日线和60分钟级别上完成的不是竞价时临时看图。具体逻辑是前一交易日下午收盘后先对全市场做一次日线级别的MACD底背离扫描把符合条件的股票加入备选池再叠加60分钟级别的趋势过滤确认中期动能是否正在从衰竭转向修复。为什么要这么做因为底背离本质上反映了抛压的衰竭这是一种相对慢变量不会在十分钟内凭空出现。股价在日线上创新低但MACD的绿柱面积和DIF线低点没有同步创新低说明空头力量已经到了强弩之末。这时候再结合第二天竞价的资金表现胜率才会上来。这就像看一个人的健康状况你不能因为他今天多喝了两口水就断定他身体好了要看的是过去一段时间各项指标的综合变化趋势。MACD背离给出的就是这种趋势层面的信息。2.2 背离强度的量化定义纯粹的背离出现就买入过于模糊容易陷入主观判断。我给自己定了一个量化标准DIF线在零轴下方两次金叉且第二次金叉位置高于第一次形成明显的底部抬高。股价创出阶段新低但MACD的DIF低点比前一次低点上移幅度超过10%。绿柱面积明显收窄后一波下跌对应的绿柱总面积比前一波缩减30%以上。三个条件同时成立的票才算真正进入股票池。这套标准做出来的效果是剔除了大量微背离的噪声信号只保留下那些动能转换迹象足够明显的标的。2.3 竞价阶段MACD的辅助用法初筛完成之后竞价阶段还在不在MACD上花时间我的做法是看但只看一个东西——开盘后前三分钟的白盘MACD柱体变化方向。如果股价在小幅回落后1分钟级别的MACD红柱快速放大同时配合分时均价线的向上拐头说明盘中的多头动能延续了日线级别的修复趋势这时候竞价阶段观察到的高开才值得信任。要注意的是这个判断必须在开盘后做不能在竞价期间提前下结论。竞价期间MACD没有足够的数据点形成有效图形硬要看就是刻舟求剑。表MACD背离在不同时间级别的用途对比时间级别用途可靠性适用场景日线股票池初筛高前一交易日收盘后选票60分钟趋势过滤中高确认中期动能方向1分钟盘中时机确认低仅作辅助参考不可单独使用3. 斐波那契回撤与扩展在涨停目标管理中的定价逻辑斐波那契在很多人眼里是玄学但往本质了说它反映的是交易者在关键价位上形成的集体记忆。0.618、0.5、1.272这些位置之所以有效是因为大量做技术分析的交易者都盯着这些位置挂单形成了自我实现的预期。3.1 关键位置的计算方法我使用斐波那契的思路分两步。第一步在股票进入备选池后找出它最近一个完整的上涨波段和下跌波段记录下波段高点和低点。第二步从低点向高点画回撤线0.382、0.5、0.618是关键观察位置从高点向低点画扩展线1.272和1.618是目标管理位置。举例来说一只票前一波从10元涨到15元随后回调。那么从10到15这个波段画回撤0.5位置在12.5元0.618位置在11.91元。如果竞价阶段股价高开后落在12.5元附近同时日线MACD刚形成金叉这个位置的性价比就值得重点关注。如果股票已经涨停斐波那契的作用就切换成目标管理。用最近的低点到涨停价之间的空间做扩展线1.272位置是第一个需要警惕的分批止盈区1.618位置是强压力区到了这个位置该走就走不贪最后一截利润。3.2 斐波那契和竞价模型的衔接很多人在集合竞价策略里忽略了一个问题竞价高开之后股价距离前高还有多少空间这个空间决定了追进去的盈亏比。我习惯在竞价结束后、9:30开盘前快速计算两个数值当前开盘价相对斐波那契关键位的位置以及从开盘价到下一个扩展目标位的空间比例。如果开盘价已经运行到前一波行情的0.618扩展位附近意味着短期空间被透支即便竞价图形再漂亮也不参与。如果开盘价才刚突破0.618回撤位上方还有1.0、1.272等扩展位等着盈亏比就合理得多。这个步骤看起来简单但对过滤高开在情绪顶点的情况非常有效能把一批只适合观赏的票直接排除在操作名单之外。4. 把三者耦合进一个可回测的量化模型前文讲的都是单点逻辑真正让这套方法变得可用的是把它们整合进一个完整模型的过程。我花了大半年时间反复调整最后沉淀下来的框架是一个三层漏斗结构。4.1 三层漏斗模型框架第一层是条件初筛层。A股市场五千多只股票我不可能逐一分析先用三个硬性条件做快速淘汰日线MACD底背离成立、60分钟趋势线向上、成交额连续三日站上5日均量。这一层会把候选池压缩到30到50只左右。第二层是竞价因子评分层。开盘竞价阶段对候选池内的每一只股票打一个综合分满分100分由若干细化因子加权构成。评分因子和权重参考竞价涨幅合理性20分高开2%-5%给满分超过7%给零分。竞价成交额活跃度25分成交额越大、越接近前一日全天成交额的十分之一得分越高。量比20分竞价量比在3到8之间最佳过高或者过低都减分。板块联动强度20分同板块竞价高开个股数量超过3只给予高分。斐波那契位置15分开盘价未透支关键扩展位给予高分。第三层是目标管理策略层。入场之后不再做人工主观判断完全按照预设的斐波那契位置执行止盈和止损。止损线设在开盘价下方3%或者波段低点下方2%哪个先触发就按哪个执行。止盈则按1.272和1.618扩展位分批操作。4.2 打分逻辑的代码实现整个打分逻辑我用Python做成了每天收盘后自动运行的脚本这样可以把情绪因素和人的犹豫排除在策略之外。核心函数的逻辑大致如下非完整代码只展示核心思路def score_stock(stock_data, market_data, fib_levels): score 0 # 竞价涨幅合理性 open_pct stock_data[open_pct] if 0.02 open_pct 0.05: score 20 elif open_pct 0.07: score 0 else: score 10 # 竞价成交额 auction_amount stock_data[auction_amount] prev_volume_amount stock_data[prev_amount] ratio auction_amount / prev_volume_amount if ratio 0.1: score 25 # 量比 volume_ratio stock_data[volume_ratio] if 3 volume_ratio 8: score 20 # 板块联动 sector_count market_data[stock_data[sector]][gap_up_count] if sector_count 3: score 20 # 斐波那契位置 if stock_data[open] fib_levels[0.618_ext]: score 15 return score4.3 回测框架的关键细节在回测阶段最容易犯错的是用事后视角假设每笔交易都能在理想价位成交。A股有涨跌停机制很多高开秒板的票根本买不进去如果你在回测里假设它们都能成交结果会非常失真。我在回测中做了三个约束涨停开盘或开盘后一分钟内封板的票视为无法成交买入按开盘价加0.5%的冲击成本计算卖出按止盈止损价成交但假设跌停时无法卖出。这样处理之后回测结果的可信度会高不少。另一个重要细节是剔除ST股和上市不满30个交易日的次新股这两类股票的博弈逻辑和普通票完全不同混在一起会污染样本。5. 回测结果与实盘验证中的意外情况回测跑出来的结果很好看年化收益曲线也很漂亮但把模型真正放到实盘里遇到的问题会多得多。这一部分是我最想分享的因为网上基本没人说这些。5.1 回测里看不到的成交困境集合竞价抓涨停这个策略最大的实盘障碍是成交率。模型筛选出来的高分股票往往也是市场上大量资金盯上的热门票9:30开盘瞬间就被巨量买单打到涨停你的委托单排在后面根本挤不进去。回测里假设开盘价成交实际上是过于理想化的假设。我的应对做法是不追求在竞价结束后立刻市价买入而是把委买单挂在开盘价的2%到3%上方如果开盘秒板就自动放弃这笔交易切换到候选池里的备选票。这个调整虽然会让信号触发次数减少30%左右但成交的真实性大幅提升整体收益不降反增。5.2 假背离与炸板陷阱回测数据里不会告诉你的是MACD背离在连续下跌的弱势环境里会出现很多假修复。股价反弹了三天MACD红柱也出现了结果第四天直接一根大阴线砸下来一切回到原点。这种假背离在板块退潮期尤其危险。比如一个题材已经炒作了两周龙头股进入补跌阶段板块内其他股票的MACD可能因为前期横盘而出现背离信号但这些票没有独立的上涨逻辑资金一旦撤离就是无差别的踩踏。模型能识别量价关系但识别不了这个题材是不是已经要结束了。我的补救方案是增加一个环境判断条件当日竞价阶段同板块内高开个股的持续性以及前一交易日涨停家数的整体高度。如果市场在涨停潮的高峰期把评分阈值提高15分以上如果处于涨停家数的冰点期则干脆不交易。5.3 参数过拟合的风险这套模型最容易被自己骗到的地方就是参数优化。你在历史数据上反复调整评分权重很容易找到一个让过去十年收益最大化的权重组合但这不代表未来也有效。我用了一招很简单的方法规避过拟合把样本分为训练期和验证期在训练期调参在验证期做一次性验证。如果两段数据的表现差异过大说明参数不稳定需要重新设计因子而不是继续调权重。经过这一步操作我把原本三十多个候选因子砍到了现在的五个核心因子模型反而更耐用了。这算是我在这个项目中最大的认知升级好的策略不是越复杂越好而是尽量简单、逻辑清晰、经得起时间检验。6. 这个模型的局限性与改进方向任何一个策略都有它生效的边界条件。这套集合竞价模型赚钱的时候很爽但亏钱的时候也一点都不含糊关键是搞清楚它什么情况下会失效。6.1 模型失效的三种典型场景弱势市场环境下模型效果会大打折扣。当主要指数处于明显的下降通道每日涨停家数只有个位数连板高度打不开时任何技术指标的可靠性都会系统性下降。这时候市场上抛压远大于承接不是个股逻辑能解决的。我现在的做法很直接市场弱势时直接停用模型普通交易日空仓等待不算错。监管环境对游资行为的影响也会让模型在短期内失效。当交易所对异常交易行为的监管趋严多只热门股被窗口指导游资的操盘节奏会明显收敛。这在竞价数据上表现为高开幅度普遍降低竞价成交额分布异常板块联动效应减弱。一旦发现竞价数据的统计特征发生显著变化就该意识到模型所处的市场生态已经变了需要暂停观望。个股自身的消息面冲击无法被模型覆盖。比如隔夜出现重大利空公告或者业绩暴雷这类信息不会体现在MACD和金价数据里竞价走势再符合模型也要无条件放弃。6.2 下一步的优化方向引入市场情绪周期维度当前模型的短板在于没有考虑市场情绪的周期位置。同样是板块联动效应在情绪上升期和下降期的含义完全相反。一个可以考虑的改进是增加一个情绪温度计因子每日统计高位股炸板率和昨日涨停股在今日的溢价表现当炸板率低、溢价率高时说明市场情绪处于发酵期可以正常参与当炸板率飙升、溢价率转负时说明情绪进入退潮期即便模型发出信号也应该降低仓位甚至空仓观望。把情绪周期作为第一层过滤器把MACD背离和竞价因子作为第二层选择器这种思路可能会比目前的三层模型更稳健。此外还可以尝试把板块内部的相对强度纳入评分体系例如使用个股相对板块指数的强度差替代单纯看板块高开个股数量这个方向的优化空间还挺大的。交易模型永远是一个持续迭代的艺术而不是一个一劳永逸的工程。每一次实盘中的反常表现都是下一次优化的入口关键是保持对数据的敏感度和对市场环境的敬畏心。
返回列表