АЛГОРИТМЫ СВЕДЕНИЯ ОРДЕРОВ CME

Алгоритмы сведения ордеров CME

В этой статье мы разберем очень интересную тему. Наверное многие из вас задавались вопросом, как происходит сведение ордеров в электронном сердце CME – торговой системе Globex. Сегодня мы заглянем в “святая святых” этого электронного монстра.

Читайте далее:

  • Основные понятия и принципы сведения ордеров
  • Алгоритм FIFO (“Первым пришел, первым вышел”)
  • Алгоритм Pro Rata
  • FIFO with Lead Market Maker (LMM)
  • Split FIFO and Pro Rata
  • Threshold Pro Rata
  • Threshold Pro Rata with LMM


Основные понятия и принципы сведения ордеров

Порядок сведения приказов на покупку и продажу в контексте электронной торговой среды значительно отличается от параллельного процесса биржевой торговли путем прямого контакта продавца и покупателя (Open Outcry). Процедура сведения ордеров может происходить с использованием множества различных методологий или алгоритмов.

Фактически в арсенале CME Group имеется несколько алгоритмов для торговой платформы CME Globex, адаптированных под конкретные требования различных рынков. Здесь важно отметить, что алгоритмы сведения ордеров постоянно развиваются, и нужно постоянно “держать руку на пульсе”, отслеживая нововведения биржи. Обязательно читайте правила и положения, предлагаемые биржей, для полного понимания текущего механизма сведения ордеров.

В системе Globex существуют различные типы алгоритмов для сведения ордеров. Эти алгоритмы реализуют функциональность управления ордерами и гарантируют нам, как участникам рынка, наилучшее возможное исполнение по самой справедливой цене.

Для лучшего понимания биржевых технологий, обсуждаемых в сегодняшнем материале, советуем предварительно прочесть статью “Механика рынка: что нужно знать новичку о сведении ордеров”.

Как происходит сведение (матчинг) ордеров

Алгоритм сведения ордеров (матчинга ордеров) – это технология распределения, используемая для сведения агрессивного ордера с одним или множеством пассивных ордеров.

Сведение ордеров происходит в 3 этапа:

  1. Определение текущих цен пассивной стороны, противоположной по отношению к агрессивному ордеру, прямых и имплайдных цен
  2. Определение количества контрактов/лотов в виде пассивных заявок на уровне лучшей цены на основании правил Globex
  3. Выделение (аллокация) количества контрактов/лотов на уровне лучшей цены для заключения сделки с использованием рыночного алгоритма.

Так как же агрессивные приказы сводятся с пассивными, которые ранее были размещены в биржевом стакане? Ведь эти заявки были приняты в разное время и от разных участников торгов. Ответ на этот вопрос зависит от специфики рассматриваемого рынка. Существует множество алгоритмов сведения ордеров у каждой биржи. Логика каждого алгоритма учитывает конкретные потребности и зависит от условий рынка, для которого он разрабатывался.

Для большинства рынков биржи используют простой и интуитивно понятный алгоритм сведения ордеров, известный как «первым пришел, первым вышел» (FIFO). Например, фьючерсы E-mini S&P500 торгуются в соответствии с “чистой” методологией FIFO. Но это далеко не универсальный алгоритм. В торговле фьючерсным контрактом на евродоллар используется модифицированный алгоритм Pro Rata. На других рынках, в особенности зарождающихся, может использоваться алгоритм Lead Market Maker (LMM – Leader Market Maker) в попытке способствовать повышению ликвидности.

Вот перечень всех 7 алгоритмов сведения, которые используются CME:

  1. FIFO (First In First Out)
  2. Pro Rata
  3. FIFO with Lead Market Maker (LMM)
  4. Split FIFO and Pro Rata
  5. Threshold Pro Rata
  6. Threshold Pro Rata with LMM
  7. Allocation

Далее мы рассмотрим каждый из алгоритмов.

Алгоритм FIFO

FIFO, или алгоритм строгой приоритетности цены и времени, является наиболее простым и интуитивно понятным механизмом аллокации сделок. Цена и время являются единственными критериями, по которым алгоритм сводит ордера. FIFO работает по простой логике. В процессе сведения с поступающими агрессивными приказами, лимит-ордер, размещенный в книге заказов раньше всех, получает наивысший приоритет среди других ордеров, находящихся на том же ценовом уровне. 

Этот алгоритм матчинга для CME Group является алгоритмом ”по умолчанию”, если иной механизм ей не был определен.

Алгоритм FIFO используется при сведении ордеров на рынках таких инструментах, как: 

  • фьючерс на S&P
  • фьючерс на какао, 
  • фьючерс на нефть марки Brent и др.

Давайте рассмотрим пример, приведенный на сайте CME Group.

Представьте, что в систему поступил агрессивный ордер Buy Limit на 100 контрактов по цене 2041.25. В книге заявок на ценовом уровне 2041.25 размещены лимитные заявки суммарным размером в 150 контрактов.

На рисунке лимитные ордера размещены в порядке поступления. В нашем примере ордер с идентификатором ABC “пришел первым” и соответственно он будет исполнен в первую очередь. Далее будет исполнена заявка XYZ. Причем ордера ABC и XYZ будут “поглощены” в полном объеме. Лимитник KLM будет исполнен частично в размере 25 контрактов за счет остаточных 25 контрактов агрессивного ордера. 5 контрактов KLM останутся в книге заявок до следующих транзакций.

Примечание.

Лимитные ордера теряют свою приоритетность и автоматически становятся в конец очереди в случаях изменения размера, цены или номера счета

Алгоритм сведения Pro Rata

Прямой алгоритм Pro Rata сводит входящий агрессивный ордер с лимитными ордерами, размещенными на одном ценовом уровне пропорционально размерам этих лимитных ордеров.

В CME Group используется модифицированная версия Pro Rata – алгоритм FX Calendar платформы Globex. Он исполняет заявки в строгом соответствии с ценой, по которой они были размещены, их размером и временем размещения. Количество контрактов/лотов входящего ордера-агрессора распределяется пропорционально размерам пассивных лимитных заявок. Полученные значения округляются до ближайшего целого числа. Если аллоцированный размер меньше двух, то он округляется до нуля.

Pro Rata (пропорциональный) процент лимитного ордера рассчитывается, как частное от деления его размера на общий размер всех лимитных заявок на определенном ценовом уровне. К оставшимся частям, которые возникают в результате округления аллоцированных размеров, будет применен алгоритм FIFO.

Пример. Алгоритм Pro Rata используется на рынках таких фьючерсов, как E-mini JPY/USD, NZD/USD, AUD/USD и др. Давайте рассмотрим действие алгоритма Pro Rata на примере фьючерса календарного спреда AUD/USD (6AZ7).

  1. Итак, в систему поступил агрессивный ордер на покупку размером 100 лот. Давайте визуализируем, что будет происходить с лимитными заявками общим размером 255 лот на ценовом уровне Best Ask.
  2. Чтобы рассчитать Pro Rata коэффициенты, размер каждого лимитника делится на общий размер всех заявок, находящихся на уровне, в нашем случае, на 255.
  3. Далее, Pro Rata коэффициенты умножаются на объем поступившего ордера 100. Результаты расчетов округляются до ближайшего целого числа.
  4. Минимальный аллоцируемый размер для AUD/USD равен двум. Поэтому из заявки LKZ аллоцируется 0.
  5. Аллокация в алгоритме Pro Rata происходит в порядке от большего размера к меньшему. В нашем примере, сначала аллоцируется 58 лотов из MOV, а потом 39 лотов из ABC.
  6. Итак, в результате алгоритмом Pro Rata было аллоцировано 97 лотов. Оставшийся объем в 3 лота, возникший из-за округления, аллоцируется по алгоритму FIFO. Так как первым был размещен ордер с идентификатором ABC, то остаточный объем в виде трех лотов будет аллоцирован именно с этим ордером.

Алгоритм FIFO with LMM

2 алгоритма сведения ордеров, которые были рассмотрены выше, применяются на рынках флагманских контрактов группы CME. Конечно же не на всех рынках торговля ведется столь же активно. 

Поэтому для обеспечения ликвидности биржа обычно привлекает маркет-мейкеров. В некоторых случаях она предлагает маркет-мейкерам специальные программы материального стимулирования за услуги обеспечения ликвидности. Одним из самых распространённых средств стимулирования маркет-мейкеров является предоставление преференций в очереди приказов.

LMM (программа “Ведущий маркет-мейкер”) – это специальные условия, предоставляемые группой CME для авторизированных маркет-мейкеров, которые взяли на себя обязательства по обеспечению ликвидности определенного торгового инструмента. Эти маркет-мейкеры получают определенный процент аллокации от входящих ордеров. Этот процент определяется в соглашении между LMM компанией и биржей.

Давайте рассмотрим пример с фьючерсным пакетом Eurodollar “Баттерфляй” (англ. Eurodollar Futures Pack Butterfly). При сведении ордеров на данном рынке используется алгоритм FIFO c LMM (FIFO with LMM).

Algoritm FIFO

Представьте, что в систему поступил агрессивный Buy Limit ордер на 30 контрактов. 

А теперь давайте разберем логику работы алгоритма на уровне 1.25. Общий размер, размещенных на этом уровне лимитных заявок, составляет 50 контрактов.

Итак, как видим, на данном ценовом уровне размещены два лимитных ордера, которые составляют в биржевом стакане сайз в 50 контрактов. Ордер ABC поступил в систему первым, но ордер LKZ система идентифицировала как LMM ордер с 40%-ой аллокацией. 40 процентов от 30 контрактов агрессивного ордера равняется 12. Соответственно 12 контрактов получат приоритет в соответствии с LMM условиями. 

Как только LMM условие удовлетворено, аллокация происходит по алгоритму FIFO. Остаточные 18 контрактов будут аллоцированы с ABC.

Алгоритм Split FIFO and Pro Rata

Алгоритм Split FIFO & Pro Rata – гибридный по своей структуре, так как он является комбинацией FIFO и Pro Rata. Аллокация одной части входящего ордера X% происходит по алгоритму FIFO, вторая часть Y% – по алгоритму Pro Rata.

  • На первом этапе алгоритм FIFO выделяет определенную относительную величину входящего ордера для ее последующего аллоцирования с упорядоченными по времени лимитными ордерами.
  • На втором этапе алгоритм Pro Rata выделяет определенную относительную величину ордера для ее аллоцирования с упорядоченными по размеру и времени лимитными ордерами, используя Pro Rata формулу.
  • Дополнительный этап для некоторых продуктов: если остается неаллоцированный алгоритмом Pro Rata объем входящего ордера, то этот остаток распределяется между лимитными ордерами – по одному лоту на лимитный ордер (англ. 1 lot leveling – однолотовое равномерное распределение). Приоритетность аллокации остатка определяется по двум параметрам – величине объема и времени размещения лимитного ордера в стакане заявок. К любому остаточному количеству применяется алгоритм FIFO.

Пример. Давайте рассмотрим декабрьский контракт фьючерса на кукурузу (ZCZ6). При сведении входящего ордера с пассивными ордерами на этом контракте используется гибридный метод Split FIFO & Pro Rata, который 40% входящего объема исполняет по алгоритму FIFO и 60% – по алгоритму Pro Rata.

Итак, представим, что на рынок пришел агрессивный покупатель и решил приобрести 7 контрактов нашего торгового инструмента по цене 411’4 (Best Ask). Теперь детально разберем, что произойдет на этом уровне.

Algoritm FIFO

Как видим, на уровне лучшей цены 411’4 расположились 5 участников (см. рис. ниже).

На первом этапе к 40% размера агрессивного приказа применяется FIFO. 40% от 7 равняется 3. Данная часть размера ордера аллоцируется с первым в очереди лимитным ордером с идентификатором ABC. Соответственно после действия первого этапа алгоритма размер ордера ABC станет равным 97 (100-3).

FIFO

На втором этапе остальные 60% агрессивного ордера, то есть 4 контракта, будут исполнены по алгоритму Pro Rata. 

Ордера, находящиеся в стакане заявок, исполняются в соответствии с их размером и временем их размещения в стакане (вспоминайте логику работы алгоритма Pro Rata, мы ее описывали выше). Фактически мы находим, какой процент от общего размера всех заявок на уровне 411’4 составляет каждый из лимитных ордеров. Общий размер всех заявок на уровне лучшей цены после первого этапа аллокации: 97+30+80+30+60 = 297. 

Теперь вычисляем Pro Rata коэффициенты:

Pro Rata koeffitsientyi

Итак, остаточный размер нашего агрессивного ордера, равный 4-м контрактам (7-3), распределяется между лимитниками на уровне 411’4 в найденном нами процентном соотношении. Результаты нахождения процентов округляются до ближайшего целого числа, и после этого происходит аллокация. 

Если аллоцируемый размер меньше 1, то округление происходит до 0. Как раз по этой причине лимитные ордера XYZ, ZZZ и OPP не аллоцируются в результате действия алгоритма Pro Rata.

Pro Rata

Любое остаточное количество агрессивного ордера исполняется по принципу однолотового равномерного распределения (англ., 1-lot leveling). В нашем случае, после действия алгоритма Pro Rata, осталось всего 2 контракта. Порядок исполнения лимитных ордеров определяется их размером и временем размещения в стакане заявок. Лимитные ордера, участвовавшие в аллокации по алгоритму Pro Rata (ABC и KLM), не участвуют в данном этапе. 

Итак, остается 3 ордера – XYZ на 30 контрактов, ZZZ на 30 контрактов и OPP на 60 контрактов. OPP самый большой по размеру ордер. XYZ и ZZZ -ордера одинакового размера, но первым в стакане заявок был размещен XYZ. Соответственно лимитники OPP и XYZ будут исполнены в размере одного лота каждый.

Примечание

Алгоритм Split FIFO & Pro Rata также может использовать компоненты методологий Top Order и Lead Market Maker (LMM). В нашем примере эти компоненты не используются.

Логика работы алгоритма Threshold Pro Rata

Пороговый алгоритм пропорционального распределения Threshold Pro-Rata является модифицированным Pro Rata алгоритмом (мы рассмотрели его выше). 

Threshold Pro-Rata предоставляет приоритет тому лимитному приказу, который был размещен на уровне лучшей цены первым. Такой приказ в терминах CME Group именуется топ ордером.

После того как алгоритм идентифицировал топ ордер, поступающие в рынок агрессивные приказы аллоцируются с этим топ ордером в первую очередь и в максимальном размере, предусмотренном для конкретного инструмента.

Также в Pro Rata алгоритме установлено следующее требование: чтобы получить аллокацию в Pro Rata цикле размер лимитного ордера должен быть не меньше определенного минимального (“порогового”) значения.

Алгоритм Threshhold Pro Rata используется на рынках таких торговых инструментов, как опцион на кукурузу, опцион на соевую муку, опцион на пшеницу и др.

Пример. Теперь давайте рассмотрим работу алгоритма на примере опционного контракта на кукурузу с тикером OZCH7C320.0

работа алгоритма на примере опционного контракта на кукурузу

Предположим, что последняя цена, по которой торговался рассматриваемый нами инструмент — 144’6.

После чего на рынок приходит три лимитных ордера на продажу по цене 144’5. Сначала — Sell Limit на 150 контрактов, потом — Sell Limit на 8 контрактов и последним в систему поступил Sell Limit на 160 контрактов. 

Первый поступивший приказ будет идентифицирован алгоритмом, как ТОП ордер и соответственно получит наивысший приоритет.

сведения ордеров для кукурузного опциона

Теперь детально рассмотрим, что будет происходить на новом уровне лимитных продавцов 144’5 общим размером 318 (150 + 8 + 160).

Ключевые параметры сведения ордеров для кукурузного опциона следующие:

  • Топ ордер аллоцируется в размере 100%, при условии, что его размер составляет не менее 10 контрактов (если размер топ ордера ниже порогового значения, алгоритм не будет его аллоцировать) и не более 100 контрактов (если размер топ ордера превышает 100 контрактов, то ордер аллоцируется частично в размере максимального значения, установленного в алгоритме)
  • Pro Rata предусматривает минимальную аллокацию равную 1.

Ордер с идентификатором MZO был размещен в стакане приказов первым на уровне лучшей цены 144’5 и поэтому он получает наивысший приоритет.

Теперь представьте себе, что на рынок поступил агрессивный ордер на покупку Buy 200 Limit @ 144’5.

агрессивный ордер на покупку

Ордер MZO будет аллоцирован в размере 100 контрактов, так как 100 – это максимум, предусмотренный алгоритмом для этого инструмента.

В цикле Pro Rata размер каждого из лимитных ордеров делится на общий размер всех ордеров, находящихся на рассматриваемом нами уровне лучшей цены, для нахождения Pro Rata коэффициентов.

Pro Rata коэффициент

После чего полученные коэффициенты умножаются на общий размер всех заявок. Результаты округляются. Остаток объема агрессивного ордера в размере 100 контрактов распределяется между лимитными ордерами по алгоритму Pro Rata. В результате ордер LEM аллоцируется в размере 73 контрактов, MZO — в размере 22 контрактов и OKK — в размере 3 контрактов.

контрактов и OKK

Итак, в результате остается 2 не аллоцированных контракта. На данном этапе в действие вступает алгоритм FIFO. Так как первым был размещен ордер MZO, аллокация остатка произойдет именно с ним.

Надеемся, вы еще не утомились. Остался еще один алгоритм.

Алгоритм Threshold PRO rata with LMM

Пороговый алгоритм пропорционального распределения с использованием программы стимулирования маркет-мейкеров LMM (далее — алгоритм Threshold Pro-Rata with LMM) является модифицированным Pro Rata алгоритмом. 

Этот алгоритм сначала предоставляет приоритет тому лимитному приказу, который был размещен на уровне лучшей цены первым. Поступающие в рынок агрессивные приказы аллоцируются с этим топ ордером в первую очередь и в максимальном размере, предусмотренном для конкретного инструмента. После этого происходит аллокация по принципу LMM. 

Следующий этап — Pro Rata аллокация. Остаток размера агресивного ордера обрабатывается алгоритмом FIFO.

То есть фактически алгоритм Threshold Pro-Rata with LMM проходит следующие раунды (этапы аллокации):

  • Аллокация ТОП-ордера с установленным минимумом и/или максимумом аллокации
  • LMM (программа “Ведущий маркет мейкер”)
  • Pro Rata (пропорциональное распределение)
  • FIFO (первым пришел — первым ушел) для любого остаточного количества

Алгоритм Threshhold Pro Rata with LMM используется на рынках таких торговых инструментов, как опционы на 10-летние среднесрочные казначейские облигации, фьючерсы на cырьевой индекс Bloomberg Commodity, опционы на долгосрочные казначейские облигации.

Пример. Рассмотрим действие алгоритма на примере опциона на 10-летние казначейские облигации США с тикером OZNH7C. 

Предположим, что последняя цена, по которой торговался инструмент — 24’22.

После чего в систему поступило три ордера на продажу по цене 24’21: Sell Limit на 300 контрактов, Sell Limit на 15 контрактов, Sell Limit на 160 контрактов. Первый поступивший приказ будет идентифицирован алгоритмом, как ТОП ордер и соответственно получит наивысший приоритет при исполнении.

10-летние казначейские облигации США с тикером OZNH7C.

Ключевые параметры сведения ордеров для опциона на десятилетние казначейские облигации следующие:

  • Топ ордер аллоцируется в размере 100%, при условии, что его размер составляет не менее 25 контрактов (если размер топ ордера ниже порогового значения, алгоритм не будет его аллоцировать) и не более 250 контрактов (если размер топ ордера превышает 250 контрактов, то ордер аллоцируется частично в размере максимального значения, установленного в алгоритме)
  • Pro Rata предусматривает минимальную аллокацию равную 1.

Теперь представьте себе, что на рынок поступил агрессивный ордер на покупку Buy 400 Limit @ 24’21.

Давайте детально рассмотрим, что будет происходить на новом уровне Best Ask 24’21 общим размером (300+15+160=475 (контрактов)).

Ордер с идентификатором HOM был размещен в стакане приказов первым на уровне лучшей цены 24’21 и поэтому он получает наивысший приоритет.

Лимитный ордер HOM будет аллоцирован в размере 250 контрактов, так как 250 – это максимум, предусмотренный алгоритмом для рассматриваемого нами торгового инструмента.

Ордер ZNC система идентифицировала

Как мы уже знаем из предыдущих статей об алгоритмах сведения ордеров CME, в цикле Pro Rata размер каждого из лимитных ордеров делится на общий размер всех ордеров, находящихся на рассматриваемом нами уровне лучшей цены, для нахождения Pro Rata коэффициентов.

После чего полученные коэффициенты умножаются на общий размер всех заявок. Результаты округляются. Остаток объема агрессивного ордера в размере 90 контрактов распределяется между лимитными ордерами по алгоритму Pro Rata. В результате ордер HOM аллоцируется в размере 27 контрактов, PRO — в размере 8 контрактов и ZNC— в размере 54 контрактов.

ордер HOM

Остаток агрессивного ордера в размере 1 контракта аллоцируется по алгоритму FIFO.

Выводы

Знание алгоритмов, по которым сводятся ордера на бирже, очень важно для понимания внутренних процессов трейдинга. Мы старались, чтобы доступным образом изложить для вас этот сложный материал. Если у вас остались вопросы – не стесняйтесь их задавать в комментариях.

Другие статьи блога:

Что такое тиковый объем
Как работает анализ объемов. Его плюсы и минусы.
Кластерный анализ простыми словами
Что означает индикатор Depth of Market (DOM)
За и против трейдинга по объемам
CVD Pro. Как использовать индикатор Cumulative Volume Delta.
Анализ рынка фьючерсов на нефть.