Class TheRockTradeService

All Implemented Interfaces:
BaseService, TradeService

public class TheRockTradeService extends TheRockTradeServiceRaw implements TradeService
Author:
Matija Mazi, Pnk
  • Constructor Details

    • TheRockTradeService

      public TheRockTradeService(Exchange exchange)
  • Method Details

    • placeMarketOrder

      public String placeMarketOrder(MarketOrder order) throws IOException, ExchangeException
      Description copied from interface: TradeService
      Place a market order

      If your orders amount does to meet the restrictions dictated by InstrumentMetaData then the exchange will reject your order. Use OrderValuesHelper to validate and / or adjust it while you'r building an order.

      Specified by:
      placeMarketOrder in interface TradeService
      Returns:
      the order ID
      Throws:
      IOException - - Indication that a networking error occurred while fetching JSON data
      ExchangeException - - Indication that the exchange reported some kind of error with the request or response
      See Also:
    • placeLimitOrder

      public String placeLimitOrder(LimitOrder order) throws IOException, ExchangeException
      Description copied from interface: TradeService
      Place a limit order

      If your orders amount or limit price does to meet the restrictions dictated by InstrumentMetaData then the exchange will reject your order. Use OrderValuesHelper to validate and / or adjust those values while you'r building an order.

      Specified by:
      placeLimitOrder in interface TradeService
      Returns:
      the order ID
      Throws:
      IOException - - Indication that a networking error occurred while fetching JSON data
      ExchangeException - - Indication that the exchange reported some kind of error with the request or response
      See Also:
    • getOpenOrders

      public OpenOrders getOpenOrders() throws IOException
      Not available from exchange since TheRock needs currency pair in order to return open orders
      Specified by:
      getOpenOrders in interface TradeService
      Returns:
      the open orders, null if some sort of error occurred. Implementers should log the error.
      Throws:
      IOException - - Indication that a networking error occurred while fetching JSON data
    • getOpenOrders

      public OpenOrders getOpenOrders(OpenOrdersParams params) throws IOException
      Description copied from interface: TradeService
      Gets the open orders
      Specified by:
      getOpenOrders in interface TradeService
      Parameters:
      params - The parameters describing the filter. Note that OpenOrdersParams is an empty interface. Exchanges should implement its own params object. Params should be create with TradeService.createOpenOrdersParams().
      Returns:
      the open orders, null if some sort of error occurred. Implementers should log the error.
      Throws:
      IOException - - Indication that a networking error occurred while fetching JSON data
    • cancelOrder

      public boolean cancelOrder(String orderId) throws IOException
      Not available from exchange since TheRock needs currency pair in order to cancel an order
      Specified by:
      cancelOrder in interface TradeService
      Returns:
      true if order was successfully cancelled, false otherwise.
      Throws:
      IOException - - Indication that a networking error occurred while fetching JSON data
    • cancelOrder

      public boolean cancelOrder(CancelOrderParams params) throws IOException
      Description copied from interface: TradeService
      cancels order with matching orderParams
      Specified by:
      cancelOrder in interface TradeService
      Returns:
      true if order was successfully cancelled, false otherwise.
      Throws:
      IOException - - Indication that a networking error occurred while fetching JSON data
    • getRequiredCancelOrderParamClasses

      public Class[] getRequiredCancelOrderParamClasses()
      Description copied from interface: TradeService
      Returns required cancel order parameter as classes

      Different trading services requires different parameters for order cancellation. To provide generic operation of the trade service interface. This method returns Class of the parameter objects as an array. This class information can be utilized by the caller of TradeService.cancelOrder(CancelOrderParams) to create instances of the required parameters such as CancelOrderByIdParams, CancelOrderByInstrument etc...

      Specified by:
      getRequiredCancelOrderParamClasses in interface TradeService
      Returns:
      Class types for the required parameter classes. Default implementation returns an array with a single CancelOrderByIdParams element
    • getOrder

      public Collection<Order> getOrder(String... orderIds) throws IOException
      Not available from exchange since TheRock needs currency pair in order to return/show the order
      Specified by:
      getOrder in interface TradeService
      Returns:
      the order as it is on the exchange.
      Throws:
      IOException - - Indication that a networking error occurred while fetching JSON data
    • getTradeHistory

      public UserTrades getTradeHistory(TradeHistoryParams params) throws IOException
      Description copied from interface: TradeService
      Fetch the history of user trades.

      If you are calling this method for single exchange, known at the development time, you may pass an object of specific *TradeHistoryParam class that is nested it that exchange's trade service.

      If, however, you are fetching user trade history from many exchanges using the same code, you will find useful to create the parameter object with TradeService.createTradeHistoryParams() and check which parameters are required or supported using instanceof operator. See subinterfaces of TradeHistoryParams. Note that whether an interface is required or supported will vary from exchange to exchange and it's described only through the javadoc.

      There is also implementation of all the common interfaces, TradeHistoryParamsAll , that, with all properties set non-null, should work with any exchange.

      Some exchanges allow extra parameters, not covered by any common interface. To access them, you will have to use the object returned by TradeService.createTradeHistoryParams() and cast it to the exchange-specific type.

      Specified by:
      getTradeHistory in interface TradeService
      Parameters:
      params - The parameters describing the filter. Note that TradeHistoryParams is an empty interface. Exact set of interfaces that are required or supported by this method is described by the type of object returned from TradeService.createTradeHistoryParams() and the javadoc of the method.
      Returns:
      UserTrades as returned by the exchange API
      Throws:
      IOException - - Indication that a networking error occurred while fetching JSON data
      See Also:
    • createOpenOrdersParams

      public OpenOrdersParams createOpenOrdersParams()
      Description copied from interface: TradeService
      Create OpenOrdersParams object specific to this exchange. Object created by this method may be used to discover supported and required TradeService.getOpenOrders(OpenOrdersParams) parameters and should be passed only to the method in the same class as the createOpenOrdersParams that created the object.
      Specified by:
      createOpenOrdersParams in interface TradeService