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