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

python获取股票历史数据_量化交易之如何获取股票历史数据并存为csv量化研究尤其是进行基于价值投资的量化研究,需要上市公司的历史估值数据,如市盈率PE,市净率PB,或者市销率PS,市现率PCF。而有的人喜欢用exce或者csv文件的格式存放数据并且分析。我这里介绍一个网站,BaoStock,既支持直接下载历史数据为csv,也支持用程序下载数据并生成csv格式。网站地址是www.baostock.com,如果要下载历史估值数据,进入首页后,选择“沪深A股估值指标(日…

大家好,又见面了,我是你们的朋友全栈君。

量化研究尤其是进行基于价值投资的量化研究,需要上市公司的历史估值数据,如市盈率PE,市净率PB,或者市销率PS,市现率PCF。而有的人喜欢用exce或者csv文件的格式存放数据并且分析。我这里介绍一个网站,BaoStock,既支持直接下载历史数据为csv,也支持用程序下载数据并生成csv格式。

网站地址是www.baostock.com,如果要下载历史估值数据,进入首页后,选择“沪深A股估值指标(日频)数据”,就进入了历史估值数据的页面。然后点击下载,就可以下载csv文件,下载的是浦发银行的历史估值数据,如果要下载其他股票的历史估值数据,就需要使用python代码了。

首先默认已经安装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股估值指标(日频)数据 ####

# peTTM 动态市盈率

# psTTM 市销率

# pcfNcfTTM 市现率

# pbMRQ 市净率

rs = bs.query_history_k_data(“sh.600000”,

“date,code,close,peTTM,pbMRQ,psTTM,pcfNcfTTM”,

start_date=’2015-01-01′,end_date=’2017-12-31′,

frequency=”d”,adjustflag=”3″)

print(‘query_history_k_data respond error_code:’+rs.error_code)

print(‘query_history_k_data respond error_msg:’+rs.error_msg)

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

result_list = []

while (rs.error_code == ‘0’) & rs.next():

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

result_list.append(rs.get_row_data())

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

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

result.to_csv(“D:\\history_A_stock_valuation_indicator_data.csv”,encoding=”gbk”, index=False)

print(result)

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

bs.logout()

返回数据说明

参数名称参数描述说明

date交易所行情日期格式:YYYY-MM-DD

code证券代码格式:sh.600000。sh:上海,sz:深圳

close今收盘价精度:小数点后4位;单位:人民币元

peTTM动态市盈率精度:小数点后4位

psTTM市销率精度:小数点后4位

pcfNcfTTM市现率精度:小数点后4位

pbMRQ市净率精度:小数点后4位

以上代码来自官网,www.baostock.com.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152738.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 图片的放大与缩小_photoshop怎么放大图片

    图片的放大与缩小_photoshop怎么放大图片packagecom.school.util;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.image.Buffere

    2022年8月4日
    8
  • kettle工具使用简明手册[通俗易懂]

    kettle工具使用简明手册[通俗易懂]kettle工具使用简明手册运行启动脚本spoon.bat快捷方式如果正确启动,则出现的主界面应该是下面这样的。初次进入需右键新建作业新建数据库连接也可以想下面一样,新建数据库连接向导填完参数测试一下连接通过向导分步来我已经建立了转换任务和数据库连接,可以直接应用。 建立多表复制点击开始即可,多表的…

    2022年10月9日
    1
  • 计算机三级(数据库)备考题目知识点总结

    计算机三级(数据库)备考题目知识点总结计算机三级(数据库)备考题目知识点总结刷题所遇到的知识点总结考后总结刷题所遇到的知识点总结以下都是我在刷题时遇到的常考的知识点,供复习时做参考。1.DBAS需求分析阶段的一项重要工作是分析DBAS应具有的性能指标,主要包括:①数据操作响应时间,或数据访问响应时间;②系统吞吐量,即指系统在单位时间内可以完成的数据库事务或查询的数量;③允许并发访问最大用户数;④每TPS(PriceperTP…

    2022年6月21日
    35
  • Oracle number类型的语法和用法

    Oracle number类型的语法和用法Oraclenumber类型的语法和用法2012-10-2910:37:08    我来说两句     作者:liwenshui322收藏  我要投稿Oraclenumber类型的语法和用法    number类型的语法很简单,就是:   number(p,s)   p,s都是可选的,假如都不填,p默认为38,s默认为-48~127。

    2022年7月24日
    23
  • pytest skipif_pytest如何循环执行用例

    pytest skipif_pytest如何循环执行用例前言pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能Skip和xfail:处理那些不会成功的测试用例你可以对那些在某些特定平台上不能运行的测试用

    2022年7月31日
    3
  • 舵机工作原理及程序[通俗易懂]

    舵机工作原理及程序[通俗易懂]舵机可以实时控制角度,广泛应用于航模、云台等等需要控制角度的场合舵机的工作原理:由pwm波进入内部电路产生一个偏置电压,触发电机通过减速齿轮带动电位器移动,使电压差为零时,电机停转,从而达到伺服的效果。舵机PWM的协议都是相同的,但最新出现的舵机可能不一样协议一般为:高电平宽度在0.5ms~2.5ms控制舵机转过不同的角度例如某一型号如下:

    2022年4月28日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号