最近在学习用Python编程量化交易,在下载数据的时候发现了以下问题。
之前可以从雅虎财经下载股票数据。
比如下载601318的股票数据代码是:
import pandas_datareader as web
start_date = '2020-01-01'
end_date = '2020-03-18'
data = web.data.DataReader('601318.ss','yahoo',start_date,end_date)
但是现在(看了看,是从2021年开始),发现雅虎不提供中国服务了,所以通过以上的方法就无法获得数据源了。
通过在网上找方法,找到了以下解决方法,验证可行,可以通过。
首先安装fix-yahoo-finance,但是显示无法安装。原来是:fix-yahoo-finance的安装包被重命名为yfinance。
于是安装yfinance包。
pip install yfinance --upgrade --no-cache-dir。
然后导入模块,便可以使用。
import pandas_datareader.data as web #也可以用from pandas_datareader import data as web
import datetime
import fix_yahoo_finance as yf
yf.pdr_override() #这一行代码非常重要
start_date = datetime.datetime(2020,1,10)
end_date = datetime.datetime(2020,3,18)
data = web.get_data_yahoo('601318',start_date,end_date)
当然,跟电脑环境有关系,如果以上不能实现数据获取的,那就用 tushare 模块吧。
import tushare as ts
data = ts.get_hist_data('000001',start='2021-11-01',end='2021-12-01')
当然,前提条件是安装模块,pip install tushare --upgrade