摘要:前言庫提供了專門從財經(jīng)網(wǎng)站獲取金融數(shù)據(jù)的接口,可作為量化交易股票數(shù)據(jù)獲取的另一種途徑,該接口在庫基礎(chǔ)上實現(xiàn)了以客戶端身份訪問網(wǎng)站的股票數(shù)據(jù)。第三四個參數(shù)為股票數(shù)據(jù)的起始時間斷。遍歷每個交易日后將符合跳空缺口條件的交易日增加缺口數(shù)值。
前言
Pandas庫提供了專門從財經(jīng)網(wǎng)站獲取金融數(shù)據(jù)的API接口,可作為量化交易股票數(shù)據(jù)獲取的另一種途徑,該接口在urllib3庫基礎(chǔ)上實現(xiàn)了以客戶端身份訪問網(wǎng)站的股票數(shù)據(jù)。需要注意的是目前模塊已經(jīng)遷徙到pandas-datareader包中,因此導(dǎo)入模塊時需要由import?pandas.io.data as web更改為import pandas_datareader.data as web。
查看Pandas的手冊可以發(fā)現(xiàn),第一個參數(shù)為股票代碼,蘋果公司的代碼為"AAPL",國內(nèi)股市采用的輸入方式“股票代碼”+“對應(yīng)股市”,上證股票在股票代碼后面加上“.SS”,深圳股票在股票代碼后面加上“.SZ”。DataReader可從多個金融網(wǎng)站獲取到股票數(shù)據(jù),如“Yahoo! Finance” 、“Google Finance”等,這里以Yahoo為例。第三、四個參數(shù)為股票數(shù)據(jù)的起始時間斷。返回的數(shù)據(jù)格式為DataFrame。
start = datetime.datetime(2017,1,1)#獲取數(shù)據(jù)的時間段-起始時間 end = datetime.date.today()#獲取數(shù)據(jù)的時間段-結(jié)束時間 stock = web.DataReader("600797.SS", "yahoo", start, end)#獲取浙大網(wǎng)新2017年1月1日至今的股票數(shù)據(jù)
1、打印DataFrame數(shù)據(jù)前5行和尾部倒數(shù)5行(浙大網(wǎng)新因重大事件停牌至1月6日開始復(fù)牌)
print stock.head(5) print stock.tail(5)
2、打印DataFrame數(shù)據(jù)索引和列名,索引為時間序列,列信息為開盤價、最高價、最低價、收盤價、復(fù)權(quán)收盤價、成交量
print stock.index print stock.columns
3、打印DataFrame數(shù)據(jù)形狀,index長度為248,columns數(shù)為6,即248個交易日,6項股票數(shù)據(jù)
print stock.shape
4、打印DataFrame數(shù)據(jù)查看數(shù)據(jù)是否有缺失,以及每列數(shù)據(jù)的類型
print stock.info()
5、打印DataFrame數(shù)據(jù)每組的統(tǒng)計情況,如最小值、最大值、均值、標(biāo)準(zhǔn)差等
print stock.describe()
6、DataFrame數(shù)據(jù)中增加漲/跌幅列,漲/跌=(當(dāng)日Close-上一日Close)/上一日Close*100%
(1)添加一列change,存儲當(dāng)日股票價格與前一日收盤價格相比的漲跌數(shù)值,即當(dāng)日Close價格與上一日Close的差值,1月3日這天無上一日數(shù)據(jù),因此出現(xiàn)缺失
change = stock.Close.diff() stock["Change"] = change print stock.head(5)
(2)對缺失的數(shù)據(jù)用漲跌值的均值就地替代NaN。
change.fillna(change.mean(),inplace=True)
(3)計算漲跌幅度有兩種方法,pct_change()算法的思想即是第二項開始向前做減法后再除以第一項,計算得到漲跌幅序列。
stock["pct_change"] = (stock["Change"] /stock["Close"].shift(1))# stock["pct_change1"] = stock.Close.pct_change()
7、DataFrame數(shù)據(jù)中增加跳空缺口數(shù)值序列,這里定義的缺口為上漲趨勢和下跌趨勢中的突破缺口,上漲趨勢中今天的最低價高于昨天收盤價為向上跳空,下跌趨勢中昨天收盤價高于今天最高價為向下跳空。遍歷每個交易日后將符合跳空缺口條件的交易日增加缺口數(shù)值。
jump_pd = pd.DataFrame() for kl_index in np.arange(1, stock.shape[0]): today = stock.ix[kl_index] yesday = stock.ix[kl_index-1] today["preCloae"] = yesday.Close if today["pct_change"] > 0 and (today.Low-today["preCloae"]) > 0: today["jump_power"] = (today.Low-today["preCloae"]) elif today["pct_change"] < 0 and (today.High-today["preCloae"]) < 0: today["jump_power"] = (today.High-today["preCloae"]) jump_pd = jump_pd.append(today) stock["jump_power"] = jump_pd["jump_power"] print stock.loc["2017-04-26":"2017-06-15"]#默認(rèn)打印全部列
8、DataFrame數(shù)據(jù)保留兩位小數(shù)顯示
format = lambda x: "%.2f" % x stock = stock.applymap(format) print stock.loc["2017-04-26":"2017-06-15"]#默認(rèn)打印全部列
更多python量化交易內(nèi)容互動請加微信公眾號:PythonQT-YuanXiao
歡迎訂閱量化交易課程:鏈接地址
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41239.html
摘要:將另存為格式時,文件將工作表中的單元格所顯示的文本和數(shù)值以逗號分離進(jìn)行保存。方法此處使用模塊的函數(shù)讀取文件,函數(shù)以字典形式返回,字典的鍵則是這個單元格的標(biāo)題即列頭,每一個單元格內(nèi)容放在字典的值內(nèi)。 前言 數(shù)據(jù)是進(jìn)行量化交易的基礎(chǔ)和關(guān)鍵,目前國內(nèi)做量化產(chǎn)品的金融機構(gòu)大部分是從券商獲取高頻實時行情數(shù)據(jù)的,另外很多金融網(wǎng)站也提供了數(shù)據(jù)接口,可以調(diào)用接口方式獲取,也可以用爬蟲的方式獲取。文本講...
摘要:那么我們改變概率這個因子,將它放大到,我們邀請個人參與局看下效果看來結(jié)果還不錯,只要增加盈利的概率,就可以在市場中獲得收益,這就是量化交易的魅力管理概率理性交易。 在《Python實戰(zhàn)-構(gòu)建基于股票的量化交易系統(tǒng)》小冊子中,我們以股票為交易標(biāo)的講解量化交易的學(xué)習(xí),主要原因是股票的風(fēng)險和收益介于期貨和基金之間。期貨一方面加了杠桿,另一方面走勢變化非常迅速,稍有不慎有可能血本無歸,這不太適...
摘要:如果我們把這三個因子都加進(jìn)去會怎樣呢收益率為倍,沒有剛才那么好了,還是剛才的和凈利潤環(huán)比增長率這兩個因子比較好,那就保留兩個吧。因此,我們可以考慮使用排名的方法,對這些因子進(jìn)行排名。 導(dǎo)語:每一位寬客都相信,影響股票漲跌的因素不勝枚舉,而這些因素就是因子!本文作為一篇合格的入門教程,提供代碼當(dāng)做框架,各路寬客可以自己測試,查看收益率,亦可利用聚寬python平臺自行構(gòu)建代碼。 規(guī)范源碼...
目錄Numpy簡介Numpy操作集合1、不同維度數(shù)據(jù)的表示1.1 一維數(shù)據(jù)的表示1.2 二維數(shù)據(jù)的表示1.3 三維數(shù)據(jù)的表示2、 為什么要使用Numpy2.1、Numpy的ndarray具有廣播功能2.2 Numpy數(shù)組的性能比Python原生數(shù)據(jù)類型高3 ndarray的屬性和基本操作3.1 ndarray的基本屬性3.2 ndarray元素類型3.3 創(chuàng)建ndarray的方式3.4 ndarr...
閱讀 2344·2021-11-08 13:13
閱讀 1279·2021-10-09 09:41
閱讀 1721·2021-09-02 15:40
閱讀 3220·2021-08-17 10:13
閱讀 2579·2019-08-29 16:33
閱讀 3158·2019-08-29 13:17
閱讀 3160·2019-08-29 11:00
閱讀 3322·2019-08-26 13:40