Interface TradeService
- All Superinterfaces:
BaseService
- All Known Implementing Classes:
AscendexTradeService
,BankeraTradeService
,BiboxTradeService
,BinanceTradeService
,BitbayTradeService
,BitbayTradeService
,BitcoindeTradeService
,BitcoindeTradeService
,BitcointoyouTradeService
,BitfinexTradeService
,BitflyerTradeService
,BithumbTradeService
,BitmexTradeService
,BitsoTradeService
,BitstampTradeService
,BittrexTradeService
,BityTradeService
,BitZTradeService
,Bl3pTradeService
,BleutradeTradeService
,BlockchainTradeService
,BTCMarketsTradeService
,BTCTurkTradeService
,BybitTradeService
,CCEXTradeService
,CexIOTradeService
,CoinbaseProTradeService
,CoinbaseTradeService
,CoinbaseTradeService
,CoindealTradeService
,CoindirectTradeService
,CoinEggTradeService
,CoinfloorTradeService
,CoingiTradeService
,CoinjarTradeService
,CoinmateTradeService
,CoinoneTradeService
,CryptoFacilitiesTradeService
,CryptowatchTradeService
,DeribitTradeService
,DVChainTradeService
,EnigmaTradeService
,ExmoTradeService
,FtxTradeService
,GateioTradeService
,GeminiTradeService
,GlobitexTradeService
,HitbtcTradeService
,HuobiTradeService
,IdexTradeService
,IndependentReserveTradeService
,ItBitTradeService
,KrakenTradeService
,KucoinTradeService
,KunaTradeService
,LatokenTradeService
,LgoTradeService
,LivecoinTradeService
,LunoTradeService
,LykkeTradeService
,MercadoBitcoinTradeService
,MEXCTradeService
,OkCoinFuturesTradeService
,OkCoinTradeService
,OkexTradeService
,OkexTradeService
,PaymiumTradeService
,PoloniexTradeService
,QuoineTradeService
,RippleTradeService
,SimulatedTradeService
,TheRockTradeService
,TradeOgreTradeService
,UpbitTradeService
,VaultoroTradeService
,YoBitTradeService
,YoBitTradeServiceRaw
public interface TradeService extends BaseService
Exchange
:
- Retrieve the user's open orders on the exchange
- Cancel user's open orders on the exchange
- Place market orders on the exchange
- Place limit orders on the exchange
- Change limit orders on the exchange
The implementation of this service is expected to be based on a client polling mechanism of some kind
-
Method Summary
Modifier and Type Method Description default Collection<String>
cancelAllOrders(CancelAllOrders orderParams)
default boolean
cancelOrder(String orderId)
cancels order with matching orderId (conveniance method, typical just delegate to cancelOrder(CancelOrderByIdParams))default boolean
cancelOrder(CancelOrderParams orderParams)
cancels order with matching orderParamsdefault String
changeOrder(LimitOrder limitOrder)
Modify or cancel/replace an existing limit orderdefault OpenOrdersParams
createOpenOrdersParams()
CreateOpenOrdersParams
object specific to this exchange.default TradeHistoryParams
createTradeHistoryParams()
CreateTradeHistoryParams
object specific to this exchange.default OpenOrders
getOpenOrders()
Gets the open ordersdefault OpenOrders
getOpenOrders(OpenOrdersParams params)
Gets the open ordersdefault OpenPositions
getOpenPositions()
Get all openPositions of the exchangedefault Collection<Order>
getOrder(String... orderIds)
get's the latest order form the order book that with matching orderIddefault Collection<Order>
getOrder(OrderQueryParams... orderQueryParams)
get's the latest order form the order book that with matching orderQueryParamsdefault Class[]
getRequiredCancelOrderParamClasses()
Returns required cancel order parameter as classesdefault Class
getRequiredOrderQueryParamClass()
Returns required get order parameter as classesdefault UserTrades
getTradeHistory(TradeHistoryParams params)
Fetch the history of user trades.default String
placeLimitOrder(LimitOrder limitOrder)
Place a limit orderdefault String
placeMarketOrder(MarketOrder marketOrder)
Place a market orderdefault String
placeStopOrder(StopOrder stopOrder)
Place a stop orderstatic String[]
toOrderIds(OrderQueryParams... orderQueryParams)
static OrderQueryParams[]
toOrderQueryParams(String... orderIds)
default void
verifyOrder(LimitOrder limitOrder)
Verify the order against the exchange meta data.default void
verifyOrder(MarketOrder marketOrder)
Verify the order against the exchange meta data.
-
Method Details
-
getOpenOrders
Gets the open orders- Returns:
- the open orders, null if some sort of error occurred. Implementers should log the error.
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data
-
getOpenOrders
Gets the open orders- Parameters:
params
- The parameters describing the filter. Note thatOpenOrdersParams
is an empty interface. Exchanges should implement its own params object. Params should be create withcreateOpenOrdersParams()
.- Returns:
- the open orders, null if some sort of error occurred. Implementers should log the error.
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data
-
getRequiredCancelOrderParamClasses
Returns required cancel order parameter as classesDifferent 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 ofcancelOrder(CancelOrderParams)
to create instances of the required parameters such asCancelOrderByIdParams
,CancelOrderByInstrument
etc...- Returns:
- Class types for the required parameter classes. Default implementation returns an array
with a single
CancelOrderByIdParams
element
-
getOpenPositions
Get all openPositions of the exchange- Throws:
IOException
-
placeMarketOrder
Place a market orderIf your orders amount does to meet the restrictions dictated by
InstrumentMetaData
then the exchange will reject your order. UseOrderValuesHelper
to validate and / or adjust it while you'r building an order.- Parameters:
marketOrder
-- Returns:
- the order ID
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data- See Also:
OrderValuesHelper
-
placeLimitOrder
Place a limit orderIf your orders amount or limit price does to meet the restrictions dictated by
InstrumentMetaData
then the exchange will reject your order. UseOrderValuesHelper
to validate and / or adjust those values while you'r building an order.- Parameters:
limitOrder
-- Returns:
- the order ID
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data- See Also:
OrderValuesHelper
-
placeStopOrder
Place a stop orderIf your orders amount or spot price does to meet the restrictions dictated by
InstrumentMetaData
then the exchange will reject your order. UseOrderValuesHelper
to validate and / or adjust those values while you'r building an order.- Parameters:
stopOrder
-- Returns:
- the order ID
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data- See Also:
OrderValuesHelper
-
changeOrder
Modify or cancel/replace an existing limit order- Parameters:
limitOrder
- Order's data to change- Returns:
- Order ID
- Throws:
ExchangeException
- Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- Indication that a networking error occurred while fetching JSON data
-
cancelOrder
cancels order with matching orderId (conveniance method, typical just delegate to cancelOrder(CancelOrderByIdParams))- Parameters:
orderId
-- Returns:
- true if order was successfully cancelled, false otherwise.
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data
-
cancelOrder
cancels order with matching orderParams- Parameters:
orderParams
-- Returns:
- true if order was successfully cancelled, false otherwise.
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data
-
cancelAllOrders
- Throws:
IOException
-
getTradeHistory
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
createTradeHistoryParams()
and check which parameters are required or supported using instanceof operator. See subinterfaces ofTradeHistoryParams
. 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
createTradeHistoryParams()
and cast it to the exchange-specific type.- Parameters:
params
- The parameters describing the filter. Note thatTradeHistoryParams
is an empty interface. Exact set of interfaces that are required or supported by this method is described by the type of object returned fromcreateTradeHistoryParams()
and the javadoc of the method.- Returns:
- UserTrades as returned by the exchange API
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data- See Also:
createTradeHistoryParams()
,TradeHistoryParamsAll
-
createTradeHistoryParams
CreateTradeHistoryParams
object specific to this exchange. Object created by this method may be used to discover supported and requiredgetTradeHistory(TradeHistoryParams)
parameters and should be passed only to the method in the same class as the createTradeHistoryParams that created the object. -
createOpenOrdersParams
CreateOpenOrdersParams
object specific to this exchange. Object created by this method may be used to discover supported and requiredgetOpenOrders(OpenOrdersParams)
parameters and should be passed only to the method in the same class as the createOpenOrdersParams that created the object. -
verifyOrder
Verify the order against the exchange meta data. Most implementations will require thatExchange.remoteInit()
be called before this method -
verifyOrder
Verify the order against the exchange meta data. Most implementations will require thatExchange.remoteInit()
be called before this method -
getOrder
get's the latest order form the order book that with matching orderId- Returns:
- the order as it is on the exchange.
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data
-
toOrderQueryParams
-
toOrderIds
-
getRequiredOrderQueryParamClass
Returns required get order parameter as classesDifferent trading services requires different parameters for order querying. 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 ofgetOrder(OrderQueryParams...)
to create instances of the required parameter such asOrderQueryParamCurrencyPair
,OrderQueryParamInstrument
etc...- Returns:
- Class type for the required parameter class. Default implementation returns an instance
of
OrderQueryParams
element
-
getOrder
get's the latest order form the order book that with matching orderQueryParams- Returns:
- the order as it is on the exchange.
- Throws:
ExchangeException
- - Indication that the exchange reported some kind of error with the request or responseNotAvailableFromExchangeException
- - Indication that the exchange does not support the requested function or dataNotYetImplementedForExchangeException
- - Indication that the exchange supports the requested function or data, but it has not yet been implementedIOException
- - Indication that a networking error occurred while fetching JSON data
-