Задача поддержания дву- или односторонних котировок может возникнуть при реализации разных стратегий. Например:
Для решения этих задач в Option Workshop реализован модуль Маркет-мейкер (далее ММ). Модуль привязывается к одному торговому счету, к одной стратегии. Все сделки, совершенные по заявкам ММ, будут попадать в выбранную стратегию. Это позволяет локализовать позиции ММ и хеджировать отдельно от других позиций. Одновременно могут котироваться несколько контрактов по разным инструментам. Заявки ММ выставляются на определенном уровне от текущей рыночной цены. Если цена изменяется, заявки снимаются и создаются новые.
Содержание страницы:
Форма Market Makers открывается нажатием кнопки (рис. 1).
Рисунок 1 – форма Маркет-мейкер
При нажатии правой кнопки нам ММ откроется меню с командами (рис. 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 и теоретической ценой. Параметр может быть задан в единицах цены (например, 100p или 100) или в единицах волатильности (например, 2v) Параметр может быть задан со знаком "минус" |
Ask Spread | Размер спрэда между заявками ask и теоретической ценой. Параметр может быть задан в единицах цены (например, 100p или 100) или в единицах волатильности (например, 2v) Параметр может быть задан со знаком "минус" |
Sensitivity | Чувствительность к изменению цены. Например, котировка выставлялась при теоретической цене – 4000, чувствительность – 10. При изменении цены более чем на 10 пунктов (<3990 или>4010) ММ перевыставит заявки по текущей теоретической цене. Данный параметр также можно задавать в единицах волатильности (например, 1v или 3v) |
Shift per contract | Корректировки мидл-маркета при совершении сделок. Например, если параметр равен 5, то при совершении сделки на продажу объёмом три контракта, следующая пара заявок будет выставляться не по теоретической цене, а по теор. цена + 5*3. Заявки оттянутся вверх для уменьшения вероятности совершения дополнительных продаж. Данный параметр также можно задавать в единицах волатильности (например, 1v или 3v) |
Curr. Pos. | Показывает текущую набранную позицию |
В блоке настроек Settings задаются параметры котирования для всех контрактов. Если один ММ запущен, то для применения настроек нужно нажать всплывающую кнопку Apply changes.
Рисунок 8 – настройки ММ
Таблица 2 – Параметры настройки всех ММ
Параметр | Описание |
---|---|
Check price deviation | Указывает на необходимость проверки отклонения теоретической цены опциона от текущего мидл-маркета. В случае отклонения на величину, задаваемую параметром Deviation threshold, работа останавливается |
Deviation threshold | Задает порог отклонения теоретической цены опциона от текущего мидл-маркета в процентах |
Shift all contracts | Устанавливает Shift per contract на все контракты текущего ММ |
Confirmation on start | Вывод окна подтверждения на запуск ММ |
На рисунке 6 показана форма ММ, настроенного на котирование двух опционов call и трех – put.
Рисунок 9 – настроенная форма ММ
Для каждого контракта заданы свои собственные параметры. После запуска ММ произойдёт следующее:
к текущей теоретической цене контракта будет прибавлено значение AskSpread. Если не превышены лимиты и разрешено выставление заявок Ask – выставит заявку с получившейся ценой и объёмом AskQuantity;
Pask = T + Sask + Qposition * Sshift, где:
от теоретической цены будет вычтено значение параметра BidSpread. Если не превышены лимиты и разрешено выставление заявок Bid – выставится заявка с получившейся ценой и объёмом BidQuantity;
Pbid = T - Sbid + Qposition * Sshift, где:
Если заданы отрицательные спреды, все цены будут отсчитываться в обратную сторону от теоретической цены.
Если при выставлении заявки произойдёт ошибка (нехватка средств под ГО, выпадение цены за лимиты), то ММ по конкретному контракту будет остановлен, в колонке Enable флажок будет снят.
Котирование контракта может производится в двух режимах:
Для применения режима следует установить переключать Shooter. После запуска:
Возможно задавать отрицательные спреды. В этом случае соответствующие цены будут отсчитываться в обратную сторону от теоретической цены.
Если оба спрэда заданы по цене или по волатильности одновременно, то их сумма обязательно должна быть положительна.
Задание одного из спрэдов по цене, а другого по волатильности не рекомендуется.
По контрактам, объединенным в одну группу, позиция будет набираться постепенно, в зависимости от размера позиций других роботов в группе.
Например, необходимо купить стрэддл в объёме 100 путов и 100 колов. В настоящий момент в стакане таких объёмов нет. Объединив контракты в группу, и выставив им одинаковый верхний лимит (Upper limit=100) и количество контрактов в заявке (Quantity=5), при исполнении заявки на 5 контрактов по одному из контрактов соответствующий ММ прекратит выставление новых заявок до тех пор, пока не исполнится такой же объём по второму контракту.
Включить ММ в группу или исключить из нее можно при помощи галочки Join.
Рисунок 10 – работа с ММ
Порядок работы связанных ММ следующий:
В интерфейсе отображаются текущие лимиты, больше которых робот не набирает - Cur. upper limit для Bid, и Cur. lower limit для Ask. Если при работе у одного или нескольких маркет-мейкеров возникнут ошибки, то вся группа останавливается, заявки снимаются.
Режим связанных маркет-мейкеров работает и для режима Стрелок.
Для детального просмотра параметров необходимо раскрыть контракт, нажав значок .
Рисунок 11 – детальное отображение
В дополнительном поле отображаются:
Для того чтобы теоретическая цена рассчитывалась по заданной пользователем волатильности, нужно перейти к настройкам модели ценообразования текущей серии, нажав на кнопку Select model в правом верхнем углу. При этом появится форма, в которой можно задать волатильность для каждого страйка (рис. 12).
Рисунок 12 – котирование по волатильности
Чтобы вернуть биржевую волатильность, нужно ввести значение 0 и нажать Enter.
Подробнее о настройках моделей ценообразования.
Для настройки таблицы используются кнопки на верхней панели: