量化交易之如何获取股票历史数据并存为csv文件

    量化研究最大的问题是无法获取大量免费的行情数据。尤其是格式化,可以存为excel的数据。我这里介绍一个网站,BaoStock,既支持直接下载历史数据为csv,也支持用程序下载数据并生成csv格式。

       网站地址是www.baostock.com,如果要下载历史行情数据,进入首页后,选择“A股行情数据”,就进入了历史行情的页面。然后点击下载,就可以下载实例文件。实例文件是浦发银行的历史数据,如果要下载其他股票的历史数据,尤其是前后复权的数据,就需要使用程序了。

 

首先默认已经安装python,且版本是3.5或者以上。
安装pandas: pip insall pandas
安装numpy: pip install numpy
安装baostock数据接口包:pip installbaostock。

baostock提供免费历史k线的下载,包括前后复权的数据,而且还提供股票实时数据
如果有问题,请去官网下载再安装:http://www.baostock.com,不需要注册。

import baostock as bs

import pandas as pd

 

#### 登陆系统####

lg = bs.login()

# 显示登陆返回信息

print('login respond error_code:'+lg.error_code)

print('login respond error_msg:'+lg.error_msg)

 

#### 获取沪深A股历史K线数据 ####

# 详细指标参数,参见“历史行情指标参数”章节

rs = bs.query_history_k_data("sh.600000",

   "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",

   start_date='2017-07-01', end_date='2017-12-31',

   frequency="d", adjustflag="3")

print('query_history_k_data responderror_code:'+rs.error_code)

print('query_history_k_data respond  error_msg:'+rs.error_msg)

 

#### 打印结果集 ####

data_list = []

while (rs.error_code == '0') & rs.next():

    # 获取一条记录,将记录合并在一起

   data_list.append(rs.get_row_data())

result = pd.DataFrame(data_list, columns=rs.fields)

 

#### 结果集输出到csv文件 ####  

result.to_csv("D:\\history_A_stock_k_data.csv",index=False)

print(result)

 

#### 登出系统####

bs.logout()


参数含义:

·        code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;

·        fields:指示简称,支持多指标输入,以半角逗号分隔,填写内容作为返回类型的列。详细指标列表见历史行情指标参数章节。此参数不可为空;

·        start:开始日期(包含),格式“YYYY-MM-DD”,为空时取2015-01-01;

·        end:结束日期(不包含),格式“YYYY-MM-DD”,为空时取最近一个交易日;

·        frequency:数据类型,默认为d,日k线;d=日k线、w=周、m=月、5=5分钟、15=15分钟、30=30分钟、60=60分钟k线数据,不区分大小写;周线每周最后一个交易日才可以获取,月线第月最后一个交易日才可以获取。

·        adjustflag:复权类型,默认不复权:3;1:后复权;2:前复权。已支持日k线、分钟线前后复权;暂不支持周k线、月k线前后复权。

日线指标参数(包含停牌证券)

参数名称

参数描述

说明

date

交易所行情日期

格式:YYYY-MM-DD

code

证券代码

格式:sh.600000sh:上海,sz:深圳

open

今开盘价格

精度:小数点后4位;单位:人民币元

high

最高价

精度:小数点后4位;单位:人民币元

low

最低价

精度:小数点后4位;单位:人民币元

close

今收盘价

精度:小数点后4位;单位:人民币元

preclose

昨日收盘价

精度:小数点后4位;单位:人民币元

volume

成交数量

单位:股

amount

成交金额

精度:小数点后4位;单位:人民币元

adjustflag

复权状态

不复权、前复权、后复权

turn

换手率

精度:小数点后6位;单位:%

tradestatus

交易状态

1:正常交易 0:停牌

pctChg

涨跌幅

精度:小数点后6

peTTM

动态市盈率

精度:小数点后4

psTTM

市销率

精度:小数点后4

pcfNcfTTM

市现率

精度:小数点后4

pbMRQ

市净率

精度:小数点后4

isST

是否ST

1是,0


阅读更多

更多精彩内容