今天我們的目的并不是完全掌握Python量化分析,僅僅是作為入門引領,開啟一扇新的大門。在之后的日子里,我會不定時地分享更多關于時間序列分析、量化分析的內容,歡迎關注、收藏、轉發(fā)!
最近股票行情不太好啊……
可能很多朋友都想用Python分析一下股票數(shù)據,來看看自己的股票是否值得持有,或者判斷某支股票是否值得建倉。那么問題來了,數(shù)據在哪里呢?
我曾經寫了一個腳本,用于抓取每日的行情數(shù)據并存儲到數(shù)據庫中,并且用crontab設置了讓它每天收盤后執(zhí)行。但是現(xiàn)在,我發(fā)現(xiàn)了一個更加方便的手段,可以快速獲取股票的行情數(shù)據!
這種方法就是使用Tushare提供的免費數(shù)據接口。Tushare API提供了對Python、R、HTTP、Matlab的支持,這對于我們個人開發(fā)者來說再好不過了!
在Tushare的官方網站上有詳細的安裝和調用教程,感興趣的可以先安裝下。https://tushare.pro/document/1。
假如你已經安裝完成,那么接下來,就要開始我們的魔法了!
一、獲取上證指數(shù)歷史行情數(shù)據
可以看到,簡單的幾行命令,我們就成功獲得了上證指數(shù)每日的行情數(shù)據,而且還是超級方便的pandas DataFrame格式呢!從數(shù)據中,我們看到Tushare提供了收盤價、開盤價、最高價、最低價、昨日收盤價、漲幅、百分比漲幅、成交量和成交額這些字段。
二、處理日期
我們注意到日期的格式不太符合我們的要求,還好pandas對于時間序列處理提供了良好的支持。我們可以先把日期對象轉換為datetime對象,以方便后續(xù)的使用。同時我們將時間設置為index。
輸出為:
可以看到,我們已經成功完成了格式轉換。
三、繪制歷史收盤價曲線
四、繪制均線
我們知道,股票行情受各種因素影響,波動較大,因此我們經常會用均線來作為一個穩(wěn)定趨勢的參考。今天我們就以60日均線為例看下如何使用Python繪制均線。
考慮到展示效果的問題,我們僅截取了2015年以來的數(shù)據,看到這幅圖,不禁開始心疼A股韭菜。曾經以為的慢牛,沒想到只是一個反彈……
同時我們也注意到了今年以來60日線對于上證指數(shù)的強大壓制力,不過觀察歷史趨勢我們還可以發(fā)現(xiàn)一點,那就是一旦實現(xiàn)對60日線的有效突破,那就至少會有一段行情(雖然有時可能僅有一個小波段……)
五、查看估值水平
Tushare還提供了接口用于獲取每天的各項指標,其中就包含了我們接下來要查看的PE水平。
可以看到,這里有總市值、流通市值、總股本、流通股本、換手率、基于流通股本的換手率、PE(市盈率)、動態(tài)PE、PB(市凈率)這些字段。
那我們就來用動態(tài)市盈率數(shù)據來看下當前A股上證的估值水平。
看起來,雖然當前的動態(tài)市盈率處于絕對的低位,但是仍有很多天的動態(tài)市盈率在當前的水平之下。那我們再看一下比當前估值水平更低的情況都出現(xiàn)在哪些時期。
看起來主要14、15年的階段底部期間,A股上證的估值水平比現(xiàn)在還要低。那么如果真的要跌到這個水平的話,上證指數(shù)還要下跌多少?我們來算一下。
輸出為:
ratio: 19.96%
還有20%……別怕,這個并不是真的要再跌20%,只是說在14、15年期間,上證磨底一直將PE磨到了8.9的水平,然后爆發(fā)了一波直接上漲到了23。所以說磨得越久,能量積蓄就越足。
韭菜們,有點耐心哈!另外祝大家多多發(fā)財!圣誕快樂!