Class BybitStreamingTradeService

All Implemented Interfaces:
StreamingTradeService

public class BybitStreamingTradeService extends BybitBaseService implements StreamingTradeService
  • Constructor Details

  • Method Details

    • placeMarketOrder

      public io.reactivex.rxjava3.core.Single<Integer> placeMarketOrder(MarketOrder order, Object... args)
      Description copied from interface: StreamingTradeService
      Places a market order on the exchange. A market order is an order to buy or sell a financial instrument immediately at the best available current price. Specific exchanges may require additional optional parameters to process the market order.
      Specified by:
      placeMarketOrder in interface StreamingTradeService
      Parameters:
      order - The details of the market order, including the instrument, amount, and side (buy/sell).
      args - Optional additional arguments that may be required by specific exchanges.
      Returns:
      A Single that emits the operation result code, typically 0 for success.
    • placeLimitOrder

      public io.reactivex.rxjava3.core.Single<Integer> placeLimitOrder(LimitOrder order, Object... args)
      Description copied from interface: StreamingTradeService
      Places a limit order on the exchange. A limit order specifies the price at which the user wants to buy or sell a financial instrument, potentially with additional optional parameters.
      Specified by:
      placeLimitOrder in interface StreamingTradeService
      Parameters:
      order - The details of the limit order, including instrument, price, volume, and side (buy/sell).
      args - Optional additional arguments that may be required by specific exchanges.
      Returns:
      A Single that emits the operation result code, typically 0 for success.
    • changeOrder

      public io.reactivex.rxjava3.core.Single<Integer> changeOrder(LimitOrder order, Object... args)
      Description copied from interface: StreamingTradeService
      Modifies an existing limit order on the exchange. This can include changes to the price, volume, or other adjustable parameters of the order, depending on the exchange's specific functionality and constraints.
      Specified by:
      changeOrder in interface StreamingTradeService
      Parameters:
      order - The limit order to be modified, including the updated details such as price or/and volume.
      args - Optional additional arguments that may be required by specific exchanges.
      Returns:
      A Single that emits the operation result code, typically 0 for success.
    • batchChangeOrder

      public io.reactivex.rxjava3.core.Single<List<Integer>> batchChangeOrder(List<LimitOrder> orders)
    • cancelOrder

      public io.reactivex.rxjava3.core.Single<Integer> cancelOrder(CancelOrderParams params, Object... args)
      Description copied from interface: StreamingTradeService
      Cancels an existing order on the exchange. The operation requires specific parameters describing the order to be canceled, such as order ID or user reference ID.
      Specified by:
      cancelOrder in interface StreamingTradeService
      Parameters:
      params - An object implementing CancelOrderParams that contains order ID or user reference ID.
      args - Optional additional arguments that may be required by specific exchanges.
      Returns:
      A Single that emits the operation result code, typically 0 for success.
    • batchCancelOrder

      public io.reactivex.rxjava3.core.Single<List<Integer>> batchCancelOrder(List<CancelOrderParams> params)
    • getOrderChanges

      public io.reactivex.rxjava3.core.Observable<Order> getOrderChanges(Instrument instrument, Object... args)
      Specified by:
      getOrderChanges in interface StreamingTradeService
    • getOrderChanges

      public io.reactivex.rxjava3.core.Observable<Order> getOrderChanges(CurrencyPair pair, Object... args)
      Description copied from interface: StreamingTradeService
      Get the changes of order state for the logged-in user.

      Warning: there are currently no guarantees that messages will arrive in order, that messages will not be skipped, or that any initial state message will be sent on connection. Most exchanges have a recommended approach for managing this, involving timestamps, sequence numbers and a separate REST API for re-sync when inconsistencies appear. You should implement these approaches, if required, by combining calls to this method with TradeService.getOpenOrders().

      Emits NotConnectedException When not connected to the WebSocket API.

      Immediately throws ExchangeSecurityException if called without authentication details

      Specified by:
      getOrderChanges in interface StreamingTradeService
      Parameters:
      pair - Currency pair of the order changes.
      Returns:
      Observable that emits Order when exchange sends the update.
    • getComplexOrderChanges

      public io.reactivex.rxjava3.core.Observable<BybitComplexOrderChanges> getComplexOrderChanges(BybitCategory category)
    • getPositionChanges

      public io.reactivex.rxjava3.core.Observable<OpenPosition> getPositionChanges(BybitCategory category)
    • getBybitPositionChanges

      public io.reactivex.rxjava3.core.Observable<BybitComplexPositionChanges> getBybitPositionChanges(BybitCategory category)