code: def order_value(self,
                      asset,
                      value,
                      limit_price=None,
                      stop_price=None,
                      style=None):
          
          if not self._can_order_asset(asset):
              return None
  
          amount = self._calculate_order_value_amount(asset, value)
          return self.order(asset, amount,
                            limit_price=limit_price,
                            stop_price=stop_price,
                            style=style)
docs: Place an order by desired value rather than desired number of
          shares.
  
          Parameters
          ----------
          asset : Asset
              The asset that this order is for.
          value : float
              If the requested asset exists, the requested value is
              divided by its price to imply the number of shares to transact.
              If the Asset being ordered is a Future, the 'value' calculated
              is actually the exposure, as Futures have no 'value'.
  
              value > 0 :: Buy/Cover
              value < 0 :: Sell/Short
          limit_price : float, optional
              The limit price for the order.
          stop_price : float, optional
              The stop price for the order.
          style : ExecutionStyle
              The execution style for the order.
  
          Returns
          -------
          order_id : str
              The unique identifier for this order.
  
          Notes
          -----
          See :func:`zipline.api.order` for more information about
          ``limit_price``, ``stop_price``, and ``style``
  
          See Also
          --------
          :class:`zipline.finance.execution.ExecutionStyle`
          :func:`zipline.api.order`
          :func:`zipline.api.order_percent`