2017-09-19 46 views
2

我可以使用以下代码从Google财经获取历史数据。但最古老的是2016-09-20。这对于后期测试来说太短了。我需要占地2008在哪里以及如何获取股票历史数据(至少涵盖了2008年)?

import pandas_datareader.data as web 

start = datetime.datetime(2002, 1, 1) 
end = datetime.datetime(2017, 1, 27) 

aapl = DataReader("AAPL", "google", start, end) 
print(len(aapl)) 
print(aapl.head()) 

年输出是如下的历史数据:

   Open High Low Close Volume 
Date            
2016-09-20 35.02 35.06 33.91 34.44 21192908 
2016-09-21 34.93 37.27 34.47 37.01 37582384 
2016-09-22 38.22 38.52 37.73 38.47 22289829 
2016-09-23 38.24 38.58 37.90 38.12 18705969 
2016-09-26 36.69 36.94 35.63 35.97 23382130 

回答

1

使用fix-yahoo-finance然后用yahoo,而不是谷歌作为源。 Google似乎最近一直在锁定大量数据。

首先你需要点子安装fix-yahoo-finance

然后:

from pandas_datareader import data 
import fix_yahoo_finance 

aapl = data.get_data_yahoo('AAPL', start='2000-01-01') 

print(aapl.head()) 
       Open  High  Low Close Adj Close  Volume 
Date                 
2000-01-03 3.74554 4.01786 3.63170 3.99777 3.59662 133949200 
2000-01-04 3.86607 3.95089 3.61384 3.66071 3.29338 128094400 
2000-01-05 3.70536 3.94866 3.67857 3.71429 3.34158 194580400 
2000-01-06 3.79018 3.82143 3.39286 3.39286 3.05240 191993200 
2000-01-07 3.44643 3.60714 3.41071 3.55357 3.19699 115183600 
+0

它的工作原理。但奇怪的是,我输出的第一行是'1999-12-31 3.604911 ...',而不是'2000-01-03 ...'。也许在2000-01-01市场关闭了?当我使用'2000-01-03'作为开始时,输出的第一行是'2000-01-03 ...' – thomas2013ch

+0

是的,大多数市场在元旦当天关闭。 –

相关问题