使用Python轻松获取股票&基金数据
最近这一两年,股市欣欣向荣,原来一直无法挣脱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获取实时报价