def plot(self, sampling_frequency = 'D', strategy_names = None): '''Display plots of equity, drawdowns and returns Args: sampling_frequency: Date frequency. Default 'D' for daily so we downsample to daily returns before computing metrics strategy_names: A list of strategy names. By default this is set to None and we use all strategies. ''' returns = self.df_returns(sampling_frequency, strategy_names) ev = compute_return_metrics(returns.index.values, returns.ret.values, returns.equity.values[0]) plot_return_metrics(ev.metrics())
def evaluate_returns(self, symbol=None, plot=True, float_precision=4): '''Returns a dictionary of common return metrics. Args: symbol (str): Date frequency. Default 'D' for daily so we downsample to daily returns before computing metrics plot (bool): If set to True, display plots of equity, drawdowns and returns. Default False float_precision (float, optional): Number of significant figures to show in returns. Default 4 ''' returns = self.df_returns(symbol) ev = compute_return_metrics(returns.index.values, returns.ret.values, self.account.starting_equity) display_return_metrics(ev.metrics(), float_precision=float_precision) if plot: plot_return_metrics(ev.metrics()) return ev.metrics()
def evaluate_returns(self, sampling_frequency = 'D', strategy_names = None, plot = True, float_precision = 4): '''Returns a dictionary of common return metrics. Args: sampling_frequency: Date frequency. Default 'D' for daily so we downsample to daily returns before computing metrics strategy_names: A list of strategy names. By default this is set to None and we use all strategies. plot: If set to True, display plots of equity, drawdowns and returns. Default False float_precision: Number of significant figures to show in returns. Default 4 ''' returns = self.df_returns(sampling_freq, strategy_names) ev = compute_return_metrics(returns.timestamp.values, returns.ret.values, returns.equity.values[0]) display_return_metrics(ev.metrics(), float_precision = float_precision) if plot: plot_return_metrics(ev.metrics()) return ev.metrics()
def evaluate_returns(self, contract_group = None, plot = True, display_summary = True, float_precision = 4): '''Returns a dictionary of common return metrics. Args: contract_group (:obj:`ContractGroup`, optional): Contract group to evaluate or None (default) for all contract groups plot (bool): If set to True, display plots of equity, drawdowns and returns. Default False float_precision (float, optional): Number of significant figures to show in returns. Default 4 ''' returns = self.df_returns(contract_group) ev = compute_return_metrics(returns.timestamp.values, returns.ret.values, self.account.starting_equity) if display_summary: display_return_metrics(ev.metrics(), float_precision = float_precision) if plot: plot_return_metrics(ev.metrics()) return ev.metrics()
def plot_returns(self, symbol=None): '''Display plots of equity, drawdowns and returns for the given symbol or for all symbols if symbol is None (default)''' if symbol is None: symbols = self.symbols() else: symbols = [symbol] df_list = [] for symbol in symbols: df_list.append(self.df_returns(symbol)) df = pd.concat(df_list, axis=1) ev = compute_return_metrics(returns.index.values, returns.ret.values, self.account.starting_equity) plot_return_metrics(ev.metrics())
def plot_returns(self, contract_group = None): '''Display plots of equity, drawdowns and returns for the given contract group or for all contract groups if contract_group is None (default)''' if contract_group is None: contract_groups = self.contract_groups() else: contract_groups = [contract_groups] df_list = [] for contract_group in contract_groups: df_list.append(self.df_returns(contract_group)) df = pd.concat(df_list, axis = 1) ev = compute_return_metrics(returns.timestamp.values, returns.ret.values, self.account.starting_equity) plot_return_metrics(ev.metrics())
def plot_returns(self, contract_group: ContractGroup = None) -> Optional[Tuple[mpl.figure.Figure, mpl.axes.Axes]]: '''Display plots of equity, drawdowns and returns for the given contract group or for all contract groups if contract_group is None (default)''' if contract_group is None: returns = self.df_returns() else: returns = self.df_returns(contract_group) ev = compute_return_metrics(returns.timestamp.values, returns.ret.values, self.account.starting_equity) return plot_return_metrics(ev.metrics())
def plot_returns(self, contract_group=None): '''Display plots of equity, drawdowns and returns for the given contract group or for all contract groups if contract_group is None (default)''' if contract_group is None: returns = self.df_returns() else: returns = self.df_returns(contract_group) ev = compute_return_metrics(returns.timestamp.values, returns.ret.values, self.account.starting_equity) fig, ax = plot_return_metrics(ev.metrics()) return fig, ax