查看原文
其他

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

朱卫军 Python大数据分析 2022-10-07

最近这一两年,股市欣欣向荣,原来一直无法挣脱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安装,十分快捷。

pip install akshare

如何使用AKShare?

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

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

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

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

import akshare as ak
stock_zh_a_spot_df = ak.stock_zh_a_spot()
stock_zh_a_spot_df

字段解释:

获取某股票历史行情数据

以浦发银行(sh600000)为例:

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

字段解释:

获取公募开放式基金数据

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获取实时报价


加入知识星球【我们谈论数据科学】

500+小伙伴一起学习Python金融分析!








· 推荐阅读 ·

一行代码让matplotlib图表变高大上

pandas 1.3版本主要更新内容一览

使用Matplotlib & Cartopy绘制我国台风路径图


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存