aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/futures.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/python/futures.py b/python/futures.py
index 8ce947db..630d3bf6 100644
--- a/python/futures.py
+++ b/python/futures.py
@@ -5,8 +5,8 @@ from common import root
import sys
import os
import pytz
-#from quantlib.time.date import Date
-#from quantlib.time import imm
+from quantlib.time.date import Date
+from quantlib.time import imm
ticker = "GE"
monthcodes = ["F", "G", "H", "J", "K", "M", "N", "Q", "U", "V", "X", "Z"]
@@ -30,11 +30,13 @@ else:
workdate = datetime.datetime.today()
# get next 8 futures maturities
-# code = imm.next_code(Date.from_datetime(workdate))
-# contracts = ["GE" + code]
-# for _ in range(7):
-# code = imm.next_code(code)
-# contracts.append("GE" + code)
+def QLnextIMMCodes(startdate, length = 8):
+ code = imm.next_code(Date.from_datetime(startdate))
+ contracts = ["GE" + code]
+ for _ in range(length - 1):
+ code = imm.next_code(code)
+ contracts.append("GE" + code)
+ return contracts
contracts = ["GE" + monthcodes[d.month-1] + str(d.year)[-1:] for d in nextIMMDates(workdate.date())]
@@ -44,8 +46,10 @@ if sys.version_info >= (3,3):
else:
ts = datetime.datetime.strftime(workdate, '%s') + '000'
-uri = "http://www.cmegroup.com/CmeWS/md/MDServer/V1/Venue/G/Exchange/XCME/FOI/FUT/Product/GE?currentTime={0}&contractCDs={1}".format(ts, ",".join(contracts))
-r = requests.get(uri)
+base_uri = "http://www.cmegroup.com/CmeWS/md/MDServer/V1/Venue/G/Exchange/XCME/FOI/FUT/Product/GE"
+payload = {'currentTime': ts,
+ 'contractCDs': ",".join(contracts)}
+r = requests.get(base_uri, params=payload)
quotes = json.loads(r.text)
central = pytz.timezone('US/Central')