Skip to content

automation: calendarProbe 无时间下界,历史财报事件每天重复触发研究与通知 #168

Description

@RXQ6

问题

自动化规则的日历探测没有时间下界:

return events.some(
  (event) => (event.type === 'report' || event.type === 'financial') && event.date <= nowSeconds
)

research.events 返回的是"最近 5 条"事件,任何一条历史上的财报事件(只要还没跌出 top 5)都会让 earningsAnnounced 每天为 truesignalsAreMaterial 恒真 → 每天对同一符号重复触发 research 分析 + OS 通知,直到该事件自然跌出最近 5 条。一条 30 天前的旧财报可以造成连续数周的每日重复打扰。

当前现状

代码审查基线:039c7388f855ab85f9882300c16b1898fe5955bb

  • packages/shared/src/automation/runner.ts:189-205calendarProbe 只判断 event.date <= nowSeconds,没有"最近 N 天"下界;
  • 该函数被 watchlist-daily-review / portfolio-daily-brief 等每日规则的 evaluateSymbol 调用。

期待的解决方向

  1. 给日历探测加新鲜度下界:只有落在最近 N 天(建议 7 天,注释说明语义)内的已发生财报事件才算"新公布的财报";
  2. 补充测试:30 天前的历史财报事件不再触发;1 天前的财报事件仍触发;date == now 的边界(现有测试场景)保持通过。

验证标准

  • 历史旧财报事件不再让 earningsAnnounced 为真,重复通知消失;
  • 真正新近发生的财报(含当天)仍能触发研究与分析;
  • 现有 automation 测试全绿。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

claimedClaimed by a contributor and currently in progress

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions