diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/bbg_cds_quotes.py | 4 | ||||
| -rw-r--r-- | python/bbg_index_quotes.py | 4 | ||||
| -rw-r--r-- | python/bespoke_utils.py | 8 | ||||
| -rw-r--r-- | python/build_default_table.py | 36 | ||||
| -rw-r--r-- | python/markit/__main__.py | 21 | ||||
| -rw-r--r-- | python/new_index_series.py | 8 | ||||
| -rw-r--r-- | python/position.py | 6 | ||||
| -rw-r--r-- | python/process_queue.py | 4 |
8 files changed, 54 insertions, 37 deletions
diff --git a/python/bbg_cds_quotes.py b/python/bbg_cds_quotes.py index c0863708..64fa944d 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 BBG_IP, init_bbg_session, retrieve_data +from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data from markit.import_quotes import get_basketids, get_bbg_tickers from serenitas.utils import SerenitasFileHandler from serenitas.utils.db import dbconn @@ -20,7 +20,7 @@ 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(BBG_IP) as session: +with init_bbg_session() as session: for pcs in ["CBGN", "CMAN"]: # , 'CMAN', 'MSG1']: logger.info(f"Retrieving quotes for {pcs}") r[pcs] = retrieve_data( diff --git a/python/bbg_index_quotes.py b/python/bbg_index_quotes.py index bc25c9f5..e3123068 100644 --- a/python/bbg_index_quotes.py +++ b/python/bbg_index_quotes.py @@ -1,4 +1,4 @@ -from serenitas.analytics.bbg_helpers import init_bbg_session, BBG_IP, retrieve_data +from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data import datetime from serenitas.utils.db import dbconn @@ -34,7 +34,7 @@ sql_str_spread = ( start_date = datetime.date.today() - datetime.timedelta(days=7) # one weeek of overlap conn = dbconn("serenitasdb") -with init_bbg_session(BBG_IP) as session: +with init_bbg_session() as session: 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 diff --git a/python/bespoke_utils.py b/python/bespoke_utils.py index 3f005ba1..eced5706 100644 --- a/python/bespoke_utils.py +++ b/python/bespoke_utils.py @@ -1,4 +1,4 @@ -from bbg_helpers import BBG_IP, init_bbg_session, retrieve_data +from bbg_helpers import init_bbg_session, retrieve_data from psycopg2.extensions import connection from typing import List, Dict, Tuple @@ -9,7 +9,7 @@ import pandas as pd def insert_bbg_tickers( conn: connection, tickers: List[str] ) -> Dict[str, Tuple[str, str]]: - """ insert bbg tickers into the database + """insert bbg tickers into the database Parameters ---------- @@ -32,7 +32,7 @@ def insert_bbg_tickers( "restructuring_type_short_code", ] securities = [f"{t} Corp" for t in tickers] - with init_bbg_session(BBG_IP) as session: + with init_bbg_session() as session: ticker_data = retrieve_data(session, securities, fields) placeholder = ",".join(["%s"] * 8) sql_str = ( @@ -84,7 +84,7 @@ def backpopulate_short_codes(conn: connection): with conn.cursor() as c: c.execute("SELECT cds_curve[6] from bbg_issuers") securities = [f"{t} Corp" for t, in c] - with init_bbg_session(BBG_IP) as session: + with init_bbg_session() as session: short_code = retrieve_data( session, securities, ["restructuring_type_short_code", "cds_company_id"] ) diff --git a/python/build_default_table.py b/python/build_default_table.py index 5842d2ea..7a91ca83 100644 --- a/python/build_default_table.py +++ b/python/build_default_table.py @@ -1,18 +1,26 @@ import pandas as pd -from bbg_helpers import init_bbg_session, BBG_IP, retrieve_data +from bbg_helpers import init_bbg_session, retrieve_data from utils.db import serenitas_engine -indices = ["CDX HY CDSI S19 5Y", "ITRX XOVER CDSI S25 5Y", - "CDX HY CDSI S15 5Y", "ITRX XOVER CDSI S20 5Y", - "CDX HY CDSI S25 5Y", - "ITRX EUR CDSI S17 10Y"] -with init_bbg_session(BBG_IP) as session: - d = retrieve_data(session, [f"{i} Corp" for i in indices], "CDS_INDEX_DEFAULT_INFORMATION") -df = pd.concat([v["CDS_INDEX_DEFAULT_INFORMATION"] for v in d.values()], - ignore_index=True) -df['Company ID'] = df['Company ID'].astype('int') -df = df[~df.duplicated(['Company ID'])] +indices = [ + "CDX HY CDSI S19 5Y", + "ITRX XOVER CDSI S25 5Y", + "CDX HY CDSI S15 5Y", + "ITRX XOVER CDSI S20 5Y", + "CDX HY CDSI S25 5Y", + "ITRX EUR CDSI S17 10Y", +] +with init_bbg_session() as session: + d = retrieve_data( + session, [f"{i} Corp" for i in indices], "CDS_INDEX_DEFAULT_INFORMATION" + ) + +df = pd.concat( + [v["CDS_INDEX_DEFAULT_INFORMATION"] for v in d.values()], ignore_index=True +) +df["Company ID"] = df["Company ID"].astype("int") +df = df[~df.duplicated(["Company ID"])] breakpoint() -df = df[['Company ID', 'Auction Date', 'Event Date', 'CDS Recovery Rate']] -df.columns = ['id', 'auction_date', 'event_date', 'recovery'] -df.to_sql('defaulted', serenitas_engine, if_exists='append', index=False) +df = df[["Company ID", "Auction Date", "Event Date", "CDS Recovery Rate"]] +df.columns = ["id", "auction_date", "event_date", "recovery"] +df.to_sql("defaulted", serenitas_engine, if_exists="append", index=False) diff --git a/python/markit/__main__.py b/python/markit/__main__.py index fb309ad7..7041e160 100644 --- a/python/markit/__main__.py +++ b/python/markit/__main__.py @@ -23,7 +23,7 @@ from serenitas.utils import SerenitasFileHandler from serenitas.utils.db import serenitas_pool from serenitas.analytics.yieldcurve import CurveType from serenitas.analytics.utils import prev_business_day -from serenitas.analytics.bbg_helpers import init_bbg_session, BBG_IP +from serenitas.analytics.bbg_helpers import init_bbg_session # parse arguments parser = argparse.ArgumentParser() @@ -142,9 +142,18 @@ elif args.rates: else: logger.info(f"Downloaded {curr} rates") break - with init_bbg_session(BBG_IP) as session: - for c in CurveType: - update_bbg_members(conn, session, c, workdate) - update_bbg_desc(conn, session, workdate) - get_bbg_quotes(conn, session, workdate) + + retry = 0 + max_tries = 2 + while retry < max_tries: + try: + with init_bbg_session() as session: + for c in CurveType: + update_bbg_members(conn, session, c, workdate) + update_bbg_desc(conn, session, workdate) + get_bbg_quotes(conn, session, workdate) + except RuntimeError: + retry += 1 + else: + break serenitas_pool.putconn(conn) diff --git a/python/new_index_series.py b/python/new_index_series.py index 861ab043..d3843412 100644 --- a/python/new_index_series.py +++ b/python/new_index_series.py @@ -1,4 +1,4 @@ -from serenitas.analytics.bbg_helpers import BBG_IP, init_bbg_session, retrieve_data +from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data from serenitas.analytics.utils import roll_date from psycopg2.extras import execute_values @@ -31,7 +31,7 @@ def new_basket_id( ): if red is None: name = bbg_name(index_type, series, version=version) - with init_bbg_session(BBG_IP) as session: + with init_bbg_session() as session: data = retrieve_data(session, [name], ["CDS_RED_PAIR_CODE"]) red = data[name]["CDS_RED_PAIR_CODE"] sql_str = ( @@ -57,7 +57,7 @@ def new_basket_id( def get_index_members(index_type: str, series: int) -> pd.DataFrame: name = bbg_name(index_type, series) - with init_bbg_session(BBG_IP) as session: + with init_bbg_session() as session: df = retrieve_data(session, [name], ["INDX_MEMBERS"]) df = df[name]["INDX_MEMBERS"] tickers = df["column 4"] @@ -101,7 +101,7 @@ def add_missing_issuers(conn, df): ) df = df.reset_index().set_index(["company_id", "seniority"]) df = df.loc[df.index.difference(all_company_ids.index)] - with init_bbg_session(BBG_IP) as session: + with init_bbg_session() as session: tickers = [f"{t} Corp" for t in df.ticker] bbg_data = retrieve_data( session, diff --git a/python/position.py b/python/position.py index 064feb41..e49dc2aa 100644 --- a/python/position.py +++ b/python/position.py @@ -1,4 +1,4 @@ -from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data, BBG_IP +from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data from itertools import product import datetime import numpy as np @@ -377,7 +377,7 @@ if __name__ == "__main__": dawn_conn = dawn_engine.raw_connection() serenitas_conn = serenitas_pool.getconn() - with init_bbg_session(BBG_IP) as session: + with init_bbg_session() as session: update_securities(dawn_engine, session, args.workdate) populate_cashflow_history( dawn_engine, session, args.workdate, ("SERCGMAST", "BRINKER", "BOWDST") @@ -394,7 +394,7 @@ if __name__ == "__main__": # init_swap_rates(serenitas_conn, session, start_date=pd.datetime(2012, 2, 2)) # for source in ['BBIR', 'ICPL', 'CMPN']: # for vol_type in ["N", "V"]: - # with init_bbg_session(BBG_IP) as session: + # with init_bbg_session() as session: # data = init_swaption_vol(session, source=source, # vol_type=vol_type, # start_date=datetime.date(2001, 1, 1)) diff --git a/python/process_queue.py b/python/process_queue.py index 76f5aa2a..d18d99d9 100644 --- a/python/process_queue.py +++ b/python/process_queue.py @@ -21,7 +21,7 @@ except KeyError: from collections import defaultdict from dates import bus_day from pickle import dumps, loads -from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data, BBG_IP +from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data from serenitas.utils.db import dbconn from serenitas.utils.exchange import ExchangeMessage, FileAttachment from serenitas.utils.remote import FtpClient, SftpClient @@ -820,7 +820,7 @@ if __name__ == "__main__": args = parser.parse_args() r = get_redis_queue() dawndb = dbconn("dawndb") - with init_bbg_session(BBG_IP) as session: + with init_bbg_session() as session: for trade_type in [ "cds", "swaption", |
