有哪些Python可以使用的证券数据接口?

发布于: 雪球转发:2回复:1喜欢:4

基本面分析是股票两大分析方法之一,被广大证券市场的投资者尤其是中长线价值投资者所重视。基本面分析并没有定式,可以说是很主观的,但大体上可以分为从宏观到微观,以及两者之间这三个层次。

1,对国家经济整体态势的宏观分析,包括各种经济财政以及税收产业政策等,还有国家各项经济指标的状况,如国民生产总值、GDP、通货膨胀率等方面,这些因素决定了股票的大盘走势。

2,对股票所处的行业进行分析,主要对行业所处的经济周期、发展前景以及区域经济对公司的影响。

3,对上市公司的状况进行分析,可以具体分析上市公司在行业中所处的地位,以及公司的经营财政指标,还有各项财务报表等。

除了基本面分析,我们在购买股票时,还要进行技术分析,技术分析是以预测市场价格变化的未来趋势为目的,通过分析历史图表对市场价格的运动进行分析的一种方法。其本质是对市场历史量价数据的运算,并从不同角度反映市场的运行情况,好的技术分析应该是一个分类明确的评价系统。 技术分析理论的主要的代表有道氏理论、波浪理论、江恩法则等。主要分析方法有K线(日本线)理论、切线理论、形态理论、量价关系理论。主要的分析指标包括:趋势型指标、超买超卖型指标、人气型指标、大势型指标等内容。

不论是基本面分析还是技术分析,我们都需要知道具体股票的详情数据,证券宝网页链接是一个免费、开源的证券数据平台。有很多好用的数据获取接口:

获取历史A股K线数据:query_history_k_data_plus()

方法说明:通过API接口获取A股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据,适合搭配均线数据进行选股和分析。

返回类型:pandas的DataFrame类型。

能获取2006-01-01至当前时间的数据;

可查询不复权、前复权后复权数据。

使用示例:

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线数据 ####
# 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。
# 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag
rs = bs.query_history_k_data_plus("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_plus respond error_code:'+rs.error_code)
print('query_history_k_data_plus 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:前复权。已支持分钟线、日线、周线、月线前后复权。 BaoStock提供的是涨跌幅复权算法复权因子,具体介绍见:复权因子简介或者BaoStock复权因子简介




交易日查询:query_trade_dates()

方法说明:通过API接口获取股票交易日信息,可以通过参数设置获取起止年份数据,提供上交所1990-今年数据。 返回类型:pandas的DataFrame类型。

使用示例

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)

#### 获取交易日信息 ####

rs = bs.query_trade_dates(start_date="2017-01-01", end_date="2017-06-30")

print('query_trade_dates respond error_code:'+rs.error_code)

print('query_trade_dates 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:\\trade_datas.csv", encoding="gbk", index=False)

print(result)

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

bs.logout()

参数含义:

start_date:开始日期,为空时默认为2015-01-01。 end_date:结束日期,为空时默认为当前日期。

证券基本资料:query_stock_basic()

方法说明:通过API接口获取API接口获取证券基本资料,可以通过参数设置获取对应证券代码、证券名称的数据。 返回类型:pandas的DataFrame类型。 使用示例

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)

# 获取证券基本资料
rs = bs.query_stock_basic(code="sh.600000")
# rs = bs.query_stock_basic(code_name="浦发银行") # 支持模糊查询
print('query_stock_basic respond error_code:'+rs.error_code)
print('query_stock_basic 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:/stock_basic.csv", encoding="gbk", index=False)
print(result)

# 登出系统
bs.logout()

参数含义:

code:A股股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。可以为空; code_name:股票名称,支持模糊查询,可以为空。


全部讨论

2020-06-20 22:29

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


除了d之外其他都获取不了