熱線電話:13121318867

登錄
首頁精彩閱讀量化分析:把Tushare數據源,規整成PyalgoTrade所需格式
量化分析:把Tushare數據源,規整成PyalgoTrade所需格式
2018-04-27
收藏

量化分析:把Tushare數據源,規整成PyalgoTrade所需格式
分析A股歷史數據,首先需要確定數據來源。如果只想做日k線、周k線的技術分析,可以用PyalgoTrade直接從yahoo、google等下載數據,用不著Tushare。但是,如果想做分鐘k線的技術分析,或者想了解基本面和消息面的數據,就用得著Tushare了。
PyalgoTrade使用的基本數據格式有兩種,一是Yahoo格式,二是NinjaTrader格式。

Yahoo格式的數據分段為:

    日線數據:Date,Open,High,Low,Close,Volume,Adj Close
    分鐘數據:Date Time,Open,High,Low,Close,Volume,Adj Close

Tushare提供的數據格式,日k線、分鐘線均為:

    date:日期
    open:開盤價
    high:最高價
    close:收盤價
    low:最低價
    volume:成交量
    price_change:價格變動
    p_change:漲跌幅
    ma5:5日均價
    ma10:10日均價
    ma20:20日均價
    v_ma5:5日均量
    v_ma10:10日均量
    v_ma20:20日均量
    turnover:換手率[注:指數無此項]

把Tushar數據轉換成Yahoo格式,原本很簡單。但我對Pandas不熟,只好找來相關pdf書,加上Baidu,在Jupyter Notebook中,邊學邊練,實驗多次,最終搞定。

[python] view plain copy

    import tushare as ts  
    import pandas as pd  
      
    # 得到15分鐘數據(股票300336,始于2016-01-01,止于2016-05-24,15分鐘數據)  
    data = ts.get_hist_data('300336','2016-01-01','2016-05-24','15')  
    # 數據存盤  
    data.to_csv('15-300336-2016.csv')  
    # 讀出數據,DataFrame格式  
    df = pd.read_csv('15-300336-2016.csv')  
    # 從df中選取數據段,改變段名;新段'Adj Close'使用原有段'close'的數據  
    df2 = pd.DataFrame({'Date Time' : df['date'], 'Open' : df['open'],  
                        'High' : df['high'],'Close' : df['close'],  
                        'Low' : df['low'],'Volume' : df['volume'],  
                        'Adj Close':df['close']})  
    # 按照Yahoo格式的要求,調整df2各段的順序  
    dt = df2.pop('Date Time')  
    df2.insert(0,'Date Time',dt)  
    o = df2.pop('Open')  
    df2.insert(1,'Open',o)  
    h = df2.pop('High')  
    df2.insert(2,'High',h)  
    l = df2.pop('Low')  
    df2.insert(3,'Low',l)  
    c = df2.pop('Close')  
    df2.insert(4,'Close',c)  
    v = df2.pop('Volume')  
    df2.insert(5,'Volume',v)  
    # 新格式數據存盤,不保存索引編號  
    df2.to_csv("15-1.csv", index=False) 


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

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

數據分析師資訊
更多

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