Bitcoin Forum

Local => Кодеры => Topic started by: rPman on September 20, 2011, 05:45:56 AM



Title: Получение стакана mtgox в реальном времени
Post by: rPman on September 20, 2011, 05:45:56 AM
Уже не первый день копаюсь с данными об изменениях доступных предложений mtgox на основе данных websocket.mtgox.com и https://mtgox.com/code/data/getDepth.php (информация из https://en.bitcoin.it/wiki/MtGox/API (https://en.bitcoin.it/wiki/MtGox/API) там уже чуть более другие ссылки, но разницы нет, старые работают для совместимости)

Проблема в том, что данные из одномоментного слепка стакана и данные из канала websocket постоянно расходятся:
* asks могут 'наехать' на bids, а именно могут попадаться значения asks меньше значений bids (напоминаю должно быть всегда наоборот, любое пересечение порождает срабатывание ордеров и такие позиции исчезают из стакана)
* собирая данные из websocket могут встречаться цены, напрочь отсутствующие в разовом запросе и самое главное наоборот, в загружаемом стакане могут присутствовать записи с ценами, которые вообще не на канале websocket...
* и самое главное, рынок в стакане и тики - могут запаздывать (или просто расходятся).. хорошо хоть не часто

из-за этого, если просто накапливать изменения, с момента предыдущей загрузки всего стакана (даже если периодически этот стакан заново подгружать), в текущем стакане остаются записи, которых там 'не должно быть', и самое обидное, эти ордера как раз в пределах текущего рынка, т.е. самые важные.

Может кто то уже боролся с этой проблемой и как-то ее решил? у кого какие средства для работы со стаканом?

p.s. как я посмотрю, у mtgoxlive.com те же проблемы, иногда такие кренделя графики bids и asks выделывают.


Title: Re: Получение стакана mtgox в реальном времени
Post by: BITLISH on September 20, 2011, 10:00:12 AM
* и самое главное, рынок в стакане и тики - могут запаздывать (или просто расходятся).. хорошо хоть не часто

В вики написано, что данные с апи (не вебсокет) кэшируются на 10 секунд. Если это так, то это и есть время запаздывания.
Возможно стоит подать заявку в суппорт гокса, что бы при коннекте к сокету он сначала отдавал текущий depth, а потом уже слал дельту.