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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • com.onseven.dbvis.DbVisualizerGUI

    com.onseven.dbvis.DbVisualizerGUIcom.onseven.dbvis.DbVisualizerGUI

    2022年4月23日
    354
  • xcode armv7 armv7s arm64

    armv6armv7armv7sarm64引起编译包翻倍增大的问题,下边来说一下关于ios这个指令集目前ios的指令集有以下几种:armv6iPhoneiPhone2iPhone3G第一代和第二代iPodToucharmv7iPhone4iPhone4Sarmv7siPhone5iPho

    2022年4月9日
    224
  • 排队论[通俗易懂]

    排队论[通俗易懂]排队论简介历史排队论又称随机服务系统,是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,是运筹学的一个分支。排队论的基本思想是1909年丹麦数学家A.K.埃尔朗在解决自动

    2022年8月5日
    6
  • Maven工程打jar包的N种方式

    Maven工程打jar包的N种方式Idea;Maven工程;jar包;N种方式

    2022年6月19日
    29
  • Java中堆和栈(java栈和堆)

    Java中堆和栈(java栈和堆)转:https://www.cnblogs.com/ibelieve618/p/6380328.htmlJAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了。以下是这几天栈和堆的学习记录和心得。得些记录下来。以后有学到新的,会慢慢补充。…

    2022年4月18日
    50
  • 计算机中为什么会用补码运算符号_负数求补码

    计算机中为什么会用补码运算符号_负数求补码总所周知,计算机内部的所有数都是以二进制的形式存在的。而二进制在计算机里又有多种编码方式——原码、反码、补码等。而在这些编码方式里面用得最多的不是最简单、最直接的原码而是补码。这是为什么呢?想搞懂这个问题首先得明白什么是原码、反码以及补码,如果你对他们还不太了解,那就先看看我另一篇博客——原码、反码、补码其实很简单。如果你对他们已经很熟悉,那么我们继续往下看。A、B、C三种相似的东西,

    2025年12月4日
    5

发表回复

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

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