3

我知道如何获得个股。我如何获取整个索引的数据,比如 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)
4

1 回答 1

7

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 帐户(它是免费的)以获取允许外部挖掘到其数据库的授权令牌,但这是您的另一种可能的解决方法:)

希望这可以帮助。

于 2014-05-02T07:05:00.210 回答