# 振幅统计（中控）

中控只读工具：按自定义整点起点、**固定北京时间 16:00 收窗**，统计 OKX 上 ETH/BTC 的历史「点数振幅」档案，辅助一天期期权判断空间。

> 开发方案见 [ETH时段振幅统计-开发方案.md](./ETH时段振幅统计-开发方案.md)。  
> 永期对冲公式见 [永期对冲计算器.md](./永期对冲计算器.md)。  
> **不改下单链路**；不算 IV。

---

## 入口

- 顶栏 **振幅统计**（`/amp-stats`）
- 手机端：**更多 → 振幅统计**
- 可在系统设置里隐藏该导航

---

## 怎么用

1. 打开 **统计** Tab  
2. 选择 **标的** ETH / BTC；数据源固定 **OKX**  
3. **起点整点**（00–23）；终点固定 **16:00**  
4. **周期**：1 月 / 2 月 / 3 月 / 半年 / 1 年 / 自定义天数（默认 2 个月）  
5. 点 **计算** → 下方看汇总 + 分页日表  
6. 需要留存时点 **保存到历史**；**下载 CSV** 含摘要 + 全日明细  

**跨天例子**

| 起点 | 含义（结算日 D） |
|------|------------------|
| 22:00 | 昨天 22:00 → 今天 16:00 |
| 16:00 | 昨天 16:00 → 今天 16:00 |
| 08:00 | 今天 08:00 → 今天 16:00 |

未到当日 16:00 的「今天」不入样本。

---

## 指标（点数）

设开盘 O、最高 H、最低 L、收盘 C：

| 字段 | 算法 |
|------|------|
| 开→高 | `H − O` |
| 开→低 | `O − L` |
| **振幅** | `H − L`（= 开→高 + 开→低） |
| 涨跌值 | `C − O` |

例：O=2000，H=2500，L=1800 → 开→高 500，开→低 200，振幅 **700**。

汇总必含：最大振幅（及日期）、开→高/开→低的最大与均值等。

K 线粒度：**1H**（与整点对齐）；价源优先 OKX 指数（ETH-USD / BTC-USD），失败再降级永续标记。  
近期 K 线接口约仅 **1440** 根（1H≈60 天）；更长周期自动续拉 `history-index-candles` / `history-candles`。  
分页带间隔，遇 OKX **429** 会自动退避重试（长周期首次会慢一些）。

---

## 对照模式（买跨 / 永期二选一）

表单 **对照模式** 切换：

| 模式 | 表单 | 汇总块 | 日表末列 |
|------|------|--------|----------|
| 买跨双边 | 双边权利金、止盈点 | 买跨对照 | 收益 |
| 永期对冲 | 目标盈利、杠杆、比例 | 永期对冲对照 | 永期盈亏 |

同一时刻只计算 / 展示当前模式；切换后在已有日表上本地重算。

---

## 买跨对照（赌波动）

表单可填 **双边权利金（点）**，例如 `30`；旁边可填 **止盈点**（可空）：

| 汇总项 | 口径 |
|--------|------|
| 开→高超过权利金 | `H−O > 权利金` 的天数与占比 |
| 开→低超过权利金 | `O−L > 权利金` 的天数与占比 |
| \|涨跌\|超过权利金 | `\|C−O\| > 权利金` 的天数与占比 |
| 有效波动 | 若设止盈且 `开→高≥止盈` 或 `开→低≥止盈` → 用止盈点；否则用 `\|C−O\|` |
| 买跨收益 | `有效波动 − 权利金`（日表「收益」列同口径） |

- 方向：**买跨**  
- 权利金越过：严格 **`>`**；止盈触达：**`≥`**  
- 止盈留空 / ≤0：有效波动一律按 `|涨跌|`  
- 已算出日表后，改权利金 / 止盈 / 周末筛选会**本地重算**（不重拉 K 线）  

### 周末

- 下拉：**全部**（默认）/ **排除周末** / **仅周末**  
- 按 **结算日** 北京时间星期判断；表中六、日带标注并高亮  

---

## 永期对冲对照

与中控 [永期对冲计算器](./永期对冲计算器.md) 同口径：**永续做多 1 币 + 买期权**（默认比例 **1:2**），在历史振幅日表上做对照。

表单填：目标盈利、永续杠杆、期权杠杆、比例（可改）。**入场价 = 当日开盘**，不再填现价。未填齐目标/杠杆时不计算该块。

```text
单币权利金(日) = 当日开盘 / 期权杠杆
期权币数       = 1 × (期权比例 / 永续比例)
权利金总额(日) = 期权币数 × 单币权利金(日)
```

推「所需点数」时，用样本 **开盘中位数** 作入场参照（汇总里展示的权利金中位同口径）。

### ① 所需点数达标

复用计算器「由比例推点数」（按**当日开盘**推 A/B；汇总展示用样本开盘中位）：

| 指标 | 规则 |
|------|------|
| A 所需点数 | 永续方向对、净利=目标 |
| A 达标 | 日 `开→高 ≥ A点数` 的天数与占比 |
| B 所需点数 | 期权方向对、**组合净利**=目标 |
| B 达标 | 日 `开→低 ≥ B点数` 的天数与占比 |

### ② 按日组合盈亏（目标出场）

日盈利目标（如 **15U**）用于出场：

| 情形 | 日盈亏 |
|------|--------|
| 开→高触达 A，或 开→低触达 B | **= 目标盈利**（出场） |
| 两边都触达 | 仍按目标盈利（OHLC 未知先后） |
| 均未触达 | 收盘结算：上涨 `涨跌−权利金−手续费`；下跌 `\|涨跌\|×(期权币数−1)−权利金` |

汇总：目标出场天数 / 收盘结算天数、合计、日均、胜率、上涨日/下跌日盈亏小计、单日最大赚亏；日表 **永期盈亏** 列。  
改永期参数 / 周末筛选会**本地重算**（不重拉 K 线）。

---

## 历史 Tab

- 仅 **保存到历史** 后出现（不会一算就自动入库）  
- 可查看、再下载、删除  
- 数据文件：`manual_trading_hub/amp_stats_history.json`（勿当密钥提交）

---

## 相关代码

| 路径 | 说明 |
|------|------|
| `lib/hub/amp_stats_lib.py` | 切窗、汇总、OKX 拉取、CSV |
| `manual_trading_hub/amp_stats_routes.py` | API |
| `manual_trading_hub/amp_stats_store.py` | 历史 JSON |
| `manual_trading_hub/static/amp_stats.js` | 前端 |
| `tests/test_amp_stats_lib.py` | 单元测试 |

---

## 修订

| 日期 | 说明 |
|------|------|
| 2026-07-23 | 首版上线说明 |
| 2026-07-23 | 买跨对照：可设双边权利金、越过占比与收盘盈亏 |
| 2026-07-23 | 周末筛选/标注、止盈点(≥)、日表收益列 |
| 2026-07-23 | 长周期续拉 history K 线；收益列红绿着色 |
| 2026-07-28 | 永期对冲对照：所需点数达标 + 按日组合盈亏 |
| 2026-07-28 | 永期入场改按日开盘；买跨/永期对照模式二选一 |
| 2026-07-28 | 永期日盈亏按目标盈利出场(开→高/低触达),未触达才收盘结算 |
