《Python算法交易实战》——yfinace获取yahoo财经数据

因为从2021 年11 月1 日起,用户无法从中国大陆地区使用Yahoo 产品与服务
所以下面两个错误,都是代理配置的问题
error:No timezone found, symbol may be delisted

error:No data found for this date range, symbol may be delisted

以下是解决办法:
1.实现强劲上网,保证你可以在浏览器访问google
2.配置主机代理,其中10809是我的端口号

3.配置pythoncharm的代理,看图即可,和第二步的内容设置成一样的

4.将通过pip安装的yfinace替换为github中hotfix/proxy分支(分支地址:https://github.com/ranaroussi/yfinance/tree/hotfix/proxy
4.1 步骤1:将分支地址中的yfinace下载到本地

4.2 步骤2:用下载到本地的yfinace(可以通过everything查找,后面部分的路径应该和我差不多)中的部分文件替换pip安装的yfinace部分文件

5..编写代码从yahoo获取数据,且在代码里也要写你的代理配置

import yfinance as yf
msft = yf.Ticker("MSFT")
stock_price = yf.download("AAPL", start="2017-01-01", end="2017-04-30", proxy="http://127.0.0.1:10809")
print(stock_price)

6.成功


环境如下:
yfinance 0.2.17
pandas 1.5.3
pandas-datareader 0.10.0
python 3.8

尤其注意,pandas如果是2.0.0的话还是拿不到数据,这个我试过。

参考的链接:
【yfinance 国内使用,下载雅虎财经数据】:https://blog.csdn.net/weixin_42564150/article/details/129363755?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2~default~YuanLiJiHua~Position-3-129363755-blog-123414603.235^v29^pc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~YuanLiJiHua~Position-3-129363755-blog-123414603.235^v29^pc_relevant_default_base3&utm_relevant_index=6

posted @ 2023-04-15 09:42  大大大大大圣归来  阅读(3446)  评论(1编辑  收藏  举报