使用Python轻松获取股票&基金数据

2021-08-23 13:37:01 浏览数 (1)


大家好,欢迎来到 Crossin的编程教室 !

最近这一两年,股市虽谈不上大牛市,倒也稳步向上,原来一直无法挣脱3000点魔咒的上证指数,今年年初也一路高歌,迈过了3500点。

不过这两天,听说很容易从人群中分辨出谁买了股票。

俗话说七亏二平一赚,普通人炒股,其实大概率是亏的,一是因为业余,你永远赚不到认知之外的钱;二是因为人性的弱点,难免恐惧和贪婪。

现在大家都在讨论价值投资,买股票实质是在买公司,评判价值的过程才是投资的精髓。如果你想提高一丢丢赚钱的概率,研究数据背后的逻辑,靠数据去决策,会比盲目地跟风追涨杀跌更靠谱一些。

Python作为金融领域明星级的分析工具,在数据获取、清洗、分析、建模上都有全套的解决方案,比如说Pandas就是专门为金融分析开发的库。

这次我们来研究下如何用Python获取股票&基金数据,用作行业分析。

目前有不少支持Python接口的金融数据库,比如Tushare、AKshare、Baostock、wind等,都可以获得国内股票、基金、期货、利率等数据。

AKshare为例,我们来试试如何提起股票、基金最新数据。

什么是AKshare?

先简单介绍下AKShare,内容转自官网。

AKShare 是基于 Python 的开源金融数据接口库,目的是实现对股票、期货、期权、基金、债券、外汇等金融产品和另类数据从数据采集,数据清洗到数据下载的工具,满足金融数据科学家、数据科学爱好者在数据获取方面的需求。

它的特点是利用 AKShare 获取的是基于可信任数据源发布的原始数据,广大数据科学家可以利用原始数据进行再加工,从而得出科学的结论。

  • 代码语法符合 PEP8 规范, 数据接口的命名统一;
  • 最佳支持 Python 3.7.5 及其以上版本;
  • 提供最佳的文档支持, 每个数据接口提供详细的说明和示例, 只需要复制粘贴就可以下载数据;
  • 持续维护由于目标网页变化而导致的部分数据接口运行异常问题;
  • 持续更新财经数据接口, 同时优化源代码;

如何安装AKShare?

AKShare作为python库可以直接通过pip安装,十分快捷。

代码语言:javascript复制
pip install akshare

如何使用AKShare?

首先要导入AKShare库,然后通过接口函数,获取相应的数据。

最好是在jupyter notebook或者lab环境中来操作,可以很方便地查看和分析数据。

以获取A股公司列表数据为例:

代码语言:javascript复制
import akshare as ak
stock_info_a_code_name_df = ak.stock_info_a_code_name()
stock_info_a_code_name_df

目前AKshare数据来源比较多元,接口相对杂乱,大家在使用用过程中需注意检查数据的准确性。

接下来,罗列一些常用的数据接口,供参考使用。

获取A 股上市公司实时行情数据

该数据来源新浪,使用时候注意频率,不然会被封IP

代码语言:javascript复制
import akshare as ak
stock_zh_a_spot_df = ak.stock_zh_a_spot()
stock_zh_a_spot_df

字段解释:

获取某股票历史行情数据

以浦发银行(sh600000)为例:

代码语言:javascript复制
import akshare as ak
stock_zh_a_daily_qfq_df = ak.stock_zh_a_daily(symbol="sh600000", adjust="hfq")
stock_zh_a_daily_qfq_df

字段解释:

获取公募开放式基金数据

代码语言:javascript复制
import akshare as ak
fund_em_open_fund_daily_df = ak.fund_em_open_fund_daily()
fund_em_open_fund_daily_df

字段解释:

上面简单列举了几个数据接口,AKshare还提供了大量的股票、基金、期货等数据,大家可以去探索下。

相比较AKshare,Tushare、Baostock上的数据更加规范,但维度会少一些,各有长短,大家甄别着用。

附国内外金融数据接口大全

  • findatapy - 获取彭博终端,Quandl和雅虎财经的数据
  • googlefinance - 从谷歌财经获取实时股票价格
  • yahoo-finance - 从雅虎财经下载股票报价,历史价格,产品信息和财务报表
  • pandas-datareader - 从多个数据源获取经济/金融时间序列,包括谷歌财经,雅虎财经,圣路易斯联储(FRED),OECD, Fama/French,世界银行,欧元区统计局等,是Pandas生态系统的重要组成
  • pandas-finance - 提供高级接口下载和分析金融时间序列
  • pyhoofinance - 从雅虎财经批量获取股票数据
  • yfinanceapi - 从雅虎财经获取数据
  • yql-finance - 从雅虎财经获取数据
  • ystockquote - 从雅虎财经获取实时报价
  • wallstreet - 实时股票和期权报价
  • stock_extractor - 从网络上爬取股票信息
  • Stockex - 从雅虎财经获取数据
  • finsymbols - 获取全美证券交易所,纽约证券交易所和纳斯达克上市公司的详细数据
  • inquisitor - 从Econdb获取经济数据,Econdb是全球经济指标聚合器
  • chinesestockapi - 获取A股数据
  • exchange - 获取最新的汇率报价
  • ticks - 命令行程序,获取股票报价
  • pybbg - 彭博终端COM的Python接口
  • ccy - 获取外汇数据
  • tushare - 获取中国股票,基金,债券和期货市场的历史数据
  • jsm - 获取日本股票市场的历史数据
  • cn_stock_src - 从不同数据源获取中国的股票数据
  • coinmarketcap - 从coinmarketcap获取数字货币数据
  • after-hours - 获取美股盘前和盘后的市场价格
  • bronto-python - 整合Bronto API接口
  • pytdx - 获取中国国内股票的实时报价
  • pdblp - 整合Pandas和彭博终端的公共接口
  • tiingo - 从Tiingo平台获取股票日K线和实时报价/新闻流
  • IEX - 从IEX交易所获取股票的实时报价和历史数据
  • alpaca-trade-api - 从Alpaca平台获取股票实时报价和历史数据,并提供交易接口交易美股
  • metatrader5 - 集成Python和MQL5交易平台,适合外汇交易
  • akshare - 获取中国股票,基金,债券和宏观经济数据
  • yahooquery - 从雅虎财经获取数据
  • investpy - 从英为财经(Investing.com)获取数据
  • yliveticker - 从雅虎财经通过Websocket获取实时报价

如果文章对你有帮助,欢迎转发/点赞/收藏~

0 人点赞