Files
crypto_monitor/docs/ETH时段振幅统计-开发方案.md
T
dekun 61e8da1e8b Add hub-only OKX amp stats for ETH/BTC session windows.
Read-only 1H index candles, point amplitude metrics, history save and CSV export; no order-path changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 02:06:21 +08:00

9.0 KiB
Raw Blame History

标的时段振幅统计 — 开发方案

状态:方案冻结(按本文实现;改需求先改本文).
范围:中控新增只读统计工具;不改开平仓、不接 AI 教练(首版).
数据源:仅 OKX.
相关:交易执行手册-期权与Gate.md(16:00 会话窗纪律) · 振幅统计说明.md


1. 目标

在中控提供 自定义时段、固定 16:00 收窗 的历史振幅档案:

  • 标的下拉:ETH / BTC(默认 ETH)
  • 按整点起点 + 终点固定北京时间 16:00 切出每日统计窗
  • 回溯周期可选(1 月 / 2 月 / 3 月 / 半年 / 1 年 / 自定义)
  • 日表明细分页展示;下方为汇总统计
  • 每次有效计算可写入 历史;支持 下载(明细 + 统计摘要)

定位:服务一天期期权开仓前的「空间」判断(已实现波动点数档案),不算 IV / 权利金 / Greeks.


2. 不做(首版外)

  • 币安 / Gate 等非 OKX 价源
  • 百分比振幅列(可后加「参考 %」,不进必须统计)
  • 未完成窗(当天尚未到 16:00)计入样本
  • 自动推送企业微信 / 注入交易教练
  • 中控代下单或改期权仓

3. 时间与样本规则

3.1 时区与终点

  • 时区:Asia/Shanghai(北京时间)
  • 到期/收窗时刻固定 16:00,不可改
  • 起点时刻:仅整点 00:0023:00(下拉选择)

3.2 跨天切窗(结算日 D)

对每个结算日 D(窗终点 = D 日 16:00):

起点整点 T 窗起点 窗终点
T >= 16:00 D-1 日 T:00 D 日 16:00
T < 16:00 D 日 T:00 D 日 16:00

示例:

用户选择 某一结算日 D 的实际窗
16:00 → 16:00 D-1 16:00 → D 16:00
22:00 → 16:00 D-1 22:00 → D 16:00
08:00 → 16:00 D 08:00 → D 16:00

3.3 回溯周期

选项 含义(完整收窗个数,约)
1 个月 约 30 个结算日
2 个月 约 60 个结算日(默认推荐)
3 个月 约 90 个结算日
半年 约 180 个结算日
1 年 约 365 个结算日
自定义 用户输入天数 N(7400,可配置上下限)

说明:

  • 「月」按 日历回溯 + 完整 16:00 收窗 计数,不足整天的末日不入样
  • 仅纳入 已结束 的窗(now >= D 16:00);进行中的今天不入样

3.4 标的与价源(OKX)

UI 下拉 价源(优先) 降级(仅指数失败时)
ETH OKX ETH-USD 指数 OKX ETH/USDT 永续标记
BTC OKX BTC-USD 指数 OKX BTC/USDT 永续标记

约束:

  • 交易所固定 OKX,UI 不提供其它所
  • 具体指数/合约符号以实现时 OKX 接口与 hub_ohlcv 对齐为准;结果与下载须标注 exchange=okx + 实际价源
  • K 线粒度:1H(与整点起止对齐,优先);同一作业内不得混用粒度.若后续要更细高低点,可升 5m/1m(P2)

4. 指标口径(点数,非百分比)

全部为 绝对价格点数(标的报价差;BTC/ETH 各自用自身价格刻度).

设窗内:

  • O = 起点时刻价(或起点分钟 K 的 open)
  • H = 窗内最高
  • L = 窗内最低
  • C = 终点 16:00 价(或该分钟 close)
字段 算法 例(O=2000,H=2500,L=1800)
开盘价 O 2000
最高价 H 2500
最低价 L 1800
收盘/窗末价 C (另算)
开→高距离 H O 500
开→低距离 O L 200
振幅 (HO)+(OL) = HL 700
涨跌值 C O(可正负) 可选列,首版建议保留

必须统计(汇总层):

  • 最大振幅(值 + 对应结算日)
  • 开→高距离:最大、均值(建议)
  • 开→低距离:最大、均值(建议)

可选汇总(首版建议带上,成本低):

  • 振幅均值 / 中位数
  • 上涨窗占比(C>O)、下跌窗占比
  • 振幅 ≥ 用户阈值 X 点数的天数(X 可填,默认空=不算)

5. 界面(中控)

5.1 入口

  • 顶栏新增导航项:**「振幅统计」**或 「期权统计」(最终文案实现时定一处;设置里可隐藏)
  • 手机端进「更多」

5.2 Tab

Tab 作用
统计 配参数 → 计算 → 看日表+汇总 → 下载 / 存历史
历史 过往作业列表;打开复看;再下载

5.3 「统计」页布局

  1. 参数区
    • 标的:下拉 ETH / BTC(默认 ETH)
    • 数据源:只读展示 OKX
    • 起点整点:下拉 0023(默认 16)
    • 终点:固定展示 16:00(不可改)
    • 周期:单选 1月 / 2月 / 3月 / 半年 / 1年 / 自定义
    • 自定义天数:仅自定义时显示
    • 按钮:计算 · 保存到历史 · 下载
  2. 日表明细(分页,如每页 20 行;排序默认结算日倒序)
  3. 下方汇总区(本次全样本,不是当前页)

5.4 「历史」页

每条记录至少:

  • 创建时间、标的、起点整点、周期/天数、价源(OKX+指数/标记)、样本数
  • 最大振幅(+日期)
  • 操作:查看 / 下载 / 删除

写入规则(建议): 用户点击 「保存到历史」 才入库;仅点「计算」不自动灌历史(避免误点刷屏).若产品坚持「输入一次就算进历史」,可改为计算成功自动写入——实现前在本文改为冻结口径.

当前方案冻结倾向:显式「保存到历史」.


6. 下载

格式:优先 CSV(UTF-8 BOM,Excel 可开);或单文件双段.

必须包含:

  1. 日表明细(本次全部结算日,非当前页)
  2. 统计摘要:标的、交易所 OKX、价源、最大振幅(+日)、开→高最大/均值、开→低最大/均值、样本数、起点整点、终点 16:00、周期、生成时间

文件名示例:okx_eth_amp_22to16_60d_20260723.csv / okx_btc_amp_16to16_90d_20260723.csv


7. 数据与实现要点

7.1 复用

  • 优先复用中控 hub_ohlcv / hub_kline_store,按 exchange_key=okx + 标的对应指数/合约拉齐历史 K 线并本地缓存
  • 首次 1 年 × 1m 数据量较大:计算前检查缓存覆盖;缺口再增量拉取;UI 显示进度/耗时提示
  • BTC / ETH 缓存键分离

7.2 后端模块(建议)

路径 职责
lib/hub/amp_stats_lib.py 标的映射、切窗、算日行、汇总
manual_trading_hub/ 路由 + 静态页 UI / API
manual_trading_hub/amp_stats_history.json(或 sqlite) 历史作业

7.3 API 草稿

方法 路径 说明
POST /api/amp-stats/compute body: symbol(eth|btc), start_hour, period|days → 日表+汇总
GET /api/amp-stats/history 历史列表(可按 symbol 筛选)
POST /api/amp-stats/history 保存当前结果
GET /api/amp-stats/history/{id} 详情
DELETE /api/amp-stats/history/{id} 删除
GET /api/amp-stats/export query 或 history id → 文件下载

7.4 性能

  • 2 个月 × 1m:可接受同步(数十秒级需有 loading)
  • 1 年:建议异步任务或分块拉齐后再算;首版可限制「自定义 > 180 天」需确认二次点击

8. 验收清单

  • 标的下拉 ETH / BTC 可切换;数据源固定 OKX
  • 起点仅整点;终点 UI 固定 16:00
  • 22→16 / 16→16 / 08→16 跨天规则与 §3.2 一致
  • 周期六档 + 自定义天数生效;默认 2 个月
  • 日表含:开高低收、开→高、开→低、振幅(点数)、涨跌值
  • 例:O=2000,H=2500,L=1800 → 开→高 500、开→低 200、振幅 700
  • 汇总含最大振幅(+日)、开→高/开→低统计
  • 分页只影响展示;汇总与下载用全样本
  • 未到 16:00 的当日不入样
  • 保存历史含标的字段 / 回看 / 删除
  • 下载含明细 + 统计摘要(含标的与 OKX)
  • 电脑与手机均可完成计算与下载(手机下载走系统分享/保存即可)

9. 分期

阶段 内容
P0 统计 Tab:标的下拉(ETH/BTC) + 参数 + 计算 + 日表分页 + 汇总 + 下载(不经历史)
P1 历史 Tab:保存 / 列表 / 回看 / 再下载 / 删除
P2 缓存加速、长周期异步、振幅阈值天数、可选 % 参考列

10. 待冻结(实现前确认)

# 问题 当前倾向
1 历史写入:自动 vs 点保存 点保存
2 下载 CSV vs Excel CSV
3 价源 OKX 指数优先(ETH-USD / BTC-USD);失败再降级永续标记
4 K 线 1m vs 5m vs 1H 1H(整点窗)
5 导航文案 「振幅统计」

已冻结(开工口径): 点保存进历史 · CSV · OKX 指数优先 · 1H K 线(整点对齐,降低拉取量;与整点窗一致) · 导航「振幅统计」.

确认后将本文状态改为 方案冻结,再开工实现.


11. 修订记录

日期 说明
2026-07-23 初稿:中控 ETH 时段振幅统计;点数口径;周期档位;16:00 固定收窗;历史+下载
2026-07-23 支持 BTC/ETH 下拉;数据源固定 OKX 指数(可降级永续标记);模块/API 改名为 amp-stats