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

Compare with Current View Page History

« Previous Version 20 Next »

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

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

Для решения этих задач в Option Workshop реализован модуль Маркет-мейкер (далее ММ). Модуль привязывается к одному торговому счету, к одной стратегии. Все сделки, совершенные по заявкам ММ, будут попадать в выбранную стратегию. Это позволяет локализовать позиции ММ и хеджировать отдельно от других позиций. Одновременно могут котироваться контракты по разным инструментам:

  • опционы call, put;
  • фьючерсы;
  • акции.

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

Содержание страницы:

Основные операции с маркет-мейкером

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

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

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

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

  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

Размер спрэда между заявками bid и теоретической ценой. Параметр может быть задан:

  • в единицах цены (например, 100p или 100);
  • в единицах волатильности (например, 2v);
  • со знаком ""
Ask Spread

Размер спрэда между заявками ask и теоретической ценой. Параметр может быть задан:

  • в единицах цены (например, 100p или 100);
  • в единицах волатильности (например, 2v);
  • со знаком ""
Sensitivity

Чувствительность к изменению цены. Может быть задана в единицах цены или волатильности. Например, если

  • котировка выставлялась по теоретической цене = 4000
  • чувствительность = 10,

то при изменении цены более чем на 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 – детальное отображение

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

  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 – текущий нижний лимит позиций для ask, меньше которого ММ не набирает.

Логика работы

На рисунке 6 показана форма ММ, настроенного на котирование двух опционов call и трех – put.

Рисунок 9 – настроенная форма ММ

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

  1. к текущей теоретической цене контракта будет прибавлено значение AskSpread. Если не превышены лимиты и разрешено выставление заявок аsk, ММ выставит заявку с рассчитанной ценой и объёмом 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. ММ рассчитает цену заявок ask и bid (см. первый и второй пункт в разделе Логика работы);
  2. будет выставлена заявка ask, если рассчитанная цена больше или равна цене лучшей заявки bid. 
    Объем заявки рассчитывается как наименьшее из текущего объема лучшего бида и значения параметра Quantity;
  3. будет выставлена заявка bid, если рассчитанная цена меньше или равна цене лучшей заявки ask. 
    Объем заявки рассчитывается как наименьшее из текущего объема лучшей заявки ask и значения параметра Quantity;
  4. заявки снимается, если не исполняются немедленно.

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

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

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

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

Например, необходимо купить стрэддл в объёме 100 путов и 100 колов. В настоящий момент в стакане таких заявок нет. Следует объединить контракты в группу и задать параметры:

  • верхний лимит (Upper limit=100);
  • количество контрактов в заявке (Quantity=5). 

При исполнении заявки по одному контракту, ММ прекратит выставление новых заявок до тех пор, пока не исполнится такой же объём по второму контракту.

Включить контракт в группу можно при помощи переключателя Join.

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

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

  1. для каждого контракта высчитывается значение Cur. joint level – текущий уровень позиций относительно нуля.  

    Li = Qcurrent / Qorder, где:

    • Qcurrent – Bid Quantity или Ask Quantity, размер заявок;
    • Qorder – Curr. Pos, текущая позиция.


    Знак зависит от направления торговли и знака позиции (табл. 3).
    Таблица 3 – знак параметра Cur. joint level

     BidAsk
    Current position ≥ 0+-
    Current position < 0+-

    Например, если Quantity=5, Curr. pos.=20, направление торговли Bid, то Cur. joint level=4.

  2. при совершении сделки или изменении объема заявки текущий уровень позиций пересчитывается;
  3. для всей группы рассчитывается максимальный уровень позиций Max. joint level;

    Lmax = max(Li)

  4. ММ выставляет заявку с заданным в параметре Quantity количеством, при условии:
    1.  текущий уровень позиций (Current joint level) меньше максимального уровня позиций в группе (Max joint level);
    2.  все ММ достигли одинакового уровня (Current joint level). 
    При этом учитываются лимиты Lower limitUpper limit.

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

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

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

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

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

Чтобы вернуть биржевую волатильность, нужно ввести значение 0 и нажать Enter (подробнее о настройках моделей ценообразования).

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

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

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