Обновление рынка заказов 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 в свою книгу заказов.