第二課 獲取股票價(jià)格數(shù)據(jù)并畫圖
目標(biāo):從互聯(lián)網(wǎng)上獲取股票或者基金的價(jià)格,并且畫出走勢(shì)圖
俗話說(shuō)巧婦難為無(wú)米之炊,做量化投資的研究最重要的部分就是數(shù)據(jù)部分。很多收益率很高的策略都只是很簡(jiǎn)單的邏輯,但是花了大量的精力和金錢在數(shù)據(jù)上。我們今天的內(nèi)容就是要獲取最基礎(chǔ)的數(shù)據(jù),價(jià)格和成交量,也叫價(jià)量數(shù)據(jù)。
通過(guò)網(wǎng)上的搜索,我們可以知道現(xiàn)在有比較好用的A股數(shù)據(jù)接口如下:
目前還免費(fèi),使用方便:
Baostock
Akshare
tushare免費(fèi)版
歡迎補(bǔ)充
不免費(fèi)或者使用麻煩:
tushare pro
各大量化平臺(tái)
行情軟件提供的數(shù)據(jù)服務(wù),如萬(wàn)得wind,東財(cái)提供的choice
為方便大家學(xué)習(xí),本教程盡量使用免費(fèi)的數(shù)據(jù)源。有些數(shù)據(jù)免費(fèi)的實(shí)在找不到的話,我會(huì)提供文件供大家下載。順便一提wind和choice數(shù)據(jù)庫(kù)我都有權(quán)限,如果自己有想法有需要數(shù)據(jù)的也可以找我提供。
本章我們使用baostock數(shù)據(jù)寶,官網(wǎng)鏈接如下:http://baostock.com/baostock/index.php/%E9%A6%96%E9%A1%B5

按照官網(wǎng)的提示,我們首先安裝它
打開上節(jié)課講的jupyter notebook,輸入pip install baostock -i?https://pypi.tuna.tsinghua.edu.cn/simple/?–trusted-host pypi.tuna.tsinghua.edu.cn
這樣就安裝好了需要的包
首先聲明:以下的代碼我建議你復(fù)制,硬敲代碼這種事情不夠優(yōu)雅,節(jié)約點(diǎn)時(shí)間干啥不好。
或者更好的方式是,下載、課件,只需要一路鼠標(biāo)點(diǎn)擊運(yùn)行即可和代碼玩耍,你可以盡情的嘗試,不需要擔(dān)心其他問(wèn)題
我們按照數(shù)據(jù)官網(wǎng)的下載指數(shù)價(jià)格數(shù)據(jù):
這里的代碼看不懂沒(méi)關(guān)系,我們可以封裝一下這個(gè)函數(shù),使用課件中封裝好的函數(shù),只需要輸入開始日期,結(jié)束日期,和股票或基金代碼即可,比如這里我們想獲取滬深300指數(shù)從17年一月一日到23年4月一日的價(jià)格,輸入下面的代碼即可
get_price('2017-01-01','2023-04-01','sh.000300')
可以看到他返回了價(jià)量數(shù)據(jù)

這里我們?cè)炝艘粋€(gè)黑盒,相當(dāng)于你買了一個(gè)自動(dòng)炒菜機(jī),只需要提供輸入就可以炒出來(lái)菜,不需要關(guān)心這個(gè)自動(dòng)炒菜機(jī)是怎么組裝的。當(dāng)然這里的代碼比較簡(jiǎn)單,封裝的重要性似乎沒(méi)有那么強(qiáng),但之后的課程中,會(huì)用到大量開源或者別人封裝好的庫(kù)。做投資,學(xué)會(huì)站在別人肩膀上非常重要。
如果您對(duì)編程不感興趣,可以不用掌握以下基礎(chǔ),只需要知道這個(gè)地方應(yīng)該輸入的是日期和股票代碼就可以了。
這里需要的基礎(chǔ)有以下幾條:
python基礎(chǔ)中的函數(shù),輸入和輸出
python的pandas包
推薦教程 廖雪峰的python教程,https://www.liaoxuefeng.com/wiki/1016959663602400/1017063413904832
只看python基礎(chǔ)和函數(shù)兩章就夠用了。
對(duì)于pandas,推薦教程菜鳥https://www.runoob.com/pandas/pandas-install.html
拿到價(jià)格后,我們輸入一行代碼即可把我們想要的圖給畫出來(lái)
result['open'].astype(float).plot()
結(jié)果如下

可選作業(yè):輸出一副2015年至今的中證白酒指數(shù)的收盤價(jià)走勢(shì)圖
歡迎關(guān)注同名微信公眾號(hào)【量化的韭菜】或知識(shí)星球獲取更多內(nèi)容?