示例#1
0
    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())
示例#2
0
 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())
示例#3
0
    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
示例#4
0
 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()
示例#5
0
 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()
示例#6
0
 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()
示例#7
0
    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())
示例#8
0
 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())