yfinance Python Tutorial (2022) - Analyzing Alpha
https://www.youtube.com/watch?v=SxIwqdedomg 讲的很详细
yfinance是什么?
yfinance 是一个流行的开源库,由 Ran Aroussi 开发,用于访问雅虎财经上可用的财务数据。
雅虎财经提供了大量关于股票、债券、货币和加密货币的市场数据。 它还提供市场新闻、报告和分析,以及其他选项和基本面数据,使其与一些竞争对手区分开来。
雅虎财经曾经有自己的官方 API,但在 2017 年 5 月 15 日,由于数据被广泛滥用,该 API 已停用。
如今,存在一系列非官方 API 和库来访问相同的数据,其中包括 yfinance。
yfinance
的旧名称是 fix-yahoo-finance
,它于 2019 年 5 月 26 日重新命名,同时它进行了修改以解决一些可用性问题。
为了确保向后兼容,fix-yahoo-finance
现在无论如何都会导入和使用 yfinance,但 Ran Aroussi 仍然建议直接安装和使用 yfinance。在本文中,我们将主要关注 yfinance 库。
为什么要使用 yfinance 库?
- 免费
- 快速轻松地进行设置
- 简单
- 数据粒度高(1min/2min/5min数据)
- 直接在 Pandas dataframes/series 中返回数据
正如我们刚刚提到的 yfinance 是完全开源和免费的。 还有其他方法可以访问雅虎财经数据,有些是免费的,有些是付费的,一些需要付费的选项有一定的好处,比如确保对解决方案进行一定程度的维护,但我们都喜欢免费!
安装更容易。 yfinance 只有 4 个依赖项,所有这些都随 Anaconda 一起提供,并且完全安装在一行代码中。 无需创建帐户,也无需注册和使用 API 密钥!
yfinance 的设计非常 Pythonic,而且非常精简。 就像为特定的股票代码创建股票代码对象一样简单,然后只需调用此对象上的所有方法。 像这样:
import yfinance as yf
apple= yf.Ticker("aapl")
# show actions (dividends, splits)
apple.actions
# show dividends
apple.dividends
# show splits
apple.splits
# + other methods etc.
我们稍后会进一步分解该代码!
此外,文档简明扼要 - 适合在单个页面上,并且方法名称非常易于解释。
数据粒度高。 yfinance 的一个很酷的功能是您可以获得高度精炼的数据,一直到 5 分钟、3 分钟甚至 1 分钟的数据! 可用的全范围间隔是:
1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo
然而,重要的是要注意 1m 数据只能检索最近 7 天的数据,而任何日内(间隔 <1d)数据只能检索最近 60 天。
yfinance 还可以轻松地直接在 padas dataframes 或者 series中返回数据。 这与访问 Yahoo Finance 数据的一些选项形成对比,在这些选项中,您将获得需要解析所需特定信息的冗长 JSON,并且必须自己手动转换为dataframes。
yfinance 库有哪些不足?
- 缺乏专业功能
- 非官方/不一定维护
- 可以让自己限速/列入黑名单
缺乏专门的功能。尽管您可以使用它来获取大量核心数据,包括期权和基本面数据,但 yfinance 没有提供一种方法来抓取雅虎财经上可用的任何新闻报道/分析。
如果您想构建部分依赖于情感分析的模型,这显然并不理想,因此如果您想要此类数据,您可能需要查看提供此类数据的 RapidAPI
。
此外,其他市场数据替代品通常包括一些额外内容。 例如,Alpha Vantage 为您提供了计算各种技术分析指标的模块——如果您想使用其中的任何一个构建算法,显然会节省大量的精力! yfinance 只提供基础知识。
yfinance 主要调用 Yahoo Finan