
重現這份研究
複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。
告訴你的AI:
幫我設定 FinLab,重現0050與正2凱利配置研究
凱利公式能讓 0050 的槓桿配置更好嗎?這次用歷史報酬估計的版本沒有成立:全凱利、半凱利、四分之一凱利搭配三種回看期,共 9 組都未贏過同期 0050 含息日夏普。半凱利原設定年化 15.90%、日夏普 0.66、最大回撤 -56.74%;0050 是 19.68%、1.01、-33.96%。本文以反面教材為主,拆開數學公式與實際估計的差距。
原設定的平均名目曝險約 1.32 倍,風險比一般滿倉高。每天固定同樣平均曝險的 0050 加正2組合,年化 24.08%、日夏普 0.97;即使把槓桿程度配對,動態凱利仍落後。這次結果指向報酬估計與調整時點,不能把「有公式」當成配置一定較佳的理由。
凱利公式的兩種常見寫法
二元賭局的凱利比例為 f = p - (1-p)/b,其中 p 是勝率,b 是每押一元、獲勝時的淨賠率。它假設輸贏與賠率的模型足以描述下一次下注。Kelly(1956)討論長期資產對數成長;這個目標和降低短期回撤不同。
股票日報酬有連續大小與尾端風險,不能只拿上漲天數當勝率。本研究使用連續報酬的近似:目標倍數等於預估日超額報酬平均除以日報酬變異數,再乘凱利折數 k。分子與分母都用日頻,所以不再額外乘 252。這是估計版規則,沒有宣稱是實際 ETF 報酬分布下的精確最適解。
手機閱讀表格時,可左右滑動查看全部欄位。
| 寫法 | 需要的資料 | 常見誤用 |
|---|---|---|
| 二元賭局凱利 | 勝率、贏與輸的賠率 | 用歷史上漲天數代替未來勝率 |
| 連續報酬近似 | 超額平均報酬、變異數 | 把年報酬除以日變異數,單位不一致 |
| 折數凱利 | 完整凱利再乘 k | 以為半凱利永遠只有半倉 |
| 本文有限制版本 | 歷史估計、k、0至2倍上限 | 把上限內結果當成原理保證 |
Merton(1970)的連續時間配置研究有其模型假設;它支持討論風險、報酬與配置的關係,沒有保證用最近一年平均報酬代入就能預測下一個月。理解這個差別,可搭配量化交易指南。
0050 與 0050 正2怎麼組成 0 至 2 倍
回測只使用真實可交易 ETF:0050 與 00631L。當目標倍數 a 小於等於 1,持有 a 比例的 0050,剩下放零息現金。當 a 大於 1,0050 比例是 2-a,00631L 比例是 a-1,兩個資產的資金權重相加仍是 1,沒有另向券商借款。
| 目標倍數 | 0050 比例 | 00631L 比例 | 現金 |
|---|---|---|---|
| 0.5 倍,配置示例 | 50% | 0% | 50% |
| 1 倍,配置示例 | 100% | 0% | 0% |
| 1.5 倍,配置示例 | 50% | 50% | 0% |
| 2 倍,配置示例 | 0% | 100% | 0% |
這些是權重示例,並非績效。00631L 追求單日正向兩倍,元大投信產品說明提醒槓桿風險與持有條件。持有多天的結果會受每日重設、追蹤誤差、費用和漲跌路徑影響,所以本研究使用 00631L 的含息還原價格,沒有把 0050 每日報酬簡單乘二取代。
9 組參數與月末換倉
凱利折數是 1、0.5、0.25,回看期是 126、252、504 個交易日。原設定選半凱利、252 日,九組全部在看績效前寫定。超額報酬以固定年息 1% 換成日利率後扣除,這只是訊號假設;未投資現金仍不計利息。
月底收盤估計過去 L 日的平均與樣本變異數,次一交易日收盤才按新權重換倉。月中維持原持有數量,權重可以隨 ETF 價格漂移,不會每天用新訊號調整。最高名目曝險目標限制在兩倍,負估計則截為零。

九組日夏普約 0.46 至 0.72,全部低於 0050 的 1.01。原參數的風險調整報酬落在這個區域中間;沒有因為全凱利某一組比較好,就改用那組充當原設定。與固定價格區間買賣的網格交易相比,凱利是依估計報酬與風險改變槓桿,持有機制不同。
估計值被截到兩倍時,完整凱利與半凱利可能產生完全相同的部位;因此折數不同不一定代表每一天風險都不同。反過來,估計平均報酬接近零時,小幅誤差就可能讓曝險在現金與持股之間切換,這是短窗口估計需要承擔的另一種不穩定。
半凱利為何仍會接近兩倍曝險
半凱利是把公式的估計值乘二分之一,並非固定投入一半資產。如果完整凱利估計超過四倍,乘半後仍會碰到兩倍上限。近期報酬高、估計變異數低時,分子除分母可以迅速變大;當市場轉折,落後的估計可能來不及降低部位。

藍線是報酬發生前的名目曝險,將正2資金權重乘二後加上 0050。它是名目近似,兩檔 ETF 月中相對漲跌也會讓曝險漂移;灰線用右軸呈現 0050 含息淨值。這張圖要回答的是什麼時候承擔風險,不能從全段平均 1.32 倍推定每個月都相同。
| 指標 | 半凱利、252日 | 同平均 1.32 倍固定組合 | 0050 含息 |
|---|---|---|---|
| 年化報酬 | 15.90% | 24.08% | 19.68% |
| 日夏普 | 0.66 | 0.97 | 1.01 |
| 最大回撤 | -56.74% | -40.05% | -33.96% |
| 年化波動 | 28.67% | 25.55% | 19.74% |
固定對照是約 67.77% 0050 加 32.23% 00631L,每日調回比例。平均曝險是事後才知道的數字,所以它是風險配對診斷,不是可以事前照抄的最佳組合。這個對照同樣使用預設成本,沒有為了讓它好看把換倉費用刪掉。
三項驗證都沒有過
「贏」預先定義為日夏普高於同期含息 0050,不扣無風險利率。至少 7 組鄰近參數必須勝出;原參數前後半段也必須各自勝出,並且計入 sim() 預設成本。結果如下。
| 檢查 | 半凱利日夏普 | 0050 日夏普 | 結果 |
|---|---|---|---|
| 鄰近參數 | 0/9 組勝出 | 1.01 | 未通過 |
| 前半,2014-10 至 2020-10 | 0.32 | 0.80 | 未通過 |
| 後半,2020-10 至 2026-11 | 0.94 | 1.18 | 未通過 |
| 全段,含預設成本 | 0.66 | 1.01 | 未通過 |
| 拿掉最好曆年 2021 | 0.56 | 0.99 | 未通過 |
後半段半凱利年化 28.01%,略高於 0050 的 27.58%,但日夏普仍較低。年化較高只能支持那段有較高報酬,不能替全段風險調整後的失敗翻案。如何解讀這些指標,見夏普比率與最大回撤定義。

回測方法與未涵蓋的風險
00631L 可得資料從 2014-10-31 起,並非從 0050 最早資料日開始。0050 的估計窗口可使用上市前已存在的歷史;九組均以兩檔共同可交易期間 2014-10-31 至 2026-11-06 比較。資料表是 etl:adj_close,實跑日 2026-11-10,FinLab 2.3.8。
策略與固定對照皆使用通用台股預設每邊手續費 0.1425%、賣出稅 0.3%;這個稅率比 ETF 實際稅率保守。ETF 內部費用和追蹤表現已在價格中,不再重複加一次。沒有另外建模買賣價差、滑價、最低手續費、零股限制或容量,沒有借券、融資追繳或個股流動性篩選。
原參數平均每月目標權重變動合計 21.8%,最高月 197.0%,屬於雙邊權重調整量,沒有把價格漂移本身當成交。基準用含息價直接連乘,不經 sim()、不扣交易成本。前後對半僅作穩定度檢查,整段仍是樣本內,沒有獨立樣本外或實盤驗證。研究方法可參考回測指南與程式交易流程。
重跑凱利公式與 ETF 配置
可將完整研究檔交給 AI,要求保留 1% 訊號利率、三種回看期、三種折數和兩倍上限,再重算成本與前後兩半。下面節錄的是日估計與 ETF 權重;完整檔會把訊號取在月末,下一交易日才執行,不能把日訊號直接當成每天都交易。
顯示程式碼
from finlab import data
prices = data.get("etl:adj_close")[["0050", "00631L"]]
returns = prices["0050"].pct_change()
daily_rate = 1.01 ** (1 / 252) - 1
mean_excess = returns.rolling(252).mean() - daily_rate
variance = returns.rolling(252).var()
leverage = (0.5 * mean_excess / variance).clip(0, 2)
weight_2x = (leverage - 1).clip(lower=0)
weight_0050 = leverage.clip(upper=1) - weight_2x
下載研究資料:
報告內建市場基準可能不同於本文另算的 0050;表格依下載數據比較。名詞可查量化詞彙。
凱利公式常見問題
凱利公式能保證不破產嗎?
不能。實際報酬分布與估計可能錯誤,還有極端跳空與交易限制。本文有限制到兩倍,但仍出現 -56.74% 回撤。
半凱利就是半倉嗎?
不是。它是完整估計倍數的一半,估計值夠大時,半凱利仍會碰到兩倍的上限。
為什麼不只用勝率計算?
股票每次賺賠金額不同。只知道上漲天數比例,無法描述下跌尾端的損失大小,也不符合固定二元賠率的假設。
正2能用0050報酬乘二代替嗎?
不能用來代表長期真實績效。每日槓桿會重設,價格還包含追蹤誤差與成本,本研究直接使用 00631L。
觀察期拉長就能改善嗎?
本次測了 126、252、504 日,九組全部未贏同期基準。更長窗口同時會降低估計波動與增加反應落後,不能只看其中一面。
半凱利失敗代表理論錯了嗎?
它表示這個歷史估計與 ETF 執行方式沒有通過驗證。理論目標、模型假設與估計實作要分開,不能從單一失敗否定全部配置理論。
投資有風險,過去績效不代表未來表現。本內容僅供教學參考,不構成投資建議,槓桿商品可能放大虧損,請依個人風險承受度審慎評估。
最後更新:2026-11|回測區間:2014-10-31 至 2026-11-06|作者:FinLab 量化研究團隊。團隊以 FinLab 資料與 Python 研究台股及美股策略,保留研究設定與重現程式。
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始


