aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/new_index_series.py59
1 files changed, 32 insertions, 27 deletions
diff --git a/python/new_index_series.py b/python/new_index_series.py
index d3843412..f9784f85 100644
--- a/python/new_index_series.py
+++ b/python/new_index_series.py
@@ -15,6 +15,9 @@ def bbg_name(index_type: str, series: int, tenor="5yr", version=None) -> str:
index_name = "ITRX"
elif index_type == "HYBB":
index_name = ""
+ elif index_type == "EUFS":
+ index_name = ""
+ index_type = "SNRFIN"
else:
index_name = "CDX"
return f"{index_name} {index_type} CDSI S{series} {f'V{version} ' if version else ''}{tenor[:2].upper()} Corp".lstrip()
@@ -22,6 +25,7 @@ def bbg_name(index_type: str, series: int, tenor="5yr", version=None) -> str:
def new_basket_id(
conn,
+ session,
index_type,
series,
version=1,
@@ -31,9 +35,8 @@ def new_basket_id(
):
if red is None:
name = bbg_name(index_type, series, version=version)
- with init_bbg_session() as session:
- data = retrieve_data(session, [name], ["CDS_RED_PAIR_CODE"])
- red = data[name]["CDS_RED_PAIR_CODE"]
+ data = retrieve_data(session, [name], ["CDS_RED_PAIR_CODE"])
+ red = data[name]["CDS_RED_PAIR_CODE"]
sql_str = (
"INSERT INTO index_version(index, series, version, redindexcode) "
"VALUES(%s, %s, %s, %s) RETURNING basketid"
@@ -55,15 +58,15 @@ def new_basket_id(
return basket_id
-def get_index_members(index_type: str, series: int) -> pd.DataFrame:
+def get_index_members(session, index_type: str, series: int) -> pd.DataFrame:
name = bbg_name(index_type, series)
- with init_bbg_session() as session:
- df = retrieve_data(session, [name], ["INDX_MEMBERS"])
- df = df[name]["INDX_MEMBERS"]
- tickers = df["column 4"]
- company_ids = retrieve_data(
- session, [t + " Corp" for t in tickers], ["cds_company_id"]
- )
+ df = retrieve_data(session, [name], ["INDX_MEMBERS"])
+ df = df[name]["INDX_MEMBERS"]
+ breakpoint()
+ tickers = df["column 4"]
+ company_ids = retrieve_data(
+ session, [t + " Corp" for t in tickers], ["cds_company_id"]
+ )
company_ids = pd.DataFrame.from_dict(company_ids, orient="index")
company_ids = company_ids.reset_index()
company_ids["index"] = company_ids["index"].str.replace(" Corp", "")
@@ -93,7 +96,7 @@ def new_index_series(conn, basketid, df):
conn.commit()
-def add_missing_issuers(conn, df):
+def add_missing_issuers(conn, session, df):
all_company_ids = pd.read_sql_query(
"SELECT company_id, seniority FROM bbg_issuers",
conn,
@@ -101,18 +104,19 @@ 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() as session:
- tickers = [f"{t} Corp" for t in df.ticker]
- bbg_data = retrieve_data(
- session,
- tickers,
- [
- "cds_restructuring_type",
- "cds_corp_tkr",
- "restructuring_type_short_code",
- "cds_curve_info",
- ],
- )
+ if df.empty:
+ return []
+ tickers = [f"{t} Corp" for t in df.ticker]
+ bbg_data = retrieve_data(
+ session,
+ tickers,
+ [
+ "cds_restructuring_type",
+ "cds_corp_tkr",
+ "restructuring_type_short_code",
+ "cds_curve_info",
+ ],
+ )
sql_str = (
"INSERT INTO bbg_issuers "
"(name, company_id, ticker, currency, seniority, doc_clause, cds_curve, short_code)"
@@ -151,8 +155,9 @@ if __name__ == "__main__":
from serenitas.utils.db import serenitas_pool
conn = serenitas_pool.getconn()
- df = get_index_members("HYBB", 35)
- missing = add_missing_issuers(conn, df)
- basketid = new_basket_id(conn, "HYBB", 35, coupon=500)
+ with init_bbg_session() as session:
+ df = get_index_members(session, "EUFS", 36)
+ missing = add_missing_issuers(conn, session, df)
+ basketid = new_basket_id(conn, session, "EUFS", 36, coupon=100)
new_index_series(conn, basketid, df)
serenitas_pool.putconn(conn)