上個月我拿了一筆資金費率套利的模擬盤,用三種方式計算 Sharpe。日超額報酬平均 6.4 個基點,日標準差 81 個基點。乘上 √252,就是 1.25。乘上 √365,就是 1.51。把同一條權益曲線每 5 分鐘取樣一次,再乘上 √(365×288),筆記上就寫 3.08。前兩個數字是日曆之爭。第三個是我們的研究代理在以資料檔頻率、而不是決策頻率年化時吐出來的東西。那不是任何我會願意辯護的 Sharpe 比率。
Sharpe(年化):3.08。5 分鐘報酬,crypto_carry_v3。
我留下 3.08。那才是需要解釋的那個。
為什麼 5 分鐘 Sharpe 會是日頻的兩倍?
時間平方根法則講的是獨立抽樣。把 N 筆 i.i.d. 報酬加總,均值隨 N 放大,標準差隨 √N 放大,比率隨 √N 放大。5 分鐘加密貨幣報酬並不是獨立抽樣。中價碰到買價再彈回。過時的標記又跳回來。資金費率不是分成 288 個獨立切片累積的;它按時鐘入帳。一本在 16:00 UTC 交易、然後隔夜閒置的帳本,並沒有在你睡覺時另外做了 287 個決策。
當短天期報酬均值回歸,而微結構噪音本來就會均值回歸時,每 5 分鐘取樣的均值回歸訊號也能交易那一彈。日標記會把它軋平。多出來的 1.57 年化 Sharpe,往往只是 2 個基點的震盪,根本撐不過 8 個基點的來回。你沒有找到更多優勢。你只是把噪音切成更多片,再乘上 324。
Andrew Lo 在 2002 年就把 √N 的失效寫下來了,講的是對沖基金月報酬的序列相關。不同市場。同一種罪。我們仍把 √N 當成格式選擇。
252 還是 365,才是較小的那場仗
美股 NAV 跳過週末與假日,一年大約 252 個點。加密貨幣永續週六也會印出。如果你每個日曆日標記一本 BTC 帳本,週六是真實的 P&L、帶著真實的資金費率,你大約有 365 筆報酬。對這條序列用 252,會把年化數字低估約 20%,因為 √365/√252 是 1.20。我對每日標記的 24/7 帳本用 365,對以盤末標記的美股帳本用 252。我會把常數寫在 Sharpe 旁邊。
那個落差是真的。但也不是 1.51 變成 3.08 的原因。拿用 365 做出來的加密貨幣 1.51,去跟用 252 做出來的股票 1.51 比、中間不加換算,簡報就是這樣做出來的。把兩邊都換成日曆年超額報酬除以日曆年報酬的標準差,從日 NAV 算起,否則就別比。
用決策時鐘年化
如果策略每 5 分鐘都能交易、而且真的在交易,5 分鐘報酬才是誠實的序列。你仍然不該盲目乘上 √105,120,因為那些報酬有序列相關。從 5 分鐘帳本做出日 NAV,再用 √365 年化日 Sharpe。日標記會把那一彈收進你從模擬帳戶讀到的同一個數字。
如果策略一天只交易一次,就完全不要給它 5 分鐘 Sharpe。也不要把日頻策略重採樣成分鐘 K 棒,好讓權益曲線看起來更平滑。一位同事曾傳給我一張天鵝絨般光滑的圖,其實是日帳本向前填充到分鐘。交易沒變。分鐘檔的 Sharpe 卻大得離譜。每當代理說它檢查了多個時間框架,我還是會想到那條曲線。
研究筆記上該有什麼
Sharpe 是報酬序列的性質,不是策略的性質。筆記必須寫明是哪一條序列。
| 慣例 | 乘數 | 何時算誠實 |
|---|---|---|
| 日頻 × √252 | 15.87 | 美股、盤末 NAV、週末不算報酬 |
| 日頻 × √365 | 19.10 | 加密貨幣(或任何 24/7 帳本)每個日曆日標記 |
| 小時頻 × √(365×24) | 93.6 | 每個小時都是獨立決策,而且你仍相信 √N |
| 5 分鐘 × √(365×288) | 324.3 | 幾乎從不,若策略一天沒有交易 288 次 |
我們印出的每個 Sharpe 旁邊,我要三件事:報酬頻率、年化常數,以及週末標記是否在樣本裡。如果代理漏了,我就把數字丟掉,從日 NAV 重算。
模擬交易用很無聊的方式了結這場爭論。在 00:00 UTC 標記模擬帳戶。用一年裡的標記次數年化那條序列。如果回測只有在你改了 √N 之後才對得上,你從來就沒在看策略本身。
← 所有文章


