aboutsummaryrefslogtreecommitdiffstats
path: root/python/analytics/curve_trades.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/analytics/curve_trades.py')
-rw-r--r--python/analytics/curve_trades.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/python/analytics/curve_trades.py b/python/analytics/curve_trades.py
index 555194ba..73be4ab5 100644
--- a/python/analytics/curve_trades.py
+++ b/python/analytics/curve_trades.py
@@ -1,5 +1,5 @@
from analytics.index_data import get_index_quotes, index_returns
-from db import dbengine
+from db import serenitas_engine, dawn_engine
from analytics import CreditIndex, Portfolio
from analytics.utils import roll_date
from dateutil.relativedelta import relativedelta
@@ -16,12 +16,9 @@ import statsmodels.formula.api as smf
import numpy as np
import matplotlib.pyplot as plt
-serenitasdb = dbengine('serenitasdb')
-dawndb = dbengine('dawndb')
-
def on_the_run(index):
- r = serenitasdb.execute("SELECT max(series) FROM index_version WHERE index=%s",
- (index,))
+ r = serenitas_engine.execute("SELECT max(series) FROM index_version WHERE index=%s",
+ (index,))
series, = r.fetchone()
return series
@@ -151,9 +148,9 @@ def forward_loss(index='IG'):
"close_spread*duration / 100 AS indexel " \
"FROM index_quotes WHERE index=%s AND date >= %s " \
"ORDER BY date DESC, series ASC, duration ASC",
- serenitasdb, parse_dates=['date'], params=[index, start_date])
+ serenitase_engine, parse_dates=['date'], params=[index, start_date])
df1 = pd.read_sql_query("SELECT index, series, tenor, maturity FROM index_maturity",
- serenitasdb, parse_dates=['maturity'])
+ serenitas_engine, parse_dates=['maturity'])
df = df.merge(df1, on=['index','series','tenor'])
df = df.set_index(['date','index', 'maturity']).dropna()
@@ -277,7 +274,7 @@ def curve_pos(value_date, index_type='IG'):
"JOIN index_desc " \
"ON security_id=redindexcode AND " \
"index_desc.maturity=list_cds_positions.maturity"
- df = pd.read_sql_query(sql_string, dawndb,
+ df = pd.read_sql_query(sql_string, dawn_engine,
params=[value_date, f'SER_{index_type}CURVE'])
portf = Portfolio([CreditIndex(row.index, row.series, row.tenor,
@@ -301,11 +298,11 @@ def curve_shape(value_date, index='IG', percentile=.95, spread=None):
if spread is None:
sql_string = "SELECT closespread FROM index_quotes where index = %s " \
"and series = %s and tenor = %s and date = %s"
- spread_df = pd.read_sql_query(sql_string, serenitasdb,
+ spread_df = pd.read_sql_query(sql_string, serenitas_engine,
params=[index, series, '5yr', value_date])
spread = spread_df.iloc[0][0]
sql_string = "SELECT tenor, maturity FROM index_maturity where index = %s and series = %s"
- lookup_table = pd.read_sql_query(sql_string, serenitasdb, parse_dates=['maturity'],
+ lookup_table = pd.read_sql_query(sql_string, serenitas_engine, parse_dates=['maturity'],
params=[index, series])
df = curve_shape[steepness == steepness.quantile(percentile, 'nearest')]
@@ -350,7 +347,7 @@ def pos_pnl_abs(portf, value_date, index='IG', rolling=6, years=3):
df = df.groupby(level=['date', 'tenor']).nth(-1)['close_spread'].unstack(-1)
sql_string = "SELECT tenor, maturity FROM index_maturity where index = %s and series = %s"
- lookup_table = pd.read_sql_query(sql_string, serenitasdb, parse_dates=['maturity'],
+ lookup_table = pd.read_sql_query(sql_string, serenitas_engine, parse_dates=['maturity'],
params=[index, series])
lookup_table['year_frac'] = (lookup_table.maturity - pd.to_datetime(value_date)).dt.days/365