示例#1
0
    def generate_orders(self,
                        target_datetime,
                        lookback=0,
                        cash=1000000,
                        buffer_days=0,
                        portfolio=Portfolio()):
        """ Generates orders for a given day. Useful for generating trade
        orders for a your personal account.

        Args:
            target_datetime (datetime): The datetime you want to
                generate orders for.
            lookback (int): Number of trading days you want data for before the
                (target_datetime - buffer_days)
            cash (int): Amount of starting cash
            buffer_days (int): number of trading days you want extra data
                generated for. Acts as a data start date.
            portfolio (prophet.portfolio.Portfolio): Starting portfolio
        """
        target_datetime_index = trading_days.get_loc(target_datetime)
        start = trading_days[target_datetime_index - buffer_days]
        data = self._generate_data(start, target_datetime, lookback)
        prices = data.get('prices')
        if prices is None:
            raise ProphetException("Price data is required to run a backtest. "
                                   "Please add a data generator with the name "
                                   "property set to 'prices'.")
        return self._order_generator.run(prices=prices,
                                         data=data,
                                         timestamp=target_datetime,
                                         cash=cash,
                                         portfolio=portfolio)
示例#2
0
文件: app.py 项目: oscarpicas/prophet
    def generate_orders(self,
                        target_datetime,
                        lookback=0,
                        cash=1000000,
                        buffer_days=0,
                        portfolio=Portfolio()):
        """ Generates orders for a given day. Useful for generating trade
        orders for a your personal account.

        Args:
            target_datetime (datetime): The datetime you want to
                generate orders for.
            lookback (int): Number of trading days you want data for before the
                (target_datetime - buffer_days)
            cash (int): Amount of starting cash
            buffer_days (int): number of trading days you want extra data
                generated for. Acts as a data start date.
            portfolio (prophet.portfolio.Portfolio): Starting portfolio
        """
        target_datetime_index = trading_days.get_loc(target_datetime)
        start = trading_days[target_datetime_index - buffer_days]
        data = self._generate_data(start,
                                   target_datetime,
                                   lookback)
        prices = data.get('prices')
        if prices is None:
            raise ProphetException("Price data is required to run a backtest. "
                                   "Please add a data generator with the name "
                                   "property set to 'prices'.")
        return self._order_generator.run(prices=prices,
                                         data=data,
                                         timestamp=target_datetime,
                                         cash=cash,
                                         portfolio=portfolio)
示例#3
0
 def get_data_start(self, start, lookback):
     start_index = trading_days.get_loc(start)
     return trading_days[start_index - lookback]
示例#4
0
 def get_data_start(self, start, lookback):
     start_index = trading_days.get_loc(start)
     return trading_days[start_index - lookback]