Class LgoStreamingTradeService

java.lang.Object
info.bitrich.xchangestream.lgo.LgoStreamingTradeService
All Implemented Interfaces:
StreamingTradeService

public class LgoStreamingTradeService extends Object implements StreamingTradeService
  • Method Details

    • getOrderChanges

      public io.reactivex.rxjava3.core.Observable<Order> getOrderChanges(CurrencyPair currencyPair, Object... args)
      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 First sent orders will be current open orders.

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

      public io.reactivex.rxjava3.core.Observable<OpenOrders> getOpenOrders(CurrencyPair currencyPair)
      Get an up-to-date view of all your open orders after each LGO batch execution. First sending will be the actual open orders list.
    • getOrderBatchChanges

      public io.reactivex.rxjava3.core.Observable<Collection<Order>> getOrderBatchChanges(CurrencyPair currencyPair)
      Receive all updated orders, for each LGO batches. First sending will be the actual open orders list.
    • getUserTrades

      public io.reactivex.rxjava3.core.Observable<UserTrade> getUserTrades(CurrencyPair currencyPair, Object... args)
      Description copied from interface: StreamingTradeService
      Gets authenticated trades 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.getTradeHistory(org.knowm.xchange.service.trade.params.TradeHistoryParams)

      Emits NotConnectedException When not connected to the WebSocket API.

      Immediately throws ExchangeSecurityException if called without authentication details

      Specified by:
      getUserTrades in interface StreamingTradeService
      Parameters:
      currencyPair - Currency pair for which to get trades.
      Returns:
      Observable that emits UserTrade when exchange sends the update.
    • getRawAllOrderEvents

      public io.reactivex.rxjava3.core.Observable<LgoOrderEvent> getRawAllOrderEvents(Collection<CurrencyPair> currencyPairs)
      Receive all events for the selected currency pairs. Merges batch order events and ack (AFR) events.
    • getRawReceivedOrderEvents

      public io.reactivex.rxjava3.core.Observable<LgoOrderEvent> getRawReceivedOrderEvents()
      Get ack for your placed orders. "received" events indicate the orderId associated to your order, if you set a reference on order placement you will have it in the event. "failed" events indicate that the order could not be read or was invalid and not added to a batch.
    • getRawBatchOrderEvents

      public io.reactivex.rxjava3.core.Observable<LgoOrderEvent> getRawBatchOrderEvents(CurrencyPair currencyPair)
      Get all events of your orders happened during batch execution, for a currency pair. "pending" events indicate that the order was added to a batch and received by the execution engine. "invalid" events indicate that the order was not suitable for execution. "match" events indicate that the order did match against another order. "open" events indicate that the order entered the order book. "done" events indicate that the order was filled, canceled or rejected.
    • placeMarketOrder

      public String placeMarketOrder(MarketOrder marketOrder) throws IOException
      Place a market order
      Returns:
      the order reference
      Throws:
      IOException
    • placeLimitOrder

      public String placeLimitOrder(LimitOrder limitOrder) throws IOException
      Place a limit order
      Returns:
      the order reference
      Throws:
      IOException
    • cancelOrder

      public boolean cancelOrder(String orderId) throws IOException
      Place a cancel order
      Returns:
      true
      Throws:
      IOException