Add risk-based position sizing (以损定仓) with per-open k resize.

Manual vs risk modes are exclusive; each open floors k to 1 decimal so estimated premium+fees stay within the loss budget.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-29 23:32:42 +08:00
parent 0b51aa15ff
commit 3a4c8d639c
9 changed files with 803 additions and 16 deletions
+25
View File
@@ -39,6 +39,31 @@
永续杠杆默认 **3×**(可配)。永续保证金模式默认 **全仓**(可改逐仓);期权保证金模式固定买方现金/逐仓意图。同时最多 **1 组**仓,禁止叠仓开下一组。
### 2.0 仓位模式:手动 vs 以损定仓
设置页二选一:
| 模式 | 行为 |
|------|------|
| **手动** | 直接填 `perp_qty_eth` / `option_qty_eth` / `net_profit_target` |
| **以损定仓** | 禁用手填;每次**新开仓前**按预算反推倍数 `k`(一位小数向下),写出永续 `1×k`、期权 `2×k`、出场 `15×k`(强制 `fixed_usdt` |
预算:
- **亏损幅度**`本金 × 幅度%`。本金二选一——交易账户总资金(USDT+USDC)或单独本金。
- **亏损值**:直接填可亏 USDT。
估算最大亏损(须 ≤ 预算):
```text
premium ≈ ATM卖一 × 2 × k
fee ≈ 指数 × fee_rate × 3 × k # 永续开/平 + 期权一次
max_loss = premium + fee
k = floor(budget / (2A + I×fee_rate×3) × 10) / 10
```
`k < 0.1` 或盘口缺失 → 拒绝开仓。
### 2.1 开仓方向
#### 默认(`fixed_direction_enabled=false`):ATM 相对现价优先