diff options
| -rw-r--r-- | python/bbg_cds_quotes.py | 11 | ||||
| -rw-r--r-- | python/bbg_index_quotes.py | 14 | ||||
| -rw-r--r-- | python/position.py | 40 |
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)) |
