aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sql/dawn.sql44
1 files changed, 36 insertions, 8 deletions
diff --git a/sql/dawn.sql b/sql/dawn.sql
index 9b2558ec..366ae126 100644
--- a/sql/dawn.sql
+++ b/sql/dawn.sql
@@ -290,7 +290,6 @@ CREATE TABLE cds(id serial primary key,
account_code varchar(5) NOT NULL REFERENCES accounts(code),
cpty_id text,
globeop_id int,
- full_globeop_id text GENERATED ALWAYS AS ('CDS'||lpad(cast(globeop_id as text), 6, '0')|| 'K00SCLMA') STORED,
stale bool default true,
traded_level numeric(9, 5) NULL,
exercised_from text REFERENCES swaptions(dealid),
@@ -1488,7 +1487,7 @@ FROM swaptions a
LEFT JOIN (SELECT * FROM swaption_marks where date <= p_date) b USING (dealid)
LEFT JOIN index_desc c ON a.security_id=redindexcode AND a.maturity=c.maturity
LEFT JOIN (SELECT * FROM index_quotes WHERE date=p_date) d USING (index, series, tenor)
-LEFT JOIN valuation_reports ON invid = a.full_globeop_id
+LEFT JOIN valuation_reports ON NULLIF(substring(invid FROM '\D{3}[0]*(\d*)K'), '')::integer = a.globeop_id
LEFT JOIN bowdst_val ON link_ref = a.dealid AND as_of_date=p_date
LEFT JOIN (SELECT dealid, SUM(termination_amount) AS terminated_amount
FROM terminations WHERE termination_date <= p_date GROUP BY dealid) e USING (dealid)
@@ -2194,6 +2193,7 @@ for t in (df.itertuples(index=False)):
$$ LANGUAGE plpython3u;
+
CREATE OR REPLACE VIEW tranche_risk_serenitas AS
SELECT tranche_risk.date, tranche_id as trade_id, b.globeop_id, security_desc, index, series, maturity, orig_attach,
orig_detach, tranche_risk.notional,
@@ -2208,34 +2208,63 @@ SELECT tranche_risk.date, tranche_id as trade_id, b.globeop_id, security_desc, i
index_refprice, index_refspread, index_duration, hy_equiv, initial_margin_percentage
FROM tranche_risk
LEFT JOIN LATERAL
-(SELECT full_globeop_id, globeop_id FROM id_mapping WHERE id_mapping.serenitas_id=tranche_id AND date <= tranche_risk.date ORDER by date desc LIMIT 1) b ON true
+(SELECT globeop_id FROM id_mapping WHERE id_mapping.serenitas_id=tranche_id AND date <= tranche_risk.date ORDER by date desc LIMIT 1) b ON true
LEFT JOIN cds ON (tranche_id=id)
RIGHT JOIN (SELECT invid, periodenddate,
sum(endbookunrealincome) AS admin_accrued,
sum(endbooknav-endbookunrealincome) AS admin_clean_nav,
sum(endqty) AS admin_notional
FROM valuation_reports GROUP BY invid, periodenddate) a
- ON (invid=b.full_globeop_id AND periodenddate=tranche_risk.date)
+ ON (NULLIF(substring(invid FROM '\D{3}[0]*(\d*)K00SCLMA'), '')::integer=b.globeop_id AND periodenddate=tranche_risk.date)
LEFT JOIN index_version ON (security_id=redindexcode)
LEFT JOIN external_marks_deriv ON cpty_id=identifier AND external_marks_deriv.date=tranche_risk.date
ORDER BY index, series, orig_attach;
+-- bony reports version
+-- CREATE OR REPLACE VIEW tranche_risk_bowdst AS
+-- SELECT tranche_risk.date, tranche_id as trade_id, security_desc, index, series, maturity, orig_attach,
+-- orig_detach, tranche_risk.notional,
+-- admin_notional,
+-- clean_nav as serenitas_clean_nav,
+-- admin_clean_nav,
+-- accrued as serenitas_accrued,
+-- NULL AS admin_accrued,
+-- base_nav AS cpty_nav,
+-- duration, delta, gamma, theta, theta_amount, tranche_factor,
+-- tranche_risk.corr_attach, tranche_risk.corr_detach,
+-- tranche_risk.upfront, tranche_risk.running,
+-- index_refprice, index_refspread, index_duration, hy_equiv, initial_margin_percentage
+-- FROM tranche_risk
+-- LEFT JOIN cds ON (tranche_id=id)
+-- LEFT JOIN (SELECT as_of_date, link_ref, (CASE WHEN coupon_rate=0 THEN current_notional ELSE -current_notional END) AS admin_notional, base_market_value AS admin_clean_nav FROM bowdst_val WHERE security_description_1 LIKE 'TR%NCH%' AND abs(base_market_value) > 1.0) b ON link_ref=format('SCCDS%s',tranche_id) AND as_of_date=tranche_risk.date
+-- LEFT JOIN index_version ON (security_id=redindexcode)
+-- LEFT JOIN external_marks_deriv ON cpty_id=identifier AND external_marks_deriv.date=tranche_risk.date
+-- WHERE fund='BOWDST'
+-- ORDER BY index, series, orig_attach;
+
CREATE OR REPLACE VIEW tranche_risk_bowdst AS
-SELECT tranche_risk.date, tranche_id as trade_id, security_desc, index, series, maturity, orig_attach,
+SELECT tranche_risk.date, tranche_id as trade_id, b.globeop_id, security_desc, index, series, maturity, orig_attach,
orig_detach, tranche_risk.notional,
admin_notional,
clean_nav as serenitas_clean_nav,
admin_clean_nav,
accrued as serenitas_accrued,
- NULL AS admin_accrued,
+ admin_accrued,
base_nav AS cpty_nav,
duration, delta, gamma, theta, theta_amount, tranche_factor,
tranche_risk.corr_attach, tranche_risk.corr_detach,
tranche_risk.upfront, tranche_risk.running,
index_refprice, index_refspread, index_duration, hy_equiv, initial_margin_percentage
FROM tranche_risk
+LEFT JOIN LATERAL
+(SELECT globeop_id FROM id_mapping WHERE id_mapping.serenitas_id=tranche_id AND date <= tranche_risk.date ORDER by date desc LIMIT 1) b ON true
LEFT JOIN cds ON (tranche_id=id)
-LEFT JOIN (SELECT as_of_date, link_ref, (CASE WHEN coupon_rate=0 THEN current_notional ELSE -current_notional END) AS admin_notional, base_market_value AS admin_clean_nav FROM bowdst_val WHERE security_description_1 LIKE 'TR%NCH%' AND abs(base_market_value) > 1.0) b ON link_ref=format('SCCDS%s',tranche_id) AND as_of_date=tranche_risk.date
+RIGHT JOIN (SELECT invid, periodenddate,
+ sum(endbookunrealincome) AS admin_accrued,
+ sum(endbooknav-endbookunrealincome) AS admin_clean_nav,
+ sum(endqty) AS admin_notional
+ FROM valuation_reports GROUP BY invid, periodenddate) a
+ ON (NULLIF(substring(invid FROM '\D{3}[0]*(\d*)K00HEEAD'), '')::integer=b.globeop_id AND periodenddate=tranche_risk.date)
LEFT JOIN index_version ON (security_id=redindexcode)
LEFT JOIN external_marks_deriv ON cpty_id=identifier AND external_marks_deriv.date=tranche_risk.date
WHERE fund='BOWDST'
@@ -2472,7 +2501,6 @@ create table id_mapping(
trade_type text not null,
serenitas_id int not null,
globeop_id int not null,
- full_globeop_id text GENERATED ALWAYS AS (trade_type||lpad(globeop_id::text, 6, '0')|| 'K00SCLMA') stored,
PRIMARY KEY (date, trade_type, serenitas_id)
);