aboutsummaryrefslogtreecommitdiffstats
path: root/python/globeop_reports.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/globeop_reports.py')
-rw-r--r--python/globeop_reports.py25
1 files changed, 12 insertions, 13 deletions
diff --git a/python/globeop_reports.py b/python/globeop_reports.py
index 965649e1..4d89f081 100644
--- a/python/globeop_reports.py
+++ b/python/globeop_reports.py
@@ -1,4 +1,4 @@
-from db import dbengine
+from db import dbengine, dawn_engine
from pandas.tseries.offsets import DateOffset, MonthEnd
from yieldcurve import YC
from quantlib.time.api import Date, Months, Period
@@ -9,12 +9,10 @@ import pandas as pd
import numpy as np
import datetime
-etengine = dbengine('etdb')
-dawnengine = dbengine('dawndb')
def get_monthly_pnl(group_by=['identifier']):
sql_string = "SELECT * FROM pnl_reports"
- df_pnl = pd.read_sql_query(sql_string, dawnengine,
+ df_pnl = pd.read_sql_query(sql_string, dawn_engine,
parse_dates=['date'],
index_col=['date'])
df_pnl['identifier'] = df_pnl.invid.str.replace("_A$", "")
@@ -26,11 +24,11 @@ def get_monthly_pnl(group_by=['identifier']):
def get_portfolio(report_date=None):
if report_date is not None:
sql_string = "SELECT * FROM valuation_reports where periodenddate = %s"
- df = pd.read_sql_query(sql_string, dawnengine, parse_dates=['periodenddate'],
+ df = pd.read_sql_query(sql_string, dawn_engine, parse_dates=['periodenddate'],
index_col=['periodenddate'], params=[report_date,])
else:
sql_string = "SELECT * FROM valuation_reports"
- df = pd.read_sql_query(sql_string, dawnengine, parse_dates=['periodenddate'],
+ df = pd.read_sql_query(sql_string, dawn_engine, parse_dates=['periodenddate'],
index_col=['periodenddate'])
df['identifier'] = df.invid.str.replace("_A$", "")
return df
@@ -38,7 +36,7 @@ def get_portfolio(report_date=None):
def trade_performance():
sql_string = "SELECT * FROM bonds"
- df_trades = pd.read_sql_query(sql_string, dawnengine,
+ df_trades = pd.read_sql_query(sql_string, dawn_engine,
parse_dates={'lastupdate': {'utc': True},
'trade_date': {},
'settle_date': {}})
@@ -77,7 +75,7 @@ def trade_performance():
def get_net_navs():
sql_string = "SELECT * FROM valuation_reports"
- df_val = pd.read_sql_query(sql_string, dawnengine, parse_dates=['periodenddate'])
+ df_val = pd.read_sql_query(sql_string, dawn_engine, parse_dates=['periodenddate'])
nav = df_val[df_val.fund == 'SERCGMAST'].groupby('periodenddate')['endbooknav'].sum()
nav = nav.resample('M').last()
df = pd.read_csv('/home/serenitas/edwin/Python/subscription_fee_data.csv',
@@ -153,7 +151,7 @@ def rmbs_pos(date, model_date=None, dm=False):
"model_version = 1 and "
"date(timestamp) < %s and date(timestamp) > %s "
"order by timestamp desc")
- timestamps = pd.read_sql_query(sql_string, dawnengine, parse_dates=['timestamp'],
+ timestamps = pd.read_sql_query(sql_string, dawn_engine, parse_dates=['timestamp'],
params=[date, date - DateOffset(15, 'D')])
if model_date is None:
model_date = (timestamps.loc[0][0]).date()
@@ -166,12 +164,12 @@ def rmbs_pos(date, model_date=None, dm=False):
"and model_version <> 2")
params_list = (model_date,)
if date > datetime.date(2017, 9, 30):
- r = dawnengine.execute("SELECT latest_sim FROM latest_sim(%s)",
+ r = dawn_engine.execute("SELECT latest_sim FROM latest_sim(%s)",
model_date)
model_id, = next(r)
sql_string += " AND model_id_sub = %s"
params_list += (model_id,)
- model = pd.read_sql_query(sql_string, dawnengine, parse_dates=['timestamp'],
+ model = pd.read_sql_query(sql_string, dawn_engine, parse_dates=['timestamp'],
params=params_list)
model = model[model['pv'] != 0]
pos = pos.assign(curr_ntl = pos.endbookmv/pos.endlocalmarketprice *100)
@@ -211,13 +209,14 @@ def clo_pos(date):
return df
else:
sql_string = "select distinct cusip, identifier from bonds where asset_class = 'CLO'"
- cusip_map = {r['identifier']: r['cusip'] for r in dawnengine.execute(sql_string)}
+ cusip_map = {identifier: cusip for cusip, identifier in dawn_engine.execute(sql_string)}
df['cusip'] = df['identifier'].replace(cusip_map)
cusips = df.loc[[df.index[-1]], 'cusip']
placeholders = ",".join(["%s"] * (1 + len(cusips)))
sql_string = f"SELECT * FROM historical_cusip_risk({placeholders})"
+ etengine = dbengine('etdb')
model = pd.read_sql_query(sql_string, etengine, parse_dates=['pricingdate'],
- params=(date, *cusips))
+ params=(date, *cusips))
model.index = cusips
calc_df = df.loc[[df.index[-1]]].set_index('cusip').join(model)
calc_df['hy_equiv'] = calc_df.delta * calc_df.endbookmv