code: def rollover(self):
      # We are starting a new period
      self.initialize(
          starting_cash=self.ending_cash,
          starting_value=self.ending_value,
          starting_exposure=self.ending_exposure,
      )
  
      self.subperiod_divider = None
  
      payout_assets = self._payout_last_sale_prices.keys()
  
      for asset in payout_assets:
          if asset in self._payout_last_sale_prices:
              self._payout_last_sale_prices[
                  asset
              ] = self.position_tracker.positions[asset].last_sale_price
          else:
              del self._payout_last_sale_prices[asset]
  
imports: from __future__ import division
  import logbook
  import numpy
  from collections import namedtuple
  from catalyst.assets import Future
  from six import itervalues, iteritems
  import catalyst.protocol
  from catalyst.constants import LOG_LEVEL
label_desc: Use image node_id 6 for calling the PerformancePeriod obj's underlying member method code with example usage: obj.rollover() without return types