Exchange-provided metrics

Available in the "basic" pack of Derivatives Risk Indicators.

What is this endpoint for?

This endpoint is part of Derivatives Risk Indicators. It can be used to get risk information such as greeks and IV in real-time.

Endpoints

gateway-v0-grpc.kaiko.ovh

Parameters

Parameter
Description
Examples

instrumentCriteria

A nested object to configure following properties for your stream:

  • exchange (String) - The code(s) for the exchange(s)

  • instrument_class (String) - The class(es) of the instrument(s) . The instrument must be a derivative class.

  • code (String) - The Kaiko code for the instrument.

cbse

option

algo-btc

commodities

AlwaysSDICK_RISK

SDICK_RISK

Configuring a wildcard

A wildcard allows you to request all information we have on a specific instrument or exchange in the same stream. Use a * in place of the relevant exchange or class parameter.

For example, the configuration below would deliver all perpetual future contracts on OkEX. exchange: okex class: perpetual-future instrument: *

Fields: Perpetual Future

Field
Description
Example

Value

The value for the commodity in the received message. eg: 24h_volume or price

59583.2

legacySymbol

Exchange assigned instrument identifier

BTCUSDC_PERP

exchange

binc

commodityKind

Always SDICK_RISK

SDICK_RISK

tsCollection

The timestamp for when Kaiko received the trade from the exchange.

2024-08-30T10:19:38.044166107Z

tsEvent

The timestamp for the interval.

2024-08-30T10:19:39.206955912Z

commodity:funding rate

The current funding rate.

-0.0000756735759807

comodity: predicted_funding_rate

The predicted funding rate for the next period.

-0.0000845044644161

commodity: ask

The best ask price from the order book at the time of funding rate calculation.

101937.0

commodity: ask_amount

The size of the best ask order from the order book at the time of funding rate calculation.

0.552

commodity: bid

The best bid price from the order book at the time of the funding rate calculation.

101936.0

commodity: bid_amount

The size of the best bid order from the order book at the time of funding rate calculation.

0.396

commodity: 24h_volume

The volume of the trades executed in the last 24 hours (can be in base_asset, quote_asset or the number of contracts)

140.235

commodity: open_interest

The total outstanding number of contracts (units in which open interest metrics are quoted vary by exchange)

144.817

Fields: Future

Field
Description
Example

Value

The value for the commodity in the received message. eg: 24h_volume or price

59583.2

commodityKind

Always SDICK_RISK

SDICK_RISK

tsCollection

The timestamp for when Kaiko received the trade from the exchange.

2024-08-30T10:19:38.044166107Z

tsEvent

The timestamp for the interval.

2024-08-30T10:19:39.206955912Z

commodity: time_to_expiry

The number of minutes remaining before expiry.

41504

commodity: nearby

The soonest expiring contract with the same base & quote asset on the specified exchange

boolean value

commodity: quarterly_nearby

The soonest expiring quarterly contract with the same base & quote asset on the specified exchange

boolean value

commodity: expiry

Expiration date of the contract

1737072000000000000

commodity: 24h_volume

The volume of the trades executed in the last 24 hours (can be in base_asset, quote_asset or the number of contracts)

2047.3

commodity: open_interest

The total outstanding number of contracts (units in which open interest metrics are quoted vary by exchange)

6813.4

commodity: ask

The price level of the best ask order from the order book at the time of message receipt.

97890.1

commodity: ask_amount

The size of the best ask order from the order book at the time of the message.

0.552

commodity: bid

The price level of the best bid order from the order book at the time of message receipt.

97878.4

commodity: bid_amount

The size of the best bid order from the order book at the time of the message.

0.396

Fields: Option

Field
Description
Example

Value

The value for the commodity (price, 24 hour volume etc) received in the message.

59583.2

commodityKind

Always SDICK_RISK

SDICK_RISK

tsCollection

The timestamp for when Kaiko received the trade from the exchange.

2024-08-30T10:19:38.044166107Z

tsEvent

The timestamp for the interval.

2024-08-30T10:19:39.206955912Z

commodity: time_to_expiry

The number of minutes remaining before expiry.

41504

commodity: nearby

The soonest expiring contract with the same base & quote asset on the specified exchange

boolean value

commodity: quarterly_nearby

The soonest expiring quarterly contract with the same base & quote asset on the specified exchange

boolean value

commodity: ask_iv

Implied volatility for the best ask.

0.8166587

commodity: bid_iv

Implied volatility for the best bid.

0.6817713

commodity: mark_iv

The implied volatility for the mark price.

0.7418202

commodity: delta

The delta value for the option.

-1.6532715362206545

commodity: gamma

The gamma value for the option.

3.7235607858486044

commodity: rho

The rho value for the option.

16.74149

commodity: theta

The theta value for the option.

0.0002888

commodity: vega

The vega value for the option.

0.0006550

commodity: strike_price

The strike price of the contract in USD

90000

commodity: underlying_index

Name of the underlying index

BTC-31JAN25

commodity: kind

Put or Call

C

commodity: expiry

Expiry

1738281600000000000

Request examples

# This is a code example. Configure your parameters in the parameter configuration section #

from __future__ import print_function
import logging
import os

import grpc
from google.protobuf.json_format import MessageToJson
from google.protobuf import duration_pb2

from kaikosdk import sdk_pb2_grpc
from kaikosdk.core import instrument_criteria_pb2, assets_pb2
from kaikosdk.stream.aggregates_ohlcv_v1 import request_pb2 as pb_ohlcv
from kaikosdk.stream.aggregates_vwap_v1 import request_pb2 as pb_vwap
from kaikosdk.stream.market_update_v1 import request_pb2 as pb_market_update
from kaikosdk.stream.market_update_v1 import commodity_pb2 as pb_commodity
from kaikosdk.stream.trades_v1 import request_pb2 as pb_trades
from kaikosdk.stream.index_v1 import request_pb2 as pb_index
from kaikosdk.stream.index_multi_assets_v1 import request_pb2 as pb_index_multi_assets
from kaikosdk.stream.index_forex_rate_v1 import request_pb2 as pb_index_forex_rate
from kaikosdk.stream.aggregated_quote_v2 import request_pb2 as pb_aggregated_quote
from kaikosdk.stream.aggregates_spot_exchange_rate_v2 import request_pb2 as pb_spot_exchange_rate
from kaikosdk.stream.aggregates_direct_exchange_rate_v2 import request_pb2 as pb_direct_exchange_rate
from kaikosdk.stream.derivatives_instrument_metrics_v1 import request_pb2 as pb_derivatives_instrument_metrics
from kaikosdk.stream.iv_svi_parameters_v1 import request_pb2 as pb_iv_svi_parameters



def derivatives_instrument_metrics_request(channel: grpc.Channel):
    try:
        with channel:
            stub = sdk_pb2_grpc.StreamDerivativesInstrumentMetricsServiceV1Stub(channel)

            responses = stub.Subscribe(pb_derivatives_instrument_metrics.StreamDerivativesInstrumentMetricsRequestV1(
                instrument_criteria = instrument_criteria_pb2.InstrumentCriteria(
                # Start of parameter configuration #
                    exchange = "okex",
                    instrument_class = "perpetual-future",
                    code = "btc-usdt"
                ),
                commodities = [
                "SDICK_RISK"
            ]
            ))
                # End of parameter configuration #
            for response in responses:
                print("Received message %s" % (MessageToJson(response, including_default_value_fields = True)))
    except grpc.RpcError as e:
        print(e.details(), e.code())


def run():
    credentials = grpc.ssl_channel_credentials(root_certificates=None)
    call_credentials = grpc.access_token_call_credentials(os.environ['KAIKO_API_KEY'])
    composite_credentials = grpc.composite_channel_credentials(credentials, call_credentials)
    channel = grpc.secure_channel('gateway-v0-grpc.kaiko.ovh', composite_credentials)

    derivatives_instrument_metrics_request(channel)

if __name__ == '__main__':
    logging.basicConfig()
    run()

Response Example

{
  "value": "-0.0000345359072087",
  "legacySymbol": "btcusdtswap",
  "exchange": "okex",
  "commodity": "funding_rate",
  "commodityKind": "SDICK_RISK",
  "tsCollection": "2024-12-18T13:15:43.861660474Z",
  "tsEvent": "2024-12-18T13:15:45.456011570Z"
}

Last updated