diff options
| -rw-r--r-- | python/analytics/index_data.py | 7 | ||||
| -rw-r--r-- | sql/serenitasdb.sql | 8 |
2 files changed, 8 insertions, 7 deletions
diff --git a/python/analytics/index_data.py b/python/analytics/index_data.py index 8c769a03..9fcdfea3 100644 --- a/python/analytics/index_data.py +++ b/python/analytics/index_data.py @@ -152,13 +152,13 @@ def get_singlenames_quotes(indexname, date, tenors): return list(r) -def build_curve(r, tenors, currency="USD"): +def build_curve(r, tenors): if r['date'] is None: raise ValueError(f"Curve for {r['cds_ticker']} is missing") spread_curve = 1e-4 * np.array(r['spread_curve'], dtype='float') upfront_curve = 1e-2 * np.array(r['upfront_curve'], dtype='float') recovery_curve = np.array(r['recovery_curve'], dtype='float') - yc = get_curve(r['date'], currency) + yc = get_curve(r['date'], r['currency']) try: sc = SpreadCurve(r['date'], yc, None, None, None, tenors, spread_curve, upfront_curve, recovery_curve, @@ -186,8 +186,7 @@ def build_curves_dist(quotes, args, workers=4): def _get_singlenames_curves(index_type, series, trade_date, tenors): sn_quotes = get_singlenames_quotes(f"{index_type.lower()}{series}", trade_date, tenors) - currency = "EUR" if index_type in ["XO", "EU"] else "USD" - args = (np.array(tenors), currency) + args = (np.array(tenors),) return build_curves_dist(sn_quotes, args) diff --git a/sql/serenitasdb.sql b/sql/serenitasdb.sql index 45ddaa36..37f44135 100644 --- a/sql/serenitasdb.sql +++ b/sql/serenitasdb.sql @@ -475,19 +475,21 @@ CREATE OR REPLACE FUNCTION curve_quotes2( float[] DEFAULT '{0.5, 1, 2, 3, 4, 5, 7, 10}'::float[],
bbgsource DEFAULT 'MKIT'::bbgsource) RETURNS
TABLE(cds_ticker text, date date, spread_curve float[],
- upfront_curve float[], recovery_curve float[], event_date date) AS $$
+ upfront_curve float[], recovery_curve float[], currency curr,
+ event_date date) AS $$
BEGIN
RETURN QUERY SELECT max(markit_ticker) AS t, max(a.date),
array_agg((a.runningbid + a.runningask)/2 ORDER BY tenor),
array_agg((a.upfrontbid + a.upfrontask)/2 ORDER BY tenor),
array_agg(a.Recovery ORDER BY tenor),
- max(b.event_date) FROM historical_cds_quotes($2, $4) a
+ max(b.currency), max(b.event_date) FROM historical_cds_quotes($2, $4) a
RIGHT JOIN
- (SELECT curve_ticker, markit_ticker, company_id, c.event_date, tenor FROM
+ (SELECT curve_ticker, markit_ticker, company_id, c.event_date, c.currency, tenor FROM
(SELECT unnest('{0.5, 1, 2, 3, 4, 5, 7, 10}'::float[]) AS tenor,
unnest(cds_curve) AS curve_ticker,
markit_ticker,
company_id,
+ d.currency,
d.event_date
FROM index_members($1, $2) d) c
WHERE tenor=Any($3)) b
|
