class_docstr: Model slippage for futures contracts according to the following formula:
  
      new_price = price + (price * MI / 10000),
  
  where 'MI' is market impact, which is defined as:
  
      MI = eta * sigma * sqrt(psi)
  
  - ``eta`` is a constant which varies by root symbol.
  - ``sigma`` is 20-day annualized volatility.
  - ``psi`` is the volume traded in the given bar divided by 20-day ADV.
  
  Parameters
  ----------
  volume_limit : float
      Maximum percentage (as a decimal) of a bar's total volume that can be
      traded.
  eta : float or dict
      Constant used in the market impact formula. If given a float, the eta
      for all futures contracts is the same. If given a dictionary, it must
      map root symbols to the eta for contracts of that symbol.
code: def __init__(self, volume_limit, eta=ROOT_SYMBOL_TO_ETA):
      super(VolatilityVolumeShare, self).__init__()
      self.volume_limit = volume_limit
  
      # If 'eta' is a constant, use a dummy mapping to treat it as a
      # dictionary that always returns the same value.
      # NOTE: This dictionary does not handle unknown root symbols, so it may
      # be worth revisiting this behavior.
      if isinstance(eta, (int, float)):
          self._eta = DummyMapping(float(eta))
      else:
          # Eta is a dictionary. If the user's dictionary does not provide a
          # value for a certain contract, fall back on the pre-defined eta
          # values per root symbol.
          self._eta = merge(ROOT_SYMBOL_TO_ETA, eta)
  
imports: from __future__ import division
  from abc import abstractmethod
  import math
  import numpy
  from pandas import isnull
  from six import with_metaclass
  from toolz import merge
  from zipline.assets import Equity, Future
  from zipline.errors import HistoryWindowStartsBeforeData
  from zipline.finance.constants import ROOT_SYMBOL_TO_ETA
  from zipline.finance.shared import AllowedAssetMarker, FinancialModelMeta
  from zipline.finance.transaction import create_transaction
  from zipline.utils.cache import ExpiringCache
  from zipline.utils.dummy import DummyMapping
  from zipline.utils.input_validation import expect_bounded, expect_strictly_bounded
label_desc: Use image node_id 1 to create a new VolatilityVolumeShare object from inherited base classes: MarketImpactBase with example: obj = VolatilityVolumeShare(volume_limit, eta)