aboutsummaryrefslogtreecommitdiffstats
path: root/python/markit
diff options
context:
space:
mode:
Diffstat (limited to 'python/markit')
-rw-r--r--python/markit/rates.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/python/markit/rates.py b/python/markit/rates.py
index 147ced4f..25e7ad80 100644
--- a/python/markit/rates.py
+++ b/python/markit/rates.py
@@ -7,9 +7,12 @@ import pandas as pd
import requests
import xml.etree.ElementTree as ET
import zipfile
+from yieldcurve import YC, ql_to_jp
+import lz4
+from pickle import dumps
def downloadMarkitIRData(download_date = datetime.date.today(),
- currency = "USD"):
+ currency="USD"):
conn = dbconn("serenitasdb")
## T+1 rates are published in the evening
effective_date = download_date + datetime.timedelta(days = 1)
@@ -32,6 +35,11 @@ def downloadMarkitIRData(download_date = datetime.date.today(),
MarkitData = {'deposits': list(deposits),
'swaps': list(swaps),
'effectiveasof': pd.Timestamp(effectiveasof).date()}
+ ql_yc = YC(currency=currency, MarkitData=MarkitData)
+ jp_yc = ql_to_jp(ql_yc)
+ sql_str = "INSERT INTO {}_curves VALUES(%s, %s) ON CONFLICT DO NOTHING".format(currency)
+ with conn.cursor() as c:
+ c.execute(sql_str, (effective_date, lz4.block.compress(dumps(jp_yc))))
instruments = MarkitData['deposits'] + MarkitData['swaps']
names = ",".join(['"{}"'.format(r[0]) for r in instruments])
values = ",".join(["%s"] * (len(instruments) + 1)) # +1 for effective_date