Известны случаи мошенничества на нью-йоркской фондовой бирже, а может просто слухи о том, что крупные, назовем их хитрые ММ, получали над всеми приоритет в очереди заявок. Похожее обнаружено при анализе потока данных на Чикагской бирже по инструменту S&P mini (ES).
Немного информации для начала. Гугл поиск утверждает в нескольких источниках, что алгоритм сведения ордеров для ES это FIFO — первый выставил лимитную заявку в стакане, первым тебя и исполнили. Другими словами очередность исполнения формируется по мере установки ордеров. Если снял и поставил заново или изменил заявку — в конец очереди.
Подробно, что происходит в стакане можно рассмотреть на неликвидном инструменте. Возьмем тот же ES, но контрактом следующим за текущим активным, на которым орудуют в основном роботы ММ то и дело выставляя — убирая заявки.
К слову сказать биржа шлет (кому то может быть полезную) информацию о том, какое количество покупателей или продавцов стоит на лимите. Кроме еще, конечно, объема и цены.
Можно взять один лимитный уровень и рассмотреть его заполнение подробно начиная с момента его первого заполнения (ESU5 какой то майский денек, какой то невзрачный бид, где то перед закрытием):
Первые столбцы — это информация об изменении лимита (цена, объем, кол-во покупателей). Цена везде одинакова, следим только за одним уровнем. Все промежуточные события в потоке убраны для наглядности (сделок не проходило). В начале понятно, что появился один покупатель на 5 контрактов. В табличке справа запишем его объем как факт появления. Далее в след строках покупатели приходят еще, забиваем инфу, получая наглядное представление о составе всех лимитников.
Когда кто то уходит с лимита (это где Vol Change отрицательное) легко можно понять какой объем ушел и сколько покупателей после этого осталось. Кол-во покупателей может не изменится — кто то просто снял некоторую величину от своей заявки и ушел в конец очереди на ожидание исполнения. Если кол-во покупателей изменилось, то легко определяем что один из записанных нами объемов ушел и убираем его. То что на скрине -нагдяное представление момента жизни всех объемов на уровне, причем очередность исполнения заявок соблюдена.
Можно рассмотреть ликвидный инструмент, и тут попался такой момент, что FIFO не работает — кто то снимает часть заявки и не идет в конец очереди. Вместо этого успешно частично исполняется и оставшийся объем уходит. Это июньский контракт того же ES день 27 мая:
В начале все хорошо, набирается объем на лимитке. Потом через какое то время есть две заявки на снятие объема в 1 контракт и затем 2 контракта, но количество покупателей не меняется — кто то убрал часть своего объема. Так вот дальнейшая логика построения «жизни» этого уровня сходится к тому, что это кто то стоял объемом в 64 контракта, затем убрав часть объема просто не перемещается в конец очереди. И, более того, принимает на себя продажу, которая происходит чуть позже (20 контрактов sell). Не всю конечно, те кто был самые первые перед ним все же исполняются.
Далее чуть ниже (уже не видно на скрине, приложу файл) ситуация повторяется. Но заявка стояла на 5 контрактов и далеко не первая на очереди, тем не менее она забирает объем с продажи по маркету.
Если нигде ошибок нет и никто не сможет опровергнуть приведенную логику расчета в файле, то можно смело идти в SEC )) Или еще куда подальше. А вообще впечатление, что у самого руля пара тройка ММ, а скорости реакции на рыночные события у них чуть более 150 микросекунд. И это все не просто так.
Эксель файл
тут
Жмите хор, если не спите.
Ладно плюсы можно не ставить.
Но со следующими 5-ю контрактами (которые выделены цветом) все равно что то не так.
1. Кто-то поставил 1 заявку на 100 контрактов
2. Один и тот-же игрок одновременно поставили 2 заявки по 75 лотов и убрал ранее выставленную заявку на 50 лотов
3. один или несколько игроков одновременно сняли 100 заявок по 1 лоту и добавили 99 заявок по 2 лота и 2 заявки по 1 лоту.