def bootstrap_rules(self, n=10000, **kw): z = self.forecast_returns(**kw) a = pd.Series({k: v.shape[0] for k, v in z.items()}) b = (a / a.sum()) sharpes = [] corrs = {} for k, v in b.iteritems(): for x in range(0, int(round(v * n))): sample = draw_sample(z[k], 252) sharpes.append(sharpe(sample).rename(k)) corrs[(k, x)] = (sample.resample('W').sum().corr()) return pd.DataFrame(sharpes), pd.Panel(corrs).mean(axis=0)
def bootstrap_rules(self, n=10000, **kw): z = self.forecast_returns(**kw) a = pd.Series({k: v.shape[0] for k, v in z.items()}) b=(a/a.sum()) sharpes = [] corrs = {} for k, v in b.iteritems(): for x in range(0,int(round(v*n))): sample = draw_sample(z[k], 252) sharpes.append(sharpe(sample).rename(k)) corrs[(k, x)] = (sample.resample('W').sum().corr()) return pd.DataFrame(sharpes), pd.Panel(corrs).mean(axis=0)
def sharpe(self): return sharpe(np.trim_zeros(self.returns().sum(axis=1)))
def gross_sharpe(self): return sharpe( np.trim_zeros((self.position_returns() - self.transaction_returns()).sum(axis=1)))
def gross_sharpe(self): return sharpe(np.trim_zeros((self.position_returns() - self.transaction_returns()).sum(axis=1)))