forked from marketneutral/misc_research
-
Notifications
You must be signed in to change notification settings - Fork 0
/
get_futures_data.py
40 lines (32 loc) · 1.19 KB
/
get_futures_data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import quandl
import pandas as pd
import trading_calendars
from six import iteritems
items = {
'CHRIS/CME_US1': 'US1.csv',
'CHRIS/CME_US2': 'US2.csv',
'CHRIS/CME_TY1': 'TY1.csv',
'CHRIS/CME_FV1': 'FV1.csv',
'CHRIS/CME_TU1': 'TU1.csv'
}
quandl.ApiConfig.api_key = "TDCy_PPtqVsQCjxBJpsb"
for k,v in items.iteritems():
mydata = quandl.get(k)
mydata.rename(columns={'Settle':'Close'}, inplace=True)
mydata.columns = map(str, mydata.columns)
mydata.columns = map(str.lower, mydata.columns)
mydata = mydata[['open', 'high', 'low', 'close', 'volume']]
mydata = mydata['1991':]
cal = trading_calendars.get_calendar('NYSE')
dates = cal.sessions_in_range('1991', '2017').tz_localize(None)
dates_df = pd.DataFrame(index=dates)
dates_df = dates_df.join(mydata)
dates_df.to_csv('./futures/daily/'+v)
# Change benchmark.py to this to kill it
import pandas as pd
from trading_calendars import get_calendar
def get_benchmark_returns(symbol, first_date, last_date):
cal = get_calendar('NYSE')
dates = cal.sessions_in_range(first_date, last_date)
data = pd.DataFrame(index=dates, columns=['Close'])
return data.sort_index().pct_change(1).iloc[0:]