aboutsummaryrefslogtreecommitdiffstats
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/dawn.sql50
1 files changed, 25 insertions, 25 deletions
diff --git a/sql/dawn.sql b/sql/dawn.sql
index 12a13a4c..eb55b574 100644
--- a/sql/dawn.sql
+++ b/sql/dawn.sql
@@ -2283,36 +2283,36 @@ END
$$ LANGUAGE plpgsql;
CREATE OR REPLACE function list_crt_data(p_date date, fund fund DEFAULT 'SERCGMAST'::fund)
-RETURNS TABLE(identifier varchar(9), model_time timestamp, notional double precision, factor double precision, pv float, duration float4, dm float4, delta_ir float4, delta_economy float4,
+RETURNS TABLE(identifier varchar(9), description varchar, model_time timestamp, notional double precision, factor double precision, pv float, duration float4, dm float4, delta_ir float4, delta_economy float4,
convexity_ir float4, convexity_economy float4, bondtype crt_bond_type, delta numeric) as $$
BEGIN
RETURN QUERY
--- SELECT DISTINCT ON (identifier) c.identifier, a.timestamp, c.notional, c.factor, a.pv, duration_fw, a.dm, "delta.ir", "delta.economy",
--- "convexity.ir", "convexity.economy", bond_type, value FROM risk_positions(p_date, 'CRT', fund) c
--- LEFT JOIN priced_at_market a on c.identifier = a.cusip
--- JOIN crt_model_versions ON model_des=model_version
--- LEFT JOIN map_cusip USING (cusip)
--- LEFT JOIN bond_types USING (bond)
--- LEFT JOIN beta_estimates USING (bond_type)
--- WHERE until_date > p_date
--- AND timestamp BETWEEN p_date AND p_date + INTERVAL '1 DAY'
--- AND date <= greatest(p_date, DATE '2021-02-01')
--- ORDER BY identifier, until_date ASC, timestamp DESC, date DESC;
- SELECT c.identifier, a.timestamp, c.notional, c.factor, a.pv, duration_fw, a.dm, "delta.ir", "delta.economy",
- "convexity.ir", "convexity.economy", bond_type, value
- FROM (SELECT * FROM risk_positions(p_date, 'CRT', fund)) c
+ SELECT DISTINCT ON (identifier) c.identifier, c.description, a.timestamp, c.notional, c.factor, a.pv, duration_fw, a.dm, "delta.ir", "delta.economy",
+ "convexity.ir", "convexity.economy", bond_type, value FROM risk_positions(p_date, 'CRT', fund) c
LEFT JOIN priced_at_market a on c.identifier = a.cusip
- JOIN (SELECT cusip, MAX(timestamp) timestamp
- FROM priced_at_market where timestamp between p_date
- AND p_date + interval '1 DAY'
- and model_des = (select model_version from crt_model_versions where until_date > p_date
- order by until_date asc limit 1) GROUP BY cusip) b
- using (cusip, timestamp)
- LEFT JOIN map_cusip using (cusip)
+ JOIN crt_model_versions ON model_des=model_version
+ LEFT JOIN map_cusip USING (cusip)
LEFT JOIN bond_types USING (bond)
- LEFT JOIN (select bond_type, value from beta_estimates
- where date = (SELECT MAX(date) as date FROM beta_estimates where date <= greatest(p_date, DATE '2021-02-01'))) be
- using (bond_type);
+ LEFT JOIN beta_estimates USING (bond_type)
+ WHERE until_date > p_date
+ AND timestamp BETWEEN p_date AND p_date + INTERVAL '1 DAY'
+ AND date <= greatest(p_date, DATE '2021-02-01')
+ORDER BY identifier, until_date ASC, timestamp DESC, date DESC;
+ -- SELECT c.identifier, c.description, c.strategy, a.timestamp, c.notional, c.factor, a.pv, duration_fw, a.dm, "delta.ir", "delta.economy",
+ -- "convexity.ir", "convexity.economy", bond_type, value
+ -- FROM (SELECT * FROM risk_positions(p_date, 'CRT', fund)) c
+ -- LEFT JOIN priced_at_market a on c.identifier = a.cusip
+ -- JOIN (SELECT cusip, MAX(timestamp) timestamp
+ -- FROM priced_at_market where timestamp between p_date
+ -- AND p_date + interval '1 DAY'
+ -- and model_des = (select model_version from crt_model_versions where until_date > p_date
+ -- order by until_date asc limit 1) GROUP BY cusip) b
+ -- using (cusip, timestamp)
+ -- LEFT JOIN map_cusip using (cusip)
+ -- LEFT JOIN bond_types USING (bond)
+ -- LEFT JOIN (select bond_type, value from beta_estimates
+ -- where date = (SELECT MAX(date) as date FROM beta_estimates where date <= greatest(p_date, DATE '2021-02-01'))) be
+ -- using (bond_type);
END
$$ LANGUAGE plpgsql;