揭秘」智慧定投「
更多精彩內容,歡迎關注公眾號:數量技術宅,也可添加技術宅個人微訊號:sljsz01,與我交流。
什麼是智慧定投
大家如果打開某某寶的基金理財介面,選擇某一個基金標的的定投,往往會在選擇定投方式時出現兩個選項,一是普通定投、二是智慧定投。而且往往智慧定投的收益率會高於普通定投,那麼,究竟什麼是智慧定投,它是怎麼個智慧法,使得收益率高於普通定投?我們將通過這篇文章來揭開智慧定投的面紗。
在介紹智慧定投前,我們先簡要回顧普通定投,普通定投,用一句話解釋,即以固定金額、固定間隔時間,定期、定額投資於基金或其他想要投資標的。普通定投有如下幾個優點:一是定期投資,積少成多,二是不需要進行擇時,避免了低買高賣,三是平均投資,分散風險,四是複利效果,長期可觀。
而智慧定投,其實是普通定投的一種改進方式,其核心邏輯是在定投標的的價格低位、價值低估區域儘可能多投資,而在定投標的價格高位、價值高估區域少投資或不投資,從而使得其平均成本低於普通定投、收益率高於普通定投。
於是,智慧定投的關鍵點聚焦在了如何判斷價格的高低位,對於這個問題,某寶也給出了它自己的判斷方式,其設置了一個參考指數的多日均線,當價格低於均線,且距離位置越遠,定投金額越大,即低位多買。
反過來,當價格高於均線,且距離位置越遠,定投金額越小,即高位少買。這樣的低位多買、高位少買邏輯,使得智慧定投的收益率,比普通定投高了約3%以上的年化收益率。
Python實現智慧定投策略
我們參考某寶的智慧定投邏輯,並加以改進,同樣實現的是低位多買、高位少買的大邏輯。並根據投資標的的歷史波動,將標的劃分為4個區域,分別是:價格低位區域、價格中等偏低區域、價格中等偏高區域、價格高位區域,並依次減小這4個區域的定投金額,即價格低位區域定投金額最大,價格高位區域定投金額最小。
數據準備
為實現這樣的定投策略,我們首先需要準備好定投標的的歷史數據,以BTC為例,我們準備好了BTC從2017年到最新的日K數據。
這裡需要說明的是,我們的定投程式支援所有金融標的的歷史回溯測試,只需要將數據格式準備的與上述BTC數據樣例的欄位一樣,即可運行程式得到相應的測試結果。
邏輯實現
讀入數據後,我們逐日依次判斷,當前日期的最新價格,位於價格低位區域、價格中等偏低區域、價格中等偏高區域、價格高位區域的哪個位置,並且根據價格所在的區域位置,設定投資金額的大小。
首先通過兩個參數adj_1、adj_2,調整定投金額的比例,參數可以按需修改。
adj_1 = 0.4
adj_2 = 0.8
然後,通過確定價格定投區域的哪個位置,確定定投金額的大小。如果價格位於價格低位區域,則定投金額為正常金額的(1+adj_2)倍,如果價格位於價格中等偏低區域,則定投金額為正常金額的(1+adj_1)倍,其他依次類推。
condition1 = XXX df.loc[condition1, 'invest_val'] = base_invest_fun * (1 - adj_1) condition2 = XXX df.loc[condition2, 'invest_val'] = base_invest_fun * (1 - adj_2) condition3 = XXX df.loc[condition3, 'invest_val'] = base_invest_fun * (1 + adj_1) condition4 = XXX df.loc[condition4, 'invest_val'] = base_invest_fun * (1 + adj_2)
fig, ax1 = plt.subplots() ax1.plot(df['date'], df['net_value'], 'r-', label='Market Value') ax1.plot(df['date'], df['total_invest_val'], 'y-', label='My Total Cost') ax1.set_xlabel("year") ax1.set_title("BTC 定投") plt.legend(loc='best') plt.show()
完整程式碼
整個智慧定投Python實現的完整程式碼,包括文章中用到的配套歷史數據,我們將獨家發布在知識星球。
典型標的智慧定投效果
在完成了智慧定投的邏輯構建,以及相應Python程式碼的實現後,我們挑選了一些典型標的,包括BTC、滬深300指數、標準普爾500指數、黃金,來進行測試。
這些標的可以說是典型的定投代表,因為很多投資者會選擇上述4個標的的其中之一,進行某個市場的定投。一起來看這些標的的測試結果。
BTC
滬深300指數
標準普爾500指數
黃金
上述結果My Total Cost標籤表示定投成本,Market Value標籤表示最新持有的市場價值,兩條線的差值就是盈利部分。從定投結果的穩定性來看,標準普爾500指數無疑是最好的,說明智慧定投策略最適合長期溫和上漲、偶爾暴跌的標的。
但是不論是BTC、股票指數還是黃金,只要該標的是長期上漲的,定投足夠長的時間,都能產生不錯的盈利。而智慧定投因其低位多買、高位少買的邏輯,使得其相比較普通定投,能夠產生更多的盈利。
往期乾貨分享推薦閱讀
Omega System Trading and Development Club內部分享策略Easylanguage源碼
【數量技術宅|量化投資策略系列分享】基於指數移動平均的股指期貨交易策略
AMA指標原作者Perry Kaufman 100+套交易策略源碼分享
【數量技術宅|金融數據系列分享】套利策略的價差序列計算,恐怕沒有你想的那麼簡單
【數量技術宅|量化投資策略系列分享】成熟交易者期貨持倉跟隨策略
【數量技術宅|金融數據分析系列分享】為什麼中證500(IC)是最適合長期做多的指數
商品現貨數據不好拿?商品季節性難跟蹤?一鍵解決沒煩惱的Python爬蟲分享
【數量技術宅|金融數據分析系列分享】如何正確抄底商品期貨、大宗商品
【數量技術宅|量化投資策略系列分享】股指期貨IF分鐘波動率統計策略
【數量技術宅 | Python爬蟲系列分享】實時監控股市重大公告的Python爬蟲