選擇權組合策略
單一選擇權部位風險較高。透過組合多個選擇權,可以創造出各種風險報酬特徵的策略。
🔥 Vibe Prompt
「用 Python 實作常見選擇權組合策略的損益計算:Bull Call Spread、Bear Put Spread、Straddle、Strangle、Iron Condor。每個策略輸出損益表與損益圖。」
核心策略
1. Bull Call Spread(看好後市)
買入低履約價 Call + 賣出高履約價 Call(相同到期日)
最大獲利 = 履約價差 - 支付權利金
最大損失 = 支付權利金
損益平衡 = 低履約價 + 支付權利金
def bull_call_spread(S, K1, K2, premium_paid):
"""
Bull Call Spread 損益
K1 < K2(買入 K1 Call,賣出 K2 Call)
"""
profit = max(S - K1, 0) - max(S - K2, 0) - premium_paid
return profit
# 範例:買入 100 Call(支付 5),賣出 110 Call(收取 2)
K1, K2 = 100, 110
net_premium = 5 - 2 # 淨支付 3
for S in [90, 95, 100, 103, 105, 110, 115, 120]:
pnl = bull_call_spread(S, K1, K2, net_premium)
print(f"股價 {S:>3}: 損益 ${pnl:>6.2f}")
2. Bear Put Spread(看壞後市)
買入高履約價 Put + 賣出低履約價 Put
3. Straddle(跨式策略)
同時買入 Call 和 Put(相同履約價、到期日)
def straddle(S, K, premium_call, premium_put):
"""
Straddle:同時買入 Call 和 Put
預期大幅波動(不確定方向)
"""
total_cost = premium_call + premium_put
profit = max(S - K, 0) + max(K - S, 0) - total_cost
return profit
K = 100
premium_call, premium_put = 5, 4.5
print("Straddle 損益:")
for S in [80, 90, 95, 100, 105, 110, 120]:
pnl = straddle(S, K, premium_call, premium_put)
print(f"股價 {S:>3}: 損益 ${pnl:>6.2f}")
4. Strangle(勒式策略)
買入價外 Call + 買入價外 Put
- 比 Straddle 便宜,但需要更大波動才能獲利
- 適合預期重大事件(財報、選舉)
5. Iron Condor(鐵禿鷹)
四個選擇權組合,預期市場在區間內整理:
- 賣出價外 Put Spread + 賣出價外 Call Spread
- 最大獲利:收取的權利金
- 適合低波動市場
def iron_condor(S, K1, K2, K3, K4, premiums):
"""
Iron Condor
K1 < K2 < K3 < K4
賣出 K2 Put + 買入 K1 Put + 賣出 K3 Call + 買入 K4 Call
"""
net_credit = premiums['sell_put'] + premiums['sell_call'] - premiums['buy_put'] - premiums['buy_call']
# P&L at expiration
pnl = (max(K2 - S, 0) - max(K1 - S, 0) +
max(S - K3, 0) - max(S - K4, 0))
return pnl + net_credit
# 範例
params = {
'K1': 90, 'K2': 100, 'K3': 110, 'K4': 120,
'premiums': {'sell_put': 3, 'buy_put': 1, 'sell_call': 3, 'buy_call': 1}
}
print("Iron Condor 損益:")
for S in range(80, 131, 5):
pnl = iron_condor(S, **params)
print(f"股價 {S:>3}: 損益 ${pnl:>6.2f}")
策略比較
| 策略 | 市場預期 | 風險 | 獲利 | |------|---------|------|------| | Bull Call Spread | 小幅上漲 | 有限 | 有限 | | Bear Put Spread | 小幅下跌 | 有限 | 有限 | | Straddle | 大幅波動 | 高(支付雙倍權利金) | 無限 | | Strangle | 大幅波動 | 中等(比 Straddle 便宜) | 無限 | | Iron Condor | 區間整理 | 有限 | 有限 |
實戰練習
💡 Vibe Coding 練習:請 AI 建立一個「選擇權策略分析器」:
- 選擇策略類型(Spread / Straddle / Strangle / Iron Condor)
- 輸入參數並計算損益表
- 繪製損益曲線圖(含盈虧平衡點標示)
- 顯示最大獲利、最大損失、盈虧平衡點
- 比較不同策略的損益