diff options
Diffstat (limited to 'python/markit/rates.py')
| -rw-r--r-- | python/markit/rates.py | 10 |
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 |
