aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/bbg_cds_quotes.py4
-rw-r--r--python/bbg_index_quotes.py4
-rw-r--r--python/bespoke_utils.py8
-rw-r--r--python/build_default_table.py36
-rw-r--r--python/markit/__main__.py21
-rw-r--r--python/new_index_series.py8
-rw-r--r--python/position.py6
-rw-r--r--python/process_queue.py4
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",