def METHOD_NAME(
    self,
    futures_contract_with_ib_data: futuresContract,
    trade_list: tradeQuantity,
    account_id: str = arg_not_supplied,
    order_type: brokerOrderType = market_order_type,
    limit_price: float = None,
) -> tradeWithContract:
    """
    :param ibcontract: contract_object_with_ib_data: contract where instrument has ib metadata
    :param trade: int
    :param account: str
    :param order_type: str, market or limit
    :param limit_price: None or float
    :return: brokers trade object
    """
    try:
        ibcontract_with_legs = self.ib_futures_contract_with_legs(
            futures_contract_with_ib_data=futures_contract_with_ib_data,
            trade_list_for_multiple_legs=trade_list,
        )
    except missingContract:
        return missing_order
    ibcontract = ibcontract_with_legs.ibcontract
    ib_order = self._build_ib_order(
        trade_list=trade_list,
        account_id=account_id,
        order_type=order_type,
        limit_price=limit_price,
    )
    order_object = self.ib.placeOrder(ibcontract, ib_order)
    trade_with_contract = tradeWithContract(ibcontract_with_legs, order_object)
    return trade_with_contract