Files
Chan/docs/notes/WYCKOFF-MULTI-CYCLE-001.md
jackyu66gitandCursor 276481e02c feat(ECR-007): Wyckoff Live Structure with Confirmed/Live isolation
Add live.py lifecycle and event candidates; assemble confirmed vs live
in engine; Summary partition; execution_signal source=confirmed only.
Keep strategies untouched; do not lower Confirmed thresholds for Live.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 03:14:19 +08:00

1.6 KiB
Raw Permalink Blame History

WYCKOFF-MULTI-CYCLE-001

Status: FROZEN
Scope: Wyckoff Cycle Detection Layer

No Change

  • chan.py / 笔 / 段 / 中枢
  • strategies/
  • /chan_tv

Only Change

  • wyckoff range detection
  • wyckoff engine payload
  • API localization
  • chart rendering
  • tests

Frozen Rules

  1. 每个 TF 最大 8 个周期
  2. cycles[0] 永远为 ACTIVEcycles[1:] 为 HISTORICAL
  3. 禁止cycles[-1] 判断 active;唯一来源:active_cycle = cycles[0]
  4. 周期不可重叠;按时间倒序(近 → 远)
  5. 顶层字段只镜像 cycles[0]
  6. 历史 cycle 只用于展示/分析,不参与当前交易决策
  7. 多 TF 只同步 active cycleprefer_start_time ← 主 TF cycles[0]
  8. 每个 cycle 必须可追溯:period / status / role / confidence
  9. 嵌套箱:overlap_ratio < 0.2 才可并存;否则丢弃
  10. 验收重点:历史周期稳定复现 + active 不漂移

Layer Duties

range.py
  _detect_in_window() → TradingRange   # 仅起止、高低、结构分
  detect_trading_ranges() → list[TR]   # 倒序扫 + 过滤 + mask

engine.py
  phases / events / VP / confidence aggregation → cycles[]

Filter Order(不可改)

candidate window
  → detect range
  → quality filter
  → trend contamination filter
  → overlap filter (<0.2)
  → accept cycle
  → mask

禁止先 mask 再判断质量。

Display / Summary (2026-08-06)

  • 图面阶段标记:{TF} C{id} Phase {X};事件:{TF} C{id} {Event}
  • Cycle Summary 面板:消费 cycles[0],写入 window.wyckoffCycleSummary
  • 检测算法本轮不改;质量阈值 / 历史层折叠为后续项