Files
Chan/docs/notes/WYCKOFF-LIVE-VALIDATION-001.md
T
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

2.0 KiB
Raw Blame History

WYCKOFF-LIVE-VALIDATION-001

Status: DRAFT(待确认执行后 FROZEN
Depends on: WYCKOFF-LIVE-STRUCTURE-001(已 FROZEN
Goal: 验证 Live 是否有预测价值,而非继续加事件规则

不做

  • 不新增 BC / AR / ST / UT / UTADv1 已够)
  • 不降低 Confirmed 门槛
  • 不让 Execution 消费 Live

目标指标(先看演化,不看「准确率」口号)

1) Candidate → Confirmed 转化率

candidate_to_confirmed_rate = confirmed_count / candidate_count

按 event type 分组:Spring / SOS / LPS / UTAD。

2) 提前量(Lead

lead_bars = confirmed_bar_index - first_candidate_bar_index
lead_price = |price_at_confirmed - price_at_first_candidate|

例:Spring candidate @ 62000 → Confirmed @ 63500 → lead_price=1500。

3) False Positive

false_candidate_rate = expired_unconfirmed / candidate_count

候选出现后,在窗口内未升格为 Confirmed,且价格无效化(如 Spring 后继续破位)。

采集方式(建议)

离线回放 / 批跑(非改 Live 规则):

for each bar in timerange:
  run analyze_wyckoff(df[:bar])
  log: cycle_id, lifecycle, live.candidates[], confirmed.events[]

输出:reports/wyckoff_live_validation_{symbol}_{tf}_{date}.json + 简表 CSV。

Summary 文案(可选后续,本 ECR 可只做数据)

交易终端语言示例(不阻塞指标采集):

BTC 4H Wyckoff
Lifecycle: CONFIRMED
Confirmed: Accumulation → SOS → LPS
Current: Phase D continuation
Watching: New SOS extension
Confidence: 0.60
Risk: Below LPS invalidation

验收

  1. 能对 BTC 4h(及可选 1h)跑出至少一类 Spring/SOS 的转化率与提前量
  2. 报告可复现(固定 timerange + seed/数据快照说明)
  3. 不修改 Confirmed / Live 检测逻辑(只读 + 日志)

Only Change(确认执行后)

  • scripts/tests/ 下批跑采集脚本
  • docs/notesreports/ 输出样例
  • 可选:Summary 文案升级(独立小项)