VWAP

What is this endpoint for?

This endpoint delivers VWAP (volume-weighted average price) for an instrument on an exchange in real-time.

Parameters

Configuring a wildcard

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

For example, the configuration below would deliver trades for BTC/USD across all exchanges where it’s supported:

exchange: * class: spot instrument: btc-usd

Fields

Request examples

Make sure to read our Python quick-start guide before starting.

# 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


def vwap_request(channel: grpc.Channel):
    try:
        with channel:
            stub = sdk_pb2_grpc.StreamAggregatesVWAPServiceV1Stub(channel)
            responses = stub.Subscribe(pb_vwap.StreamAggregatesVWAPRequestV1(
           
             # start of parameter configuration #
                aggregate='1m',
                instrument_criteria = instrument_criteria_pb2.InstrumentCriteria(
                    exchange = "binc",
                    instrument_class = "spot",
                    code = "eth-usdt"
                )
            ))
            # end of parameter configuration #
            for response in responses:
                print("Received message %s" % (MessageToJson(response, including_default_value_fields = True)))
                # print("Received message %s" % list(map(lambda o: o.string_value, response.data.values)))
    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)

    vwap_request(channel)

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

Response Example

"aggregate": "1s",
  "class": "spot",
  "code": "eth-usdt",
  "exchange": "binc",
  "price": 2591.3221372276307,
  "tsEvent": "2024-08-09T13:47:20.689338450Z",
  "uid": "2024-08-09T13:47:19Z",
  "sequenceId": ""

Last updated