You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

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

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

Для решения этих задач в 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, синим – фьючерсы и акции. Перед запуском ММ, следует задать параметры котирования (см. раздел Настройка маркет-мейкера).

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

Запуск и остановка

Способы запуска/остановки:

  1. нажать на название правой кнопкой мыши и выбрать команду Start/Stop;
  2. нажать кнопку / в окне настроек и управления или в форме Market Makers.

Удаление

Для удаления ММ следует нажать кнопку  в форме Market Makers

Настройка маркет-мейкера

Параметры контракта

Для каждого контракта отдельно можно задавать параметры, описанные в таблице 1. 

Таблица 1 – Параметры контракта

 

Параметр
Описание
NameКод инструмента
PriceТекущая теоретическая цена
Enable

Определяет, разрешено ли выставление заявок по данному опциону, когда робот запущен

Если флажки Bid и 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

Размер спрэда между заявками по бидам и теоретической ценой. Параметр может быть задан в единицах цены (например, 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 – настроенная форма ММ

Для каждого контракта заданы свои собственные параметры. После запуска ММ произойдёт следующее:

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

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

    • Sask – AskdSpread, размер спрэда между заявками ask и теоретической ценой;
    • Qposition – Curr. Pos, текущая позиция;
    • Sshift – Shift per Contract, корректировка мидмаркета.
  2. от теоретической цены будет вычтено значение параметра BidSpread. Если не превышены лимиты и разрешено выставление заявок Bid – выставится заявка с получившейся ценой и объёмом BidQuantity;

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

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

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

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

Котирование контракта может производится в дувух режимах:

  • режим Стрелок;
  • связанных ММ – объединение контрактов в группу для согласованного набора позиций.

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

Для применения режима следует установить переключать Shooter. После запуска: 

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

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

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

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

По контрактам, объединенным в одну группу, позиция будет набираться постепенно, в зависимости от размера позиций других роботов в группе.

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

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

Рисунок 10 – работа с ММ

Порядок работы связанных ММ следующий:

  1. для каждого робота высчитывается его текущий уровень позиций относительно нуля (Cur. joint level), который равен частному от деления текущей позиции Curr. pos. на количество контрактов в заявке Quantity. Знак берется в зависимости от направления торговли и знака текущей позиции:
    • для Bid – плюс при положительной позиции, минус при отрицательной;
    • для Ask – плюс при отрицательной позиции, минус при положительной.
    Например, для контракта с Quantity=5, направлением торговли Bid и Curr. pos.=20 текущий уровень позиций Cur. joint level=4.
  2. при каждой сделке или смене количества контрактов в заявке текущий уровень позиций пересчитывается;
  3. для всей группы рассчитывается максимальный уровень позиций Max. joint level;
  4. ММ выставляет заявку с заданным в параметре Quantity количеством, если его текущий уровень позиций меньше максимального уровня позиций в группе или, если все ММ достигли одинакового уровня. При этом выполняется правило, по которому объем в заявке не должен превысить текущие лимиты Lower limitUpper limit.

В интерфейсе отображаются текущие лимиты, больше которых робот не набирает - Cur. upper limit для Bid, и Cur. lower limit для Ask. Если при работе у одного или нескольких маркет-мейкеров возникнут ошибки, то вся группа останавливается, заявки снимаются.

Режим связанных маркет-мейкеров работает и для режима Стрелок.

Просмотра дополнительных параметров контракта

Для детального просмотра параметров необходимо раскрыть контракт, нажав значок .

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

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

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

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

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

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

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

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

Настройка вида таблицы

Для настройки таблицы используются кнопки на верхней панели:

  • /– развернуть/свернуть поле с дополнительными параметрами;
  •  – равномерное выравнивание ширины столбцов по размеру окна;
  •  – сброс настроек таблицы;
  •  – выбор колонок. При нажатии на кнопку откроется форма, в которой можно установить/снять флажок напротив названия столбца. Для изменения порядка колонок следует нажать на название колонки и перетащить ее.
  • No labels