2017年2月16日 星期四

資產配置研究-Generalized Momentum and Flexible Asset Allocation (FAA)

本文為筆者紀錄研究資產配置系列論文所做之筆記,提供各位讀者作為參考,也能互相交流關於多元資產配置上的量化策略。

Generalized Momentum and Flexible Asset Allocation (FAA)
Wouter J. Keller and Hugo S.van Putten (FlexCapital) 
December 24, 2012, draft v0.98
  • 摘要
    FAA模型是作者Keller一系列關於資產配置交易策略的第一篇研究,作為日後作者開發多者配置模型的基礎,FAA模型的基本核心理論就是以市場中常見的動能現象與趨勢交易。在原有相對動能策略下,增加其餘三個因子,絕對動能因子、波動性因子與相關性因子進入模型,以簡單線性關係式,計算出每月每種資產的綜合參數後,決定當月進場交易的資產與權重。
    本篇研究作者以七種資產來進行回測,回測期間自1998-2012年,並分成兩種樣本期間,以避免產生資料窺探偏誤。
  • 理論基礎
    1. 動能現象:
    即過去一段期間股價相對強勢或弱勢的資產,在未來期間會有續漲、續跌的現象發生,通常觀察期的期間是6個月或12個月。
    在強勢資產上,我們考慮買進,反之,弱勢資產則放空,此處可參考Faber (2007 and 2010)、Antonacci (2012)的研究。

    2.移動平均異常(moving averages anomaly):
    此處是指目前價格在過去一段觀察期的移動平均成本價格之上的資產,是相對可買進的。反之,目前價格在過去一段觀察期的移動平均成本價格之下的資產,是不建議買進的。此處觀察期通常是10個月或200個交易日。

    上述兩個現象即是Faber的TAA模型基礎,其優勢在於簡易性,直接使用月報酬價格既可計算,持有期僅一個月,每月更換投組。

    Keller 的FAA模型,則是以第一項動能現象為基礎,在線性模型中加入其餘三個因子來計算各項參數得分,每次則選擇得分前三低者均權持有。

    1.相對報酬R:
    以各項資產過去觀察期的累計報酬率,高到低排序
    2.絕對報酬A:
    若資產報酬小於0或小於無風險利率,則不納入投組之中
    3.波動性V:
    以各項資產過去觀察期的波動率,低到高排序
    4.相關性C:
    以各項資產過去觀察期的月報酬率,低到高排序


    接著,利用一個簡單線性模型,給予三項因子(R,A,C)加權分數

    加權分數 = 1*R+0.5*A+0.5*C

    此處直接給定1和0.5的權重,是為了避免參數過多而導致量化策略常發生的最佳化偏誤,所謂最佳化偏誤,就是在交易策略中若含有過多的參數,我們常常會為了找出回測歷史上最佳績效的參數組合,而過度調整參數權重,而往往在未來並不會有更好報酬,因為過去歷史最佳參數,不代表未來最佳參數。
  • 數據樣本
    1.資產種類:
    七個樣本資產來自於美股ETF,有三種股票型ETF (VTSMX, FDIVX, VEIEX)、兩種美債ETF(VFISX, VBMFX)和商品型與不動產型ETF(QRAAX, VGSIX),此處QRAAX已清算,歷史數據在yahoo finance上已無法下載。故也可以下七種ETF來回測近期績效(eg. VTI, VEA, VWO, SHY, BND, GSG, and VNQ)
    2.期間
    1997-2012 (分兩期間1997-2005、2005-2012)
    3.採用日收盤價與美元計價
  • 實際回測(以2005-2012期間比較)
    1.作者結果
    年化報酬率:14.7%
    年化波動率:9.2%
    報酬/風險比:1.6
    最大回檔率: 7.4%


    2.筆者驗證
    年化報酬率:10.1%
    年化波動率:9.7%
    報酬/風險比:1.03
    最大回檔率: 10.37%

    3.筆者驗證(1998/6-2016/6)
    年化報酬率:7.9%
    年化波動率:8.9%
    報酬/風險比:0.88
    最大回檔率: 16.68%
  • 結論
    筆者以R進行回測,在2005-2012期間走勢類似,但在近期效果漸差,回撤率擴大,風險比也不如以往,推測原因可能是來自於本技術做為Keller技術之基礎,在2012年公開,已廣為資產配置型投資人所知,策略效果漸失效。

    正所謂「沒有永遠有效的策略,只有不斷改進、修正的策略。」
    Keller後續推出的系列論文,便是在FAA的基礎上不斷改進,後續筆者陸續回測後,將持續將筆記紀錄於此。
  • 參考來源
    1.FAA
    Systematic investor's Blog
    QuantStrat TradeR
    2.TAA
    Meb Faber Reserach



2017年2月2日 星期四

R學習筆記 - package安裝出現錯誤,無法正常載入


  • 問題描述:
    有時候我們使用R package的時候,常用的package會突然出現問題,譬如說會發現常用的package突然找不到,重新安裝之後。即便已出現安裝成功的訊息,卻無法再Rstudio的右方列找到,此時require package 可能會發現出現以下錯誤訊息
    > install.packages("zoo")
     Installing package(s) into ‘C:/Users/U122337.BOSTONADVISORS/Documents/R/win-library/2.15(as ‘lib’ is unspecified)
     --- Please select a CRAN mirror for use in this session ---
     trying URL 'http://cran.cnr.Berkeley.edu/bin/windows/contrib/2.15/zoo_1.7-10.zip'
     Content type 'application/zip' length 874474 bytes (853 Kb)
     opened URL
     downloaded 853 Kb
    
     package ‘zoo’ successfully unpacked and MD5 sums checked
     Warning: cannot remove prior installation of package ‘zoo’
    
    The downloaded binary packages are in
        C:\Users\U122337.BOSTONADVISORS\AppData\Local\Temp\Rtmp404t8Y\downloaded_packages
  • 解決方案:
    1.先使用 .libPaths() 找出你安裝R package的路徑,會出現兩個路徑,確認第一個路徑中是否有你無法使用的package,將之刪除。
    2.刪除時,記得將所有R關閉。
    3.此時再重啟R,重新安裝便可解決上述問題,正常載入R package
  • 參考連結:

    R not finding package even after package installation