Обновление рынка заказов CEX

Я пытаюсь использовать cex.io API для создания оперативной книги заказов, но мне трудно понять сообщение от API.

Я подписываюсь на следующий JSON:

{
  "e":    "order-book-subscribe",
  "data": {
            "pair":      [
                          "BTC",
                          "USD"
                          ],
            "subscribe": false,
            "depth":    -1
            },
  "oid": "1435927928274_3_order-book-subscribe"
  }

Первое сообщение - это снимок книги заказов, это нормально.

Но затем сообщения являются "просто" обновлениями, такими же, как это:

{ 
  'e':    'md_update',
  'data': { 
           'id':    92276361,
           'pair': 'BTC:USD',
           'time':  1505337293621,
           'bids':  [],
           'asks':  [
                      [4078.1692, 0.0]
                      ]
           }
  }

Как обновить снимок, впервые полученный с помощью строк обновлений?

Как узнать, есть ли в некоторых строках совпадения в книге?

А также, если я подпишусь на depth = 1будут ли обновления только для лучшей ставки / лучшего вопроса?

1 ответ

Вы просто сопоставляете обновления с текущим состоянием вашей внутренней книги заказов. API отправляет вам изменения, внесенные в книгу заказов на стороне сервера.

Пример:

Сообщение об обновлении:

{ 
  'e':    'md_update',
  'data': { 
    'id':    92276361,
    'pair': 'BTC:USD',
    'time':  1505337293621,
    'bids':  [],
    'asks':  [
               [4070, 0.0],
               [4080, 1]
             ]
  }
}

Мы видим, что аск с ценой 4070 теперь имеет оставшуюся сумму 0. Поэтому удалите эту запись из своей книги заказов.

Ask 4080 теперь имеет оставшуюся сумму 1. Вы проверяете, есть ли уже в вашей книге заказов спрос с ценой 4080. Если это так, обновите сумму до 1. Если в вашей книге заказов нет спроса с 4080, добавьте запись с ценой 4080 и суммой 1 в свою книгу заказов.

Другие вопросы по тегам