Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
Column

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

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

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

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

ММ выставляет заявки по контракту Заявки выставляются на определенном уровне от текущей рыночной цены. Если цена изменяется, заявки снимаются и создаются . Создаются новые. Все совершенные сделки будут попадать в привязанную к ММ стратегию. Это позволяет локализовать позиции ММ, проводить хеджирование отдельно от других позиций.

Column
width400px
Panel
bgColor#F5F5F5
borderStyledotted

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

Table of Contents

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

Вызов формы Market Makers

Форма Market Makers открывается нажатием кнопки Image RemovedImage Added (рис. 1).

Рисунок 1 – форма Market Makers

При нажатии правой кнопки на ММ откроется меню с командами (рис. 2).

Рисунок 2 – команды Market Makersкоманды ММ

Чтобы настроить или запустить ММ, необходимо его активировать, нажав дважды на название или выбрав команду Open. В результате откроется окно настроек и управления выбранного ММ. 

Рисунок 3 – окно настроекуправления выбранного ММ

Создание маркет-мейкера

Создать ММ можно по схеме, представленной ниже.

...

По умолчанию окно настройки ММ не содержит контрактов. Для добавления нужно нажать кнопку Select contracts

Image RemovedImage Added

Рисунок 5 – окно настройки ММ

В открывшемся окне открывшейся форме нужно из левого списка выбрать контракты, с которыми будет работать ММ, и перенести в правую часть формы. Порядок действий: выбрать инструмент (рис. 6[1]), нажать кнопку  (рис. 6[2]), нажать кнопку ОК (рис. 6[3]).

...

Красным цветом выделены опционы PUT, зеленым – CALL, синим – фьючерсы и акции. Перед запуском ММ следует задать параметры котирования (см. раздел Настройка маркет-мейкера).

Info

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

...

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

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

Удаление

Для удаления ММ следует закрыть окно настроек и управления, Удаление недоступно, пока открыто окно управления необходимо ММ (см. рис. 7). Первоначально нужно закрыть окно, затем нажать кнопку  в форме Market Makers

...

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

Определяет, разрешено ли выставление заявок по контракту, когда ММ запущен. Также должны быть установлены переключатели Bid и/или Ask

Bid

Выставлять заявки на продажу (одностороннее котирование)

Ask

Выставлять заявки на покупку (одностороннее котирование)

ShooterВыбор режима Стрелок
Join

Выбор режима связанных ММ

Bid Quantity

Размер заявок на продажу. Параметр Значение можно задать в одном из двух форматов:

  • в контрактах (например, 1 или 5);
  • в суммарной дельте (например, 1d или 2.5d). ММ подберёт минимальное количество контрактов, у которого суммарная дельта (по модулю) будет больше или равна указанному значению
Ask QuantityРазмер заявок на покупку. Аналогичен предыдущему параметру Bid Quantity
Replace at QuantityРазмер заявки, при котором она

Если размер заявки равен или меньше данного значения, заявка снимается с торгов

Lower Limit

Нижний лимит размера позиции. Обязательный параметр. Может быть задан со знаком "минус". ММ не будет набирать позицию меньше указанного значения. Например, если:

  • нижний лимит на кол-во контрактов в позиции 100, 
  • текущая позиция = 120,
  • количество контрактов в заявке на продажу 30,.
  • набранная позиция = 120,

то Для того чтобы позиция осталась равна лимиту (100), ММ уменьшит количество контрактов в заявке на продажу до 20.

Upper Limit

Нижний Верхний лимит размера позиции. Обязательный параметр. Может быть задан со знаком "минус". ММ не будет набирать позицию больше заданного значения. Например, если

  • верхний лимит на кол-во контрактов в позиции = 100
  • текущая позиция = 80,
  • количество контрактов в заявке на покупку = 30,. 
  • набранная позиция = 80

Для того чтобы позиция осталась равна лимиту (100), то робот уменьшит количество контрактов в заявке на покупку до 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. Заявки оттянутся поднимутся вверх для уменьшения вероятности совершения дополнительных продаж

(warning) Рекомендации:

Curr. Pos.Показывает текущую набранную позицию

...

Параметр
Описание
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, меньше которого ММ не набирает.

...

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

    Panel

    Pask = T + AskdSpread + Curr. Pos * Shift per Contractсontract, где:

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

    Panel

    Pbid Pbid = T - BidSpread + Curr. Pos * Shift per Contractсontract, где:

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

...

Info

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

Котирование контракта Работа ММ может производится в режиме:

  • Стрелок (переключатель Shooter);
  • связанных ММ (переключатель Join).

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

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

...

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

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

...

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

    Panel

    Li Li = Quantity / Curr. Pos, где:

    • Quantity размер заявок bid или ask;
    • Curr. Pos – текущая позиция.


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

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

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

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

    Panel

    Lmax = max(Li)

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

...