Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
Column

Задача поддержания дву- или односторонних котировок по опционам может возникнуть при реализации разных трейдерских стратегий:

  • классический маркет-мэйкинг с обязательствами перед биржей по величине спрэда, объёму заявки и продолжительности котирования;
  • набор или уменьшения позиции по заданной волатильности;
  • хеджирование одного из коэффициентов чувствительности.

Для решения этих задач в Option Workshop реализован модуль Маркет-мэйкер. Данный автомат привязывается к одной стратегии, к одному торговому счету. Одновременно могут торговаться котироваться несколько контрактов по разным инструментам. Заявки маркет-мейкера выставляются на определенном уровне от текущей рыночной цены. Если цена изменяется, заявки снимаются и создаются новые. Bсе совершенные сделки будут попадать в выбранную стратегию, что позволяет локализовать позиции маркет-мэйкера, хеджировать их дельту отдельно от других позиций.

Column
width400px
Panel
bgColor#F5F5F5
borderStyledotted

Содержание страницы:

Table of Contents

Работа с маркет-мейкером

Форма Market Makers открывается нажатием кнопки  на тулбаре (рис. 1).

Рисунок 1 – форма работы с маркет-мэйкером

Чтобы настроить или запустить маркет-мейкер, необходимо его активировать – открыть окно настроек и управления. Для этого следует дважды нажать на название в форме Market Makers.

...

По умолчанию окно маркет мейкера не содержит записей.Image Removed Для выбора контрактов нужно нажать кнопку Select contracts

Image Added

Рисунок 2 – маркет-мэйкер

Для выбора инструментов нужно нажать кнопку Select contracts, выбрать в открывшемсяВ открывшемся окне выбрать инструменты (рис. 3[1]), нажать кнопку Image Added (рис. 3[2]), нажать кнопку ОК (рис. 3[3]).

Image Added

Рисунок 3 – выбор контрактов

В таблице появятся контракты по выбранным инструментам.

Image Added

Рисунок 4 – список контрактов

Красным выделены опциона PUT, зеленым – CALL, синим – фьючерсы и акции. Перед запуском маркет-мейкера, следует задать параметры котирования.

Info

Котировать сразу все контракты не рекомендуется. Таблица будет перегруженной и неудобной для навигации. Рекомендуется добавить только необходимые контракты.

...

Параметр
Описание
NameТип договора и символ. Цвет фона означает: красный – опцион пут, зеленый опцион колл, синий  фьючерсный контракт
PriceТекущая теоретическая цена опциона
EnableОпределяет, разрешено ли выставление заявок по данному опциону, когда маркет-мейкер запущен (котирование всей серии) запущен
Bid

Условие: выставлять ли по данному контракту бид в систему. Опция нужна для возможности выставлять односторонние котировки.

Если флажки bid и ask не установлены, заявки не будут выставляться

Ask

Условие: выставлять ли по данному контракту бид в систему. Опция нужна для возможности выставлять односторонние котировки.

Если флажки bid и ask не установлены, заявки не будут выставляться

ShooterЗадает режим "Стрелок" по данному контракту. Подробнее о режиме "Стрелок" - ниже
JoinПараметр позволяет объединять маркет-мейкеры в группу для согласованного набора позиций. Подробнее в разделе Режим связанных маркет-мейкеров
Bid QuantityРазмер заявок бида. Данный параметр можно задавать как в контрактах (например, 1 или 5) так и в суммарной дельте (например, 1d или 2.5d). Задание размера в дельте означает, что маркет-мейкер подберёт минимальное количество контрактов, у которого суммарная дельта (по модулю) будет больше или равна указанному значению
Ask QuantityРазмер заявок. Аналогично предыдущему параметру принимает значения как в контрактах, так и в дельте
Replace at QuantityПараметр задаёт оставшееся количество в заявке (в контрактах) при котором произойдет перевыставление заявкиКоличество контрактов, при котором заявка снимается с торгов, и выставляется новая
Lower LimitРобот не будет набирать позицию меньше значения данного параметра. Например, если лимит указан 100, количество контрактов, выставляемых в заявке равно 30, а уже набранная позиция равна 120, то робот уменьшит количество контрактов в выставляемой заявке на продажу до 20.
Этот параметр Параметр может быть задан со знаком "минус"
Upper LimitРобот не будет набирать позицию больше значения данного параметра. Например, если лимит указан 100, количество контрактов, выставляемых в заявке равно 30, а уже набранная позиция равна 80, то робот уменьшит количество контрактов в выставляемой заявке на покупку до 20.
Этот параметр Параметр может быть задан со знаком "минус"
Bid Spread

Размер спрэда между заявками по бидам и теоретической ценой.

Если вводится с окончанием 'p' или без окончания, например 100p или 100, то спрэд задаётся в единицах цены.

Если вводится с окончанием 'v', то спрэд задаётся в единицах волатильности, например 2v означает спрэд между бидом и теоретической ценой в 2 процента волатильности.

Параметр может быть задан со знаком "минус"

Ask Spread

Размер спрэда между заявками по офферам ask-ам и теоретической ценой.

Если вводится с окончанием 'p'или без окончания, например 100p или 100, то спрэд задаётся в единицах цены.

Если вводится с окончанием 'v', то спрэд задаётся в единицах волатильности, например 2v означает спрэд между оффером и теоретической ценой в 2 процента волатильности.

Параметр может быть задан со знаком "минус"

SensitivityУправляет чувствительностью робота к изменению рынка. Например, если мы выставили котировки в момент, когда теоретическая цена равнялась 4000, при этом чувствительность равна 10, то при изменении цены более чем на 10 пунктов (<3990 или>4010) робот перевыставит заявки по текущей теоретической цене. Данный параметр также можно задавать в единицах волатильности (например, 1v или 3v)
Shift per contractИспользуется для корректировки мидмаркета при совершении сделок. Допустим, если параметр задан равным 5, то при совершении сделки на продажу объёмом три контракта, следующая пара заявок будет выставляться не по теоретической цене, а по теор. цена + 5*3, то есть заявки оттянутся вверх для уменьшения вероятности совершения дополнительных продаж. Данный параметр также можно задавать в единицах волатильности (например, 1v или 3v)
Curr. Pos.Показывает текущую набранную позицию

...

На вкладке задаются настройки для всех маркет-мейкеров серииконтрактов. Если хотя бы один маркет-мейкер запущен, то для того чтобы эти настройки вступили в силу, нужно нажать кнопку Apply changes.

Рисунок 3 5 – настройки маркет-мэйкера

 Таблица 2 – Параметры настройки всех маркет-мейкеров серии

Параметр
Описание
Check price deviationУказывает на необходимость проверки отклонения теоретической цены опциона от текущего мид-маркета. В случае отклонения на величину, задаваемую параметром Deviation threshold, работа останавливается
Deviation thresholdЗадает порог отклонения теоретической цены опциона от текущего мид-маркета в процентах
Shift all contractsУстанавливает Shift per contract на все контракты текущего маркет-маейкера
Confirmation on start Вывод окна подтверждения на запуск маркет-мейкера

Логика работы

На рисунке 4 6 показана форма маркетмэйкерамаркет-мэйкера, настроенного на котирование трёх двух опционов call и четырёх трех – put.

Image Added

Рисунок 4 6 – настроенная форма маркет-мэйкера

Для каждого контракта заданы свои собственные параметры, при этом для опциона колл на 170000-м страйке котирование запрещено (заявки не выставятся), а для пута на страйке 165000 разрешено выставление только бида.

Для того чтобы запустить маркет-мэйкера, нужно нажать кнопку Start, после чего для каждого контракта произойдёт следующее:

...

. После запуска маркет-мэйкера произойдёт следующее:

  1. к текущей теоретической цене контракта будет прибавлено значение AskdSpread. Если не превышены лимиты и разрешено выставление заявок Ask – выставит заявку с получившейся ценой и

    объёмом Quantity;

    объёмом AskQuantity;

    Panel

    Pask = T + Sask + Qposition * Sshift, где:

    • Sask – AskdSpread;
    • Qposition – AskdSpread;
    • Sshift – Curr. Pos
  2. от теоретической цены будет вычтено значение параметра 

    Bid Spread

    BidSpread. Если

    разрешено

    не превышены лимиты и разрешено выставление заявок Bid – выставится заявка с получившейся ценой и объёмом Quantity;

    Panel

    Pbid  = T - Sbid  + Qposition * Sshift, где:

    • Sbid – AskdSpread;
    • Qposition – AskdSpread;
    • Sshift – Curr. Pos
  3. автомат зафиксирует значение теоретической цены, относительно которой были выставлены заявки;
  4. перейдёт в состояние слежения за изменением ожидания изменения теоретической цены. Как только разница между текущей теоретической ценой и сохранённым значением превысит параметр Sensitivity, заявки будут сняты;
  5. автомат повторит выставление заявок. 

...

Если заданы отрицательные спреды

...

, все цены будут отсчитываться в обратную сторону от теоретической цены.

 

Info

Если при выставлении заявки произойдёт ошибка (нехватка средств под ГО, выпадение цены за лимиты), то робот по конкретному контракту будет остановлен, т.е. в колонке Enable флажок будет снят.

 

Детальное отображение

Детальное отображение маркет-мейкеров включается галочкой Details.

Image Removed

Рисунок 5 Для дельного просмотра параметров необходимо раскрыть контракт.

Image Added

Рисунок 7 – детальное отображение

В

...

дополнительном поле отображаются:

  1. рассчитанные значения заявок bid и ask, по которым маркет-мейкер будет выставлять заявки, а также мид-маркет

...

  1. (рис. 5,1). Значения приводятся в единицах цены и единицах волатильности

...

  1. ; 

...

  1. рыночные значения по инструменту (рис. 5,2)

...

  1. ;
  2. параметр Accumulated shift (рис. 5,3) показывает величину накопленного сдвига

...

  1. позиции (текущее значение позиции, умноженное на значение параметра Shift per contract

...

  1. ).
  2. текущие параметры, относящиеся к связанным маркет-мейкерам (рис. 5,4):
    • Cur. joint level – текущий уровень позиций относительно нуля;
    • Max. joint level – максимальный среди связанных маркет-мейкеров уровень позиций;
    • Cur. upper limit – текущий верхний лимит позиций для Bid, больше которого робот не набирает;
    • Cur. lower limit – текущий нижний лимит позиций для Offer, меньше которого робот не набирает.

Котирование по волатильности

Для того чтобы теоретическая цена расчитывалась рассчитывалась по заданной пользователем волатильности, нужно перейти к настройкам модели ценообразования текущей серии, нажав на кнопку Select model в правом верхнем углу. При этом появится форма, в которой для модели Блэка-Шоулза можно задать волатильность для каждого страйка. Так на рисунке 5 показано, что для страйка 195000 вместо биржевой волатильности задана 30-я (рис. 58).

Image RemovedImage Added

Рисунок 5 8 – котирование по волатильности 

Чтобы вернуть биржевую волатильность, нужно ввести значение 0 и нажать Enter.

Подробнее о настройках моделей ценообразования.

Режим «Стрелок»

В данном режиме робот ведет себя иначе, чем в обычном режимеДля применения режима следует установить переключать Shooter. После запуска маркет-мейкера производится следующее: 

  1. робот берет текущую теоретическую цену контракта;
  2. прибавляет к ней значение параметра Offer Spreadк текущей теоретической цене контракта прибавляется значение AskSpread. Если полученное значение не превышает текущую цену лучшего бида, то робот автомат выставляет оффер заявку с текущей ценой лучшего бида. Объем оффера рассчитывается как наименьшее из текущего объема лучшего бида и значения параметра Quantity;
  3. робот отнимает от текущей теоретической цены значение параметра Bid Spreadвычитается значение BidSpread. Если текущая цена лучшего оффера полученное значение не превышает полученное значениетекущую цену лучшей заявки ask, то робот выставляет выставляется бид с текущей ценой лучшего оффералучшей заявки ask. Объем бида рассчитывается как наименьшее из текущего объема лучшего оффреа лучшей заявки ask и значения параметра Quantity;
  4. робот маркет-мейкер следит за статусами выставленных заявок. Если выставленная заявка снимается, если не была исполнена немедленно, то робот отменяет заявку.процесс повторяется по мере изменения ситуации на рынке.

Возможно задавать отрицательные спреды. В этом случае соответствующие цены будут отсчитываться в обратную сторону от теоретической цены.

 

Icon
Info

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

, т.к. может привести к непредсказуемым последствиям.

.

 

Режим связанных маркет-мейкеров

...

маркет-мейкеров

...

Роботы, объединенные в одну группу, будут набирать позицию постепенно, в зависимости от позиций других роботов в группе. Например, необходимо купить стрэддл на каком-то страйке в объёме 100 путов и 100 колов. В моменте в стакане таких объёмов нет, и вам нужно набирать позицию небольшими частями. Объединив маркет-мейкеры по путу и колу в группу, и выставив им одинаковый верхний лимит (Upper limit=100) и количество контрактов в заявке (Quantity=5), можно добиться того, что при исполнении заявки на 5 контрактов по одному из контрактов соответствующий маркет-мейкер прекратит выставление новых заявок до тех пор, пока не исполнится такой же объём по второму контракту.

Включить робот в группу или исключить из нее можно при помощи галочки Join. Объединять маркет-мейкеров можно только внутри одной серии.

...

Image Added

Рисунок 5 – 9 – работа с маркет-мейкерами

...