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

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

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

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

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

Журнал изменений

Июль, 2021: добавили вторую версию (v2) REST API с полным списком токенизированных активов, доступных для торговли в режиме "торговля с левереджем". Обратите внимание, что в при использовании режима аккаунта Demo через REST API доступна только первая версия (V1); добавили запрос /tradingPositionsHistory, который предоставляет возможность просматривать исторический сделки по определенному символу.

Июнь, 2021: добавили возможность использовать аккаунт типа Demo при помощи REST API первой версии (v1); добавили параметр showZeroBalance в запрос типа /account для того, чтобы клиенты могли включить или выключить отображение нулевых балансов при получении ответа.

Май, 2021: добавили возможность просматривать информацию по свечам типа Heiken-Ashi в запросе /klines.

Декабрь, 2020: исправили проблемы с параллельными запросами, поменяли тексты ошибок при неправильном выставлении значений в параметрах stopLoss и takeProfit, обновили существующие лимиты на количество запросов для ендпоинта openOrders, теперь данный лимит составляет 5 запросов в секунду вместо 10, а также исправили ошибку с неверно отображающимися значениями параметра accountId;

Ноябрь, 2020: изменение логики возвращаемых HTTP кодов и исправление ранее существующих недочетов, унификация текстов ошибок в Rest и Websocket API, исправление ошибок в ендпоинте /updateTradingOrder, избавление от ненужных параметров в ендпоинтах /myTrades, /aggTrades, /order и /updateTradingOrder, исправление недочетов и предоставление возможности выставить дату завершения лимитной заявки с помощью параметра expireTimestamp.

Июнь, 2020: 50 новых токенизированных и криптовалютных рыночных пар стали доступны для торговли с левереджем в рамках нашего API.

Май, 2020: стал доступен новый вид заявок STOP. Стоп заявки доступны в режиме “торговля с левереджем”; добавление возможности использовать BTC/USD; ETH/USD; Crude Oil (XTI.cx); Brent Oil (XBR.cx); S&P 500 (SPXm.cx); LTC/USD; Gold (XAUm.cx); EUR/USD; Tesla (TSLA.cx); XRP/USD пары в режиме “торговля с левереджем” с помощью API.

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

 
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.