天天看點

小白量化學習(5)建立本地股票資料庫

小白量化學習(5)建立本地股票資料庫

為了友善本地離線學習回測,可以在本地建立xbdata目錄,存放股票資料。

一、本地建立xbdata目錄

為了友善本地離線學習回測,可以在本地建立xbdata目錄,存放股票資料。

例如: C:\xbdata。

不要把資料和程式放到一個目錄中,這樣無法及時備份自己的程式了。

二、可以在網盤中下載下傳1991-2018年的股票資料

網盤下載下傳連結如下:

https://pan.baidu.com/s/1jxSaB8JzOu6hNvFipqfGzQ

三、引入子產品HP_data

在HP_data子產品中,我們仿造了get_k_data()函數。

是以在程式中。

import HP_data  as ts
           

替換下面這句,就可以脫機學習了。

import tushare as ts
           

get_k_data()函數定義如下,ss是股票代碼。

def get_k_data(ss,ktype=‘D’,start=‘1991-01-01’,end=‘2018-10-15’,

index=False,autype=‘qfq’)

四、下載下傳tushare股票資料

[data_ts_all2.py]下載下傳全部指數資料。

[data_ts_all3.py]下載下傳全部股票資料資料。

下載下傳全部股票資料資料程式在小白量化群(524949939)中下載下傳。

五、使用前面KDJ名額的離線資料示例

# -*- coding: utf-8 -*-
# KDJ名額離線資料示範
import numpy as np
import pandas as pd
from HP_formula import *
#import tushare as ts
import HP_data  as ts

def KDJ(N=9, M1=3, M2=3):
    RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100
    K = SMA(RSV,M1,1)
    D = SMA(K,M2,1)
    J = 3*K-2*D
    return K, D, J

#首先要對資料預處理
df = ts.get_k_data('600080',ktype='D')
mydf=df.copy()
CLOSE=mydf['close']
LOW=mydf['low']
HIGH=mydf['high']
OPEN=mydf['open']
VOL=mydf['volume']
C=mydf['close']
L=mydf['low']
H=mydf['high']
O=mydf['open']
V=mydf['volume']

k,d,j=KDJ()

mydf = mydf.join(pd.Series( k,name='K'))  
mydf = mydf.join(pd.Series( d,name='D'))  
mydf = mydf.join(pd.Series( j,name='J')) 
mydf['S80']=80  #增加上軌80軌迹線
mydf['X20']=20  #增加下軌20軌迹線

mydf=mydf.tail(100)  #顯示最後100條資料線 

#下面是繪線語句
mydf.S80.plot.line()
mydf.X20.plot.line()
mydf.K.plot.line(legend=True)
mydf.D.plot.line(legend=True)
mydf.J.plot.line(legend=True)
           

#--------------------------------

建議申請聚寬免費帳戶,可以擷取期貨資料.通過下面網址申請,免費資料量翻倍.申請網址如下:

https://www.joinquant.com/default/index/sdk?channelId=11ab957b5b19ebc3302ee864cee476b

獨狼荷蒲qq:2775205

小白量化群:524949939

微信公衆号:獨狼股票分析