NokiMo
阿程量化交易
阿程量化交易

patreon


【Sharpe 1.35】- 用 FTSE中國A50期指 預測 恆期 走勢

今個月我地會正式推出 Alpha 1 文章的 Video,因為知道唔少同學可能覺得難跟上,所以我都拍左片,後製緊,到時大家就可以手把手學複製結果,有晒codes有晒數據。

入正題,上次篇文我地用滬港通南向額度餘額(日線數據)去測試下到底如果用黎交易恆指期貨到底有無Alpha,有朋友話啲數據比較難拿,有無其他方法可以做到類似效果。咁今日就同大家試一個新方法,就係用 proxy instrument 去仿效一啲因子,一啲本身可能因為我地得唔到相關數據而做出的因子,睇下咁個結果會係點。我地會用FTSE A50期貨黎做預測因子 (仿效之前現金流),個期貨當然係track FTSE A50指數,而指數就係反映緊內地最大50間A股公司股價。大家可以先睇下以下圖片,略略了解 FTSE A50期貨(XU1) 係一個咩期貨黎。留意一點,佢係 SGX 新加坡交易所進行交易的,所以如果有朋友想trade的話都trade到,相對無咁麻煩。

留意一點非常重要的地方,就係XU1的closing price 係下午4點35分,而恆指期貨就係4點30分,所以如果你打算做其他策略,記得唔好look ahead左個時間。同埋用shift() function 或 cumulative returns 取值時要小心錯位。點發覺錯左? 都係個句,個 PNL 圖太靚通常都係錯,你可以試下 look ahead 一日咁去做回測,睇下個結果如何。


我們的回測規則是:

首先會用到我們Alpha 1 的ipynb script,用到200天的rolling-window去計percentile而非expanding window。

1. 先計出FTSE A50期貨的daily returns (用close-to-close計,close在下午4點35分)

2. 然後用 rolling(20).mean() 去計出 FTSE A50 20天平均的 returns (20天唔係最優化,大家可以再優化試試,15-30都係相對令仔的回報結果)

3. 如果從2.計出的數字是fall到rolling-200天的 0-10 percentile ranges內,就會 Long 恆指期貨 at open 然後在下一個open 平倉。(而度要小心,因為恆期opening我用開係下午5:15開始,而唔係上午9:15,所以做回測要format好而點。而實際上係下午4:35分會出到訊號,下午5:15可做到execution)。





大家會見到,0-10 是最有預測能力的,同上次策略文的 0-10 係吻合賺錢,而今次90-100就相對賺少啲,但同上篇文一樣都係吻合賺錢。 


策略原理:

今次交易策略的 Alpha 同上次有咩唔同,就係參數選擇上次係比較 short term (5日) ,今次係比較長一點,15-30天 (我地用左睇20天的平均daily returns)。點解會有咁樣的分別,其中比較大機會原因係可能當內地股市15-30天的平均日回報如用最近200天去睇都處於極低位時,資金通常都會繼續流出,咁要有 Asia exposure 的基金便會相對投放多啲資金到其他Asia市場,例如恆期,所以點解咁long一日HSIF會升,係純數字上反映出的市場慣性。另外,如果大家有興趣也可以測試下而個方法對日本/新加坡市場影響。

另一點我想同大家係而篇文強調的是,其實如果一個策略的優勢原理係吻合市場操作邏輯,咁就算係用唔同的instrument做預測因子(如果入市出市時間唔差太遠的話),對賺/蝕的方向唔會話有即刻正負反轉的影響,所以可能會有performance decay,但理應有限。所以有時d funds唔想俾錢買 alternative data 去預測 short term price movement,好多時都要搵d free data proxy。同樣道理,例如如果難/搵唔到某d 數據去model 個內地資金流黎預測恆指走勢,咁不仿試下用FTSE A50 期貨去代替。


我們這裡用到Alpha1的方法,0-10 percentiles測試結果以下:

Asset trading: 恒指期貨 (Year 2007-2024) (Transaction Cost: 2bps) (Long) 

Performance Statistics:



Cheers, 

阿程


( 2024年8月 - 第3篇 (公開量化策略系列 10)

(部分上圖來源自Bloomberg)


【Sharpe 1.35】- 用 FTSE中國A50期指 預測 恆期 走勢 【Sharpe 1.35】- 用 FTSE中國A50期指 預測 恆期 走勢 【Sharpe 1.35】- 用 FTSE中國A50期指 預測 恆期 走勢

Comments

分開run較好,分開run先分析到唔同時段的影響,集合較難睇到個trend

SY

想問下依類model做優化嘅時間應該: 1. 先睇1.Long 2.Short term rolling windows optimised value sharp/ Calmar既combination睇3.percentile range 2. 定係直接將3個parameters 一齊run optimisation 會好啲? 主要concern 係用2既時候會太多組合去analysis/ back test ,而用1.又怕可能會類似impossible parity 情況 而omitted 第三個parameters優化嘅組合

Samuel

Depends on the nature of the time series we analyze. For example, percentile does not require assumption of normal distribution but Z-score does. So to play safe, percentile will be a better choice as we can't assume our predicting factors follow normal distribution.

SY

Hi, want to know when to use percentile over Z-score or vice versa? How do you handle outliers for 0 percentile scenarios? Thanks

Flexy


Related Creators