使用 Tiingo 作为量化分析数据源
在学习量化交易过程中,数据源非常重要。之前一段时间使用的是 Quandl 提供的免费数据,然而现在发现它免费的数据里并没有 ETF,而且一些数据也有问题(例如 SHAK
拿不到正确的数据),遂决定寻找替换方案。从 pandas-datareader
了解到 Tiingo
这个数据源,一番测试下来,觉得符合自己目前的需求。
首先需要在 Tiingo 注册账号,得到自己的 API Key。
然后安装开源的 API 客户端 Tiingo Python。
$ pip install tiingo
使用方法:
from tiingo import TiingoClient
config = {}
config['session'] = True
config['api_key'] = "MY_SECRET_API_KEY"
client = TiingoClient(config)
historical_prices = client.get_ticker_price("GOOGL",
fmt='json',
startDate='2017-08-01',
endDate='2017-08-31',
frequency='daily')
get_ticker_price
取得的历史数据会是 json 格式的,为了方便使用,我对其进行了简单的封装,将值转换成 DataFrame
:
def get_df_from_tiingo(symbol, start, end):
df = pd.DataFrame(client.get_ticker_price(symbol,
startDate=start,
endDate=end,
frequency='daily'
))
df.set_index('date', inplace=True)
df.index = pd.to_datetime(df.index)
del df.index.name
return df