我正在尝试使用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
,那么更新是否仅用于最佳出价/最佳询问?
答案 0 :(得分:2)
您只需将更新与内部订单簿的当前状态进行匹配即可。 API会向您发送更改,这些更改将在服务器端对订单进行。
示例:
更新消息是:
{
'e': 'md_update',
'data': {
'id': 92276361,
'pair': 'BTC:USD',
'time': 1505337293621,
'bids': [],
'asks': [
[4070, 0.0],
[4080, 1]
]
}
}
我们看到 4070 价格的询问现在剩余的 0 。因此,请从订单簿中删除该条目。
要求 4080 现在剩余的 1 。您检查订单中是否已存在价格 4080 的询价。如果是,请将金额更新为 1 。如果您的订单中没有 4080 的问题,请在订单簿中添加价格 4080 且金额 1 的条目。