openfx
openfx личный блог
26 октября 2013, 00:30

Биржевой алгоритм.

После теоретических записей здесь и здесь о ММ алгоритмах настало врея перейти к практическому описанию.

Текста хватает, но написано все максимально сжато, читаться должно легко.

Думаю, вам стало понятно, что все держится в наше автоматизированное время на алгоритмах. Их много типов. Попробуем рассмотреть сугубо технических алгоритм создания торговой площадки. Самый простой алгоритм из этого типа — биржевой. О нем и поговорим.
Итак, есть какой-то символ, который будет торговаться только на нашей бирже. И есть много желающих его торговать. А это значит, есть уже готовые ММ-алгоритмы и мясо, без которого все вообще бессмысленно (беспрофитно).

Биржевой алгоритм сугубо технический, т.е. приносит прибыль его владельцу тем, что его результатами все пользуются, платя комиссию. При этом в алгоритм может быть вложена даже отрицательная комиссия, например, для ММ-алгоритмов. Комиссионная сетка — это опять же некая несложная мат. модель.


Итак, есть Level2 (терминология FOREX, в биржах его называют еще MarketDepth) — это уровни: цена покупки/продажи и сколько (объем). Каждый такой уровень (цена + объем) называется бандом. Самые лучшие банды для продажи и покупки называются Bid и Ask (некоторые называют Offer, но это лишь терминология).

Level2 формируется из клиентских заявок (лимитники) — это и ММ-алгоритмы + еще некоторые виды алгоритмов и мясо. Спредом называют разницу между текущими Ask и Bid (в частности, по этой причине есть очень неточная по своей формулировке фраза, что ММ зарабатывают на спреде).

Любой лимитник биржевой алгоритм почти всегда ставит на соответствующий банд в стакане. Именно по этой причине, поставив лимитник внутрь спреда происходит соответствующее его сужение. Совсем на пальцах это объяснять не буду, алгоритм постановки простой (можно погуглить или спросить).

Если лимитник ставится хуже, чем текущая соответствующая цена (например, SellLimit <= Bid), то биржевой алгоритм исполнения исполняет не по цене хуже рыночной, а начинает слизывать (по объему) банды с наилучшего в сторону ухудшения, пока весь лимитник не заполнится, либо же пока не иссякнут банды до уровня, на котором выставлен этот лимитник.

Конечно, есть иногда внегласные моменты в биржевых алгоритмах, когда информация о вашей заявке, перед тем, как попасть в стакан, идет, например, к ММ-алгоритму. И он заранее (на опережение) простым образом действует так, чтобы вы не получили положительное проскальзывание от лимитника по цене хуже текущей, а забрал его себе в виде чистого профита. Это некоторый тех. инсайд, который, конечно, покупается, т.е. имеет вполне четкий ценник (деньги рулят). Не забываем про главную задачу любого алгоритма — деньги. Поэтому тут ничего удивительного не должно быть — правда жизни.

На биржах во время торговой сессии заранее выставленный лимитник исполняется в 99% случаев точно по цене — без проскальзываний. Это значит, чтобы цене пересечь ваш лимитник, его нужно обязательно исполнить.

Лимитники в Level2 кроются маркет-ордерами. Типов ордеров полно, как биржа захочет (пропишет). Это же алгоритм. Например, в MT5 введены свои типы ордеров, которые биржа вполне могла бы легализовать — реализовать в своем биржевом алгоритме исполнения. Маркет-ордер — это производная лимитного ордера: лимитник по цене хуже текущей, при этом эта хужесть почти не измеряется. Вот сколько надо вам исполнить маркетом — столько вы и получите, но только с хорошим отрицательным проскальзыванием. Основные пользователи маркет-ордеров — мясо.

Очевидно, что цена может двигаться по почти любой траектории без совершения сделок — смотрим ММ-алгоритмы. Если сделка совершается, то ее цена и объем называется Last. И это инфа также транслируется биржей. Поток Last-данных называется T&S (Time & Sales прим. ред).

Некоторые биржи (далеко не все) к Last-данным добавляют еще условный флажок — направление сделки (Buy или Sell). Этот маркер является неким классификатором: на пассивных и активных участников. Т.е. на тех, чей лимитник исполнился, и тех, кто его залил. Очевидно, что этот классификатор является временным фильтром: чье исполнение из двух сторон сделки было инициировано более поздним/ранним торговым приказом.

Понятно, что биржевой алгоритм обязан быть последовательным — т.е. формируется очередь из заявок и они последовательно обрабатываются. Но есть варианты так называемых snapshots, когда заявки накапливаются в течение какого-то относительно короткого времени, а потом выдаются на раз в level2 с соответствующим исполнением.

P.S. напоминаю, что бы понять ход мысли и максимально сделать для себя материал полезным, рекомендую прочитать прошлые записи здесь и здесь.

P.P.S. буду признателен если эту запись прочитает как много больше людей… для кого-то, возможно, не хватает подобных знаний. Вы можете помочь, поставив +.
5 Комментариев
  • iMAG
    26 октября 2013, 00:38
    ++++
  • Realist
    29 октября 2013, 05:42
    Лучший пост о биржевых механизмах. Автор, Вы титан философии рынка. Чем мы заслужили такие откровения, напишите пожалуйста об этом.
  • Изя 3%
    29 октября 2013, 06:20
    а что простите в 1% оставшихся случаев происходит с лимитным ордером? и как цена без сделок может двигаться… про снапшоты и исполнение конечно тоже смяшно )
    хотя форекс, такой форекс. чего там только не бывает у вас ;)))
    • Изя 3%
      29 октября 2013, 06:24
      Изико, еще раз прочитал. реально страшно там у вас )))

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн