引言:
本系列帖子“量化小講堂”,通過(guò)實(shí)際案例教初學(xué)者使用python、pandas進(jìn)行金融數(shù)據(jù)處理,希望能對(duì)大家有幫助。
【必讀文章】:《10年400倍策略分享-附視頻逐行講解代碼》
【所有系列文章匯總】:http://xalimeijing.com/thread-3950124-1-1.html
【python量化課程】想要快速、系統(tǒng)的學(xué)習(xí)量化知識(shí),可以參與我與論壇合作開(kāi)設(shè)的課程:《python量化投資入門》,我會(huì)親自授課,隨問(wèn)隨答。參與課程還可以免費(fèi)加入我的小密圈,我每天會(huì)在圈中分享量化的所見(jiàn)所思,圈子介紹點(diǎn)擊此處。
微信:xbx_laoshi,量化交流Q群(快滿):438143420,有問(wèn)題歡迎交流。
文中用到的A股數(shù)據(jù)可在www.yucezhe.com下載,這里可以下載到所有股票、從上市日起的交易數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)、分鐘數(shù)據(jù)、分筆數(shù)據(jù)、逐筆數(shù)據(jù)等。
【量化小講堂-Python、Pandas系列13】數(shù)據(jù)告訴你:驚人的指數(shù)定投策略
巴菲特這一輩子曾經(jīng)無(wú)數(shù)次的說(shuō)過(guò):對(duì)于個(gè)人投資者,最好的投資方式就是指數(shù)基金定投。
所謂指數(shù)基金定投,就是不要管股市是漲是跌(因?yàn)闆](méi)有能力判斷,索性不判斷),每個(gè)月都定期的拿出一筆錢來(lái)買基金。并且買的是指數(shù)基金,指數(shù)基金就是完全復(fù)制某個(gè)指數(shù)收益的基金。例如滬深300指數(shù)基金的收益和每天滬深300指數(shù)的收益基本一樣。
巴菲特這么推薦指數(shù)基金主要是因?yàn)橛幸韵碌膬?yōu)點(diǎn):
- 沒(méi)有幾個(gè)基金經(jīng)理長(zhǎng)期來(lái)看業(yè)績(jī)可以超過(guò)指數(shù)本身。所以選基金經(jīng)理不如直接買指數(shù)。
- 省時(shí)省力,不用在上班的時(shí)候還盯著股票。年輕人花更多的時(shí)間努力工作,才是最有價(jià)值的投資。
- 相比其他主動(dòng)管理型的基金,指數(shù)基金管理費(fèi)用低廉,幾乎可以忽略不計(jì)吧。管理費(fèi)的高低對(duì)投資回報(bào)的影響要遠(yuǎn)大于我們的想象。
并且有人說(shuō),即使是在2007年10月份大盤在6000多點(diǎn)的時(shí)候開(kāi)始基金定投,到2009年7月份大盤跌到3000多點(diǎn)的時(shí)候,這個(gè)時(shí)候總體仍然是賺的。
第一次看到這個(gè)說(shuō)法的時(shí)候相當(dāng)震驚,因?yàn)檫@很違反直覺(jué):在最差的時(shí)間點(diǎn)入場(chǎng),大盤都已經(jīng)腰斬了,定投還能賺錢?
我們玩數(shù)據(jù)的人,這種時(shí)候就要找出原始數(shù)據(jù)看看是不是真的是這樣子。本篇文章的程序就是實(shí)現(xiàn)指數(shù)基金定投策略,并希望通過(guò)這個(gè)例子讓大家學(xué)到pandas如下用法:
- 讀取數(shù)據(jù)時(shí)指定索引的方法
- 數(shù)據(jù)集連接函數(shù)concat()函數(shù)的用法
- 時(shí)間序列重采樣resample()函數(shù)的用法
具體要實(shí)現(xiàn)的策略其實(shí)非常簡(jiǎn)單。就是在每個(gè)月的1號(hào),花1000元買入指數(shù)基金,算算最后的收益有多少。為了簡(jiǎn)單起見(jiàn),我們這里就直接用指數(shù)的收益代替指數(shù)基金。
為了對(duì)比定投指數(shù)基金的效果,也計(jì)算每月定投1000元買入無(wú)風(fēng)險(xiǎn)理財(cái)產(chǎn)品(如余額寶等)后的收益,比比最終誰(shuí)的收益高。這里假定理財(cái)產(chǎn)品每年的無(wú)風(fēng)險(xiǎn)年化收益率是4%。下面就來(lái)看看具體的程序吧!
(【python量化課程】想要快速、系統(tǒng)的學(xué)習(xí)量化知識(shí),可以參與我與論壇合作開(kāi)設(shè)的課程:《python量化投資入門》,我會(huì)親自授課,隨問(wèn)隨答。參與課程還可以免費(fèi)加入我的小密圈,我每天會(huì)在圈中分享量化的所見(jiàn)所思,圈子介紹點(diǎn)擊此處。)
===程序===
要模擬基金定投,需要各個(gè)主要指數(shù)的數(shù)據(jù),在www.yucezhe.com可以下載到所有指數(shù)歷史至今的數(shù)據(jù)。如下圖所示,每一行是每一天的數(shù)據(jù):
這個(gè)日線數(shù)據(jù)有以下的字段:
【index_code】指數(shù)的代碼
【date】 交易日期
【open】 開(kāi)盤價(jià)
【high】 最高價(jià)
【low】 最低價(jià)
【close】 收盤價(jià)
【volume】 成交量
【money】 成交額
【change】 漲跌幅
下面是代碼的截圖,代碼里面有詳細(xì)的注釋,有問(wèn)題可以留言,附件中有程序的源碼,回復(fù)即可下載。
在程序中選擇好具體的指數(shù),設(shè)定好定投開(kāi)始、結(jié)束的時(shí)間,運(yùn)行程序就能看到結(jié)果了。我先選擇上證指數(shù),定投的時(shí)間段是2007年10月1日到2009年7月30日,這段時(shí)間大盤從6000點(diǎn)跌倒了3000點(diǎn),下面是結(jié)果圖:
圖中的綠色曲線是定投理財(cái)產(chǎn)品的資金曲線,藍(lán)色曲線是定投指數(shù)基金的資金曲線,這兩根曲線對(duì)應(yīng)左邊的坐標(biāo)軸。圖中的紅色曲線是同期上證指數(shù)的曲線,對(duì)應(yīng)右邊的坐標(biāo)軸。
從數(shù)據(jù)可以看到,在這個(gè)時(shí)間段內(nèi),總共投資了22000元(共22個(gè)月,每個(gè)月定投1000元),若把這些錢買理財(cái)產(chǎn)品最終的收益是22828.89,若是定投指數(shù)基金最終的收益是26606.08元,高出了16.54%,而且這是在同期大盤虧了50%的情況下!
我再把時(shí)間段拉長(zhǎng),從1996年4月開(kāi)始到2016年4月結(jié)束。從下圖的數(shù)據(jù)中可以看到在最近20年內(nèi),總共投資了241000元,定期買理財(cái)?shù)氖找孀罱K是362296.40,若是定投指數(shù)基金最終收益是404451.79。在15年牛市最高點(diǎn)的時(shí)候,最多到了接近70萬(wàn)。
再把上證指數(shù)改成創(chuàng)業(yè)板指數(shù),時(shí)間段是2010年6月到2016年4月。數(shù)據(jù)如下圖,收益還是很不錯(cuò)的。看了這個(gè)數(shù)據(jù),都有點(diǎn)定投創(chuàng)業(yè)板指數(shù)基金的沖動(dòng)了。
===思考題===
仔細(xì)看上面的幾副圖,似乎隱藏著一個(gè)很好的擇時(shí)策略在里面,給了我很大的啟發(fā),我準(zhǔn)備去研究下。不知道有沒(méi)有人有同感?很多策略都是在這么無(wú)意中被發(fā)現(xiàn)的。
(【python量化課程】想要快速、系統(tǒng)的學(xué)習(xí)量化知識(shí),可以參與我與論壇合作開(kāi)設(shè)的課程:《python量化投資入門》,我會(huì)親自授課,隨問(wèn)隨答。參與課程還可以免費(fèi)加入我的小密圈,我每天會(huì)在圈中分享量化的所見(jiàn)所思,圈子介紹點(diǎn)擊此處。)
之后會(huì)講的內(nèi)容
- 以均線策略為基礎(chǔ),從頭到尾教大家如何使用Python編寫一個(gè)完整的策略
- 慣性策略、反轉(zhuǎn)策略在A股市場(chǎng)的實(shí)證。
關(guān)于《量化小講堂》之后想看的內(nèi)容,或者相關(guān)問(wèn)題,可以加我微信xbx_laoshi、Q群(快滿):438143420溝通。
附件中是Python程序,免費(fèi),回復(fù)可見(jiàn)。覺(jué)得文章內(nèi)容有幫助的話,頂貼是最好的鼓勵(lì)!