MtGox api — отслеживание отмененных бидов/асков

Я начинаю работать с mtgox api. Я в основном использую эту страницу , чтобы рассказать мне, как ее использовать.

Что у меня сейчас есть, так это то, что я могу получить глубину, а затем поместить биды и аски в «сегменты» (каждый из которых представляет собой диапазон цен) и могу сказать вам объем в каждом сегменте.

Теперь я хочу иметь возможность обновлять это каждую секунду или около того.

Поэтому мне нужно было бы отслеживать:

  • Совершаемые сделки (т. е. удовлетворяются заявки/аски).

  • Новые биды/аски.

  • Биды/аски отменяются.

Похоже, что старая версия API могла показывать чистое изменение на каждом томе, но это не относится к новой версии.

Как мне это сделать?

Ответы (2)

Есть два способа сделать это.

1) API опроса MtGox V2. Вы звоните, getFullDepthчтобы загрузить полную книгу заказов. Затем вы запрашиваете getPartialDepthобновления, заменяя все заказы в своей masterкниге заказов. Этот метод не очень эффективен, и вы можете опрашивать только в ограниченном темпе.

Вот демонстрация из проекта с открытым исходным кодом XChange для простого опроса частичной книги заказов и создания диаграммы книги заказов.

2) MtGox Polling API V2 + потоковая передача. Вы звоните, getFullDepthчтобы загрузить полную книгу заказов. Затем вы используете потоковый API для получения depthсобытий и соответствующим образом обновляете свою masterкнигу заказов. Обновления глубины с нулевой суммой означают, что ордера были отменены или исполнены, т.е. они больше не существуют и их можно удалить.

Вот демо из проекта с открытым исходным кодом XChange.

Ваша ссылка на «старую версию API» на самом деле ведет к потоковому API , который все еще доступен. Была обновлена ​​только http-версия, и оттуда трудно получить точную информацию о глубине за точные периоды времени.

Так что я бы остановился на стриминге. Обновлено гораздо больше в режиме реального времени для ваших требований.

Теперь они устарели от поля depth:volume, но у них все еще есть volume_int, который является изменением громкости * 1E8, поэтому вы можете получить объем из этого:

//js for example
var volume = volume_int * Math.pow(10,-8);

Ознакомьтесь с примерами github в нижней части вики-страницы, чтобы начать работу. Например, этот