aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/analytics/basket_index.py4
-rw-r--r--sql/dawn.sql2
-rw-r--r--sql/serenitasdb.sql6
3 files changed, 6 insertions, 6 deletions
diff --git a/python/analytics/basket_index.py b/python/analytics/basket_index.py
index ea61f186..8b8c8ee1 100644
--- a/python/analytics/basket_index.py
+++ b/python/analytics/basket_index.py
@@ -43,7 +43,7 @@ class BasketIndex(CreditIndex):
):
self.index_type = index_type
self.series = series
- if index_type == "HY":
+ if index_type in ("HY", "HY.BB"):
self.recovery = 0.3
else:
self.recovery = 0.4
@@ -259,7 +259,7 @@ class BasketIndex(CreditIndex):
instead of one-year theta"""
try:
index_quotes = self._get_quotes()
- except ValueError:
+ except (ValueError, IndexError):
index_quotes = {}
if maturity is None:
r = []
diff --git a/sql/dawn.sql b/sql/dawn.sql
index a3434c36..ba00eea3 100644
--- a/sql/dawn.sql
+++ b/sql/dawn.sql
@@ -36,7 +36,7 @@ CREATE type day_count AS ENUM('ACT/360', 'ACT/ACT', '30/360', 'ACT/365');
CREATE type bus_day_convention AS ENUM('Modified Following', 'Following',
'Modified Preceding', 'Preceding', 'Second-Day-After', 'End-of-Month');
CREATE type last_period_convention AS ENUM('Adjusted', 'Unadjusted');
-CREATE type index_type AS ENUM('IG', 'HY', 'EU', 'LCDX', 'XO', 'BS');
+CREATE type index_type AS ENUM('IG', 'HY', 'EU', 'LCDX', 'XO', 'BS', 'HYBB');
CREATE TYPE tenor AS ENUM('6mo', '1yr', '2yr', '3yr', '4yr', '5yr', '7yr', '10yr');
CREATE TYPE swap_type AS ENUM('CD_INDEX', 'CD_INDEX_TRANCHE', 'CD_BASKET_TRANCHE',
diff --git a/sql/serenitasdb.sql b/sql/serenitasdb.sql
index e27f1c62..dc383a5c 100644
--- a/sql/serenitasdb.sql
+++ b/sql/serenitasdb.sql
@@ -273,7 +273,7 @@ CREATE TYPE bbgSource AS ENUM('MSG1', 'CBIN', 'CBGN', 'MKIT', 'CMAN');
CREATE TYPE DocClause AS ENUM('No Restructuring', 'Modified Modified Restructurin', 'Full Restructuring', 'Modified Restructuring');
CREATE TYPE ShortCode AS ENUM('CR14', 'XR14', 'MM14');
CREATE TYPE tenor AS ENUM('6mo', '1yr', '2yr', '3yr', '4yr', '5yr', '7yr', '10yr');
-CREATE TYPE index_type AS ENUM('IG', 'HY', 'EU', 'LCDX', 'XO', 'BS');
+CREATE TYPE index_type AS ENUM('IG', 'HY', 'EU', 'LCDX', 'XO', 'BS', 'HY.BB');
CREATE TYPE BBG_CC AS ENUM('OC');
CREATE TABLE CDS_Issuers_old(
@@ -406,8 +406,8 @@ CREATE OR REPLACE FUNCTION nameToBasketID(index_name varchar(4), p_date date) RE
p_series smallint;
p_basketid integer;
BEGIN
- p_index := upper(left(index_name, 2))::index_type;
- p_series := right(index_name, -2);
+ p_index := upper(substring(index_name, '[A-Za-z]{2,4}'))::index_type;
+ p_series := substring(index_name, '[0-9]{1,2}')::smallint;
SELECT MIN(basketid) INTO p_basketid FROM index_version WHERE Index=p_index and
Series=p_series and lastdate>=p_date;
RETURN p_basketid;