aboutsummaryrefslogtreecommitdiffstats
path: root/python/markit
diff options
context:
space:
mode:
Diffstat (limited to 'python/markit')
-rw-r--r--python/markit/rates.py87
1 files changed, 49 insertions, 38 deletions
diff --git a/python/markit/rates.py b/python/markit/rates.py
index 8f1c0ffb..e7c35ade 100644
--- a/python/markit/rates.py
+++ b/python/markit/rates.py
@@ -192,52 +192,63 @@ def update_bbg_desc(conn, session, download_date):
"INT_RATE_FUT_END_DT",
"CRNCY",
"FUT_NOTL_BOND",
+ "MATURITY",
]
data = retrieve_data(session, missing_tickers, fields)
with conn.cursor() as c:
for k, v in data.items():
- if v["SECURITY_TYP2"] == "Future":
- if v["FUT_NOTL_BOND"] == "Euro$ 3Mo TD":
+ match v["SECURITY_TYP2"]:
+ case "Future":
+ if v["FUT_NOTL_BOND"] == "Euro$ 3Mo TD":
+ params = (
+ k,
+ "FUT",
+ v["CRNCY"],
+ "3M",
+ v["INT_RATE_FUT_START_DT"].date(),
+ v["INT_RATE_FUT_END_DT"].date(),
+ )
+ elif v["FUT_NOTL_BOND"] == "1mo SOFR":
+ params = (
+ k,
+ "SFR_FUT",
+ v["CRNCY"],
+ "1M",
+ v["INT_RATE_FUT_START_DT"].date(),
+ v["INT_RATE_FUT_END_DT"].date(),
+ )
+ elif v["FUT_NOTL_BOND"] == "3mo SOFR":
+ params = (
+ k,
+ "SFR_FUT",
+ v["CRNCY"],
+ "3M",
+ v["INT_RATE_FUT_START_DT"].date(),
+ v["INT_RATE_FUT_END_DT"].date(),
+ )
+ else:
+ raise ValueError(f"Unknown future type {k['FUT_NOTL_BOND']}")
+ case "FIXED_FLOAT":
+ params = (k, "SWP", v["CRNCY"], v["SECURITY_TENOR_TWO"], None, None)
+ case "FIXED_FLOAT_OIS":
+ params = (k, "OIS", v["CRNCY"], v["SECURITY_TENOR_TWO"], None, None)
+ case "DEPOSIT":
+ params = (k, "DEP", v["CRNCY"], v["SECURITY_TENOR_ONE"], None, None)
+ case "Index":
+ params = (k, "IND", v["CRNCY"], None, None, None)
+ case "BASIS":
params = (
k,
- "FUT",
+ "BASIS",
v["CRNCY"],
- "3M",
- v["INT_RATE_FUT_START_DT"].date(),
- v["INT_RATE_FUT_END_DT"].date(),
+ v["SECURITY_TENOR_TWO"],
+ None,
+ None,
)
- elif v["FUT_NOTL_BOND"] == "1mo SOFR":
- params = (
- k,
- "SFR_FUT",
- v["CRNCY"],
- "1M",
- v["INT_RATE_FUT_START_DT"].date(),
- v["INT_RATE_FUT_END_DT"].date(),
- )
- elif v["FUT_NOTL_BOND"] == "3mo SOFR":
- params = (
- k,
- "SFR_FUT",
- v["CRNCY"],
- "3M",
- v["INT_RATE_FUT_START_DT"].date(),
- v["INT_RATE_FUT_END_DT"].date(),
- )
- else:
- raise ValueError(f"Unknown future type {k['FUT_NOTL_BOND']}")
- elif v["SECURITY_TYP2"] == "FIXED_FLOAT":
- params = (k, "SWP", v["CRNCY"], v["SECURITY_TENOR_TWO"], None, None)
- elif v["SECURITY_TYP2"] == "FIXED_FLOAT_OIS":
- params = (k, "OIS", v["CRNCY"], v["SECURITY_TENOR_TWO"], None, None)
- elif v["SECURITY_TYP2"] == "DEPOSIT":
- params = (k, "DEP", v["CRNCY"], v["SECURITY_TENOR_ONE"], None, None)
- elif v["SECURITY_TYP2"] == "Index":
- params = (k, "IND", v["CRNCY"], None, None, None)
- elif v["SECURITY_TYP2"] == "BASIS":
- params = (k, "BASIS", v["CRNCY"], v["SECURITY_TENOR_TWO"], None, None)
- else:
- raise ValueError("Unkown security type")
+ case "FORWARD":
+ params = (k, "FWD", v["CRNCY"], v["MATURITY"], None, None)
+ case _:
+ raise ValueError("Unkown security type")
c.execute(
"INSERT INTO bbg_rate_tickers VALUES(%s, %s, %s, %s, %s, %s) "
"ON CONFLICT (bbg_ticker) DO UPDATE SET end_date=EXCLUDED.end_date, "