尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

集合竞价抓涨停:MACD背离与斐波那契的Python量化框架

集合竞价抓涨停:MACD背离与斐波那契的Python量化框架 做短线的人都知道09:15到09:25这十分钟比很多个股一天的行情都重要。集合竞价的量、价和委托变化往往能提前暴露当天资金的态度而MACD背离可以告诉我动能是否在衰竭斐波那契回撤位能告诉我在哪个位置接力更有利。把这些因素塞进一个可复现的量化模型里用Python批量跑一遍就是我一直在用的“集合竞价抓涨停候选”研究框架。这篇文章适合两类人一类是有一定看盘经验、想把竞价筛选从“凭感觉”变成“有标准”的短线交易者另一类是自己会写一点Python想学习如何把技术指标、形态和回撤位组合成选股因子的量化新手。先把话说在前面这不是一个保证胜率、教你躺赚的圣杯而是一套可以回测、可以复盘、可以继续改进的实战研究框架。1. 策略整体设计集合竞价、MACD背离、斐波那契为什么能组合在一起1.1 集合竞价窗口的特殊性A股的集合竞价分两个阶段09:15到09:20可以挂单也可以撤单09:20到09:25只能挂单不能撤单。很多短线资金会在9:20后把真实的买卖单子亮出来因为这个时候撤不了单虚假挂单的成本变高了。所以这两个阶段的委托量变化信息量完全不一样。等到09:25交易所撮合成交产生当天开盘价这就是一天中第一个真正意义上“多空达成一致”的价格。在这个窗口里做筛选最大的优势是“信号出现时间早”。如果你等开盘后再选股要么追高了要么已经封死涨停买不进去。集合竞价选股相当于把决策提前到开盘前用竞价异动来锁定潜在目标。但要注意竞价成交量本质上还是“虚拟撮合”的结果尤其是9:15到9:20之间的量很多是试盘和诱多不能直接拿来当真。我在实际操作中通常只把9:25前后的数据作为核心参考。为什么集合竞价适合配合抓涨停框架使用因为一只股票要想当天涨停它需要在开盘阶段就表现出异常的攻击性高开、放量、大单主动买入。这些特征在竞价阶段都有痕迹。当然高开也有可能是出货所以光看竞价是不够的必须叠加后续的动能判断和位置判断这就是MACD和斐波那契要干的事。1.2 MACD背离识别动能衰竭与反转启动MACD全称是Moving Average Convergence Divergence中文叫指数平滑异同移动平均线由DIF、DEA和MACD柱三部分组成。短线看盘里我最看重的是“背离”和“柱状体的放大与收缩”。所谓的底背离指的是股价创出新低但DIF或者MACD柱的低点反而在抬高说明下跌的动量在衰竭空头力量已经跟不上了。反过来顶背离就是股价创新高但MACD动能走弱通常是上涨末尾的危险信号。在集合竞价场景中我习惯把MACD放到1分钟和5分钟级别来看。如果一只股票前一天尾盘下跌早盘竞价低开但5分钟级别的MACD柱没有继续创新低甚至出现“双底”抬高那意味着这个低开很可能是洗盘而不是出货。反之如果股价竞价高开但5分钟MACD已经出现顶背离红柱一根比一根短那这个高开就非常可疑——它可能是拉高出货的诱多贸然追进去很容易吃面。这里要解释一个常见误区很多人把MACD当成金叉死叉的信号机这是不对的。MACD的本质是趋势和动能指标它告诉你的是“当前涨跌的加速度”而不是“马上就会涨跌”。真正的实战用法是把金叉死叉、柱状体变化、背离三者结合起来看。单看一个金叉就买入成功率很低尤其在分时级别假信号多到你怀疑人生。1.3 斐波那契回撤与扩展给买卖点提供坐标斐波那契数列本身不复杂1、1、2、3、5、8、13、21……后一项等于前两项之和相邻两项的比值逐步趋近于0.618这就是著名的黄金分割率。交易者把它应用在行情位置判断上形成了斐波那契回撤和斐波那契扩展。常用回撤位是23.6%、38.2%、50%、61.8%意思是价格从A点涨到B点之后回调到B-A这个波段的这些比例位置往往会形成支撑。在抓涨停策略里斐波那契不是用来“预测”涨停板的而是用来确认“盈亏比”是否划算。举个例子一只股票昨天涨停价格从10.00元拉到10.90元今天竞价高开3%在11.20元附近。如果它开盘后回踩昨天的涨停实体那么38.2%回撤位大约在10.56元50%回撤位在10.45元61.8%回撤位在10.34元。你的买入区间、止损位置、目标位置都能用这些坐标来框定。止损放哪里、止盈看哪里比“凭感觉”要扎实得多。斐波那契扩展位则用于目标测算。当股价突破前高后用延伸波段预测压力位常见扩展位是1.272、1.382、1.618。对于连板股1.382和1.618往往对应着重要的抛压区如果股价冲到这两个位置附近且MACD掉头向下短线减仓是非常合理的选择。1.4 三层过滤逻辑为什么不是三个指标简单叠加把集合竞价、MACD背离和斐波那契放在一起不是简单地增加筛选条件而是让它们各自负责不同的维度。我习惯把它设计成三层门禁第一层是“竞价异动层”负责筛选流动性和攻击性。竞价高开幅度、竞价量比、竞价成交金额达到阈值才进入下一轮。这一层的目的是把全市场几千只股票快速压缩到几十只。第二层是“动能层”负责过滤伪信号。用小级别MACD判断短期方向比如DIF在DEA上方、柱状体持续放大、没有明显顶背离。这一层解决的是“即使高开是不是真的有资金在推动”。第三层是“位置层”负责控制盈亏比。价格开盘后处于斐波那契的哪个位置如果离上方压力位太近空间不够宁可放弃如果正好在关键支撑位上方且下方止损距离小就符合标准。这一层解决的是“就算要涨我能赚多少、如果错了亏多少”。这个结构的好处是每一层都在回答一个独立的问题而不是三个指标同时给你同一个答案。很多人做多因子模型失败不是因为指标不够多而是因为指标之间高度相关等于重复筛选了同一个维度。竞价异动、动能、位置这三者相关性很低组合起来才能真正起到互补作用。2. 从公式到代码MACD与斐波那契的计算细节2.1 数据准备分钟级数据与复权处理所有量化策略都绕不开数据。集合竞价策略需要的数据包括历史每日开盘竞价数据、1分钟或5分钟K线、日线数据。在Python里比较方便的做法是用akshare或者tushare拉取数据。这两个库都是免费接口适合个人研究但免费接口在实时性和稳定性上有一定限制盘中做选股时要注意延迟。以akshare为例获取某只股票的5分钟K线代码如下import akshare as ak import pandas as pd df ak.stock_zh_a_hist_min_em( symbol000001, period5, adjustqfq ) df.columns [时间, 开盘, 收盘, 最高, 最低, 成交量, 成交额, 振幅, 涨跌幅, 涨跌额, 换手率] df[时间] pd.to_datetime(df[时间]) df df.set_index(时间) print(df.tail())这里特别要注意复权处理。股票除权除息后价格会出现跳空缺口如果不做复权处理技术指标会失真。建议统一使用前复权数据也就是adjustqfq这样历史K线与当前价格是连续的。很多人搭建策略时忽略这一点结果回测时好好的一到实盘就对不上很多时候问题就出在复权上。另外正规的盘中集合竞价数据一般要到9:25之后才能拿到完整的竞价撮合结果。如果你用的是1分钟K线集合竞价的成交量通常体现在9:30这根K线里。所以在历史回测时可以用9:30这根1分钟K线的开盘价和成交量来近似模拟竞价结果。这个细节非常关键它有严格的时间戳对齐要求否则就会引入未来函数。2.2 MACD标准公式与启动点写法先给出MACD的标准计算过程。默认参数是12、26、9分别是快线EMA周期、慢线EMA周期和DEA的平滑周期。def macd(close, fast12, slow26, signal9): ema_fast close.ewm(spanfast, adjustFalse).mean() ema_slow close.ewm(spanslow, adjustFalse).mean() dif ema_fast - ema_slow dea dif.ewm(spansignal, adjustFalse).mean() hist (dif - dea) * 2 return dif, dea, hist在通达信或者同花顺里对应的公式是这样写的DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); MACD:(DIF-DEA)*2,COLORSTICK;很多朋友拿来别人的指标公式不知道怎么修改。你打开通达信的公式管理器找到MACD这个指标就能看到上面这三行代码。想改参数直接把12、26、9换成自己的数值就行比如更灵敏的短线参数6、13、5。想改图上线条颜色就在冒号后面加COLORRED、COLORYELLOW这类颜色函数。想改柱状图的粗细可以把COLORSTICK改成STICKLINE并加宽度参数。原理很简单就是修改输出语句的属性。网上流传的“财经班长MACD反转数值指标”这一类源码本质上就是把MACD柱状值分成正负、大小等级再结合DIF的位置做一个加权打分。这种做法的思路是可以借鉴的但核心问题是你看不到它是在什么股票池、什么周期、什么行情环境下测出来的。直接照搬别人的参数等于把成交逻辑的决定权交给了别人。我更建议你把MACD当原料自己加工成适合交易节奏的信号。除了标准MACD短线还经常用到“启动点”信号。所谓启动点就是DIF上穿DEA形成金叉同时MACD柱由负转正并开始放大。一个简化的启动点公式可以这样写DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); MACD:(DIF-DEA)*2; 启动:CROSS(DIF,DEA) AND MACDREF(MACD,1) AND DIFREF(DIF,1); DRAWICON(启动,LOW*0.98,1);在Python里记录启动点也很简单只需要判断金叉和柱状体抬升同时发生dif, dea, hist macd(close) gold_cross (dif dea) (dif.shift(1) dea.shift(1)) hist_up hist hist.shift(1) start_signal gold_cross hist_up热词里还有一个“macd双底高低”的用法这也是我常看的。所谓MACD双底是指价格出现两个低点第二个低点不低于第一个低点但MACD柱对应的第二个低点明显高于第一个低点。用代码判断可以这样# 假设价低点列表 price_lows对应的MACD柱列表 hist_lows def macd_double_bottom(price_lows, hist_lows): if len(price_lows) 2: return False # 价格低点持平或抬高且MACD柱低点明显抬高 price_ok price_lows[-1] price_lows[-2] * 0.995 hist_ok hist_lows[-1] hist_lows[-2] * 1.1 return price_ok and hist_ok这里的0.995和1.1是容差系数实际使用中要根据品种和周期调整。双底形态的价值在于价格没有继续走弱但抛压在减弱一旦放量突破颈线往往就是一波短线行情的起点。2.3 MACD共振副图的实现“共振”是短线里非常流行的一个概念核心思想是多个时间周期的MACD方向一致。比如日线MACD是金叉状态、60分钟MACD也是金叉状态、5分钟MACD刚刚形成金叉这种情况下的做多信号在统计上要比单一周期金叉可靠得多。我自己的做法是在主图下方放一个多周期共振副图同时展示日线、60分钟、5分钟三个周期的DIF和DEA关系。用Python判断共振信号非常直观def multi_resonance(daily_df, hour60_df, min5_df): daily_dif, daily_dea, daily_hist macd(daily_df[close]) hour_dif, hour_dea, hour_hist macd(hour60_df[close]) min_dif, min_dea, min_hist macd(min5_df[close]) daily_ok daily_dif[-1] daily_dea[-1] and daily_hist[-1] 0 hour_ok hour_dif[-1] hour_dea[-1] and hour_hist[-1] 0 min_ok min_dif[-1] min_dea[-1] and min_hist[-1] 0 return daily_ok, hour_ok, min_ok如果你要在通达信里写跨周期引用不同版本的语法有差异这里给出一个逻辑示意需要你根据自己软件版本调整日线DIF:EMA(CLOSE,12)-EMA(CLOSE,26); 日线DEA:EMA(日线DIF,9); 60分钟DIF:EMA(CLOSE,12)-EMA(CLOSE,26); 60分钟DEA:EMA(60分钟DIF,9); 5分钟DIF:EMA(CLOSE,12)-EMA(CLOSE,26); 5分钟DEA:EMA(5分钟DIF,9); 共振条件:(日线DIF日线DEA AND 60分钟DIF60分钟DEA AND 5分钟DIF5分钟DEA); DRAWICON(共振条件,0.5,1);注意通达信里直接用CLOSE计算出的只是当前周期的值真正的跨周期引用仍然需要写对应周期序列。我的经验是个人研究阶段用Python来处理多周期数据比折腾公式软件更灵活也更容易做回测。知道共振的原理就够了实现路径可以自主选择。2.4 斐波那契波段的自动识别斐波那契计算本身非常简单难的是“自动找到一波趋势的高低点”。在历史K线上我们需要识别出最近的局部高点和局部低点然后计算回撤位。一个简单的局部高低点识别方式是用滚动窗口比较def swing_points(high, low, window5): rolling_high high.rolling(window * 2 1, centerTrue).max() rolling_low low.rolling(window * 2 1, centerTrue).min() highs high[high rolling_high].dropna() lows low[low rolling_low].dropna() return highs, lows这里要说明一下window参数控制“一个点之后多少根K线内没有更高价才算局部最高点”。窗口越大识别出的高低点越少趋势级别越大。做集合竞价抓涨停我一般用的是5分钟级别window取5到8比较合适如果想看日线级别的大支撑压力window可以取10以上。找到波段高低点后计算回撤支撑位和扩展压力位的代码如下def calc_fib(high_point, low_point): diff high_point - low_point levels { 0.236: high_point - diff * 0.236, 0.382: high_point - diff * 0.382, 0.5: high_point - diff * 0.5, 0.618: high_point - diff * 0.618, 1.272: low_point diff * 1.272, 1.382: low_point diff * 1.382, 1.618: low_point diff * 1.618, } return levels实际使用中我会优先关注0.382、0.5、0.618这三个回撤位因为它们对应着短线的支撑区域扩展位则看1.272、1.382、1.618。注意斐波那契位不是精确到小数点后两位的“魔法点”它更像一个价格区域。股票交易中有成交撮合的离散价格所以通常允许3到5毛甚至1%左右的误差。如果开盘价正好站在0.618位附近且下方止损距离只有1%那就具备较好的短线参与价值。3. 集合竞价选股框架从信号定义到Python实现3.1 信号定义与参数表在写代码之前必须先把策略信号定义清楚。我的初始参数表是这样的你可以根据自己熟悉的板块和品种调整参数初始范围说明竞价高开幅度2% ~ 5%低于2%攻击性不足高于5%追高风险大竞价量比大于3相对近期同时段成交量的放大倍数竞价成交金额大于5000万排除流动性太差的小票距斐波那契支撑位小于3%开盘价离关键回撤位不能太远5分钟MACD状态DIF大于DEA红柱放大确认短线动能向上日线趋势日线MACD没有明显死叉过滤大级别走弱的票这里需要特别强调这些参数是一组研究初值不是“最优参数”直接抄作业不现实。不同市场环境、不同板块、不同市值区间最适合的参数都不一样。比如在大盘弱势时5%的高开往往容易炸板这时候把高开幅度上限降到4%可能更稳在题材情绪高涨时量比大于5的票反而更容易连板。量化模型的价值不是告诉你“用这个参数稳赢”而是让你能快速在不同参数组合下做对比测试。3.2 Python主流程框架下面我给出一套可以落地的伪代码结构完整跑通需要你自己接数据源。逻辑顺序很关键先做粗过滤再做精细计算最后做排序输出。def select_candidates(stock_pool, date): candidates [] for code in stock_pool: # 1. 竞价比对获取9:25后的竞价快照 snapshot get_jingjia_snapshot(code, date) if snapshot is None: continue open_price snapshot[open] prev_close snapshot[prev_close] open_pct open_price / prev_close - 1 # 2. 第一层过滤高开幅度 if not (0.02 open_pct 0.05): continue # 3. 第一层过滤量比和成交额 if snapshot[volume_ratio] 3: continue if snapshot[amount] 5000_0000: continue # 4. 第二层过滤小级别MACD方向 min5_close get_min5_close(code, date) dif, dea, hist macd(min5_close) if dif[-1] dea[-1] or hist[-1] hist[-2]: continue # 5. 第三层过滤斐波那契位置 high_point, low_point get_last_swing(code, date, window5) fib_levels calc_fib(high_point, low_point) nearest_support max(item for item in fib_levels.values() if item open_price) if nearest_support is None: continue distance_pct open_price / nearest_support - 1 if distance_pct 0.03: continue # 6. 记录候选 candidates.append({ code: code, open_pct: open_pct, volume_ratio: snapshot[volume_ratio], distance_support: distance_pct, score: open_pct * 100 snapshot[volume_ratio] - distance_pct * 100, }) # 7. 综合打分排序 candidates.sort(keylambda x: x[score], reverseTrue) return candidates这套代码的逻辑是先用容易计算的条件过滤比如高开幅度和量比因为它们计算成本低再把MACD和斐波那契这些需要历史数据的条件放后面。每一步过滤都会淘汰大量股票最终留下的候选数量通常在5到20只之间。注意这里的score是我临时定义的打分公式实际你可以根据自己的偏好改成加权打分比如更看重量比或者更看重斐波那契距离。在构建股票池时我一般还会做几个硬性排除剔除ST股因为涨跌幅规则不同剔除上市不足60个交易日的次新股因为连板结构和筹码分布太特殊剔除停牌股。这些条件在代码里非常简单但能避免大量无效噪音。3.3 回测设计与业绩口径很多人在回测集合竞价策略时犯过一个致命错误用当天收盘后的数据来模拟开盘信号。这等于开了上帝视角回测结果再漂亮实盘也做不到。正确做法是策略信号只能使用9:25之前或9:25时刻已有的数据买入价格模拟为9:30开盘价或9:30后1分钟内的均价卖出规则单独设计。我推荐的卖出规则有三种你至少要先固定一种再做回测第一种是日内冲高卖出比如持仓后设定涨幅5%止盈、下跌3%止损。第二种是次日开盘卖出不隔夜博弈保留隔夜风险敞口。第三种是混合规则盘中达到止损位就出收盘前没有涨停也出涨停则持有到次日。三种规则的胜率、盈亏比差异很大回测时要分开统计不要混在一起算。回测指标重点关注五个维度胜率、平均盈利、平均亏损、盈亏比、最大回撤。胜率高的策略不一定能赚钱如果平均亏损远大于平均盈利胜率80%也可能亏钱。我见过很多新手把回测样本做得很大几千笔交易胜率70%最后一看累计收益是负的就是因为亏的时候亏太多赚的时候赚太少。集合竞价策略的特性是交易频率偏低一天可能只有一两次机会所以回测周期至少需要覆盖一年以上最好包含震荡市、趋势市、单边下跌市三种行情才能看出策略的适应能力。3.4 过滤条件与风控技术信号只是入场条件真正的存活关键是风控。我把风控拆成三个层面第一是选股层面的硬过滤。除了前面说的ST、次新、停牌还要尽量过滤掉有重大利空公告的股票。比如业绩预告暴雷、大股东减持公告、商誉减值预告这些信息在竞价前往往已经公告如果选股程序能接入资讯接口就应该自动排除。普通个人研究者没有实时资讯接口也需要在人工复核阶段快速查一下公告。第二是仓位控制。单只股票的仓位建议不超过总资金的20%同时持有的候选股数量控制在2到3只不要一次买入太多。集合竞价买入的一大风险是开盘后走势完全不及预期甚至瞬间翻绿如果单一持仓过重一个炸板就能把一周的利润吃掉。我自己的经验是用“单笔止损金额”倒推仓位比如单笔最多亏总资金的2%止损位是开盘价下方3%那么这笔交易的仓位上限就是2%除以3%约等于66%但还要受20%上限约束实际取20%。第三是止损纪律。集合竞价追涨的本质是博弈情绪的延续如果开盘后5到10分钟内没有继续走强或者5分钟MACD快速死叉就应该无条件离场不要和走势讲道理。用斐波那契位置辅助设定止损也很好用一旦跌破前一天涨停实体的0.618位置说明回撤结构被破坏直接止损。止损越清晰执行越容易。4. 常见问题与避坑实录从回测到实盘的距离4.1 竞价数据源不一致这是很多人第一次做集合竞价回测时遇到的头号问题。不同软件、不同数据商提供的竞价成交量、竞价成交额存在差异因为在9:20到9:25这个阶段系统显示的是“虚拟匹配量”不是最终成交记录不同平台刷新频率不同显示结果自然会不一样。我的处理办法是历史回测统一用9:30第一根1分钟K线的成交量作为竞价量的替代口径。这样数据来源一致计算逻辑稳定虽然不能精确还原竞价瞬间的真实委托但作为过滤条件已经足够。实盘选股时再使用自己交易软件里的实时竞价数据按同样的口径做当日信号输出。回测用一个口径实盘用另一个口径是策略失真最常见的来源之一所以两者要尽量统一。4.2 MACD背离在短线窗口容易失效顶背离和底背离不是万能的尤其在1分钟这种极端小级别上背离出现后行情继续向原方向运行的情况非常常见。技术圈把这种现象叫“背了又背”。原因是小级别走势极易受到大单冲击和情绪影响一个几百手的单子就能改变柱状体方向背离信号的稳定性远不如日线级别。应对方法是降低周期级别权重以5分钟MACD为主1分钟只作为辅助。同时要求背离出现的位置最好在斐波那契关键位附近。如果背离发生在0.618支撑位之上且竞价量能配合放大那么这个背离的有效性会明显提高。单纯看到一个底背离就冲进去是很多新手亏损的直接原因。4.3 跳空缺口会让斐波那契位失效斐波那契回撤位是基于连续价格波动计算的一旦出现大幅度跳空价格直接跳过关键位原本的支撑位就失去了参考意义。比如前一天涨停今天竞价大幅高开5%直接越过昨天高点的1.272扩展位那么你按回撤位去挂单买入可能根本等不到那个价格股价已经飞了。遇到这种情况我更倾向于用“缺口下沿”和“前一日涨停价”作为替代支撑而不是死等斐波那契位。如果开盘后股价回踩缺口下沿不破并且5分钟MACD保持红柱同样可以纳入观察序列。量化模型里可以把这些替代位写成动态条件当斐波那契位被跳空击穿时自动切换到缺口支撑逻辑。4.4 参数过拟合与未来函数任何策略做到后面都会有一道坎参数优化。你在历史数据上反复调整参数直到回测曲线漂亮得不像话这只是过拟合的开始。过拟合的典型症状是参数稍微偏离最优值一点点回测结果就大幅恶化或者样本内表现极好换到另一段时间段就完全失效。我给自己定了几条规则第一参数数量不超过5个宁可简单一些不要叠太多自由度第二把历史数据按时间切分为样本内和样本外样本内做参数选择样本外做验证第三看参数平原是否平滑如果最优参数周围全是悬崖说明策略很不稳定。未来函数方面关键是严格对齐时间戳所有指标计算只使用信号发生时刻之前的数据这一点在代码里要写进回测引擎不能靠人肉保证。4.5 从选股信号到实盘部署的差距个人做量化最大的现实问题是部署环境。免费的行情接口有延迟自动下单接口也不是随便就能接入很多交易所或券商对程序化交易有门槛限制。我的建议是分两步走第一步用本文的框架做“人工系统选股”也就是系统跑出候选列表你人工复核后手动下单第二步等你对策略有了足够的信心再考虑接模拟盘、研究半自动下单。部署时还要注意程序本身的稳定性。比如每天09:25后程序需要集中计算全市场股票如果行情接口限频或者本机网络抖了一下就可能导致当天信号缺失。应对办法是提前把股票池缓存到本地信号计算尽量本地完成只保留实时行情拉取这一个外部依赖。还有一个很容易被忽略的点记录交易日志。每天把候选列表、信号参数、是否交易、结果如何全部记录下来。三个月后你会积累一批真实数据这些数据比任何回测报告都值钱。常见问题可能原因解决办法回测和实盘差异巨大信号时间戳用了未来数据严格使用9:25之前的数据计算信号竞价量数据对不上不同数据商口径不一致统一用9:30第一根1分钟K线量作替代MACD背离后继续原方向周期太小或未结合位置以5分钟为主且要求关键斐波那契位配合价格跳空后支撑失效斐波那契位被直接越过启用缺口下沿和前期平台作替代支撑参数调优后失效过拟合或参数平原不平滑样本内外分离验证减少参数数量盘中选股跟不上接口延时或程序崩溃本地缓存股票池输出候选后人工复核做这种策略最忌讳的就是把回测曲线当成提款机。我自己踩过最深的坑是早期用5分钟K线收盘后的数据回测竞价策略忽略了信号产生时间结果实盘完全跟不上连续两周的信号表现都和回测对不上。后来我把所有信号的时间戳严格对齐到9:25之后才慢慢接近可用的状态。这套集合竞价、MACD背离和斐波那契的组合框架本质上是一个“研究范式”给你提供一条可以逐步迭代的路径而不是一个固定答案。如果你准备用它请务必从模拟盘和最小仓位开始先做三个月交易日志统计胜率、盈亏比和连续亏损次数再决定要不要放大资金。以上全部内容仅为技术研究与经验分享不构成任何投资建议市场有风险决策需独立。
返回列表