aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/analytics/db.py2
-rw-r--r--python/analytics/index_data.py16
-rw-r--r--python/analytics/utils.py2
3 files changed, 9 insertions, 11 deletions
diff --git a/python/analytics/db.py b/python/analytics/db.py
index ccfe765f..08c59104 100644
--- a/python/analytics/db.py
+++ b/python/analytics/db.py
@@ -1,2 +1,2 @@
-from db import dbengine
+from db import dbengine, dbconn
_engine = dbengine('serenitasdb')
diff --git a/python/analytics/index_data.py b/python/analytics/index_data.py
index fd4271a3..41cc4f7f 100644
--- a/python/analytics/index_data.py
+++ b/python/analytics/index_data.py
@@ -1,20 +1,16 @@
-from db import dbengine, dbconn
+from .db import _engine, dbconn
from dates import bond_cal
import numpy as np
-from analytics.utils import roll_date, previous_twentieth
+from .utils import roll_date, previous_twentieth, tenor_t
from pandas.tseries.offsets import BDay
from functools import lru_cache
from pyisda.curve import SpreadCurve, fill_curve
from multiprocessing import Pool
from yieldcurve import get_curve
-from pandas.api.types import CategoricalDtype
import datetime
import pandas as pd
-_serenitas_engine = dbengine('serenitasdb')
-
-tenor_t = CategoricalDtype(['3yr', '5yr', '7yr', '10yr'], ordered=True)
def insert_quotes():
"""
@@ -33,7 +29,7 @@ def insert_quotes():
df = pd.read_sql_query("SELECT DISTINCT ON (date) * FROM index_quotes " \
"WHERE index='HY' AND tenor='5yr' " \
"ORDER BY date, series DESC, version DESC",
- _serenitas_engine, parse_dates=['date'], index_col=['date'])
+ _engine, parse_dates=['date'], index_col=['date'])
df = df.loc[dates]
for tup in df.itertuples():
result = serenitasdb.execute("SELECT indexfactor, cumulativeloss FROM index_version " \
@@ -45,7 +41,7 @@ def insert_quotes():
recovery = 1-(cumloss2-cumloss1)
version2_price = (factor1 * tup.closeprice - 100*recovery)/factor2
print(version2_price)
- _serenitas_engine.execute("INSERT INTO index_quotes(date, index, series, version, tenor, closeprice)" \
+ _engine.execute("INSERT INTO index_quotes(date, index, series, version, tenor, closeprice)" \
"VALUES(%s, %s, %s, %s, %s, %s)",
(tup.Index, 'HY', tup.series, tup.version+1, tup.tenor, version2_price))
@@ -77,7 +73,7 @@ def get_index_quotes(index=None, series=None, tenor=None, from_date=None, years=
return {k: tuple(v) if isinstance(v, list) else v
for k, v in args.items() if v is not None}
- df = pd.read_sql_query(sql_str, _serenitas_engine, parse_dates=['date'],
+ df = pd.read_sql_query(sql_str, _engine, parse_dates=['date'],
index_col=['date', 'index', 'series', 'version'],
params = make_params(args))
df.tenor = df.tenor.astype(tenor_t)
@@ -118,7 +114,7 @@ def index_returns(df=None, index=None, series=None, tenor=None, from_date=None,
df.columns = ['spread_return', 'price_return']
df = df.groupby(level=['date', 'index', 'series', 'tenor']).nth(0)
coupon_data = pd.read_sql_query("SELECT index, series, tenor, coupon * 1e-4 AS coupon, maturity FROM " \
- "index_maturity WHERE coupon is NOT NULL", _serenitas_engine,
+ "index_maturity WHERE coupon is NOT NULL", _engine,
index_col=['index', 'series', 'tenor'])
df = df.reset_index('date').join(coupon_data).reset_index('tenor')
df.tenor = df.tenor.astype(tenor_t)
diff --git a/python/analytics/utils.py b/python/analytics/utils.py
index edd05284..0cefaa9c 100644
--- a/python/analytics/utils.py
+++ b/python/analytics/utils.py
@@ -4,6 +4,8 @@ from scipy.special import h_roots
from dateutil.relativedelta import relativedelta
import datetime
from pyisda.date import pydate_to_TDate
+from pandas.api.types import CategoricalDtype
+tenor_t = CategoricalDtype(['3yr', '5yr', '7yr', '10yr'], ordered=True)
def GHquad(n):
"""Gauss-Hermite quadrature weights"""