跳转至

Early Momentum

Early Momentum 是 /momentum/early 背后的早期动能研究页。它扫描完整股票池,不要求股票已经进入 Momentum Top 20,目标是把“蓄势、波动收缩、接近枢轴、尝试突破”的股票单独展示出来。

Momentum Discovery 位于 /momentum/discovery,用于更宽的候选发现和质量审计。Early Momentum 仍然专注于 setup 时机,不把 Discovery 的全局发现任务混进早期雷达。

描述性筛选,不是投资建议

Early Momentum 是算法研究工具,不是买卖建议,也不是 options 下单工具。页面展示的是公开行情、FMP、Unusual Whales 等数据源归一化后的筛选结果和证据,用于帮助理解股票当前处于什么技术阶段。

和 Momentum 的区别

Momentum 主页面偏“确认榜”:它关注已经在价格、均线、相对强度和动能上表现突出的股票,更适合回答“谁已经进入主升浪或确认动能”。

Early Momentum 偏“早期候选”:它不把“已经涨起来”当作优先项,而是更关注:

  • 是否正在形成平台或底部结构;
  • 波动率是否收缩;
  • 均线是否靠拢;
  • 成交量是否在突破前枯竭、在突破时改善;
  • 价格是否接近明确平台枢轴;
  • 是否有主题、催化、资金流或基本面确认;
  • 数据是否完整,结论是否足够可靠。

因此,Early Momentum 不是把 Momentum Top 20 重新排序,而是另一套更早期的筛选框架。

股票池和运行方式

股票池与 Momentum 一致:以 S&P 500 ∪ Nasdaq 100 为核心,再加手工维护的扩展 watchlist。每只股票使用截至 snapshot_date 当天及以前的日线 OHLCV,不会使用未来数据。

管理员点击 /momentum/earlyRun now 时,会触发 Momentum pipeline 重建最新可用交易日的 snapshot。周末或美股休市日的手动运行会强制重建最近已有交易日的数据,用于刷新页面结构和外部确认层;定时任务仍只在交易日自动运行。

两个榜单

Early Setup

Early Setup 关注“正在形成或接近早期机会”的股票。它不要求进入 Top 20,也不要求已经完成强突破。核心条件包括:

  • 5日/10日斜率开始改善;
  • 价格接近平台枢轴或重要高点,但没有明显过度延伸;
  • 波动收缩或平台整理质量较好;
  • 相对强度改善;
  • 主题内有同伴走强;
  • 外部事件或资金流可以加分,但不能替代趋势结构。

Breakout Watch

Breakout Watch 更接近“等待有效突破确认”的观察列表。它关注:

  • 价格距离平台枢轴或近期高点很近;
  • MA20/MA50 结构没有恶化;
  • 量能从低迷转向改善;
  • 主题内已有同伴突破或走强;
  • 还没有被判定为过度延伸或突破失败。

阶段模型

每只股票会被归入一个 setup_stage。页面显示的“阶段”来自这里。

阶段 含义
蓄势整理 股票正在形成平台,但波动收缩或突破准备证据还不够强。
波动收缩 ATR、周振幅、布林带宽度、成交量或均线距离出现收缩,筹码可能进入等待状态。
突破准备 已识别平台枢轴,价格接近枢轴,但还没有满足突破确认。
突破尝试 盘中或收盘短暂越过枢轴,但成交量、收盘位置或突破幅度不足。
突破确认 收盘站上明确枢轴,突破幅度达到缓冲要求,成交量确认,且收盘位置较强。
突破后跟随 突破已经发生,价格继续运行并保持在枢轴上方。
突破失败 突破后很快跌回枢轴下方,或出现放量长上影等失败特征。
延伸过高 当前价格离枢轴或短期均线太远,不再属于早期布局。
无形态 没有识别到可用的早期结构。

关键原则是:接近 60 日高点不等于突破确认。系统会分别计算 20日高点、60日高点、120日高点、52周高点和平台枢轴。

平台枢轴和突破确认

Early Momentum 会尝试识别最近 20-60 日的 swing high 集群和多次触及未突破的价格区域,生成:

  • pivot_price: 平台枢轴价;
  • pivot_zone_low / pivot_zone_high: 枢轴容差区间;
  • pivot_touch_count: 触及次数;
  • pivot_quality_score: 平台质量;
  • distance_to_pivot_pct: 当前价距离枢轴;
  • breakout_volume_ratio: 突破日成交量相对 50 日均量;
  • breakout_confidence: 突破置信度。

有效突破不是只看“价格在高位”。默认需要:

  • 收盘价站上明确 pivot;
  • 突破幅度至少达到缓冲要求;
  • 成交量达到确认阈值;
  • 收盘位于当日振幅较上部;
  • 没有明显长上影假突破。

如果只有盘中冲过 pivot,或成交量不足,系统会显示“突破尝试”,而不是“突破确认”。

VCP / 波动收缩评分

波动收缩评分用于识别类似“平台整理、均线靠拢、等待突破”的形态。它综合:

  • ATR 收缩;
  • 最近几周振幅是否逐步收窄;
  • 成交量是否枯竭;
  • MA20/MA50 是否靠拢;
  • 价格是否仍在中期均线附近或之上;
  • 当前价距离 pivot 是否合理;
  • 相对强度是否稳定或改善。

低成交量不是永远负面。系统会按阶段解释:

  • 在“波动收缩 / 突破准备”阶段,缩量可能代表筹码惜售,是积极特征;
  • 在“突破确认”阶段,低量突破会降低突破质量和置信度。

FMP 确认层

配置 MOMENTUM_FUNDAMENTALS_PROVIDER=fmpFMP_API_KEY 后,Early Momentum 会对技术候选调用 FMP Premium 数据。页面上的蓝色 FMP 字段来自这些 API:

  • 新闻和公司通稿;
  • 财报日历和确认财报日期;
  • 分析师评级调整;
  • 目标价变化;
  • 内部人交易;
  • 机构持仓 / 13F 摘要;
  • 收入、利润率、增长等基本面字段。

这些字段会归一化为:

  • fmp_confirmation;
  • news_event_score;
  • earnings_event_score;
  • analyst_revision_score;
  • price_target_score;
  • insider_score;
  • institutional_flow_score;
  • fundamental_quality_score

当某个 FMP 端点不可用时(套餐档位或故障),财报日历、分析师评级、内部人三个组件会自动回退到 Finnhub,财务增长组件回退到 Massive 的 SEC 申报数据;被替补的组件会在该行的数据质量对象中标记。

FMP 可以提升“已有技术结构”的候选,但不能把没有趋势结构的股票直接变成突破确认。

Unusual Whales 资金流层

配置 UNUSUAL_WHALES_API_KEY 后,Early Momentum 会加入 Unusual Whales 的资金流确认。页面上的绿色 UW 字段来自这些 API:

  • options flow;
  • dark pool trades;
  • lit flow trades;
  • options pulse;
  • 主题内资金流共振。

这些字段会归一化为:

  • flow_confirmation;
  • options_flow_quality;
  • darkpool_accumulation;
  • lit_flow_quality;
  • dealer_pressure;
  • flow_resonance

这层用于股票早期动能研究,不是告诉用户买哪个 option 合约。期权流、暗池和明池大单可以提供“资金提前异动”的证据,但误报也会更多,所以只能作为确认层或预警层。

数据完整度和 partial_query_failed

如果 FMP 或 Unusual Whales 某些 endpoint 失败,页面会显示 partial_query_failed。这不代表所有数据都没用,而是表示:

  • 成功的 endpoint 仍参与子分;
  • 失败的字段显示为 unavailable / null;
  • 失败字段不会被当作真实 0 分;
  • 可用字段会重新加权;
  • data_completeness_pct 会下降;
  • 结论置信度会被降低。

例如,分析师接口失败时,analyst_revision_score 应是 null,而不是 0。0 只表示真实查询到“没有正面证据”;失败则表示“没有可靠数据”。

页面字段解释

字段 含义
阶段 当前技术结构处于哪个 setup stage。
趋势 趋势结构分,包括 VCP、pivot、RS、均线和平台质量。
催化 新闻、财报、公司事件、分析师、目标价等事件分。
突破质量 是否真正站上 pivot、量能是否确认、收盘位置是否强。
数据完整度 FMP/UW 等外部数据是否完整,失败组件是否降低置信度。
距60日高 当前价距离 60 日最高价,保留两位小数,避免 0.42% 被显示成 0%。
枢轴 识别到的平台突破参考价。
距枢轴 当前价距离平台枢轴的百分比。
突破量比 最新成交量相对 50 日均量。
支持 正面 reason codes,如 ATR 收缩、缩量蓄势、接近平台枢轴。
反对 风险 reason codes,如突破量能不足、仍低于主枢轴、过度延伸。
失效条件 若价格跌破某个关键位或均线并放量,该 setup 应被视为失败。

为什么有时数量很少

Early Momentum 的阈值故意偏严格。少于 3 只并不一定表示算法坏了,通常是因为:

  • 量能没有改善;
  • 距离 pivot 或高点仍太远;
  • 主题共振不足;
  • RS 不够强;
  • 已经涨太多,被归为延伸过高;
  • 外部数据缺失导致置信度下降。

这比简单放宽 Early Breakout 阈值更稳健,因为目标不是“多给股票”,而是把阶段和证据讲清楚。

输出限制

Early Momentum 不会输出“买入点”“目标价”“必涨”或 options 合约建议。它只描述:

  • 当前处于哪个阶段;
  • 哪些证据支持;
  • 哪些证据反对;
  • 哪些数据缺失;
  • 什么条件下 setup 会失效。

最终判断仍需要用户结合自身研究、风险承受能力和交易计划。