這是機(jī)器未來的第60篇文章
原文首發(fā)地址:https://robotsfutures.blog.csdn.net/article/details/127712752
《Python數(shù)據(jù)科學(xué)快速入門系列》快速導(dǎo)航:
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 01】Numpy初窺——基礎(chǔ)概念
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 02】創(chuàng)建ndarray對(duì)象的十多種方法
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 03】玩轉(zhuǎn)數(shù)據(jù)摘?。篘umpy的索引與切片
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 04】Numpy四則運(yùn)算、矩陣運(yùn)算和廣播機(jī)制的愛恨情仇
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 05】常用科學(xué)計(jì)算函數(shù)
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 06】Matplotlib數(shù)據(jù)可視化基礎(chǔ)入門(一)
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 07】Matplotlib數(shù)據(jù)可視化基礎(chǔ)入門(二)
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 08】Matplotlib類別比較圖表應(yīng)用總結(jié)
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 09】Matplotlib數(shù)據(jù)關(guān)系圖表應(yīng)用總結(jié)
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 10】Matplotlib數(shù)據(jù)分布圖表應(yīng)用總結(jié)
- 【Python數(shù)據(jù)科學(xué)快速入門系列 | 11】應(yīng)用實(shí)戰(zhàn):我的第一個(gè)開源項(xiàng)目-基金定投回測(cè)工具
寫在開始:
- 博客簡介:專注AIoT領(lǐng)域,追逐未來時(shí)代的脈搏,記錄路途中的技術(shù)成長!
- 博主社區(qū):AIoT機(jī)器智能, 歡迎加入!
- 專欄簡介:從0到1掌握數(shù)據(jù)科學(xué)常用庫Numpy、Matploblib、Pandas。
- 面向人群:AI初級(jí)學(xué)習(xí)者
1. 項(xiàng)目概述
項(xiàng)目是博主想實(shí)現(xiàn)躺贏的基金組合投資工具。
博主的基金投資理念是長期定投,買大盤指數(shù),分散投資,優(yōu)先保住本金。
1.1 分散投資
-
分散到不同的品類:例如滬深300、中證500、創(chuàng)業(yè)板;
- 像滬深300是滬深股市表現(xiàn)最好的300家企業(yè),代表了中國經(jīng)濟(jì),穩(wěn)定,但是收益可能相對(duì)低一些,可以多配置一些;
- 中證500是中國證券市場(chǎng)表現(xiàn)最好的500家企業(yè),范圍更廣一些;
- 創(chuàng)業(yè)板是中國股市創(chuàng)業(yè)型企業(yè),沖勁大,代表中國經(jīng)濟(jì)未來的新勢(shì)力,風(fēng)險(xiǎn)高,收益也高,可以少配置一些
- 黃金指數(shù)是跟蹤實(shí)物黃金價(jià)格的基金,俗話說:亂世買黃金,盛世買股票,股市表現(xiàn)不好的時(shí)候,黃金可能表現(xiàn)好
- 債權(quán)指數(shù)是跟蹤國債的基金,是組合基金的不動(dòng)基石,在其他價(jià)值標(biāo)的表現(xiàn)不好的時(shí)候,也不至于整體表現(xiàn)太差;
-
分散到不同的國家:中國、美國(標(biāo)普500、納斯達(dá)克100)等
- 標(biāo)普500,美國市場(chǎng)表現(xiàn)最好的500家企業(yè)
- 納斯達(dá)克100,科技企業(yè)大多在納斯達(dá)克上市,價(jià)值你知道的
-
目前博主的基金組合配比大致為
- 滬深300 25%
- 中證500 15%
- 創(chuàng)業(yè)板 10%
- 黃金 10%
- 債權(quán) 20%
- 標(biāo)普500 15%
- 納斯達(dá)克100 5%
博主沒有測(cè)試更多份額比例,可以自行測(cè)試。
1.2 定期再平衡
基金組合創(chuàng)建時(shí)不同的基金會(huì)有不同的份額,再運(yùn)行一段時(shí)間后,份額會(huì)發(fā)生變化,有點(diǎn)基金可能漲了很多,有點(diǎn)基金可能會(huì)跌了一些,有的人買基金不掙錢的原因是什么,不會(huì)賣,漲的錢又流出去了。
股市是有周期的,漲漲跌跌,潮起潮落,通過定期再平衡,將運(yùn)行一段時(shí)間的基金份額重新配置為初始份額比例,變相的實(shí)現(xiàn)了高賣低買的目的,實(shí)現(xiàn)了削尖平谷的目的,掙取更多超額收益。
再平衡周期建議1年操作一次,這樣可以減少費(fèi)用。
2. 使用指南
2.1 啟動(dòng)運(yùn)行
2.1.1 方式一
直接打開CSDN 云IDE自動(dòng)運(yùn)行:https://idegitcode.net/RobotFutures/1024
2.1.2 方式二
- 從gitcode下載源碼
git clone https://gitcode.net/RobotFutures/1024.git
- 啟動(dòng)運(yùn)行
./env.sh&&pip install -r requirements.txt&&python fund_portfolio_backtesting_tool.py
2.2 目錄結(jié)構(gòu)
├── CHANGELOG.MD # 修訂記錄
├── README.md # 使用文檔
├── fund_fee_list.csv # 爬取的公募基金交易費(fèi)用
├── fund_portfolio_backtesting_tool.py # 基金組合回測(cè)工具程序
├── log.txt # 日志輸出
├── package.json
├── preview.yml # 自動(dòng)啟動(dòng)運(yùn)行腳本配置
├── requirements.txt # 項(xiàng)目所需庫
├── src
├── 公募基金概要數(shù)據(jù).csv # 下載的公募基金概要數(shù)據(jù),包含交易費(fèi)用
├── 回測(cè)結(jié)果 # 回測(cè)計(jì)算結(jié)果
└── 2022-11-06_01-23-39 # 回測(cè)時(shí)間
├── fund_portfolio_result.csv # 基金組合清單及份額占比
├── fund_portfolio_trend.png # 基金組合與滬深300對(duì)比
├── 滬深300基金參考.csv # 滬深300參考基金歷史數(shù)據(jù)
└── 自選組合基金回測(cè)數(shù)據(jù).csv # 基金組合回測(cè)歷史數(shù)據(jù)
├── 數(shù)據(jù)可靠性驗(yàn)證 # 使用EXCEL驗(yàn)證組合基金復(fù)權(quán)凈值的數(shù)據(jù)可靠性
├── 數(shù)據(jù)可靠性驗(yàn)證.xlsx # 數(shù)據(jù)可靠性數(shù)據(jù)驗(yàn)證文檔,使用EXCEL函數(shù)來實(shí)現(xiàn)
├── fund_portfolio_result.csv # 基金組合份額數(shù)據(jù)
└── 自選組合基金回測(cè)數(shù)據(jù).csv # 基金組合回測(cè)歷史數(shù)據(jù)
├── 基金關(guān)鍵字篩選結(jié)果 # 大盤基金關(guān)鍵字及策略篩選結(jié)果
├── 基金組合篩選結(jié)果列表 # 篩選結(jié)果基金性能指標(biāo)
├── fund_portfolio_result.csv # 基金組合清單及份額占比
├── fund_portfolio_trend.png # 基金組合與滬深300對(duì)比
├── 滬深300基金參考.csv # 滬深300參考基金歷史數(shù)據(jù)
└── 自選組合基金回測(cè)數(shù)據(jù).csv # 基金組合回測(cè)歷史數(shù)據(jù)
├── 累計(jì)凈值趨勢(shì) # 下載的公募基金累計(jì)凈值歷史數(shù)據(jù)
└── 累計(jì)回報(bào)趨勢(shì) # 下載的公募基金累計(jì)回報(bào)歷史數(shù)據(jù)
2.3 回測(cè)結(jié)果展示
-
回測(cè)結(jié)果可視化展示
-
自選組合基金
Unnamed: 0,code,years,withdrawal,annual_return,total_return,sharp,calmar,volatility,name,type,scale,m_fee,c_fee,sale_fee,sub_fee,total_fee,share
16.0,002670,6.11,27.34,6.74,37.02,0.46,12.9743,19.4,萬家滬深300指數(shù)增強(qiáng)A,股票指數(shù),6.34,1.0,0.12,0.0,0.1,1.22,0.5
97.0,502000,7.55,29.38,9.81,57.14,0.62,18.3793,20.16,西部利得中證500指數(shù)增強(qiáng)A,股票指數(shù),5.08,1.0,0.2,0.0,0.1,1.3,0.15
3.0,001879,5.42,37.64,12.36,75.57,0.59,16.5217,26.3,長城創(chuàng)業(yè)板指數(shù)增強(qiáng)A,股票指數(shù),6.58,1.0,0.15,0.0,0.15,1.3,0.1
4.0,002610,6.43,20.27,7.04,38.89,0.65,15.5788,12.22,博時(shí)黃金ETF聯(lián)接A,聯(lián)接基金,8.27,0.5,0.1,0.0,0.06,0.66,0.1
134.0,002864,6.38,0.61,3.38,17.41,10.81,224.7164,0.32,廣發(fā)安澤短債債券A,債券型,28.99,0.3,0.1,0.0,0.04,0.4399999999999999,0.05
4.0,050025,10.39,31.17,11.3,67.75,0.65,17.4237,20.85,博時(shí)標(biāo)普500ETF聯(lián)接A,QDII-指數(shù),8.87,0.6,0.25,0.0,0.12,0.97,0.05
5.0,161130,5.37,28.32,13.13,81.43,0.66,23.5765,25.47,易方達(dá)納斯達(dá)克100人民幣,QDII-指數(shù),7.36,0.8,0.25,0.0,0.12,1.17,0.05
- 數(shù)據(jù)可靠性驗(yàn)證
使用EXCEL按照組合基金份額占比,計(jì)算基金組合組合復(fù)權(quán)凈值,測(cè)試結(jié)果如下(詳情見【數(shù)據(jù)可靠性驗(yàn)證】目錄):
EXCEL計(jì)算基金組合復(fù)權(quán)凈值
fund_portfolio_backtestng_tool回測(cè)工具計(jì)算基金組合復(fù)權(quán)凈值
可以看到兩者的數(shù)據(jù)是一致的,因此工具的數(shù)據(jù)可靠性是可以保證的。
3. 自建組合
找到代碼的這個(gè)位置
if __name__ == "__main__":
pd.set_option('display.max_rows', 1000)
pd.set_option('display.max_columns', 10)
# 獲得公募基金基礎(chǔ)數(shù)據(jù)(這里不用管,執(zhí)行即可)
df_base = get_fund_base_info()
# 大盤基金篩選(這里就是基金篩選策略)
# 篩選策略是關(guān)鍵字、最大歷史回測(cè),基金成立時(shí)間、基金最小規(guī)模、基金最大允許的交易費(fèi)率
# 可支持的關(guān)鍵字很多,從基金的分類通用關(guān)鍵字即可,例如半導(dǎo)體、新能源、量化等
df_kpi_csi300 = get_fund_rank(fund_list=df_base, keywords='滬深300', max_withdrawal=60.0, establish_year=5, start='2018-01-01', end='2022-10-31')
df_kpi_csi500 = get_fund_rank(df_base, '中證500', 50.0, 5, '2018-01-01', '2022-10-31')
df_kpi_gem = get_fund_rank(df_base, '創(chuàng)業(yè)板', 50.0, 5, '2018-01-01', '2022-10-31')
df_kpi_gold = get_fund_rank(df_base, '黃金', 50.0, 5, '2018-01-01', '2022-10-31')
df_kpi_bond = get_fund_rank(df_base, '債', 30.0, 5, '2018-01-01', '2022-10-31')
df_kpi_sp500 = get_fund_rank(df_base, '標(biāo)普500', 50.0, 5, '2018-01-01', '2022-10-31')
df_kpi_nasda = get_fund_rank(df_base, '納斯達(dá)克', 50.0, 5, '2018-01-01', '2022-10-31')
# 定投基金組合回測(cè)
fund_portfolio_backtesting(
# 這里填寫上面獲得基金分類數(shù)據(jù)集
fund_kinds_list = [df_kpi_csi300, df_kpi_csi500, df_kpi_gem, df_kpi_gold, df_kpi_bond, df_kpi_sp500, df_kpi_nasda],
# 這里配置對(duì)應(yīng)上面的基金份額
fund_share_cfg = [0.25, 0.15, 0.10, 0.10, 0.20, 0.15, 0.05],
# 這里填寫回測(cè)起始時(shí)間和結(jié)束時(shí)間,參考跟蹤基金
start_date = '2018-01-01', end_date = '2022-10-31', fund_id_ref = '160706'
)
4. 聯(lián)系我
關(guān)注作者更多消息,請(qǐng)訂閱博客https://blog.csdn.net/RobotFutures?spm=1010.2135.3001.5343, 基金組合價(jià)值定投技術(shù)交流請(qǐng)聯(lián)系博主(請(qǐng)備注:基金技術(shù)交流)
— 博主熱門專欄推薦 —文章來源:http://www.zghlxwxcb.cn/news/detail-781400.html
- Python零基礎(chǔ)快速入門系列
- 深入淺出i.MX8企業(yè)級(jí)開發(fā)實(shí)戰(zhàn)系列
- MQTT從入門到提高系列
- 物體檢測(cè)快速入門系列
- 自動(dòng)駕駛模擬器AirSim快速入門
- 安全利器SELinux入門系列
- Python數(shù)據(jù)科學(xué)快速入門系列
文章來源地址http://www.zghlxwxcb.cn/news/detail-781400.html
到了這里,關(guān)于【Python數(shù)據(jù)科學(xué) | 11】應(yīng)用實(shí)戰(zhàn):我的第一個(gè)開源項(xiàng)目-基金定投回測(cè)工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!