Общая информация о WebSocket API

  • Базовый URL: wss://api-adapter.dzengi.com/connect
  • Базовый URL, демо-аккаунт: wss://demo-api-adapter.dzengi.com/connect
  • Все эндпоинты возвращают либо данные в формате JSON, либо диапазон.
  • Все поля со значением времени и относящиеся ко временным рамкам отображаются в миллисекундах.
  • Соединение с Websocket API прерывается в случае, если к API не обращаются более 30 секунд.
  • В настоящий момент все имеющиеся на платформе токенизированные активы, за исключением токенизированных облигаций, токенов компаний, токенов "KARMA.cx" и токенизированных акций гонконгского рынка доступны для запросов через API в его первой версии (v1). Вторая версия API (v2) позволяет осуществлять запросы, касающиеся токенизированных акций гонконгского рынка.
  • Список токенизированных активов, доступных для торговли в режиме "торговля с левереджем" через API можно найти здесь.

! Обратите внимание. Для успешной генерации подписи просим Вас указывать параметры в payload запроса в алфавитном порядке.

Пожалуйста, обратитесь к нашему Swagger API, раздел WebSocket для получения нужной вам информации. Больше примеров можно найти тут.

Устранение неполадок

Способ подключения

 
const ws = new WebSocket ('wss://api-adapter.backend.currency.com/connect', {perMessageDeflate: true}); let responseList = []; let request, response = Object();

Callbacks

 
await ws.on('open', async function open() { console.log("connected"); }); ws.on('close', async function close() { console.log('disconnected'); }); ws.on('error', async function error(data) { console.log('error'); console.log(data); }); ws.on('message', async function incoming(data) { response = JSON.parse(data); responseList.push(response); });

Correlation ID

Данный ID необходим для получения асинхронного ответа на запрос.

request.correlationId = request.correlationId + 1;

Модель запроса

 
//Destination request.destination = "/api/v1/leverageSettings"; //Request payload request.payload = {"symbol": ETH/USD, "timestamp": Date.now(), "apiKey": apiKey}; request.payload.signature = getHash(request); function getHash(request) { let payload = ""; Object.keys(request.payload).sort().forEach(function(key) { payload += key + "=" + request.payload[key] + "&"; }); payload = payload.substring(0, payload.length - 1); console.log(payload); let hash = CryptoJS.HmacSHA256(payload, apiSecret).toString(); console.log(hash); return hash; } //Send request message = JSON.stringify(request); ws.send(message); await sleep(5000); index = responseList.findIndex(i => i.correlationId === request.correlationId.toString()); console.log('============================'); console.log('index: ' + index); console.log(responseList[index]); console.log('============================');

Описание параметра Symbol

Как для режима “торги”, так и для режима “торговля с левереджем” параметр symbol можно найти в стриме exchangeInfo.
Режим “торги”: используйте symbol из стрима exchangeInfo;
Режим “торговля с левереджем”: изучите symbol из стрима exchangeInfo. Если в значении ‘symbol’ присутствуют валюты, то следующее обозначение будет правильным: ‘BTC%2FUSD_LEVERAGE’. Если в значение ‘symbol’ присутствует только название актива, то формат параметра запроса следующий: ‘Oil%20-%20Brent.’.

Определения ENUM

Типы заявок (orderTypes, type):

  • LIMIT
  • MARKET
  • STOP

Направление заявки (side):

  • BUY
  • SELL

Срок действия (timeInForce):

  • GTC
  • IOC
  • FOK

Периоды / интервалы свечей на графиках:
m -> минуты; h -> часы; d -> дни; w -> недели

  • 1m
  • 5m
  • 15m
  • 30m
  • 1h
  • 4h
  • 1d
  • 1w

Обратите внимание, что в случае отсутствия какого-либо значения в параметре "intervals" при обращении к ендпоинту wss:OHLCMarketData.subscribe его значение будет равно 1m.