Grid Trading
+ Protective Strangle
現貨網格交易結合雙買保護(Protective Strangle)的完整數學框架。 從波動率計算、網格幾何、到 Black-Scholes 定價與 P&L 合成—— 一份為想理解量化避險的投資人而寫的深度指南。
Protective Strangle:雙買保護
策略公式:現貨(或網格)+ Buy OTM Put + Buy OTM Call。 賺震盪的錢、防暴跌、抓暴漲——三種市場情境都有對應的獲利機制。
均值回歸利潤捕捉
在 [L, U] 區間內等距佈署買賣單。價格在網格層之間來回震盪時,每完成一次買→賣循環即鎖定利潤。
雙尾保護 + 上檔接力
Long OTM Put 鎖住下檔風險。Long OTM Call 在價格突破網格上限後接力參與暴漲。
| 部位 | 方向 | 目的 | 損益特性 |
|---|---|---|---|
| 現貨網格 | Long | 區間內低買高賣,賺 mean-reversion | 線性,侷限在 [L, U] 之間 |
| OTM Put(買入) | Long | 極端暴跌時保護,鎖住最大虧損 | 凸性 (convex),價格越低越賺 |
| OTM Call(買入) | Long | 極端暴漲時代替賣光的現貨繼續賺 | 凸性 (convex),價格越高越賺 |
三種情境的保護行為
| 情境 | 網格 | Put | Call | 淨結果 |
|---|---|---|---|---|
| 正常震盪 | 低買高賣,持續獲利 | Theta decay,小虧 | Theta decay,小虧 | 網格獲利 > θ 成本 → 正報酬 |
| 暴跌 < L | 一路接刀到滿倉,嚴重浮虧 | 進入深 ITM,價值暴增 | 歸零 | Put 暴利 > 網格浮虧 → 下檔鎖死 |
| 暴漲 > U | 現貨分批賣光,被迫空倉 | 歸零 | 進入深 ITM,代替現貨參與上漲 | Call 接力 → 打破網格獲利天花板 |
為什麼是 Protective Strangle,不是 Collar
這是經過驗證的正確選擇。以下是兩種策略的關鍵差異:
| 維度 | Collar(錯誤選擇) | Protective Strangle(正確選擇) |
|---|---|---|
| 組成 | Long Spot + Long Put + Short Call | Long Spot + Long Put + Long Call |
| 淨成本 | 很少(賣 Call 補貼 Put) | 較高(雙邊都付保費) |
| 下檔保護 | ✅ Put 保護 | ✅ Put 保護 |
| 上檔參與 | ❌ Call cap 住,漲破 K_call 就沒了 | ✅ Call 繼續賺,漲越多賺越多 |
| 網格破上限時 | 被迫出場,錯過暴漲 | Call 接力,繼續參與 |
| 最適合情境 | 持有現貨 + 不想花錢避險 | 網格交易 + 想要雙尾保護 |
Collar 的致命缺陷(對網格策略而言)
Collar 可以省保費,但如果策略是網格,價格突破上限後網格本來就沒部位了,Collar 的 Short Call 會讓你被 double kill。Protective Strangle 的 Long Call 才是正確解。
波動率與網格幾何
3.1 波動率計算(HV30)
3.2 網格幾何
3.3 履約價與網格邊界對齊
Protective Strangle 的關鍵設計參數:履約價直接掛在網格邊界上。
3.4 資金配置與破產風險
| HV30(年化) | 30日破產風險 |
|---|---|
| < 40% | 1.5% |
| 40–80% | 3.2% |
| 80–120% | 6.5% |
| > 120% | 12.0%(不可執行) |
選擇權定價數學
4.1 Black-Scholes 定價公式
| 選擇權 | 價格公式 |
|---|---|
| 買權 Call(你買入) | $C = S \cdot N(d_1) - K e^{-rT} \cdot N(d_2)$ |
| 賣權 Put(你買入) | $P = K e^{-rT} \cdot N(-d_2) - S \cdot N(-d_1)$ |
$S$ = 現貨價格 · $K$ = 履約價 · $T$ = 到期時間(年) · $r$ = 無風險利率 · $\sigma$ = 隱含波動率 · $N(\cdot)$ = 標準常態 CDF
4.2 Protective Strangle 的 Greeks
| Greek | Long Put | Long Call | Strangle 淨值(+ 現貨) |
|---|---|---|---|
| Δ | $-N(-d_1)$ | $N(d_1)$ | $1.0 - N(-d_{1,\text{put}}) + N(d_{1,\text{call}})$ — 略 > 1.0 |
| Γ | $\frac{N'(d_1)}{S\sigma\sqrt{T}}$ | $\frac{N'(d_1)}{S\sigma\sqrt{T}}$ | 雙邊正 Gamma → 凸性保護 |
| Θ | $-\frac{S N'(d_1)\sigma}{2\sqrt{T}} + rK e^{-rT}N(-d_2)$ | $-\frac{S N'(d_1)\sigma}{2\sqrt{T}} - rK e^{-rT}N(d_2)$ | 雙邊負 Theta → 每日時間成本 |
| V | $S \cdot N'(d_1) \cdot \sqrt{T}$ | $S \cdot N'(d_1) \cdot \sqrt{T}$ | 雙邊正 Vega → IV 上升有利 |
4.3 隱含波動率求解
Protective Strangle 數學模型
5.1 策略成本
5.2 到期損益函數
5.3 三區段分析
| 區段 | Put | Call | 總損益 |
|---|---|---|---|
| 暴跌 $S_T \lt K_{\text{put}}$ |
$K_{\text{put}} - S_T - P_{\text{premium}}$(暴賺) | $-C_{\text{premium}}$(歸零) | $\approx K_{\text{put}} - S_0 - (P_{\text{premium}} + C_{\text{premium}})$ 常數 — 下檔鎖死! |
| 區間內 $K_{\text{put}} \le S_T \le K_{\text{call}}$ |
$-P_{\text{premium}}$(theta 衰減) | $-C_{\text{premium}}$(theta 衰減) | 網格獲利 − (保費成本) 網格 θ 收益 vs 選擇權 θ 成本 |
| 暴漲 $S_T \gt K_{\text{call}}$ |
$-P_{\text{premium}}$(歸零) | $S_T - K_{\text{call}} - C_{\text{premium}}$(暴賺) | 網格已實現獲利 + $(S_T - K_{\text{call}}) - \text{Total\_Cost}$ 上檔無限!Call 接力 |
5.4 關鍵數學洞察
暴跌區($S \lt K_{\text{put}}$):$d(\text{Total})/dS = 0$,Delta neutral,下檔風險被鎖死。
暴漲區($S \gt K_{\text{call}}$):$d(\text{Total})/dS = 1$,完全參與上漲。
對比 Collar:Collar 在暴漲區 $d(\text{Total})/dS = 0$,被 cap 住不再參與。
總 P&L 方程式
6.1 即時 Mark-to-Market(非到期)
6.2 展開的總 P&L
6.3 三條曲線的疊加效應
| 暴跌 $S \lt K_{\text{put}}$ | 區間內 $K_{\text{put}}\sim K_{\text{call}}$ | 暴漲 $S \gt K_{\text{call}}$ | |
|---|---|---|---|
| Grid | ▼ 虧損 | ✅ 獲利 | ✅ 獲利(已出場) |
| Put | ▲ 暴賺 | ▼ theta | ─ 歸零 |
| Call | ─ 歸零 | ▼ theta | ▲ 暴賺 |
| Total | ██ 鎖死 (flat) | ██ 網格主導 (positive) | ██ Call 接力 (rising) |
6.4 Theta 成本衰減
τ 越大(到期日還遠)→ theta 越小 → 持有成本低。τ 越小(快到期)→ theta 越大 → 保費燒很快。 建議使用 60–90 DTE,避免最後兩週的急遽 theta decay。
關鍵風險指標一覽
| 指標 | 公式 | 說明 |
|---|---|---|
| 總保費成本比 | $(P_{\text{premium}} + C_{\text{premium}}) / C_{\text{total}}$ | 策略的「保險費率」 |
| 每月 θ 成本 | $(\Theta_{\text{put}} + \Theta_{\text{call}}) \times 30$ | 每月被時間吃掉的保費 |
| 最大虧損(已避險) | $K_{\text{put}} - S_0 - (P_{\text{premium}} + C_{\text{premium}})$ | 下檔鎖死的金額 |
| 網格 APR | $(\text{fills/day} \times 30 \times \text{profit/fill} \times 12) / C_{\text{total}} \times 100$ | 年化網格報酬率 |
| 盈虧平衡 | $(P_{\text{premium}} + C_{\text{premium}}) / \text{fills\_monthly}$ | 每月需要多少 fills 才打平保費 |
| VaR(95%, 1日) | $S \times \sigma_{\text{daily}} \times 1.645 \times \text{exposure}$ | 單日最大預期虧損 |
| CVaR(95%, 1日) | $S \times \sigma_{\text{daily}} \times \phi(\Phi^{-1}(0.05)) / 0.05$ | 極端情況的平均虧損 |
| 淨 Delta | $1.0 + \Delta_{\text{put}} + \Delta_{\text{call}}$ | 價格敏感度,正常約 1.0 |
| 淨 Gamma | $\Gamma_{\text{put}} + \Gamma_{\text{call}}$ | 凸性保護強度,越大越好 |
| 保護效率比 | $(K_{\text{put}} \text{保護深度} + K_{\text{call}} \text{上檔空間}) / \text{總保費}$ | 每花 $1 保費買到多少保護 |
| 保費佔網格獲利比 | $\text{月保費} / \text{月網格獲利}$ | < 50% 才合理 |
策略決策流程
完整的決策程序——從波動率分類到執行指令:
premium_ratio > Max_premium_pct→ 保費太貴 → 選項 A:拉寬 $K_{\text{put}}/K_{\text{call}}$ → 選項 B:只買 Put 不買 Call → 選項 C:縮小網格範圍 $B$
執行完整 Protective Strangle:部署網格訂單 + 買入 OTM Put ($K_{\text{put}}$) + 買入 OTM Call ($K_{\text{call}}$)
• DTE < 14 → 考慮 Roll(平倉舊選擇權,買入新的 60–90 DTE)
• IV 暴漲 → 選擇權價值上升,考慮部分獲利了結
• fills/day 持續低於預期 → 考慮縮小 Δ 增加觸發頻率
專用 TUI 儀表板設計
5 區域全螢幕終端儀表板,按 s 鍵進入 Protective Strangle 模式。
9.1 整體佈局
9.2 色票方案
| 元素 | 顏色 | 說明 |
|---|---|---|
| Put 區 ($S \lt K_{\text{put}}$) | 紅色背景 | 危險區域,但 Put 在保護 |
| Call 區 ($S \gt K_{\text{call}}$) | 藍色背景 | 上檔接力區 |
| 網格區 ($K_{\text{put}}\sim K_{\text{call}}$) | 綠色背景 | 安全操作區 |
| Put MTM 為正 | 紅色 | 暴跌中 Put 在賺 |
| Call MTM 為正 | 藍色 | 暴漲中 Call 在賺 |
| Grid P&L | 綠色 | 網格獲利 |
| Roll 建議 | 青色 | 需要動作 |
9.3 快捷鍵
| s | 進入 Protective Strangle 儀表板 |
| h | 切換避險開/關 |
| k / j | 調整 Put 保護 % |
| l / ; | 調整 Call 上檔 % |
| r | 從 HV30 重新計算網格幾何 |
| R | Roll 選擇權(平倉 + 開新倉) |
| Tab | 切換焦點區域 |
| Esc | 返回主 Option Chain 畫面 |
| ? | 顯示快捷鍵說明 |
Rust 實作路徑
10.1 原始碼檔案結構
src/
├── strategies/
│ ├── mod.rs
│ ├── grid_strategy.rs // GridStrategy, GridLevel, GridState
│ └── protective_strangle.rs // ProtectiveStrangle (Put + Call params)
├── models/
│ ├── mod.rs
│ ├── options_pricing.rs // Black-Scholes + Greeks(純 Rust)
│ └── volatility.rs // HV30 計算
└── ui/
├── mod.rs
├── hedge_dashboard.rs // Protective Strangle 儀表板
├── strangle_panel.rs // 選擇權參數面板
├── pnl_chart.rs // P&L vs Spot 圖表
└── ... existing files
10.2 關鍵資料結構
// strategies/protective_strangle.rs
pub struct ProtectiveStrangle {
pub put_leg: OptionLeg,
pub call_leg: OptionLeg,
pub state: StrangleState,
}
pub struct OptionLeg {
pub strike: f64,
pub premium: f64,
pub iv: f64,
pub delta: f64,
pub gamma: f64,
pub theta: f64,
pub vega: f64,
pub dte: u32,
pub mtm_pnl: f64,
}
pub struct StrangleState {
pub is_active: bool,
pub total_cost: f64,
pub total_theta: f64,
pub protection_down: f64,
pub protection_up: f64,
pub cost_ratio: f64,
pub days_to_breakeven: f64,
}
10.3 計算管線
即時價格 P_t
│
▼
compute_hv30(prices) ──► σ_daily, σ_annual, regime
│
▼
GridGeometry::solve(P, σ) ──► L, U, N, Δ
│
▼
ProtectiveStrangle::new( ──► K_put, K_call, premiums, Greeks
L, U, T, σ_iv
)
│
▼
TotalPnL::compute(P_t) ──► Grid(S) + Put_MTM(S) + Call_MTM(S)
│ → P&L curve for chart
▼
DashboardRender::draw() ──► TUI screen
10.4 外部依賴
| Crate | 用途 |
|---|---|
statrs | Black-Scholes 的常態 CDF/PDF |
| (無)純 Rust | 網格幾何、BS 定價都是純算術 |
學術文獻與參考資源
11.1 學術論文
| 論文 | 年份 | 關聯性 |
|---|---|---|
| Tail-Safe: Explainable Risk-Sensitive RL with CBF-QP Safety Layer | 2025 | 最相關。提出 tail-risk hedging 框架,用 CBF-QP 控制 SPX-VIX 尾部風險,整合 CVaR 目標與選擇權避險 |
| Portfolio Insurance and Market Crises (Leland & Rubinstein) | 1976 | 原創 Portfolio Insurance 理論,Protective Put 的數學基礎 |
11.2 相關 GitHub 專案
-
options_portfolio_backtester
lambdaclass
最完整。支援 Protective Strangle 回測,含 tail-risk hedge analysis、Greeks 風險管理、Rust 加速。內建 Strangle preset。 -
Grid-Protective-Put-on-BTCUSDT
DanRedelien
網格 + 保護性賣權的 backtesting engine。ATR 動態調整 grid spacing,Black-Scholes 定價選擇權。 -
delta-neutral-grid-optimizer-v3
leionion
HV30 → 網格幾何的完整推導管線。Grid 數學的主要來源(§3)。 -
gamma-scalping-algorithm
ivanvgreiff
Black-Scholes Greeks 實作、delta hedging engine。選擇權定價的參考實作(§4)。
11.3 公式來源對照
| 公式 | 章節 | 來源 |
|---|---|---|
| HV30 波動率推導 | §3.1 | Delta Neutral Grid Optimizer |
| 網格幾何 (Band, Spacing, Count) | §3.2 | Delta Neutral Grid Optimizer |
| Black-Scholes 定價 | §4.1 | Gamma Scalping Algorithm |
| Greeks (Δ, Γ, Θ, V) | §4.2 | Gamma Scalping Algorithm |
| Protective Strangle 三區段分析 | §5.3 | 原創推導 |
| 總 P&L 曲面 | §6.2 | 原創推導 |
| Tail-Safe CBF-QP 框架 | §11.1 | arXiv:2510.04555 |
11.4 關鍵數學結果總結
1. 下檔 delta neutrality:在 $S \lt K_{\text{put}}$ 時,$d(\text{Total})/dS = 0$,下檔風險被鎖死
2. 上檔 gamma participation:在 $S \gt K_{\text{call}}$ 時,$d(\text{Total})/dS = 1$,完全參與暴漲
3. 中間區間 grid dominance:在 $K_{\text{put}} \le S \le K_{\text{call}}$ 時,網格 P&L 主導
4. Theta cost bound:$|\Theta_{\text{total}}| \le S\cdot\sigma/\sqrt{\tau}$,時間成本有上界
5. Cost efficiency:當 月網格獲利 / 月保費 > 2 時,Sharpe ratio 改善最顯著
Total P&L vs Spot Price — Protective Strangle
調整參數觀察 Protective Strangle 的「微笑」損益曲線——雙邊凸性保護,上檔無限。