熱線電話:13121318867

登錄
首頁精彩閱讀Python數據分析:股價相關性
Python數據分析:股價相關性
2018-01-26
收藏

Python數據分析:股價相關性

為什么要分析股價相關度呢,我們來引入一個概念——配對交易
所謂的配對交易,是基于統計套利的配對交易策略是一種市場中性策略,具體的說,是指從市場上找出歷史股價走勢相近的股票進行配對,當配對的股票價格差偏離歷史均值時,則做空股價較高的股票同時買進股價較低的股票,等待他們回歸到長期均衡關系,由此賺取兩股票價格收斂的報酬。
接下來開始我們的股價相關度分析,首先我們選兩個股票~


感覺全聚德和光明乳業都很好吃的樣子,我們就選它們了吧!= ̄ω ̄=
1、導入數據包
簡單介紹一下要用到的數據包
matplotlib.pyplot:繪圖庫,其中pyplot子包提供一個類MATLAB的繪圖框架
numpy:科學計算庫,支持高級大量的維度數組與矩陣運算
pandas:納入了大量庫和一些標準的數據模型,提供高效地操作大型數據集所需的工具
tushare:財經數據接口包
[python] view plain copy

    <span style="font-size:18px;">import matplotlib.pyplot as plt </span>  
    <span style="font-size:18px;">import numpy as np</span>  
    <span style="font-size:18px;">import pandas as pd</span>  
    <span style="font-size:18px;">import tushare as ts  
    </span> 
2、根據全聚德和光明乳業的股票代碼獲取數據,這里獲取的是2016年一整年的收盤價,獲取完后合并,因為停牌的存在,用前一天的價格去填寫缺失數據,最終以CSV格式保存數據
[python] view plain copy
    <span style="font-size:18px;">s_qjd = '002186' #全聚德</span>  
    <span style="font-size:18px;">s_gm = '600597' #光明乳業</span>  
    <span style="font-size:18px;">sdate = '2016-01-01'#起止日期</span>  
    <span style="font-size:18px;">edate = '2016-12-31'</span>  
    <span style="font-size:18px;">df_qjd = ts.get_h_data(s_qjd, start = sdate, end = edate).sort_index(axis = 0,ascending=True)#獲取歷史數據</span>  
    <span style="font-size:18px;">df_gm = ts.get_h_data(s_gm, start = sdate, end = edate).sort_index(axis = 0,ascending=True)</span>  
    <span style="font-size:18px;">df = pd.concat([df_qjd.close,df_gm.close], axis = 1, keys=['qjd_close', 'gm_close'])#合并</span>  
    <span style="font-size:18px;">df.ffill(axis=0, inplace=True)#填充缺失數據</span>  
    <span style="font-size:18px;">df.to_csv('qjd_gm.csv')  
    </span>  

3、用pearson相關系數計算相關度(Pearson相關系數是用來衡量兩個數據集合是否在一條線上面,它用來衡量定距變量間的線性關系。),再打印出來看一眼
[python] view plain copy

    <span style="font-size:18px;">corr = df.corr(method = 'pearson', min_periods = 1)#pearson方法計算相關性</span>  
    <span style="font-size:18px;">print(corr)</span> 


算出來有0.81,超過0.8,按值域等級來說屬于極強相關,不過話說一個賣烤鴨的為什么會和賣牛奶的相關度那么高。。。。難道大家吃烤鴨的時候都喜歡喝牛奶嗎。。。
4、繪制圖像出來喵一眼,看看趨勢上來說什么時候可以有機會做配對交易
[python] view plain copy
    <span style="font-size:18px;">df.plot(figsize = (20,12))</span>  
    <span style="font-size:18px;">plt.savefig('qjd_gm.jpg')</span>  
    <span style="font-size:18px;">plt.close()</span>  

5、按分析日期的第一天的股價為基準做歸一化處理,打印圖像
[python] view plain copy
    <span style="font-size:18px;">df['qjd_one'] = df.qjd_close / float(df.qjd_close[0])*100</span>  
    <span style="font-size:18px;">df['gm_one'] = df.gm_close / float(df.gm_close[0])*100</span>  
    <span style="font-size:18px;">df.qjd_one.plot(figsize = (20,12))</span>  
    <span style="font-size:18px;">df.gm_one.plot(figsize = (20,12))</span>  
    <span style="font-size:18px;">plt.savefig('qjd_gm_one.jpg')</span>  
    <span style="font-size:18px;">  
    </span>  

好啦,做完啦,雖然我也不知道為什么全聚德會和光明乳業這么高相關性
不過理論上是可以做配對交易的,不過股票有風險,投資需謹慎~
以下是完整代碼:
[python] view plain copy

    # coding=gbk  
      
    import matplotlib.pyplot as plt #提供類matlab里繪圖框架  
    import numpy as np  
    import pandas as pd  
    import tushare as ts  
      
    #獲取數據  
    s_qjd = '002186' #全聚德  
    s_gm = '600597' #光明乳業  
    sdate = '2016-01-01'#起止日期  
    edate = '2016-12-31'  
    df_qjd = ts.get_h_data(s_qjd, start = sdate, end = edate).sort_index(axis = 0,ascending=True)#獲取歷史數據  
    df_gm = ts.get_h_data(s_gm, start = sdate, end = edate).sort_index(axis = 0,ascending=True)  
    df = pd.concat([df_qjd.close,df_gm.close], axis = 1, keys=['qjd_close', 'gm_close'])#合并  
    df.ffill(axis=0, inplace=True)#填充缺失數據  
    df.to_csv('qjd_gm.csv')  
      
    #pearson方法計算相關性  
    corr = df.corr(method = 'pearson', min_periods = 1)  
    print(corr)  
      
    #打印圖像  
    df.plot(figsize = (20,12))  
    plt.savefig('qjd_gm.jpg')  
    plt.close()  
      
    #歸一化處理打印圖像  
    df['qjd_one'] = df.qjd_close / float(df.qjd_close[0])*100  
    df['gm_one'] = df.gm_close / float(df.gm_close[0])*100  
    df.qjd_one.plot(figsize = (20,12))  
    df.gm_one.plot(figsize = (20,12))  
    plt.savefig('qjd_gm_one.jpg')

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢