14 May 2021

  • Updated

New features/changes:

Deribit has corrected the instrument descriptive field "quoted currency" for BTC and ETH options from USD to the respective correct currency (BTC or ETH). The actual quoted currency does not change but this could be a breaking change as reported by multiple clients. The change affects the response to public/get_instrument family of functions for example: 

Current Production setup

https://www.deribit.com/api/v2/public/get_instrument?instrument_name=BTC-28MAY21-50000-P

Result quote currency USD

Testnet setup

https://test.deribit.com/api/v2/public/get_instrument?instrument_name=BTC-28MAY21-50000-P

Result quote currency BTC

Affected endpoints:

* /public/get_instruments

* /public/get_book_summary_by_currency

* /public/get_book_summary_by_instrument

Modified error message text for API error codes:

10034: old: stop_price_too_high -> new: trigger_price_too_high

10035: old: stop_price_too_low -> new: trigger_price_too_low

10044: old: stop_price_wrong_tick -> new: trigger_price_wrong_tick

11036: old: invalid_stop_price -> new: invalid_trigger_price

New Order types

New order type "Market Limit"

A Market-to-Limit order is submitted as a market order to execute at the current best available market price. If the order is only partially filled, the remainder of the order is entered as a limit order with the limit price equal to the price at which the filled portion of the order was executed. This order type is only available for futures and perpetual in the UI, and for all products using the API.

New time-in-force order type "Good 'til day"

A GTD order is a type of limit order that stays in the book until the end of the session at 8 UTC when it will automatically be cancelled. A GTD order, therefore, has a maximum lifetime of up to 24 hrs.

New "Take profit" algorithmic orders:

  • New order types (take_market & take_limit) were added to the /private/buy or /private/sell API methods indicating a new type of the orders

  • New order types (algo_all, take_all, take_market & take_limit) were added to the filter lists of /private/get_open_orders_by_instrumen, /private/get_open_orders_by_currency and /private/get_subaccount_details

  • Modified error message for API error codes:

  • 10034: stop_price_too_high -> trigger_price_too_high

  • 10035: stop_price_too_low -> trigger_price_too_low

  • 10044: stop_price_wrong_tick -> trigger_price_wrong_tick

  • 11036: invalid_stop_price -> invalid_trigger_price

  • An optional stop_price parameter for /private/buy|sell|edit methods was renamed to trigger_price. Fallback to the old parameter name was preserved but will be removed soon.

  • trigger_price field was also added to the responses of /private/buy|sell|edit|get_order_state methods as a replacement for the stop_price.

  • the stop_id and stop_order_id fields were replaced with trigger_order_id in API responses documentation. But they are present in the json object as a backward compatibility

  • the /private/get_stop_order_history endpoint was renamed to /private/get_trigger_order_history. The old one remains as a backward compatibility only.

New API v2 method "/private/edit_by_label"

/private/edit_by_label can as of now edit orders that were waiting to be processed. This feature is only available for Websockets, not FIX. This means that orders can now already be edited before the exchange order_id has been received. 

Other 

New FIX  'Logon' method flag 9010

  • New flag 9010 ConnectionOnlyExecutionReports that if set limit Execution Reports only to orders created in a given connection

  • New Tag 9010 in Logon 

  • | 9010 | ConnectionOnlyExecutionReports| Boolean | No | Custom tag. Default - false (N). 

  • If the tag is present and set to Y this connection will receive Execution Reports only for orders created in this connection, it won't receive notifications for orders created in other connections even within the same subaccount. 

  • This tag can be used to split Execution Reports between several connections to the same sub

[FIX} Fixed 'SettlType' in response for daily expired instruments

New SettlType response for daily instruments e.g. “D1”

[FIX] Execution reports for orders cancelled due to Fill Or Kill time in force can be distinguished now by inspecting tag 58 (text) -

Orders cancelled due to Fill Or Kill time in force are marked as "killed" now

[APIv1, APIv2] More restrictive instrument validation in APIv1 and APIv2 subscriptions (only "active" instruments allowed)

Deribit has disabled the possibility to subscribe to expired instruments.

[APIv2] Added new public subscription channel deribit_price_statistics.{index_name}

The new subscription disseminates 24h price index statistics (low24h, high24h, and change24h prices) updates every 15 seconds

Change to underlying instrument for options during the settlement period

Deribit has changed the underlying instrument for options during the settlement period as follows:

  • If the expiring instrument does not have futures as underlying but uses a synthetic future (e.g. daily options) we will start using the Estimated Delivery Price as Underlying Price for the expiring instrument as of 7.30 UTC

  • If  the expiring instrument has tradable futures as underlying we will start using the Estimated Delivery Price as Underlying Price for the expiring instrument as of 7.55 UTC

The underlying instrument as shown in the UI or API will not reflect this new approach. The name of the underlying book will show the index when, as mentioned, actually the EDP will be used.

New API info:

https://docs.deribit.com/next/