《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的话还是拿不到数据,这个我试过。