Ну тогда и эмуляцию стакана с заявками стоит убрать))) Который раз все продается по цене которую указал в заявке, а не по встречным в стакане) Что с выводом-то?
Товарищи с биржи, вот второе свидетельство о не реальном стакане, на который пару дней назад я указывал.
Оказывается такие глюки (фичи) доводится видеть не только мне.
Странно, не замечала. Может быть, в случае hazarun наблюдается какой-то глюк браузера? Если такое, конечно, может быть.. А в случае deebosch, к примеру, если заявка стояла на продажу по цене 23525, предположим, тут появляется встречная заявка на покупку по такой же казалось бы цене - 23525 и происходит удивление почему не сматчились, объяснение может быть в том, что биржа учитывает 8 знаков после точки, но мы в стакане видим только до 4 знаков после точки и если поставить заявку на покупку 23524.99999 (5-ти знаков достаточно после точки), тогда цена округлится и в стакане будет видно, как 23525 стоит.
Возможно такие вещи имеют место быть. По информации, которая есть сложно оценить причину. Нам бы наглядный пример для лучшего понимания.
У нас что ни на есть настоящий стакан с реальными ставками, поэтому ждем более подробной информации, чтобы разрешить ситуацию.
Глюк (хотя и не совсем глюк - если понимать как программа работает, то она формально все делает правильно, но для человека кажется что это глюк) который описывает CoinTalk точно есть - я сам его несколько раз уже ловил тут. Он довольно типовой/распространенный на самописных биржах. Пример чтобы понятнее было где копать:
- скажем стакан BTC/RUR, самый верхний ордер на покупку стоит по цене 23102.752873 (по такой цене его выставил пользователь или скорее бот, и по такой он хранится в базе данных на сервере и обрабатывается движком биржи)
- при выводе на экран (в HTML+js код браузера пользователя) он округляется до 4х знаков после запятой и показывается как: 23102.7529 (как положено округлили по правилам математики)
- далее заходит какой-то клиент и хочет продать BTC, смотрит в стакан и цена текущего верхнего ордера на покупку его устраивает, объема ему тоже хватает (так что несколько ордеров нет необходимости использовать), так что он просто щелкает в него мышкой (в заявку на продажу подставляются все данные нужные для подачи встречного к текущему верхнему на покупку) и жмет "продать"
- выставляется заявка на продажу по цене 23102.7529 (так подставил данные js скрипт в браузере, т.к. он работает на клиентской стороне и берет уже только округленные цены)
- с точки зрения движка(который смотрит данные в базе данных на сервере без округлений), в стакане стоят 2 заявки: на продажу по 23102.7529 и на покупку по 23102.752873 - цены хоть и очень близкие, но не совпадают и не пересекаются, так что он ничего не делает
- с точки зрения человека (который смотрит стаканы через браузер куда ему выводятся данный с округлением до 4х знаков после запятой - для удобства восприятия) в стаканах стоят 2 заявки по одинаковой цене: купить по 23102.7529 и продать по 23102.7529 и он не понимает почему его ордер не исполняется - делает вывод, что биржа глючит.
Исправить просто, даже неск. вариантов - или в базе тоже округлять до того же кол-ва знаков или в базе не округлять и хранить все с макс. точностью, но тогда клиентам в браузере округлять не по правилам математики, а в зависимости от направления ордера: на покупку всегда вниз (просто отбрасывать лишние знаки), на продажу всегда вверх (до ближайшего не округляемого знака. Т.е. 0.00000003, до 0.0001) или поправить серверный скрипт который взаимозачет проводит, чтобы он ордера отличающиеся меньше чем на 0.0001 тоже взаимоисполнял (но тогда хоть и микроскопическую разницу но за счет биржи как бы доплата получится - из комиссии сделки)
Но deebosch пишет по-моему совсем про другой глюк. Когда допустим верхний ордер на покупку стоит по 23100, за ним 23097, потом 23092 и т.д.
Человек желающий продать и которому мало объема верхнего ордера ставит цену "с запасом" - ниже текущей рыночной, скажем 23050 руб чтобы собрать сразу пачку ордеров одной заявкой.
А движок вместо того чтобы исполнить заявку по настоящим биржевым правилам (1ю часть по 23100, 2ю по 23097 и т.д.) исполняет заявку по цене введенной клиентом (а разница достается непонятно кому).
Такой глюк на бирже тоже был, но насколько я знаю он уже довольно давно исправлен - об этом во 2й теме (GOC как платежный сервис) писали.
hazarun же вообще что-то 3е описывал (вроде ордера выставленные им в общем стакане не видны были) - с таким я на GOC не сталкивался пока.
P.S.
В качестве демо воспроизвел ситуацию 1м "багом"(округлениями) на LTC/USD (как самой неликвидной, чтобы ордер до утра кто-нибудь не сбил)
Там сейчас 2 моих ордера: купить по 0.01 LTC по цене 8.5346 USD и продать 0.01 LTC по той же цене 8.5346 друг напротив друга стоят