Существование децентрализованных рынков под собой всегда подразумевает создание агрегаторов, как первое технологическое звено синхронизации цен на разных таких торговых площадках через арбитраж - проторговка отрицательного спреда на искусственном символе, созданного агрегатором.
Использование только Фида (B-book).
Агрегатор, как Feed+Executor (A-book).
Подводных камней довольно много. Один из самых простых - сильнейшее раздвижение спреда, которое может сносит стопы (и MarginCall) клиентов брокеров. Ведь никто не хочет видеть обнуление своего счета из-за "соплей" (ценовые шпильки).
Фильтр спреда.
Алгоритм.
Собственно, на этом заканчиваю повествование. Алгоритм такой существует - выложил его в виде исходника в архиве. Там же подробная инструкция.
Скрипт MQL5\Scripts\Level2.mq5 вычисляет стакан для клиентов на основе поступающих котировок в агрегатор. Файл MQL5\Files\Level2.mq5\QuotesIN.txt содержит котировки, которые приходят в агрегатор: time LP bid ask 15 0 1.2300 1.2402 // LP0 прислал цены 1.2300/1.2402 со временем 15. Файл MQL5\Files\Level2.mq5\QuotesOUT.txt содержит вычисленные стаканы для каждого входящего тика: NewTick: LP = 2 TimeMsc = 2 bid = 1.2305 ask = 1.2398 // Пришедший тик (из IN-файла) Market: // Текущие актуальные цены для каждого LP. LP = 0 TimeMsc = 0 bid = 1.2451 ask = 1.2455 LP = 1 TimeMsc = 1 bid = 1.22 ask = 1.25 LP = 2 TimeMsc = 2 bid = 1.2305 ask = 1.2398 Level2: // Стакан, что направляется клиентам. LP = 1 TimeMsc = 1 ask = 1.25 LP = 0 TimeMsc = 0 ask = 1.2455 LP = 2 TimeMsc = 2 ask = 1.2398 * // Лучший Ask для клиентов. LP = 0 TimeMsc = 0 bid = 1.2451 * // Лучший Bid для клиентов. LP = 2 TimeMsc = 2 bid = 1.2305 LP = 1 TimeMsc = 1 bid = 1.22 Фильтр котировок содержится в методе void LEVEL2::CheckSpread( QUOTE &Bids[], QUOTE &Asks[] ); Он сырой стакан превращает в стакан для клиентов так, чтобы стопы не сносились, но при этом лимитники исполнялись.
Очень важно, что этот алгоритм не несет рисков для брокеров, которые торгуют по модели A-book-only. Если хотя бы частично (бывают смешанные модели) используется B-book, то он не подходит. Поскольку A-book-only - это очень малая часть клиентов агрегаторов, то предложенный алгоритм - больше теория, чем жизненные реалии. Но мало ли, кто-то реализует в конечном продукте на радость скальперов в малоликвидное периоды...
Канал: https://t.me/fxsaber_Results
Группа: https://t.me/fxsaberDiscussion