placeConditionalOrder method

Future<Map<String, dynamic>?> placeConditionalOrder({
  1. required String symbol,
  2. required String side,
  3. required String orderType,
  4. required int quantity,
  5. double? price,
  6. required double basePrice,
  7. required double triggerPrice,
  8. required String timeInForce,
  9. String? triggerBy,
  10. bool? closeOnTrigger,
  11. String? orderLinkId,
  12. double? takeProfit,
  13. double? stopLoss,
  14. String? tpTriggerBy,
  15. String? slTriggerBy,
})

Place a market price conditional order https://bybit-exchange.github.io/docs/inverse/#t-placecond

Implementation

Future<Map<String, dynamic>?> placeConditionalOrder({
  required String symbol,
  required String side,
  required String orderType,
  required int quantity,
  double? price,
  required double basePrice,
  required double triggerPrice,
  required String timeInForce,
  String? triggerBy,
  bool? closeOnTrigger,
  String? orderLinkId,
  double? takeProfit,
  double? stopLoss,
  String? tpTriggerBy,
  String? slTriggerBy,
}) async {
  log.d('ByBitRest.placeConditionalOrder');
  var parameters = <String, dynamic>{};
  parameters['symbol'] = symbol;
  parameters['side'] = side;
  parameters['order_type'] = orderType;
  parameters['qty'] = quantity.toString();
  parameters['base_price'] = basePrice.toString();
  parameters['stop_px'] = triggerPrice.toString();
  parameters['time_in_force'] = timeInForce;
  parameters['trigger_by'] = triggerBy;
  if (price != null) parameters['price'] = price.toString();
  if (closeOnTrigger != null) parameters['close_on_trigger'] = closeOnTrigger;
  if (orderLinkId != null) parameters['order_link_id'] = orderLinkId;
  if (takeProfit != null) parameters['take_profit'] = takeProfit;
  if (stopLoss != null) parameters['stop_loss'] = stopLoss;
  if (tpTriggerBy != null) parameters['tp_trigger_by'] = tpTriggerBy;
  if (slTriggerBy != null) parameters['sl_trigger_by'] = slTriggerBy;
  return await request(
      path: '/v2/private/stop-order/create',
      type: 'POST',
      parameters: parameters,
      withAuthentication: true);
}