diff options
Diffstat (limited to 'python/mark_backtest_underpar.py')
| -rw-r--r-- | python/mark_backtest_underpar.py | 52 |
1 files changed, 49 insertions, 3 deletions
diff --git a/python/mark_backtest_underpar.py b/python/mark_backtest_underpar.py index 863af8c7..28f8f059 100644 --- a/python/mark_backtest_underpar.py +++ b/python/mark_backtest_underpar.py @@ -19,13 +19,59 @@ df_trades = pd.read_sql_query("select trade_date, identifier, principal_payment, parse_dates=['trade_date']) df_trades = df_trades.sort_values('trade_date') df_wide = pd.merge_asof(df_trades, df_wide, left_on='trade_date', right_on='date', by='identifier') -df_long = pd.merge_asof(df_trades, df, left_on='trade_date', right_on='date', by='identifier') +d = {} +for source, g in df.groupby('source'): + d[source] = pd.merge_asof(df_trades, g, left_on='trade_date', right_on='date', by='identifier') +df_long = pd.concat(d, join='inner') +df_long = df_long.reset_index() +df_long = df_long.dropna(subset=['price','mark']) + +#filtering +#filter = 2 +begindate = '2013-01-01' +enddate = '2017-01-01' +df_long = df_long[df_long.identifier.str.len()==9] +df_long = df_long[(df_long['trade_date']>begindate) & (df_long['trade_date']<enddate)] +#difference= df_long[df_long['<filter].groupby('level_0').[.mean(), columns=['Average']) +#difference['Std Dev'] = df_long[df_long<filter].std() #pretty plot -sns.lmplot(x='mark', y='price', hue = 'source', data=df_long, fit_reg=False) +#dotsize = pd.Series.tolist(df_long['level_0'].apply(lambda x: 400 if x == 'MANAGER' else 20)) +#df_long['dotsize'] = df_long['level_0'].apply(lambda x: 400 if x == 'MANAGER' else 20) +df_long['dotsize'] = df_long['level_0'].apply(lambda x: 400 if x == 'MANAGER' else 20) +plt.switch_backend('Agg') +sb.set_style("whitegrid") +sb.set_context("notebook") +regplot = sb.lmplot(x='mark', y='price', hue = 'source', data=df_long, fit_reg=False, legend_out=True, aspect = 2.1, size = 4, scatter_kws={"s": df_long['dotsize']}) +regplot.set(ylim=(0, 105), xlim=(0, 105)) +#plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.) +regplot.fig.savefig("/home/serenitas/edwin/fig1.png") + +#plt.switch_backend('Qt4Agg') +order = ['MANAGER','BROKER','BVAL','IDC','MARKIT','PB','PRICESERVE','PRICINGDIRECT','REUTERS','S&P'] +sb.set_palette(sb.hls_palette(10, l=.4, s=.8)) +g = sb.FacetGrid(df_long, hue='source', hue_kws={'s':[50] + [20]*9, 'marker': ["o"]+["s"]*9, 'alpha': [1]+[.4]*9}, legend_out=True, aspect = 2.1, size = 4, hue_order = order) +g.set(ylim=(0, 105), xlim=(0, 105)) +ax = g.map(plt.scatter, 'mark', 'price').add_legend() +ax.fig.savefig("/home/serenitas/edwin/fig2.png") #fit all the models at once params = (df_long. groupby('source'). - apply(lambda df: gls('price~mark', df).fit().params) + apply(lambda df: gls('price~mark', df).fit().params)) + + +def f(a, b, c): + return a+b+c + +f(1, 2, 3) + +l=[1, 2, 3] +f(*l) + +def g(a, b, **kwargs): + if 'edwin' in kwargs: + print(kwargs[edwin]) + +g(1, 2, edwin='hello')
\ No newline at end of file |
