Trading Strategies

Please contact support@aquanow.io to enable additional strategies.

RFQ

RFQ orders allow users to make a request for a quote, then decide if they wish to execute that quote.

Get an RFQ quote

GET https://api.aquanow.io/trades/v1/getQuote

getQuote endpoint allows users to get an RFQ quote from Aquanow, and receive quoteId and price that is valid during the lifetime of the RFQ.

This endpoint is not executable and can only be used as a means of pricing your order.

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Query Parameters

Headers

Returns an ExecutionsObject.

{
  "type": "rfqGetQuoteAck",
  "payload": {
    "quoteId": "b9593fd0-db2d-4e22-8c6b-2e9d5a3226f7",
    "quoteTime": 1657595867140,
    "expireTime": 1657595917140,
    "symbol": "BTC-USD",
    "side": "buy",
    "receiveCurrency": "BTC",
    "receiveQuantity": 0.0495602273,
    "deliverCurrency": "USD",
    "deliverQuantity": 1000,
    "price": 20177.47
  }
}

Create an RFQ quote

POST https://api.aquanow.io/trades/v1/createQuote

createQuote endpoint allows user to initiate an RFQ request to Aquanow and receive a quoteId and price that is valid during the lifetime of the RFQ.

NOTE: Either deliverQuantity or receiveQuantity must be specified. If both are specified, receiveQuantity will be considered for sell orders, and deliverQuantity will be considered for buy orders.

If order is not filled, request returns a 200 response with receiveQuantity and deliverQuantity set to 0.

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Headers

Request Body

Returns an ExecutionsObject.

{
  "type": "rfqCreateQuoteAck",
  "payload": {
    "quoteId": "474a8cb0-0484-46d8-909e-1c1a65cd200d",
    "quoteTime": 1628112496153,
    "expireTime": 1628112508153,
    "symbol": "ETH-CAD",
    "side": "buy",
    "receiveCurrency": "ETH",
    "receiveQuantity": 0.1,
    "deliverCurrency": "CAD",
    "deliverQuantity": 340.45,
    "price": 3404.5
  }
}

Execute an RFQ Quote

POST https://api.aquanow.io/trades/v1/executeQuote

executeQuote endpoint allows users to execute a trade with a specified quoteId with the symbol, trade side and size within the time to live (TTL) of the request associated with the quoteId.

NOTE: The quote must be executed BEFORE the time expired. The TTL of a quote is 8 seconds by default. If you wish to increase the expiry time, please contact Aquanow for support.

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Headers

Request Body

Returns an ExecutionsObject.

{
  "type": "rfqExecuteQuoteAck",
  "payload": {
    "quoteId": "205feb16-0135-401b-84ce-a27e12d42453"
  }
}

Expire an RFQ Quote

PUT https://api.aquanow.io/trades/v1/expireQuote

expireQuote endpoint allows users to expire a quote with a specified quoteId within the time to live (TTL) of the request associated with the quoteId.

NOTE: The quote must be executed BEFORE the time expired. The TTL of a quote is 8 seconds by default. If you wish to increase the expiry time, please contact Aquanow for support.

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Headers

Request Body

Returns an ExecutionsObject.

{
  "type": "rfqExpireQuoteAck",
  "payload": {
    "quoteId": "6d187635-27df-4175-8b23-f1f0ec84907e"
  }
}

Market

Aquanow's Market execution strategy is utilized to perform instant executions.

Create a market order

POST https://api.aquanow.io/trades/v1/market

Note: Either deliverQuantity or receiveQuantity must be specified. If both are specified, receiveQuantity will be considered for sell orders, and deliverQuantity will be considered for buy orders.

If order is not filled, the request will return a 200 response, with receiveQuantity and deliverQuantity set to 0.

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Headers

Request Body

Returns an ExecutionsObject.

{
  "type": "marketOrderSubmitAck",
  "payload": {
    "orderId": "105bb0a7-fdb0-4bde-a367-d47787951349",
    "receiveCurrency": "USD",
    "receiveQuantity": 19.6206,
    "deliverCurrency": "BTC",
    "deliverQuantity": 0.002,
    "fee": 0.0392412
  }
}

TWAP

Aquanow's execution algorithm.

TWAP

Time-Weighted Average Price (TWAP) is used when buying or selling large amounts of digital assets over time, with the ability to choose the amount being sold and its time period.

Create an order

POST https://api.aquanow.io/trades/v1/order

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Headers

Request Body

Returns an ExecutionsObject.

{
  "type": "parentOrderSubmitAck",
  "payload": {
    "orderId": "6215758c-38dc-4a9f-9647-023ef14f20bb"
  }
}

Cancel a pre-existing TWAP order.

DELETE https://api.aquanow.io/trades/v1/order

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Query Parameters

Headers

Returns an ExecutionsObject.

{
  "type": "parentOrderCancelAck",
  "payload": {
    "orderId": "7b323a75-5457-450f-9bf0-46fa6f20ff4e"
  }
}

FOK

Fill or Kill order strategy will execute the entire order immediately at the market or specified price, otherwise it will cancelled if not filled.

Endpoint to initiate a FOK request to Aquanow.

POST https://api.aquanow.io/trades/v1/order

NOTE: Either deliverQuantity, receiveQuantity must be specified. If both are specified, receiveQuantity will be considered for sell orders, and deliverQuantity will be considered for buy orders.

If order is not filled, the request will return a 200 response with a Cancelled message.

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Headers

Request Body

Returns an ExecutionsObject.

{
  "type": "parentOrderSubmitAck",
  "payload": {
    "orderId": "0bea14b3-a510-437c-a805-73p15f654cad",
    "receiveCurrency": "BTC",
    "receiveQuantity": 0.02,
    "deliverCurrency": "USD",
    "deliverQuantity": 881.7,
    "fee": 0,
    "tradeTime": 1704389622301,
    "symbol": "BTC-USD",
    "tradeStatus": "COMPLETE",
    "price": 44085
  }
}

LIMIT/GTC/GTD

Aquanow's duration order algorithms with a price limit.

Orders can be completed immediately depending on the specified priceLimit, quantity and the market. Incomplete pre-existing orders expire depending on the strategy.

Duration Order Algorithms

LIMIT

LIMIT orders create a pre-existing order, available for up to 24 hours.

GTC

Good Till Cancel (GTC) orders create a pre-existing order, available for up to 90 days.

GTD

Good Till Date (GTD) orders create a pre-existing order, available until a specified expirationTime date (max. 90 days).

Endpoint to initiate an LIMIT/GTC/GTD request to Aquanow.

POST https://api.aquanow.io/trades/v1/order

NOTE: Either deliverQuantity or receiveQuantity must be specified. If both are specified, receiveQuantity will be considered for sell orders, and deliverQuantity will be considered for buy orders.

If order is not filled, the request will return a 200 response with receiveQuantity and deliverQuantity set to 0.

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Headers

Request Body

Returns an ExecutionsObject.

{
  "type": "limitOrderAck",
  "payload": {
    "quoteId": "5cecaa55-e91a-4c12-9af4-756c9f3630ea",
    "quoteTime": 1669072974783,
    "expireTime": 1669159374783,
    "ticker": "BTC-USD",
    "tradeSide": "buy",
    "receiveCurrency": "BTC",
    "receiveQuantity": 0.048,
    "deliverCurrency": "USD",
    "deliverQuantity": 758.208,
    "price": 15796
  }
}

Cancel a pre-existing LIMIT/GTC/GTD order.

DELETE https://api.aquanow.io/trades/v1/order

To view example requests for this endpoint, visit Aquanow's Postman documentation.

Headers

Request Body

Returns an ExecutionsObject.

{
    "type": "parentOrderCancelAck",
    "payload": { 
        "orderId": "7b323a75-5457-450f-9bf0-46fa6f20ff4e"
    }
}

Last updated