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