第二階段:核心組件深度解讀
模組 10:投資組合 — 資金的全局視角跨帳戶、跨策略地管理盈虧、持倉和績效
一、Portfolio 的角色
Portfolio 提供了整個交易系統的「財務總管」視角。它不是單一策略的帳本,而是所有帳戶、所有持倉的匯總。
flowchart LR
subgraph srcs["📥 全局輸入"]
direction TB
acct["🏦 帳戶 A / B"]
pos["📊 所有持倉"]
market["📈 市場數據"]
end
portfolio["💰 Portfolio<br/>投資組合匯總"]
subgraph outputs["📤 輸出指標"]
direction TB
nav["淨資產價值 (NAV)"]
pnl["盈虧 (PnL)"]
margin["保證金率"]
end
srcs ==> portfolio ==> outputs
style portfolio fill:#0f1419,stroke:#4fc3f7,stroke-width:2px
圖 1:Portfolio 匯總所有帳戶和持倉的信息
二、核心功能
💵
帳戶匯總
跨多個交易所帳戶匯總餘額、可用資金、保證金使用。
📊
持倉管理
追蹤所有開倉持倉,計算各自的未實現盈虧和整體風險暴露。
📈
盈虧計算
即時計算已實現盈虧(平倉部分)和未實現盈虧(按市價盯市)。
📋
績效報告
回測結束後生成完整的績效分析報告:收益率、夏普比率、最大回撤等。
三、API 查詢
# 在策略中查詢投資組合信息
# 淨資產價值(所有帳戶 + 未實現盈虧)
nav = self.portfolio.net_exposures(venue)
# 未實現盈虧
unrealized_pnl = self.portfolio.unrealized_pnl(instrument_id)
# 已實現盈虧
realized_pnl = self.portfolio.realized_pnl(instrument_id)
# 帳戶餘額
balances = self.portfolio.balances_locked(venue)
# 是否完全平倉
is_flat = self.portfolio.is_completely_flat()四、回測績效分析
回測結束後,Portfolio 會生成詳細的績效指標:
| 指標 | 說明 | 你應該關注什麼 |
|---|---|---|
| 總收益率 | 策略的整體回報 | 是否為正,是否跑贏基準 |
| 年化收益率 | 換算為年度的收益率 | 和其他投資機會比較 |
| 夏普比率 (Sharpe) | 風險調整後收益 | > 1 不錯,> 2 很好 |
| 最大回撤 (Max DD) | 從峰值到谷底的最大虧損 | 你能承受的最大跌幅 |
| 勝率 | 盈利交易的比例 | 需要和盈虧比一起看 |
| 盈虧比 | 平均盈利 / 平均虧損 | > 1.5 比較健康 |
| 最大連續虧損 | 連續虧損的最多次數 | 考驗心理承受能力 |
五、互動練習
🧠 練習:績效評估
策略 A 的回測結果:年化收益 80%,夏普比率 0.5,最大回撤 60%。
策略 B 的回測結果:年化收益 25%,夏普比率 2.1,最大回撤
12%。
哪個策略更好?為什麼?
策略 B 更好。原因:
- 策略 A 的夏普比率只有 0.5,說明收益大部分來自承擔了巨大風險
- 策略 A 的 60% 最大回撤意味著你的帳戶可能從 100 萬跌到 40 萬
- 策略 B 的夏普 2.1 說明風險調整後收益優秀
- 策略 B 的 12% 最大回撤在可控範圍
- 通過加槓桿,策略 B 可以放到和 A 相似的收益水平,但風險仍然可控
💡 結論:永遠優先看風險調整後的指標(夏普比率),而不是只看絕對收益。
六、本模組重點回顧
📋 關鍵點
- Portfolio 是跨帳戶、跨策略的財務總管
- 即時盯市:根據市場數據即時更新未實現盈虧
- 績效指標:夏普比率比絕對收益更重要
- 最大回撤:決定了你能用多大的資金運行策略
- 回測結束後會自動生成完整的績效分析報告