Задача поддержания дву- или односторонних котировок по опционам может возникнуть при реализации разных стратегий:
Для решения этих задач в Option Workshop реализован модуль Маркет-мэйкер (далее ММ). Данный автомат привязывается к одному торговому счету, к одной стратегии. Таким образом сделки будут попадать в выбранную стратегию, что позволяет локализовать позиции маркет-мэйкера, хеджировать их дельту отдельно от других позиций. Что тут имелось в виду?
Одновременно могут котироваться несколько контрактов по разным инструментам. Заявки маркет-мейкера выставляются на определенном уровне от текущей рыночной цены. Если цена изменяется, заявки снимаются и создаются новые.
Содержание страницы:
Форма Market Makers открывается нажатием кнопки на тулбаре (рис. 1).
Рисунок 1 – форма Маркет-мэйкер
При нажатии правой кнопкой откроется меню с командами (рис. 2).
Рисунок 2 – форма Маркет-мэйкер
Чтобы настроить или запустить маркет-мейкер, необходимо его активировать, нажав дважды на автомат или выбрав команду 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 | Размер спрэда между заявками по бидам и теоретической ценой. Параметр может быть задан в единицах цены (например, 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 – настроенная форма маркет-мэйкера
Для каждого контракта заданы свои собственные параметры. После запуска маркет-мэйкера произойдёт следующее:
к текущей теоретической цене контракта будет прибавлено значение AskdSpread. Если не превышены лимиты и разрешено выставление заявок 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 для Offer. Если при работе у одного или нескольких маркет-мейкеров возникнут ошибки, то вся группа останавливается, заявки снимаются.
Режим связанных маркет-мейкеров работает и для режима Стрелок.
Для детального просмотра параметров необходимо раскрыть контракт, нажав значок .
Рисунок 11 – детальное отображение
В дополнительном поле отображаются:
Для того чтобы теоретическая цена рассчитывалась по заданной пользователем волатильности, нужно перейти к настройкам модели ценообразования текущей серии, нажав на кнопку Select model в правом верхнем углу. При этом появится форма, в которой можно задать волатильность для каждого страйка (рис. 12).
Рисунок 12 – котирование по волатильности
Чтобы вернуть биржевую волатильность, нужно ввести значение 0 и нажать Enter.
Подробнее о настройках моделей ценообразования.