财务Python量化选股(一)财经数据获取

股票分析主要回答两个问题:

(1)如何从股票池中选出符合自己认为有价值的股票?

(2)选出合适的股票后如何构建投资组合并动态调整?

财经数据获取

对于金融分析来说,获取数据是第一步。Python的一个强大功能之一就是数据获取(爬虫)。但是对于没时间学爬虫程序的小白来说,python丰富的开源包为我们节省了不少时间精力,只要会用前人的车轮,就可以造就自己的车。

Python提供金融股票数据的包,国外的包有pandas_datareader、yfinance,国内的包有tushare、baostock。接下来,我们就比较一下这4种开源金融数据接口。

01 Pandas提供的数据接口DataReader

DataReader是Pandas提供的专门从财经网站获取金融数据的API接口,DataReader可从多个金融网站获取到股票数据,如“Yahoo!Finance” 、“Google Finance”等,这里以Yahoo为例。使用分析:出现过yahoo数据库关闭接口的情况,而且获取数据非常慢

1. 安装DataReader,并导入环境

2. 获取股票数据

以深市A股的000875在2018年1月1日的交易数据为例:

注:中国上市股票及代码说明

  • 沪市A股:沪市A股的代码是以600、601或603打头
  • 沪市B股:沪市B股的代码是以900打头
  • 深市A股:深市A股的代码是以000打头
  • 深市B股:深市B股的代码是以200打头
  • 中小板:中小板的代码是002打头
  • 创业板:创业板的代码是300打头的股票代码

股票数据说明:

  • High(最高价):是指当日所成交的价格中的最高价位。
  • Low(最低价):是指当日所成交的价格中的最低价位。
  • Open(开盘价):以竞价阶段第一笔交易价格为开盘价,如果没有成交,以前一日收盘价为开盘价。
  • Close(收盘价):指每天成交中最后一笔股票的价格。
  • Volume(成交量):当日股票的成交量
  • Adj Close(复权收盘价):就是考虑分红、送红股、配股、增发等因素后的可比价格


02
yfinance库

也是从yahoo财经网站上抓取股票信息,使用效果跟DataReader+yahoo一样

1. 安装并导入环境

2. 获取股票数据

以深市A股的000875在2018年1月1日的交易数据为例


03
Tushare库

官网:https://tushare.pro/

Tushare是目前国内历史比较久的量化数据接口,最近推出了Tushare Pro,包含了更多的数据,获取数据的速度也有所提高。

虽然号称免费,但是小编体验了一下,使用Tushare需要注册并帮助推广以获取积分,有积分才能使用接口,新注册用户几乎做不了任何事情。

但是Tushare提供的数据集还是非常诱人的,不仅有股票,还有期货、期权、债券、外汇等,而且文档也很详细,小伙伴们还是可以尝试一下的。

1. 安装并导入环境

2. 目前tushare旧版功能还能使用,且不需要积分

3. 设置凭证码

若使用Pro版接口,先设置tushare pro的token凭证码(只需设置一次),如果没有请访问https://tushare.pro注册申请

因为小编没有积分,Pro功能学员自行探索吧

04 baostock

官网:www.baostock.com,是一个免费、开源的证券数据平台(无需注册)

使用分析:A股K线数据最早只能追溯到2006-01-01,取数据需转为dataframe略显繁琐

1. 安装并导入环境

2. 获取股票数据

以深市A股的000875在2018年1月1日的交易数据为例

其中:adjustflag复权状态(1:后复权, 2:前复权,3:不复权)

  • 前复权即就是保持现有价位不变,将以前的价格缩减,将除权前的K线向下平移,使图形吻合,保持股价走势的连续性。
  • 后复权就是把除权后的价格按以前的价格换算过来。复权后以前的价格不变,现在的价格增加。
  • 比较历史价格时,以历史价格为基准时,就要用后复权;要看现在的股价与历史价格的关系,且以现在的价格为基准时,就要用前复权;仅仅是观察现在的价格,不与历史价格相比较时,用不复权即可。

3. 转化数据类型

返回的数字都是以字符串方式存储的,还得转化数据类型才可以进行后续计算

比较结论

整体可以看到,pandas_datareader或yfinance一句话搞定的事情,baostock搞了一整段代码,无奈,yahoo的连接实在太慢了,而且提供的数据种类也没有国内接口多,所以,后续案例中,咱们还是用baostock吧~

(0)

相关推荐

  • 基于Python获取股票分析,数据分析实战

    基于Python获取股票分析,数据分析实战

  • (6条消息) python量化分析系列之

    财经数据接口包tushare的使用(一) Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据.年度季度报表数据.实时分笔数据.历史分笔数据,本文对tushare的用法,已经存在的 ...

  • 用tushare获得股票数据存入mysql数据库

    import tushare as tsimport pandas as pdimport pymysql as mysqldbfrom sqlalchemy import create_engine ...

  • Python实现量化选股

    什么是选股? 选股(stock selection)是一种主动性投资策略,先按照某种规则或算法分析单只股票的前景,然后构建一个投资组合,长期持有.一般情况下要求组合的股票具有低相关性,这样才能对冲系统 ...

  • Python 量化分析——基本面选股模型

    摘要 利用Python进行量化分析,AkShare获取股票基本面财务数据.进行基本面数据分析,pe市盈率.ps市销率.pb市净率.总市值等数理统计,以及图表展示.基于莫伦卡选股模型进行编码,对A股30 ...

  • 量化选股

    昨天一兴奋,就忍不住重新推送了钢铁一文,我之所以兴奋,是因为突然有了灵感,改进了量化选股. 就像利弗莫尔说的,他经常早上一醒来,大脑里就会有一个新点子,然后立刻开始实施,尽管绝大部分的点子行不通.我也 ...

  • 量化选股公式合集

    前文写过一篇<量化选股>,此文把公式公布出来. Part.1 根据<个股动量指标"RPS"曲线编制>一文建好"上市一年以上"板块及RPS ...

  • 量化选股公式

    本期新增的文章已标红区别 基础教程系列 零基础通达信条件选股教程(重要) 日常更新数据(重要) 通达信编制自定义板块指数 公众号使用说明 这样做,新股中签率能提高几倍! 怎么识别庄股? RPS设置教程 ...

  • 「Python量化」股票涨停板探索性分析与数据挖掘

    D1 引言 从系统论的角度来看,股票市场是一个复杂系统,市场的涨跌是由资金流(市场资金存量.流入量.流出量)和回路(市场信息与交易者行为形成的各种反馈.调节.增强回路)非线性作用下的结果.换句话说,牛 ...

  • 量化选股核对及N日强选股逻辑

    前文<量化选股公式合集>公布了趋势模板选股公式,我发明这个公式的原因详见<量化选股>. 下面再跟已经安装了这个选股公式的朋友们核对一次选股结果: STEP.1 下载完盘后数据和 ...

  • 我认为最好用的量化选股公式排名

    No.1 强势股公式 强势股公式(接近一年新高90%附近) CLOSE/HHV(HIGH,N)>P; 说明:为啥我会把他排在第一位呢?因为任何一只牛股的必经之路就是符合强势股,这个接近一年新高也 ...

  • 我常用的量化选股公式集锦

    选股是理论转化为实战的具体过程,以顺势投资各种选股方法为依托,在常年学习实践的基础上结合自己理解编写而成的一些较为实用的选股公式,有效简化了我的劳动量. 关于公式我想谈下我的认识. 首先,我觉得公式不 ...