選擇權組合策略

單一選擇權部位風險較高。透過組合多個選擇權,可以創造出各種風險報酬特徵的策略。

🔥 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 建立一個「選擇權策略分析器」:

  1. 選擇策略類型(Spread / Straddle / Strangle / Iron Condor)
  2. 輸入參數並計算損益表
  3. 繪製損益曲線圖(含盈虧平衡點標示)
  4. 顯示最大獲利、最大損失、盈虧平衡點
  5. 比較不同策略的損益

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!