Esempio n. 1
0
    def buy_and_hold_return(self):
        """Total return of buying and holding.

        !!! note:
            Does not take into account fees and slippage. For this, create a separate portfolio."""
        returns = generic_nb.pct_change_nb(self.main_price.vbt.to_2d_array())
        return self.wrapper.wrap(returns).vbt.returns.total()
Esempio n. 2
0
 def returns(self):
     """Portfolio return series."""
     equity = self.equity.vbt.to_2d_array()
     returns = generic_nb.pct_change_nb(equity)
     init_capital = reshape_fns.to_1d(self.init_capital, raw=True)
     returns[0, :] = (equity[0, :] - init_capital) / init_capital
     return self.wrapper.wrap(returns)
Esempio n. 3
0
 def returns(self):
     """Portfolio return series."""
     equity = self.equity.vbt.to_2d_array()
     returns = generic_nb.pct_change_nb(equity)
     init_capital = reshape_fns.to_1d(self.init_capital, raw=True)
     returns[0, :] = (equity[0, :] - init_capital
                      ) / init_capital  # initial capital is one tick before
     returns[np.isnan(returns)] = 0.  # can happen if later price is unknown
     return self.wrapper.wrap(returns)