以下代码是从Quandl接收数据并且工作正常。我的问题是我不知道如何从雅虎而不是Quandl检索数据。是否有人可以告诉我如何在Yahoo数据源中使用相同的代码。它可以是任何乐器。最好的将是SPY etf。
import numpy as np
import pandas as pd
import quandl
import matplotlib.pyplot as plt
sp500_daily = quandl.get("CHRIS/CME_ES1",
start_date="2000-1-1",
end_date="2017-4-15")
sp500_daily.columns=['Open', 'High', 'Low', 'Close',
'Change', 'Settle', 'Volume',
'Open Interest']
multiplier = 50
# close[0] <= close[9] &&
# low[0] <= low[1] &&
# low[3] <= high[6] &&
# volume[0] <= volume[1]
signal = ((sp500_daily.Close <= sp500_daily.shift(9).Close) &
(sp500_daily.Low <= sp500_daily.shift(1).Low) &
(sp500_daily.shift(3).Low <= sp500_daily.shift(6).High) &
(sp500_daily.Volume <= sp500_daily.shift(1).Volume))
# hold time 1 day
profits = (signal * multiplier * (sp500_daily.shift(-1).Close -
sp500_daily.Close))
returns = (signal * (-1 + sp500_daily.shift(-1).Close / sp500_daily.Close))
profits.cumsum().plot()
plt.show()
答案 0 :(得分:1)
好像你可以使用yahoo finance api:https://pypi.python.org/pypi/yahoo-finance
我没有亲自使用它,但上面的链接似乎提供了很好的使用示例。
答案 1 :(得分:1)
您可以使用pandas_datareader(以前称为pandas.io)。
例如:
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime.today()
f = web.DataReader("^GSPC", 'yahoo', start, end)
print (f.tail())
查看他们的网站了解更多信息: https://pandas-datareader.readthedocs.io/en/latest/ pandas_datareader还支持谷歌财务,FRED等等。