揭秘」智能定投「

更多精彩內容,歡迎關注公眾號:數量技術宅,也可添加技術宅個人微信號: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、股票指數還是黃金,只要該標的是長期上漲的,定投足夠長的時間,都能產生不錯的盈利。而智能定投因其低位多買、高位少買的邏輯,使得其相比較普通定投,能夠產生更多的盈利。

 

 


往期乾貨分享推薦閱讀

數字貨幣中短線策略(數據+回測+實盤)

數字貨幣穩定幣對網格做市策略

數字貨幣資金費策略

分享一個年化15%以上的無風險套利機會

網格交易系統開發

通過深度學習股價截面數據分析和預測股票價格

Omega System Trading and Development Club內部分享策略Easylanguage源碼

一個真實數據集的完整機器學習解決方案(下)

一個真實數據集的完整機器學習解決方案(上)

如何使用交易開拓者(TB)開發數字貨幣策略

股指期貨高頻數據機器學習預測

如何使用TradingView(TV)回測數字貨幣交易策略

如何投資股票型基金?什麼時間買?買什麼?

【數量技術宅|量化投資策略系列分享】基於指數移動平均的股指期貨交易策略

AMA指標原作者Perry Kaufman 100+套交易策略源碼分享

【 數量技術宅 | 期權系列分享】期權策略的「獨孤九劍」

【數量技術宅|金融數據系列分享】套利策略的價差序列計算,恐怕沒有你想的那麼簡單

【數量技術宅|量化投資策略系列分享】成熟交易者期貨持倉跟隨策略

如何獲取免費的數字貨幣歷史數據

【數量技術宅|量化投資策略系列分享】多周期共振交易策略

【數量技術宅|金融數據分析系列分享】為什麼中證500(IC)是最適合長期做多的指數

商品現貨數據不好拿?商品季節性難跟蹤?一鍵解決沒煩惱的Python爬蟲分享

【數量技術宅|金融數據分析系列分享】如何正確抄底商品期貨、大宗商品

【數量技術宅|量化投資策略系列分享】股指期貨IF分鐘波動率統計策略

【數量技術宅 | Python爬蟲系列分享】實時監控股市重大公告的Python爬蟲