Quantitative Strategy

Grid Trading
+ Protective Strangle

現貨網格交易結合雙買保護(Protective Strangle)的完整數學框架。 從波動率計算、網格幾何、到 Black-Scholes 定價與 P&L 合成—— 一份為想理解量化避險的投資人而寫的深度指南。

Protective Strangle:雙買保護

策略公式:現貨(或網格)+ Buy OTM Put + Buy OTM Call。 賺震盪的錢、防暴跌、抓暴漲——三種市場情境都有對應的獲利機制。

Grid 網格層

均值回歸利潤捕捉

在 [L, U] 區間內等距佈署買賣單。價格在網格層之間來回震盪時,每完成一次買→賣循環即鎖定利潤。

Strangle 雙買層

雙尾保護 + 上檔接力

Long OTM Put 鎖住下檔風險。Long OTM Call 在價格突破網格上限後接力參與暴漲。

部位方向目的損益特性
現貨網格Long區間內低買高賣,賺 mean-reversion線性,侷限在 [L, U] 之間
OTM Put(買入)Long極端暴跌時保護,鎖住最大虧損凸性 (convex),價格越低越賺
OTM Call(買入)Long極端暴漲時代替賣光的現貨繼續賺凸性 (convex),價格越高越賺

三種情境的保護行為

情境網格PutCall淨結果
正常震盪低買高賣,持續獲利Theta decay,小虧Theta decay,小虧網格獲利 > θ 成本 → 正報酬
暴跌 < L一路接刀到滿倉,嚴重浮虧進入深 ITM,價值暴增歸零Put 暴利 > 網格浮虧 → 下檔鎖死
暴漲 > U現貨分批賣光,被迫空倉歸零進入深 ITM,代替現貨參與上漲Call 接力 → 打破網格獲利天花板
Protective Strangle 的本質:在 [L, U] 內賺網格的錢;跌破 L 時 Put 保護本金;漲破 U 時 Call 代替賣光的現貨繼續參與。雙邊凸性保護,上檔無限。

為什麼是 Protective Strangle,不是 Collar

這是經過驗證的正確選擇。以下是兩種策略的關鍵差異:

維度Collar(錯誤選擇)Protective Strangle(正確選擇)
組成Long Spot + Long Put + Short CallLong Spot + Long Put + Long Call
淨成本很少(賣 Call 補貼 Put)較高(雙邊都付保費)
下檔保護✅ Put 保護✅ Put 保護
上檔參與❌ Call cap 住,漲破 K_call 就沒了✅ Call 繼續賺,漲越多賺越多
網格破上限時被迫出場,錯過暴漲Call 接力,繼續參與
最適合情境持有現貨 + 不想花錢避險網格交易 + 想要雙尾保護

Collar 的致命缺陷(對網格策略而言)

Collar 情況:網格突破 U → 現貨全部賣光 → Short Call 進入 ITM → 被指派以 K_call 賣出 → 現貨 $0、Call 虧錢 → 眼睜睜看著價格繼續漲
Protective Strangle 情況:網格突破 U → 現貨賣光 → Long Call 進入 ITM → 可以用低於市價的價格買入 → 繼續持有上漲部位 → 漲越多賺越多

Collar 可以省保費,但如果策略是網格,價格突破上限後網格本來就沒部位了,Collar 的 Short Call 會讓你被 double kill。Protective Strangle 的 Long Call 才是正確解。

波動率與網格幾何

3.1 波動率計算(HV30)

Log 報酬率
$$r_t = \ln\left(\frac{P_t}{P_{t-1}}\right)$$
日波動率 → 年化波動率
$$\sigma_{\text{daily}} = \text{std}(r_t) \qquad \sigma_{\text{annual}} = \sigma_{\text{daily}} \times \sqrt{252}$$

3.2 網格幾何

預期 1σ 移動(30日)
$$\sigma_{30d} = \sigma_{\text{annual}} \times \sqrt{\frac{30}{365}} \times P_{\text{current}}$$
對稱 ±1σ 網格帶寬
$$B = 2 \times \sigma_{30d} \qquad U = P + \sigma_{30d} \qquad L = P - \sigma_{30d}$$
最優網格數量(k = 0.618,黃金比例共軛)
$$N = \frac{B}{\sigma_{\text{daily}} \times P \times k}, \quad k = 0.618$$
網格間距與層級價格
$$\Delta = \frac{B}{N - 1} \qquad \text{Level}_i = L + i \times \Delta, \quad i = 0, 1, \dots, N-1$$

3.3 履約價與網格邊界對齊

Protective Strangle 的關鍵設計參數:履約價直接掛在網格邊界上。

$$K_{\text{put}} = L \quad\text{或}\quad K_{\text{put}} = L \times (1 - \varepsilon) \quad (\varepsilon = 1\text{--}3\%)$$ $$K_{\text{call}} = U \quad\text{或}\quad K_{\text{call}} = U \times (1 + \varepsilon)$$
理由:Put 在價格跌破 L 時開始保護(網格已滿倉);Call 在價格漲破 U 時開始接力(網格已空倉)。K 設在邊界上是最自然的,不需要另外設參數。

3.4 資金配置與破產風險

$$R = C_{\text{total}} \times r \quad (r = 10\%) \qquad C_{\text{active}} = C_{\text{total}} \times (1 - r) \qquad A_i = \frac{C_{\text{active}}}{N}$$
HV30(年化)30日破產風險
< 40%1.5%
40–80%3.2%
80–120%6.5%
> 120%12.0%(不可執行)
$$P(\text{breach}) \approx 2 \times \left(1 - \Phi\!\left(\frac{B}{2 \times \sigma_{30d}}\right)\right)$$

選擇權定價數學

4.1 Black-Scholes 定價公式

$$d_1 = \frac{\ln(S/K) + (r + \sigma^2/2)T}{\sigma\sqrt{T}} \qquad d_2 = d_1 - \sigma\sqrt{T}$$
選擇權價格公式
買權 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

GreekLong PutLong CallStrangle 淨值(+ 現貨)
Δ$-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 隱含波動率求解

$$\text{find } \sigma \text{ such that } \text{BS}(S, K, T, r, \sigma) = P_{\text{market}}$$ $$\text{以 Brent's method 迭代求解}$$

Protective Strangle 數學模型

5.1 策略成本

總保費成本
$$\text{Total\_Cost} = P_{\text{premium}} + C_{\text{premium}}$$ $$\text{Cost\_per\_contract} = \text{BS}_{\text{put}}(S, K_{\text{put}}, T, r, \sigma_{\text{put}}) + \text{BS}_{\text{call}}(S, K_{\text{call}}, T, r, \sigma_{\text{call}})$$

5.2 到期損益函數

到期時 (T = expiry)
$$\text{Put PnL}(S_T) = \max(K_{\text{put}} - S_T, 0) - P_{\text{premium}}$$ $$\text{Call PnL}(S_T) = \max(S_T - K_{\text{call}}, 0) - C_{\text{premium}}$$ $$\text{Spot PnL}(S_T) = (S_T - S_0) \times Q$$ $$\text{Total}(S_T) = \text{Spot}(S_T) + \text{Put}(S_T) + \text{Call}(S_T)$$

5.3 三區段分析

區段PutCall總損益
暴跌
$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 關鍵數學洞察

Protective Strangle 的數學本質:

暴跌區($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(非到期)

Master Equation — 在時間 t(距到期還有 τ = T − t)
$$\text{Total}(S_t) = \text{Grid}(S_t) + \text{Put}_{\text{MTM}}(S_t) + \text{Call}_{\text{MTM}}(S_t)$$
$$\text{Grid}(S_t) = \text{已實現網格獲利} + (S_t - S_{\text{entry}}) \times \text{net\_position}$$ $$\text{Put}_{\text{MTM}}(S_t) = \text{BS}_{\text{put}}(S_t, K_{\text{put}}, \tau, r, \sigma_{\text{put}}) - P_{\text{premium}}$$ $$\text{Call}_{\text{MTM}}(S_t) = \text{BS}_{\text{call}}(S_t, K_{\text{call}}, \tau, r, \sigma_{\text{call}}) - C_{\text{premium}}$$

6.2 展開的總 P&L

完整展開式
$$\text{Total}(S_T) = \text{Grid}(S_T) + \left[\max(K_{\text{put}} - S_T, 0) - P_{\text{premium}}\right] + \left[\max(S_T - K_{\text{call}}, 0) - C_{\text{premium}}\right]$$

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_{\text{total}} = \Theta_{\text{put}} + \Theta_{\text{call}} \approx -\frac{S \cdot \sigma}{2\sqrt{\tau}} \times \left[N'(d_{1,\text{put}}) + N'(d_{1,\text{call}})\right]$$

τ 越大(到期日還遠)→ 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% 才合理

策略決策流程

完整的決策程序——從波動率分類到執行指令:

1
以 HV30 求解網格幾何:$L, U, N, \Delta$
2
設定 Protective Strangle 履約價:$K_{\text{put}} = L \times 0.98$、$K_{\text{call}} = U \times 1.02$
3
從市場抓 IV,計算保費:$\text{Total\_Premium} = \text{BS}_{\text{put}} + \text{BS}_{\text{call}}$,目標 60–90 DTE
4
IF premium_ratio > Max_premium_pct
→ 保費太貴 → 選項 A:拉寬 $K_{\text{put}}/K_{\text{call}}$ → 選項 B:只買 Put 不買 Call → 選項 C:縮小網格範圍 $B$
5
ELSE(保費合理):
執行完整 Protective Strangle:部署網格訂單 + 買入 OTM Put ($K_{\text{put}}$) + 買入 OTM Call ($K_{\text{call}}$)
6
持續監控(每日):
• DTE < 14 → 考慮 Roll(平倉舊選擇權,買入新的 60–90 DTE)
• IV 暴漲 → 選擇權價值上升,考慮部分獲利了結
• fills/day 持續低於預期 → 考慮縮小 Δ 增加觸發頻率
步驟 4 是安全閥:當隱含波動率飆升使保費成本過高時,系統提供三種降級選項,而非強行支付昂貴的雙邊保護。

專用 TUI 儀表板設計

5 區域全螢幕終端儀表板,按 s 鍵進入 Protective Strangle 模式。

9.1 整體佈局

┌── PROTECTIVE STRANGLE DASHBOARD ── NVDA $131.42 ── IV: 34% ── STATUS: ON ──┐ │ │ │ ████████████████████████████ │ STRANGLE PARAMETERS │ │ ██ GRID + STRANGLE ████ │ K_put: 120.00 (-8.7%) │ │ ██ ██ │ Put IV: 38.2% │ │ ██ ┌── K_call: 142 ──┐ ██ │ Put Premium: $2.15/contract │ │ ██ │ ░░░░░░░░░░░░ ░ │ ██ │ Put Theta: -$0.42/day │ │ ██ │ ░░░ ▓▓▓▓ ░░░░░ │ ██ │ │ │ ██ │ ░ P=$131 ░░░░░ │ ██ │ K_call: 142.00 (+8.0%) │ │ ██ │ ░░░ ▓▓░░ ░░░░░ │ ██ │ Call IV: 36.5% │ │ ██ │ ░░░░░░░░░░░░ ░ │ ██ │ Call Premium: $1.85/contract │ │ ██ └── K_put: 120 ───┘ ██ │ Call Theta: -$0.38/day │ │ ████████████████████████████ │ │ │ │ Total Cost: $4.00/contract │ │ MTM P&L BREAKDOWN │ Total Theta: -$0.80/day │ │ Grid P&L: +$342 │ │ │ Put MTM: -$15 │ GRID METRICS │ │ Call MTM: -$8 │ Active Levels: 22/22 │ │ Total MTM: +$319 │ Fills Today: 4 │ │ │ Total Fills: 87 │ │ BREAKEVEN CHECK │ Grid APR: 58.4% │ │ Grid profit/month: +$243 │ │ │ Theta cost/month: -$24 │ HEDGE EFFICIENCY │ │ Net profit/month: +$219 │ Cost Ratio: 1.8% of capital │ │ Days to breakeven: 8.5 │ Protection: $11.42 downside │ │ │ Upside Capture: unlimited │ ├───────────────────────────────┴────────────────────────────────────────────┤ │ │ │ │ │ │ │ P&L vs S │ Greeks Now │ Risk Metrics │ Active Grids │ Expiry │ │ ┌──────┐ │ Δ: 1.12 │ VaR(95%): │ L1: BUY 118 │ ═══▓▓▓░░░ │ │ │ ┌── │ │ Γ: 0.006 │ $1,850 │ L2: BUY 120 │ DTE: 45 │ │ │__│▓▓ │ │ Θ: -$0.80 │ CVaR(95%): │ L3: BUY 122 │ 到期日 │ │ │ │ │ │ V: 0.15 │ $2,340 │ ... │ 9/19/2026 │ │ │0 ═╪═ │ │ IV: 34.2% │ Max DD: │ U2: SELL 140│ │ │ │ │ │ │ RV: 28.7% │ -$3,200 │ U1: SELL 142│ Roll? ✅ │ │ └──┴───┘ │ VRP: 5.5% │ Break Even: │ │ in 31 days │ │ 118 131 │ │ 8.5 days │ │ │ ├────────────────────────────────────────────────────────────────────────────┤ │ SPOT $131.42 │ NET θ: -$0.80/d │ COST: 1.8% │ NEXT ROLL: 31d │ ✅ │ └────────────────────────────────────────────────────────────────────────────┘

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 重新計算網格幾何
RRoll 選擇權(平倉 + 開新倉)
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用途
statrsBlack-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.1Delta Neutral Grid Optimizer
網格幾何 (Band, Spacing, Count)§3.2Delta Neutral Grid Optimizer
Black-Scholes 定價§4.1Gamma Scalping Algorithm
Greeks (Δ, Γ, Θ, V)§4.2Gamma Scalping Algorithm
Protective Strangle 三區段分析§5.3原創推導
總 P&L 曲面§6.2原創推導
Tail-Safe CBF-QP 框架§11.1arXiv:2510.04555

11.4 關鍵數學結果總結

Protective Strangle 的數學證明要點:
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 的「微笑」損益曲線——雙邊凸性保護,上檔無限。

Total(S) = Grid(S) + Put(S) + Call(S)
Total P&L Grid P&L Put P&L Call P&L