我做投資者教育已做了8年,前後教導了千多個學生。理論上,應該只有這千餘個學生懂得我這個量化交易的方法。但最近,我發現我遠遠低估了自己的影響力。
現時有不少KOL在寫專欄、寫post、做訪問,甚至開班授課也是用與我相近內容,甚至我知道香港有幾家trading firm也是用非常相近的方法去交易… 我並不是介意,如果這些人會credit to me也是ok的,畢竟好幾個都是我的學生,而且我做投教就是想大家學懂,但如果是copy cat然後拿去當自己產品賣就非常不要得。
不過,這背後有一個更加嚴峻的問題,就是over crowded的問題。理論上,市場容量極大,除非是高頻交易,否則不會出現「你賺了我本來會賺的錢」的情況。但問題是,我留意到某一群學生們太過一成不變,做法極其類近,影響市場的機會率實際上遠遠高於想像。
舉例,我其中一個教學例子為比特幣價格升穿40天移動平均線就買入比特幣。這例子只為示範如何backtest、如何optimize、如何coding等等。奈何,學生們回家便認為這是「終極交易聖盃」,永遠只看著40天移動平均線交易比特幣,而且也是看著同一個data source,更永遠都是同一時間點看!試想像,如果我的1000個學生,每人也拿10萬hkd,在比特幣升穿40天均線當刻買入,會發生什麼事?
早買的,例如前500個學生便能賺;遲買的,例如後500個學生便有機會輸。1000乘10萬,為1億hkd,比特幣市場能承受嗎?應該可以的。但問題是,學生們拿著我的notes到處send,其他page的KOL也是拿着我的教材到處寫post,甚至有幾家trading firm也派人來上我的課。這時候,比特幣升穿40天MA的買入金額還只是1億hkd嗎?
千萬別誤會。如果我怕影響自己的話,早就不再做投教了。事實上,這對我影響反倒不大,畢竟我沒有在用這個40天MA的策略,而且我的策略庫非常分散。我心底是擔心如果學生們太過一成不變、不加思索的話,只會不斷上演著「人踩人」的情況,互相令大家的ev變負。
以下分享15個終極量化建議:
1. 增加data sources
我上課曾示範過使用glassnode,怎料發現大部分學生過了3年仍只是在使用glassnode… 利申crypto市場有用的data sources不下30個。
2. 採用不同timeframes
我上課曾示範過daily策略,怎料發現大部分學生過了3年仍只是在使用daily resolution策略…
3. 增加data model
我上課曾示範過用MA及SD建構策略,怎料發現大部分學生過了3年仍只是在使用MA及SD建構策略… 真正有用的model不下10個。可以不妨問問chatgpt,有何standardisation及normalisation model,以及有何time series analysis以及cross sectional analysis model。
4. 考慮做data transformation
有很多data都不是常態分布的,不是常態分布的話,硬塞MA在其之上是沒意義的,更不要說用SD去計算Z score了,結果只會是完全錯誤。如要用MA或SD等方法,必須先做transformation,把data process好再計算。
5. 參數數目可以是0至無限
我上課曾示範過2個參數策略,怎料發現大部分學生過了3年仍永遠使用2參數策略… 參數可以是0個,亦可以是1個,亦可以是3個,亦可以是4個,更可以是5個。有些data用1個參數的公式就可以fit了,但有些data的確需要3/4/5個參數去solve,硬用2個參數是不會成功的。怕overfit的話,只要做一做walk forward analysis就可以了。
6. 多分散參數
我上課曾示範過如何挑選最佳策略,怎料發現大部分學生過了3年仍只是在使用那個參數… 用回文章一開首的例子,如果1億也在價格升穿40天MA時衝入市場,只會互相影響大家。但如果分散到35-45天MA約10個參數,那理論上就有機會能容納多10倍資金。
7. 訊號可以是continuous
我上課曾示範過用1/0/-1做classification的策略,怎料發現大部分學生過了3年仍只是在使用1/0/-1策略… 實際上,訊號可以是continuous的,position size可按signal magnitude變化。
8. 增加平倉方法的多樣性
我上課曾示範過用40天MA平倉,怎料發現大部分學生過了3年仍只是在使用40天MA平倉的策略… 平倉方法有極多種,最簡單的,可以是按時間平倉。背後原理為假設訊號的有效性會隨時間減少,例如於開倉後若干時間平倉,可以是1小時、8小時、24小時、3天等等如此類推。
9. maker大部分時間比taker好
一來普遍CEX的maker fee都比taker fee便宜,二來如果所有人都是taker只會一下子取竭liquidity,造成極大slippage,嚴重影響價格平衡。那什麼時候用taker較好呢?高頻arbitrage或者event driven,兩者也是latency sensitive的,pay更高的taker fee也是正ev。有很多學生不加思索地什麼策略也盲目直接take,連完全不time sensitive的策略也take,簡直是負ev行為。
10. 增加underlying數量
我上課曾示範過BTC策略,怎料發現大部分學生過了3年仍只是在使用BTC策略… 世界很大的,有合約的幣種有百多兩百隻,為什麼要這麼看不開只做BTC呢?
11. 混合因子
我上課曾示範過single factor策略,怎料發現大部分學生過了3年仍只是在使用single factor策略… 雖然single factor backtest簡單,但有不少alpha是來自factor間的互動,例如互加互減互乘互除。
12. 加入machine learning
有些trading firm堅持只用machine learning,因為machine learning能產出人類產不出的alpha,因此有獨特性,alpha不易decay,因此會更長青。
13. 增加optimisation target的多樣性
除了以sharpe為目標外,calmar也是個好選擇,甚至可以build一個function to cater both,例如sharpe乘以calmar。除了sharpe及calmar,也可以看sortino ratio、drawdown duration等,總之方法極其多。
14. 優化execution algo
的確,直接全單market order是最簡單的,初學者可以使用;但如果做了交易若干時間後仍在直接全單market order的話,ev非常負。TWAP、VWAP等已是最簡單的execution algo,有用的execution方法不下數十個。總之目的就是隱藏自己的交易,同時減少market impact。
15. 多策略
自從我在patreon開始提及CTA這個字後,香港幣圈量化就多了人講CTA。事實上,可以做的策略極其多,包括long short portfolio、funding arb、basis arb、event driven、global macro、regime classification、smart beta等等,策略愈多元化、愈分散,你的風險則愈低,同時生存機率亦愈高。
無論你是學生、KOL、trader,抑或已經是copycat,請不要一成不變,請盡量舉一反三,嘗試從各方面增加多樣性,以減少over crowded的情況,讓別人的策略,當然同時也讓自己的策略更長青!
Calvin
2024-10-13 08:44:30 +0000 UTCCray
2024-10-13 08:38:51 +0000 UTCCalvin
2024-09-06 09:22:56 +0000 UTCManies 1928
2024-09-06 04:37:55 +0000 UTC