Files
Chan/docs/ENGINEERING_SPEC/ECR-003-wyckoff-main.md
jackyu66gitandCursor 081a57a90e feat: ECR-003 主站威科夫分析与图表叠层(已审)
独立 wyckoff 引擎 + 按需 include_wyckoff;主站 Lightweight 绘制区间/阶段/事件/VP。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 18:33:57 +08:00

1.5 KiB
Raw Permalink Blame History

ENGINEERING_SPEC — ECR-003

Status: Approved
Date: 2026-08-06

Package

chanlun/analysis/wyckoff/

  • engine.pyanalyze_wyckoff(df) -> dict
  • range.py — 交易区间检测(ATR 容差震荡箱)
  • phases.py — AE 状态机
  • events.py — Spring/SOS/LPS/UTAD(及 distribution 对称)
  • volume_profile.py — 区间内分桶 VP
  • __init__.py — 导出 analyze_wyckoff

API

GET /api/analyze?include_wyckoff=1result["wyckoff"]

{
  "trading_range": {"start_time","end_time","high","low","mid","active"},
  "bias": "accumulation|distribution|unknown",
  "phases": [{"phase","label","start_time","end_time"}],
  "events": [{"type","time","price","note","volume_ratio","volume_ok"}],
  "volume_profile": {"bins":[{"price","volume"}],"poc","vah","val","bin_count"},
  "volume_confirm": {"avg_volume","event_checks":{}}
}

默认 include_wyckoff 假:可不返回或返回 null(实现选:不返回键以减负)。

Detection heuristics

  1. ATR(14) 容差;扫描最近窗口找高低点接近的连续段作为 TR。
  2. 阶段:价格在 TR 内相对位置 + 假破/真破时间序。
  3. Spring:下破 TR.low 后收回且收盘回到区间内;量能相对均量判断。
  4. SOS:收盘站上 TR.high 且放量。
  5. LPSSOS 后回踩不破 mid/high 带且缩量。
  6. UTAD:上破后跌回区间内(派发)。
  7. VPtypical=(H+L+C)/3volume 加权分桶,VA≈70% 围绕 POC。

Frontend

主站 checkbox + chart_view 传参;chart_tv.js 绘制。