def __init__(self, algorithm_returns, sim_params, benchmark_returns=None): """ algorithm_returns needs to be a list of daily_return objects sorted in date ascending order """ self.algorithm_returns = algorithm_returns self.sim_params = sim_params self.benchmark_returns = benchmark_returns self.created = epoch_now() if len(self.algorithm_returns) == 0: start_date = self.sim_params.period_start end_date = self.sim_params.period_end else: # FIXME: Papering over multiple algorithm_return types if isinstance(self.algorithm_returns, list): start_date = self.algorithm_returns[0].date end_date = self.algorithm_returns[-1].date else: start_date = self.algorithm_returns.index[0] end_date = self.algorithm_returns.index[-1] self.month_periods = self.periods_in_range(1, start_date, end_date) self.three_month_periods = self.periods_in_range(3, start_date, end_date) self.six_month_periods = self.periods_in_range(6, start_date, end_date) self.year_periods = self.periods_in_range(12, start_date, end_date)
def __init__(self, algorithm_returns, sim_params, benchmark_returns=None): """ algorithm_returns needs to be a list of daily_return objects sorted in date ascending order """ self.algorithm_returns = algorithm_returns self.sim_params = sim_params self.benchmark_returns = benchmark_returns self.created = epoch_now() if len(self.algorithm_returns) == 0: start_date = self.sim_params.period_start end_date = self.sim_params.period_end else: # FIXME: Papering over multiple algorithm_return types if isinstance(self.algorithm_returns, list): start_date = self.algorithm_returns[0].date end_date = self.algorithm_returns[-1].date else: start_date = self.algorithm_returns.index[0] end_date = self.algorithm_returns.index[-1] self.month_periods = self.periods_in_range(1, start_date, end_date) self.three_month_periods = self.periods_in_range( 3, start_date, end_date) self.six_month_periods = self.periods_in_range(6, start_date, end_date) self.year_periods = self.periods_in_range(12, start_date, end_date)
def __init__( self, algorithm_returns, trading_environment, ): """ algorithm_returns needs to be a list of daily_return objects sorted in date ascending order """ self.algorithm_returns = algorithm_returns self.trading_environment = trading_environment self.created = epoch_now() if len(self.algorithm_returns) == 0: start_date = self.trading_environment.period_start end_date = self.trading_environment.period_end else: start_date = self.algorithm_returns[0].date end_date = self.algorithm_returns[-1].date self.month_periods = self.periods_in_range(1, start_date, end_date) self.three_month_periods = self.periods_in_range( 3, start_date, end_date) self.six_month_periods = self.periods_in_range(6, start_date, end_date) self.year_periods = self.periods_in_range(12, start_date, end_date)