aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/bbg_cds_quotes.py11
-rw-r--r--python/bbg_index_quotes.py14
-rw-r--r--python/position.py40
3 files changed, 36 insertions, 29 deletions
diff --git a/python/bbg_cds_quotes.py b/python/bbg_cds_quotes.py
index 64fa944d..b921b838 100644
--- a/python/bbg_cds_quotes.py
+++ b/python/bbg_cds_quotes.py
@@ -1,7 +1,7 @@
import datetime
import logging
-from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data
+from serenitas.analytics.bbg_helpers import bbg_retry, retrieve_data
from markit.import_quotes import get_basketids, get_bbg_tickers
from serenitas.utils import SerenitasFileHandler
from serenitas.utils.db import dbconn
@@ -19,14 +19,19 @@ logger.info("got bbg tickers")
securities = [f"{ticker} Curncy" for ticker in bbg_tickers]
fields = ["UPFRONT_RUNNING_SPREAD", "UPFRONT_BID", "UPFRONT_ASK", "CDS_RECOVERY_RT"]
-r = {}
-with init_bbg_session() as session:
+
+@bbg_retry(2)
+def bbg_call(session, securities, fields, r):
for pcs in ["CBGN", "CMAN"]: # , 'CMAN', 'MSG1']:
logger.info(f"Retrieving quotes for {pcs}")
r[pcs] = retrieve_data(
session, securities, fields, overrides={"PRICING_SOURCE": pcs}
)
+
+r = {}
+bbg_call(securities, fields, r)
+
sql_str = f"INSERT INTO cds_quotes VALUES({','.join(['%s'] * 8)})"
diff --git a/python/bbg_index_quotes.py b/python/bbg_index_quotes.py
index e3123068..0e537b26 100644
--- a/python/bbg_index_quotes.py
+++ b/python/bbg_index_quotes.py
@@ -1,9 +1,9 @@
-from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data
+from serenitas.analytics.bbg_helpers import bbg_retry, retrieve_data
import datetime
from serenitas.utils.db import dbconn
securities = {}
-for series in range(11, 36):
+for series in range(11, 38):
for index_type in ["IG", "HY"]:
for t in [3, 5, 7, 10]:
securities[f"CDX {index_type} CDSI S{series} {t}Y Corp"] = (
@@ -11,7 +11,7 @@ for series in range(11, 36):
index_type,
f"{t}yr",
)
-for series in range(12, 35):
+for series in range(12, 37):
for index_type in ["EUR", "XOVER"]:
for t in [3, 5, 7, 10]:
securities[f"ITRX {index_type} CDSI S{series} {t}Y Corp"] = (
@@ -34,7 +34,10 @@ sql_str_spread = (
start_date = datetime.date.today() - datetime.timedelta(days=7) # one weeek of overlap
conn = dbconn("serenitasdb")
-with init_bbg_session() as session:
+
+
+@bbg_retry(2)
+def bbg_call(session, securities, start_date, conn, sql_str_price, sql_str_spread):
d = retrieve_data(session, securities.keys(), fields=["TICKER", "VERSION"])
ticker_mapping = {
v["TICKER"]: securities[k] + (v["VERSION"],) for k, v in d.items() if v
@@ -65,3 +68,6 @@ with init_bbg_session() as session:
],
)
conn.commit()
+
+
+bbg_call(securities, start_date, conn, sql_str_price, sql_str_spread)
diff --git a/python/position.py b/python/position.py
index 6c071097..f3d79909 100644
--- a/python/position.py
+++ b/python/position.py
@@ -1,4 +1,4 @@
-from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data
+from serenitas.analytics.bbg_helpers import bbg_retry, retrieve_data
from itertools import product
import datetime
import numpy as np
@@ -377,27 +377,23 @@ if __name__ == "__main__":
dawn_conn = dawn_engine.raw_connection()
serenitas_conn = serenitas_pool.getconn()
- retry = 0
- max_tries = 2
- while retry < max_tries:
- try:
- with init_bbg_session() as session:
- update_securities(dawn_engine, session, args.workdate)
- populate_cashflow_history(
- dawn_engine,
- session,
- args.workdate,
- ("SERCGMAST", "BRINKER", "BOWDST"),
- )
- update_fx(dawn_conn, session, ["EURUSD", "CADUSD"])
- update_swap_rates(serenitas_conn, session)
- update_cash_rates(serenitas_conn, session)
- for vol_type in ["N", "V"]:
- update_swaption_vol(serenitas_conn, session, vol_type=vol_type)
- except RuntimeError:
- retry += 1
- else:
- break
+
+ @bbg_retry(2)
+ def bbg_call(session, dawn_engine, dawn_conn, serenitas_conn, workdate):
+ update_securities(dawn_engine, session, args.workdate)
+ populate_cashflow_history(
+ dawn_engine,
+ session,
+ args.workdate,
+ ("SERCGMAST", "BRINKER", "BOWDST"),
+ )
+ update_fx(dawn_conn, session, ["EURUSD", "CADUSD"])
+ update_swap_rates(serenitas_conn, session)
+ update_cash_rates(serenitas_conn, session)
+ for vol_type in ["N", "V"]:
+ update_swaption_vol(serenitas_conn, session, vol_type=vol_type)
+
+ bbg_call(dawn_engine, dawn_conn, serenitas_conn, args.workdate)
serenitas_pool.putconn(serenitas_conn)
# with init_bbg_session(BBG_IP) as session:
# init_fx(session, engine, pd.datetime(2013, 1, 1))