diff options
| -rw-r--r-- | python/analytics/basket_index.py | 4 | ||||
| -rw-r--r-- | sql/dawn.sql | 2 | ||||
| -rw-r--r-- | sql/serenitasdb.sql | 6 |
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;
|
