Задача поддержания дву- или односторонних котировок может возникнуть при реализации разных стратегий. Например:
Для решения этих задач в Option Workshop реализован модуль Маркет-мейкер (далее ММ). Модуль привязывается к одному торговому счету, к одной стратегии. Все сделки, совершенные по заявкам ММ, будут попадать в выбранную стратегию. Это позволяет локализовать позиции ММ и хеджировать отдельно от других позиций. Одновременно могут котироваться контракты по разным инструментам:
ММ выставляет заявки по контракту на определенном уровне от текущей рыночной цены. Если цена изменяется, заявки снимаются и создаются новые.
Содержание страницы:
Форма Market Makers открывается нажатием кнопки (рис. 1).
Рисунок 1 – форма Market Makers
При нажатии правой кнопки на ММ откроется меню с командами (рис. 2).
Рисунок 2 – команды Market Makers
Чтобы настроить или запустить ММ, необходимо его активировать, нажав дважды на название или выбрав команду Open. В результате откроется окно настроек и управления выбранного ММ.
Рисунок 3 – окно настроек
Создать ММ можно по схеме, представленной ниже.
Рисунок 4 – схема создания ММ
Если стратегия с указанным именем не существует, она будет создана автоматически.
По умолчанию окно настройки ММ не содержит контрактов. Для добавления нужно нажать кнопку Select contracts.
Рисунок 5 – окно настройки ММ
В открывшемся окне выбрать инструмент (рис. 6[1]), нажать кнопку (рис. 6[2]), нажать кнопку ОК (рис. 6[3]).
Рисунок 6 – выбор контрактов
В таблице появятся выбранные контракты.
Рисунок 7 – список контрактов
Красным цветом выделены опционы PUT, зеленым – CALL, синим – фьючерсы и акции. Перед запуском ММ следует задать параметры котирования (см. раздел Настройка маркет-мейкера).
Котировать сразу все контракты не рекомендуется. Таблица будет перегруженной и неудобной для навигации. Рекомендуется создать несколько ММ.
Способы запуска/остановки:
Для удаления ММ следует закрыть окно настроек и управления, нажать кнопку в форме Market Makers.
Для каждого контракта отдельно задаются параметры, описанные в таблице 1.
Таблица 1 – Параметры контракта
Параметр | Описание |
---|---|
Name | Код инструмента |
Price | Текущая теоретическая цена |
Enable | Определяет, разрешено ли выставление заявок по контракту, когда ММ запущен. Также должны быть установлены переключатели Bid и/или Ask |
Bid | Выставлять заявки на продажу (одностороннее котирование) |
Ask | Выставлять заявки на покупку (одностороннее котирование) |
Shooter | Выбор режима Стрелок |
Join | Выбор режима связанных ММ |
Bid Quantity | Размер заявок на продажу. Параметр можно задать:
|
Ask Quantity | Размер заявок на покупку. Аналогичен предыдущему параметру |
Replace at Quantity | Размер заявки, при котором она снимается с торгов |
Lower Limit | Нижний лимит размера позиции. Может быть задан со знаком "–". ММ не будет набирать позицию меньше указанного значения. Например, если
то ММ уменьшит количество контрактов в заявке на продажу до 20. |
Upper Limit | Нижний лимит размера позиции. Может быть задан со знаком "–". ММ не будет набирать позицию больше заданного значения. Например, если
то робот уменьшит количество контрактов в заявке на покупку до 20. |
Bid Spread | Размер спрэда между заявками bid и теоретической ценой. Параметр может быть задан:
|
Ask Spread | Размер спрэда между заявками ask и теоретической ценой. Параметр может быть задан:
|
Sensitivity | Чувствительность к изменению цены. Может быть задана в единицах цены или волатильности. Например, если
то при изменении цены более чем на 10 пунктов (<3990 или >4010), ММ перевыставит заявки по текущей теоретической цене |
Shift per contract | Корректировка миддл-маркета при совершении сделок. Может быть задана в единицах цены или волатильности. Например, если параметр равен 5, то при совершении сделки на продажу объёмом три контракта, следующая пара заявок будет выставляться по цене: Теоретическая цена + 5*3. Заявки оттянутся вверх для уменьшения вероятности совершения дополнительных продаж |
Curr. Pos. | Показывает текущую набранную позицию |
В блоке настроек Settings задаются параметры котирования для всех контрактов. Если ММ запущен, то для применения настроек нужно нажать всплывающую кнопку Apply changes.
Рисунок 8 – общие параметры для всех контрактов
Таблица 2 – Параметры настройки всех ММ
Параметр | Описание |
---|---|
Check price deviation | Проверка отклонения теоретической цены от текущего миддл-маркета. В случае отклонения на величину Deviation threshold, ММ останавливается |
Deviation threshold | Отклонение теоретической цены опциона от текущего миддл-маркета в процентах |
Shift all contracts | Применение Shift per contract на все контракты ММ |
Confirmation on start | Вывод окна подтверждения на запуск ММ |
Для детального просмотра параметров необходимо раскрыть контракт, нажав значок .
Рисунок 11 – детальное отображение
В дополнительном поле отображаются:
На рисунке 6 показана форма ММ, настроенного на котирование двух опционов call и трех – put.
Рисунок 9 – настроенная форма ММ
Для каждого контракта заданы свои собственные параметры. После запуска ММ произойдёт следующее:
к текущей теоретической цене контракта будет прибавлено значение AskSpread. Если не превышены лимиты и разрешено выставление заявок аsk, ММ выставит заявку с рассчитанной ценой и объёмом AskQuantity;
Pask = T + AskdSpread + Curr. Pos * Shift per Contract, где:
от теоретической цены будет вычтено значение параметра BidSpread. Если не превышены лимиты и разрешено выставление заявок bid, ММ выставит заявку с рассчитанной ценой и объёмом BidQuantity;
Pbid = T - BidSpread + Curr. Pos * Shift per Contract, где:
Если заданы отрицательные спрэды, все цены будут отсчитываться в обратном направлении от теоретической цены.
Если при выставлении заявки произойдёт ошибка (например, нехватка средств под ГО, превышение лимитов), то ММ по конкретному контракту будет остановлен, в колонке Enable переключатель будет снят.
Котирование контракта может производится в режиме:
Для применения режима следует установить переключатель Shooter. После запуска:
Возможно задавать отрицательные спрэды. В этом случае соответствующие цены будут отсчитываться в обратном направлении от теоретической цены.
Если одновременно необходимо задать оба спрэда по цене/волатильности, то их сумма обязательно должна быть положительна.
Задание одного из спрэдов по цене, а другого по волатильности не рекомендуется.
Позиции по контрактам, объединенным в одну группу, будут набираться постепенно, в зависимости от размера позиций других контрактов в группе.
Например, необходимо купить стрэддл в объёме 100 путов и 100 колов. В настоящий момент в стакане таких заявок нет. Следует объединить контракты в группу и задать параметры:
При исполнении заявки по одному контракту, ММ прекратит выставление новых заявок до тех пор, пока не исполнится такой же объём по второму контракту.
Включить контракт в группу можно при помощи переключателя Join.
Рисунок 10 – работа с ММ
Порядок работы связанных ММ следующий:
для каждого контракта высчитывается значение Cur. joint level – текущий уровень позиций относительно нуля.
Li = Quantity / Curr. Pos, где:
Знак зависит от направления торговли и знака позиции (табл. 3).
Таблица 3 – знак параметра Cur. joint level
Bid | Ask | |
---|---|---|
Current position ≥ 0 | + | - |
Current position < 0 | + | - |
Например, если Quantity=5, Curr. pos.=20, направление торговли Bid, то Cur. joint level=4.
для всей группы рассчитывается максимальный уровень позиций Max. joint level;
Lmax = max(Li)
В интерфейсе отображаются текущие лимиты, больше которых ММ не набирает – Cur. upper limit для заявок bid, и Cur. lower limit для заявок ask. Если при работе у одного или нескольких ММ возникнут ошибки, то вся группа останавливается, заявки снимаются.
Режим связанных маркет-мейкеров работает и для режима Стрелок.
Для того чтобы теоретическая цена рассчитывалась по заданной пользователем волатильности, нужно перейти к настройкам модели ценообразования текущей серии, нажав на кнопку Select model в правом верхнем углу. При этом появится форма, в которой можно задать волатильность для каждого страйка (рис. 12).
Рисунок 12 – котирование по волатильности
Чтобы вернуть биржевую волатильность, нужно ввести значение 0 и нажать Enter (подробнее о настройках моделей ценообразования).
Инструкция о том, как настроить работу ММ по расписанию, представлена в разделе Настройка расписания работы дельта-хеджера и маркет-мейкера.
Для настройки таблицы используются кнопки на верхней панели: