天天看點

程式員福音?用Python資料分析教你做投資,巴菲特不會的你會

  Pyhton可以用來做金融量化投資分析。

  探讨問題與分析思路

  本文以Python為量化工具,主要探讨以下三個問題:

  (1)指數定投的優勢與劣勢在哪?

  (2)指數定投受哪些因素影響,是不是時間越長越好?

  (3)指數定投政策如何優化?

  程式設計軟體:基于Python3.7的Jupyter Notebook,使用到的庫包括numpy、pandas、matplotlib、pyecharts和tushare等。

  資料來源:使用tushare pro開源包擷取上證指數、深證指數、滬深300、上證50、中小闆和創業闆1991-2021年資料,其中中小闆和創業闆是2011年-2021年資料。

  01國内指數價格走勢

  首先,對A股幾個常用的指數曆史走勢進行可視化分析,直覺反映不同期間股價漲跌情況,其次,計算各期間股指的累計收益率,為後面的指數定投對比分析做鋪墊。

  各指數自上市交易以來累計收益率情況:區間拉長,各有千秋。

  牛市區間累計收益率情況:'2013-01-01':'2021-06-12':牛市來了,創業闆身闆輕,飛得更高(摔下來也疼)。

  倒V形區間收益率情況:'2011-01-01':'2021-12-24':辛辛苦苦八九年,最後回到解放前。

  2021年以來累計收益率:'2021-01-01':'2021-12-24'。怎一個“慘”字了得,中小闆跌到媽都不認得。

  各指數自上市以來累計收益率和年化平均收益率:上證綜指自1990年12月以來累計收益率達到322.98%,但是幾何年平均收益率也隻有5.29%,低于中證500、滬深300和中小闆指。

  02指數定投政策

  指數定投政策:即每月于固定日期使用固定金額投資指數基金。如将每月月初發的工資3000元用于投資指數基金。

  下面運用Python定義指數定投的回測函數,假定無風險理财産品收益率為4%(假設而已),每月月初(或者月末)定投3000元購買指數基金,計算各期間累計收益率和累計定投資金。先來看第一個問題,指數定投在什麼情況下優于一次性投資以及無風險理财(銀行定期存款)呢?

  微笑曲線(V或W形态):不難了解,指數定投的優勢在于規避擇時,不怕踩坑,通過長期定額投資分攤成本,當股指呈微笑形走勢的時候,一定是優于一次性投資的,但是否能獲得較高回報,還得看右側回升的幅度大小。如選取區間2007年10月17日至2021年6月12日,該期間是股指自1990年以來的曆史高點6124點開始下跌,然後反彈至5178點,即假設你運氣碰巧那麼差,在最高點當接盤俠,然後每個月繼續傻乎乎的補倉,然後終于運氣來了,在2021年高點全部清倉。如下圖所示,如果你在高點一次性買入然後長期持有,期間累計收益率是-16.48%,而定投的累計收益率卻高達101.03%(每月月初投入),無風險理财的期間累計收益率也隻有16.28%。

  小微曲線:上圖選擇的“微笑曲線”很優美,剛好是股指兩頭高(右側高才是關鍵),中間低,是以通過每月定投不斷分攤長期成本,獲得超額收益率。那如果右側不是很高呢?再來看另一個區間,2007年10月17日(6124高點)至2009年07月20日(3333低點),如下圖所示,區間累計收益率為-62.31%(佛性),理财累計收益率3.62%,每月月初定投的累計收益率仍然有15.64%(每月月底定投是17.96%,其實統計分析二者并無顯著差異)。可見,一次性買入長期持有政策對擇時的要求非常高,一旦踩了坑(高點接盤),将很難翻身,而長期定投政策則規避了擇時的困擾,在股指短期波動向下,中長期向上反彈的走勢中優勢凸顯。

  難過曲線(倒V或M形态):有微笑曲線,當然也有難過曲線。正所謂,有陰必有陽,有漲必有跌,有得必有失。什麼情況下定投指數政策處于劣勢呢?将回測區間拉長,考察指數從低點-高點-低點、經曆兩次大的牛熊轉換時,指數定投政策的累計收益率情況。如下圖所示,選取區間2006年10月01日(2000多點)至2021年12月24日(2000多點),相當于經過了12年多,股指差不多又回到起點。一次性買入期間累計收益率為36.6%,理财定投累計收益率為27.63%,但是指數定投累計收益率卻為-7.39%(-7.46%),可見,指數定投并非時間越長越好,也并非一直比一次性買入持有政策好。

  單邊牛市:即起點為最低點,終點為最高點。選取區間2014年07月1日至2021年06月12日進行回測。如下圖所示,一次性投入并持有的政策明顯優于定投政策。

二手買賣平台

通過上述分析,不難發現,一次性買入并持有政策對擇時要求非常高,即同時在買點和賣點精準把握才能擷取超額收益率,而定投指數政策對買點并無要求,但要求賣點出現在右側才能擷取超額收益。換句話說,指數定投并非毫無目的的一直做長期定額投資,而是要結合一些擇時名額判斷拐點進行“止盈”,才能擷取較高的累計收益率。

  03其他指數情況

  股票指數是反映股票市場總的價格水準變化的名額。一般是選取有代表性的一組股票,采取價格權重平均計算得到。各種指數具體的股票選取和計算方法是不同的,隻看單一股票指數可能難以反映總體情況。下面對照分析上證指數、深證指數、滬深300、上證50、中小闆和創業闆指數,由于創業闆是2010年才推出,是以下面的分析主要考察2011年-2021年區間。

  單邊牛市:考察期間2014年07月01日至2021年06月12日,創業闆定投累計收益率最高,達到124.3%,并且定投累計收益率居然高于一次性投入的累計收益率;而上證50定投累計收益率最低,隻有63.22%。

  倒V形(右側高于左側):考察區間2011年08月01日至2021年12月24日,創業闆累計收益率仍然是最高的,除了創業闆外,指數定投政策的收益率均高于一次性投入持有政策。

  難過曲線:考察期間2011年08月01日至2021年12月24日,該區間内,上證綜指、深證成指、中證500和中小闆指累計收益率均出現了負數,但定投政策虧損較少,其他幾個指數仍有正的收益率,除創業闆外,指數定投政策仍然優于一次性投入持有政策。

  單邊下行:考察期間2021年06月12日至2021年12月24日,毫無疑問,單邊下行的時候,定投不斷分攤了長期成本,累計虧損率要低于一次性投入。此外,單邊下行的時候,期間内創業闆累計跌幅是最大的,正所謂風水輪流轉,山水有相逢。

  2021年情況:2021年國内外形勢雲詭波谲,内外夾擊,經濟持續下行,股票市場首當其沖,各大指數均出現了大幅下跌,股民怨聲載道。年初至今,中小闆累計虧損高達45.12%(定投:-24.66%)。可見,起風的時候,身子輕的豬可以飛得更高,但摔下來的時候也更慘!

  通過上述分析,不難看出指數定投的優勢與劣勢,以及什麼條件下可以獲得較好的累計收益率。但是資料僅供參考、分析,并不能成為投資的唯一依據。是以,規避風險,謹慎投資...

  小編這裡有整理一些關于Python的學習資料,從基礎到入門到項目實戰都有。需要的可以關注并私信“01”免費領取