SamSuka
阿程量化交易
阿程量化交易

patreon


【教你一個方法即搵高Sharpe策略】

今次而篇「真‧搵Alpha策略系列 2」分享一個構建交易策略的大框架,令大家更加容易可以搵到高 Sharpe 的 Alpha 策略。何解會寫這篇文? 因為很多新手朋友剛開始做量化交易回測都會行錯路,陷入一到兩年新手期內都找不到高 Sharpe ratio 策略的情況。但其實,在行內有一段時間的朋友,都知道要找到高Sharpe策略並不是一件難事,反而更難的是怎樣去Verify它們的可靠性,我日後會講更多。

回歸正題,新手朋友在一段時間內都找不到高Sharpe策略主要原因有以下兩種:

1. 過於著重回測得出一個45度向上升的績效曲線圖

2. 回測策略多元化太低

解決了以上問題的話,其實是不難找到一個 Sharpe ratio > 1的策略。

—------------------------------------------------------------------------------------------------------------------------

在提供解決方法前,我想和大家分享我以前作為新手時做回測的心路歷程:

以下是一個恒指期貨的短期逆轉 (Short term reversal) 策略交易邏輯:

1.如果5天平均線 上穿 15天平均線,於下一個交易日的close沽出,並於再下一交易日的close平倉;

2.如果5天平均線 下穿 15天平均線,於下一個交易日的close買入,並於再下一交易日的close平倉

(這裡假設是雙邊 4bps,即如果恆期在20000點時,雙邊一共8點交易成本)

作為一個新手,應該也做過 moving average cross over 的策略回測吧。5天及15天平均線相交而入市及出市,很合理也很容易做出來。好,那看看成績是怎樣。

交易績效曲線看上去不夠穩定地向上斜,夏普率及最大回撤看上去應該也不是太好,可能對很多人來說都不夠吸引。

Sharpe ratio: 0.33

CAGR: 2.16%

MDD: 22.89%

Exposure: 7.98%

於是,作為一個新手的我,通常有以下三種做法:

1. 做參數優化

2. 新加進或減去一些技術指標再優化

3. 放棄上述的交易策略,然後在同一個交易資產上嘗試其他策略類型例如趨勢跟隨 (Trend Following) 

試做了一下參數優化,發現這個交易策略其實是有更好的參數選擇:

大家可以看見近左下方有數個參數組合都是相對高一些 Sharpe ratio的 (當然低於1也絕對不是高),按傳統的參數選擇方法的話,我會選 快線MA 為26 及 慢線MA 為36 的那個組合,也就是左下黃色的那個格顯示的組合,因為它給我帶來樣本內最高 Sharpe ratio的成績。看看最新的成績:

Sharpe ratio: 0.49

CAGR: 2.09%

MDD: 15.62%

Exposure: 3.12%

與未被優化的參數組合 (5MA&15MA),這個(26MA&36MA)組合在Exposure低了一半有多的情況下CAGR也只是由2.16%跌至2.09%,加上Sharpe ratio及MDD都有明顯改進,感覺上是好了點。但另一方面,我這樣選個最好的參數,聽很多老師說過又好像是overfitting出來,在實盤時策略會容易失效,而且策略績效始終不是45度向上升,而是有些升升跌跌,加上2011年至2023年都是沒有什麼亮麗成績,整體感覺就是不合格。

於是以前的我可能就會左加一些指標,右減一些指標,最後弄不好就直接放棄...... 然後再loop其他交易策略到恒指期貨再做回測,試不好又再用到其他市場,到最後發覺很多市場都沒有好的績效。

—-----------------------------------------------------------------------------------------------------------------------

心路歷程完畢,以前聽太多朋友也是這樣放棄了量化交易,因為好像很不容易找到一個好的策略。

多年之後,我才發現要更容易地找到一個高Sharpe策略的解決辦法是: 

「把多個相關性低的單個Alpha組合起來,成為一個新的聚合Alpha策略」

那怎樣才做到?

首先,不要期待單個Alpha有一個完美的45度向上傾斜的績效曲線。如果有,那大概是有問題,例如 Look ahead 問題。像上面的績效曲線,有一個大概的45度向上升,即使上升時有點spikes也可接受。

第二,找尋相關性較低的交易策略,例如交易策略性質不一樣(trend vs mean reversal vs short term arbitrage),或者即使是同一類型的策略但參數組合極為不同 (e.g. 2MA10MA 及 50MA150MA的兩個組合)

最後,將多個alpha合併進行回測,並平均分配/用不同組合優化方法將資金分到每個策略。通常,一條更為平穩的績效曲線及一個Sharpe ratio更高的Alpha策略就可以產生出來。

例如,除了剛才上面的5MA-15MA單個Alpha外(Alpha1),我另外加了兩個新Alphas(Alpha2及Alpha3),3者都計算了交易成本 (4bps 雙邊)。見到3條線的績效回報在不同交易時期都略有不同,整體都是向上。一但將三個獨立Alpha聚合起來,變成一個新的聚合Alpha (平均分配資金),通常就是會有如上圖一樣,聚合Alpha(藍線)會更平穩地向上發展,大大減少出現突然上升及下跌的回報日子,曲線更為平滑而有相當好的回報。

例如在1998,2008及2018的年份,都可見聚合Alpha的drawdown遠遠比單個橙色Alpha為低,更為安全。的確聚合Alpha對比單個Alpha1的回報低了,但都係個句,我地追求的是風險調整後回報高而非絕對回報高,等同過大海可以賭大小一秒一倍但同時風險是一秒變零。

另外,在Sharpe ratio方面,聚合Alpha比任何以上一個單獨Alpha都高。那為何這樣合成通常會有更好的overall成績? 原因很簡單,就是市況不停變的時侯,如果您只用一種類型的交易策略,例如 trend following,那麼在市況回調時你的策略便可能未及早適應而開始輸錢。此時,如果你不只行一個策略,那麼其他類型的交易策略就有機會可以幫您彌補到輸的錢,什至是淨賺。那麼最終只要您多個相關性低的策略是整體賺錢的話,其實就等於在每一個日子您都有些微淨賺,績效曲線當然便可穩定上升,而且遠比只用一個單獨Alpha好。

有人可能會問,我們看到以上的聚合Alpha的回報比其中的一個獨立Alpha為低(比橙線),是否一個壞處? 其實一般情況下如果要 Sharpe ratio高,除用套利/另類數據的交易策略外,一般的交易策略並不能有太高exposure。但低exposure代表未必賺得多,因此會對回報可能有些負面影響。但記住我們要做的是提高風險調整後的回報,而非絕對回報。另外,使用單一策略有極其大的策略風險,例如策略一但失靈,成績便可能大幅受影響。用以上的聚合Alpha則可大大減低單個策略失靈的影響。

寫到此,我留給大家去嘗試,去加多些exposure低但自身整體向上的獨立Alpha,看看對整體的聚合Alpha有何影響。例如,想想有什麼Alpha是可以適應到2009年至2020年期間的市況,從而可以將累積回報及Sharpep提升一些。

不過要記得一個重點,就是當您做 Alpha 合併的時侯,務必要計算好每個 Alpha 的 交易成本(transactions cost)。否則的話你可能會發現同一個策略logics,turnover 高一些的參數組可能會比低 turnover的版本成績好很多,例如 MA(2) cross down MA(5) 的成績比 MA(2) cross down MA(50) 可能好很多,但實際做起交易時並沒有這個優勢,只是紙上回測沒有計入交易成本所以 2-5MA 策略紙上看比較能適應市場而獲利更好。

上一篇文「真‧搵Alpha策略系列 1」分享左點樣「搵」及「測試」一個預測因子,來判斷該因子可否做出一個可行的交易策略。好多朋友都話以前未聽過原來一個咁容易的方法就可以搵到一個高 Sharpe 的 Alpha ,仲要係未優化已經高 Sharpe。但另一邊的朋友聽完之後就話d codes 有少少難明,因為有朋友本身唔識 python,而方面遲下我再幫大家,會有新plan出爐。希望您地可以幫忙分享出去俾更多朋友知道,衷心謝謝各位。

(本文的交易策略雖然有計交易成本,但策略只是用來示範聚合Alpha概念,大家留意。)



【教你一個方法即搵高Sharpe策略】

Comments

Short answer: yes, but won’t adjust size in proportional. Maybe by 1/3 to 1/2. Long answer: need to understand the whole logics of the strategy so as to evaluate the strategy risk and adjust accordingly

SY

想問下如果幾個alpha嘅交易次數有好大分別, 你會唔會adjust佢地trading size? 假設一個組合有兩個alpha, 佢地嘅SL同TP都差唔多, alpha 1平均一年trade 50次, alpha 2一年trade 10次, 咁alpha 2喺成個組合嘅回報佔比低過alpha 1好多, 呢個情況其實適唔適宜調高alpha 2嘅tradeing size? 調高咗, 好處係alpha 2同alpha 1對於組合嘅回報佔比會接近d, 成個組合就會冇咁受單一策略嘅影響, 但壞處就係alpha 2每個trade嘅risk大咗, 有可能單一trade就令到個return上落好大.... 咁應該點做好? 謝謝

Ryan Ng

Thanks Ken!

SY

inspiring article. Re-reading for the 3rd time. Please share more like this one! must read for all!

Ken Ng


More Creators