我知道如何获得个股。我如何获取整个索引的数据,比如 DJI? https://www.google.com/finance?q=INDEXDJX%3A.DJI&ei=zsVZU4iADYKI6AGoXA
我想尽可能早地分析整个股市
start, end = dt.datetime(1950, 1, 1), dt.datetime(2013, 12, 31)
data = web.DataReader('.DJI', 'yahoo', start, end)
我知道如何获得个股。我如何获取整个索引的数据,比如 DJI? https://www.google.com/finance?q=INDEXDJX%3A.DJI&ei=zsVZU4iADYKI6AGoXA
我想尽可能早地分析整个股市
start, end = dt.datetime(1950, 1, 1), dt.datetime(2013, 12, 31)
data = web.DataReader('.DJI', 'yahoo', start, end)
Google Finance 和 Yahoo Finance 以不同的方式处理它们的指数符号。谷歌将道琼斯指数表示为“.DJI”,而在雅虎则表示为“^DJI”。
出于某种原因,当我运行代码时,Pandas 无法从雅虎找到道琼斯指数的数据,但它可以找到标准普尔和纳斯达克的数据。
# this works
web.DataReader('^GSPC','yahoo') # S&P 500
web.DataReader('^IXIC','yahoo') # NASDAQ
# this doesn't
web.DataReader('^DJI','yahoo') # Dow
如果您特别想要道琼斯指数数据,Pandas 还允许您使用 FRED 数据,因此您可以选择采用该方法,但它不会包含所有价格数据,仅包含收盘价。
web.DataReader('DJIA','fred')
另一种可能性是使用Quandl。他们拥有大量可能对市场分析有用的数据集(金融、经济、人口统计等)。虽然它仍然只能获得收盘价并且需要知道它们有时神秘的“代码”,但这里有一个示例:
import Quandl
dow_code = 'BCB/UDJIAD1'
Quandl.get(dow_code)
您可能需要创建一个 Quandl 帐户(它是免费的)以获取允许外部挖掘到其数据库的授权令牌,但这是您的另一种可能的解决方法:)
希望这可以帮助。