Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)