前幾個單元,我們學會了如何在Python裡做定期定額,以及加入停利策略的定期定額投資法。這個單元,我們要來看看如何在定期定額裡面加入逢低加碼的策略,這個策略能否優化定期定額的績效呢?
什麼是加入逢低加碼策略的定期定額投資法?
簡單來說,就是當標的價格大跌時,我們增加投資部位,買入更多單位,以打造底部肥大的正金字塔結構,有效讓單位平均成本大幅度下滑。
來到量化的世界裡,該怎麼定義”大跌”就是一門學問。在這邊,我們分要分別透過”時間“與”空間“對所謂的大跌進行定義。舉例來說,在過去三個月中,標的下跌了10%,我們就稱之為大跌。當然,這邊的”三個月”以及下跌”10%”我們都可以設定為參數,大家可以自行對所謂的大跌門檻自行定義。
另外,在加碼的部分,我們也可以自行設定。比方說,當標的下跌達到了我們的門檻,我們就加碼2倍投資。這邊的加碼2倍也是大家可以自行選擇的,也可以選擇1.5倍或3倍之類的。或是用固定金額來做加碼,比方說多投資3000元,都是可以的。
如何在Python裡計算逢低加碼的定期定額策略績效?
了解加入逢低加碼策略的定期定額投資法後,我們來看到在Python裡要如何執行。
第一步,當然是參數設定。透過參數設定,可以讓我們有效率的回測各式各樣的情境。PMT=3000 (每月投入金額)
(加碼倍數)
M=3 (下跌月份)
BH=-0.1 (下跌幅度)
N=2
後面的部分,整體的寫法基本上跟一般的定期定額投資法很像,但是我們在報酬的部分加入了if條件式。這邊指的是當我們行情觸碰到我們的下跌門檻時,我們便需要加碼投資。加碼投資後,我們就會買到更多的單位數,當然,成本也會同時增加。後面報酬率的算法又都一樣了。
詳細說明,歡迎參考影片。程式檔案的部分,歡迎下載Github。
逢低加碼的定期定額策略vs.傳統定期定額
一般來說,以報酬率來說,逢低加碼的定期定額績效一定會優於傳統的定期定額績效,因為透過讓底端肥大的正金字塔結構,可以有效降低單位平均價格。然而,以絕對金額來看,若是標的沒有反轉向上的話,在大部位的情況下有可能會賠得更多,但只要標的有反轉反敗為勝的機率會更高。另一方面,在實務上,採用這個策略手頭一定要有足夠的閒置資金,才能夠在標的下跌時有銀彈可供加碼。也就是說,相較於傳統符合我們大多數人月薪現金流量的定期定額策略來說,這個策略需要有一些”積蓄”才能夠徹底實行。