aboutsummaryrefslogtreecommitdiffstats
path: root/python/mark_backtest.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/mark_backtest.py')
-rw-r--r--python/mark_backtest.py78
1 files changed, 0 insertions, 78 deletions
diff --git a/python/mark_backtest.py b/python/mark_backtest.py
deleted file mode 100644
index 970e8b6f..00000000
--- a/python/mark_backtest.py
+++ /dev/null
@@ -1,78 +0,0 @@
-import pandas as pd
-from db import dbengine
-import matplotlib
-import numpy as np
-import matplotlib.pyplot as plt
-import statsmodels.api as sm
-from statsmodels.formula.api import gls
-
-df = (pd.read_sql_table('external_marks_mapped',dbengine('dawndb'),
- parse_dates=['date']).
- sort_values('date'))
-df1 = pd.read_sql_query("select trade_date, cusip as identifier, principal_payment, price from bonds where buysell = 'f'"
- ,dbengine('dawndb'),
- parse_dates=[
- 'trade_date'
- ])
-df1 = df1.sort_values('trade_date')
-d = {}
-for source, g in df.groupby('source'):
- d[source] = pd.merge_asof(df1, g, left_on='trade_date', right_on= 'date', by='identifier')
-df2 = pd.concat(d, join='inner')
-df3 = df2.dropna(axis=0, subset=['mark'])
-df3 = df3.reset_index(level=1, drop=True)
-df4 = df3.set_index(['trade_date','identifier', 'source', 'principal_payment'])
-df4 = df4.groupby(level=['trade_date', 'identifier','source', 'principal_payment']).mean()
-df4 = df4.set_index('price', append=True)
-df5 = df4.unstack(-3)
-df5.columns = df5.columns.droplevel()
-#df6 = df5.reset_index(col_level=1, drop=True)
-df6 = df5.sortlevel(0, ascending = False)
-df6 = df6.reset_index()
-
-r2 = {}
-stderr = {}
-parameters = {}
-#for g in df5['mark']:
-for col in df6.columns[4:]:
- regmodel = gls(formula= "df6['price'] ~df6[col]", data = df6).fit()
- r2[col] = regmodel.rsquared
- stderr[col] = regmodel.bse
- parameters[col] = regmodel.params
-
-r2 = pd.Series(r2, name= 'R2')
-r2.index.name = 'Source'
-r2.reset_index
-r2 = pd.DataFrame(r2)
-stderr = pd.DataFrame(stderr)
-parameters = pd.DataFrame(parameters)
-
-df7 = df6
-for col in df7.columns[4:]:
- df7[col] = (df7.price - df7[col])/df7[col]
-
-filter = 2
-begindate = '2015-01-01'
-enddate = '2017-01-01'
-df8 = df7[(df7['trade_date']>begindate) & (df7['trade_date']<enddate)]
-difference= pd.DataFrame(df8[df8<filter].mean(), columns=['Average'])
-difference['Std Dev'] = df8[df8<filter].std()
-difference.reset_index()
-
-writer = pd.ExcelWriter('/home/serenitas/edwin/Subprime_ModelandBacktest_outputonly.xlsx')
-df6.to_excel(writer, sheet_name = 'BackTesting', header = True, na_rep = '', startrow= 1, startcol= 1)
-r2.to_excel(writer, sheet_name = 'regression', header = True)
-parameters.to_excel(writer, sheet_name = 'regression', header = True, startrow= 0, startcol= 5)
-difference[2:].to_excel(writer, sheet_name = 'Diff', header = True, startrow= 1, startcol= 1)
-df7.to_excel(writer, sheet_name = 'Diff', header = True, startrow= 15, startcol= 1)
-writer.save()
-
-#fig = plt.plot(figsize=(12,8))
-#fig = sm.graphics.plot_partregress_grid(regmodel,fig=fig)
-
-
-#df6 = pd.DataFrame()
-#for g in df5['mark']:
-# d[g] = (df5['price'] - df5['mark'][g])/df5['mark'][g]
-#df6.from_dict(d)
-