Versions Compared

Key

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

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

классический маркет-мэйкинг с

Маркет-мейкер (далее ММ) позволяет:

  • поддерживать односторонние или двусторонние котировки фьючерсов и опционов;
  • осуществлять классический маркет-мейкинг с обязательствами перед биржей по величине спрэда, объёму заявки и продолжительности котирования;
  • набор набирать или уменьшение закрывать позиции по заданной волатильности;
  • хеджирование одного из коэффициентов чувствительности. Что тут имелось в виду?
Для решения этих задач в Option Workshop реализован модуль Маркет-мэйкер (далее ММ). Данный автомат
  • , с кастомизируемыми условиями совместного исполнения заявок.

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

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

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

 

 

Column
width400px
Panel
bgColor#F5F5F5
borderStyledotted

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

Table of Contents

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

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

Рисунок 1 – форма Маркет-мэйкерформа Market Makers

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

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

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

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

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

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

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

...

Info

Если стратегия с указанным именем не существует, она будет создана автоматически.

Выбор контрактов

...

Добавление контрактов

Добавить контракт можно несколькими способами:

  • Перетащить инструмент из дерева инструментов/Доски опционов в форму настройки ММ.
  • Перетащить позицию или стратегию из Менеджера позиций в форму настройки ММ.
  • Нажать кнопку Select contracts

Image RemovedImage Added

Рисунок 5 – маркет-мэйкерВ открывшемся окне выбрать инструменты 5 – окно настройки ММ

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

Рисунок 6 – выбор контрактов

В таблице появятся контракты по выбранным инструментамНа рисунке показана таблица с контрактами.

Рисунок 7 – список контрактов

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

Info

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

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

Способы Для запуска/остановки ММ первоначально нужно его открыть, нажав дважды на название или выбрав команду Open, затем:

  1. вариант: нажать на название ММ правой кнопкой мыши и выбрать команду Start/Stop;
  2. вариант: нажать кнопку /Image Removed в окне настроек и управления Image Added (рис. 8 [1]) в окне управления ММ или в форме Market Makers. Для остановки одновременно всех ММ нужно нажать кнопку Image Added (рис. 8 [2]).

Удаление

Для удаления ММ следует Image Added

Рисунок 8 – остановка ММ

Удаление

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

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

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

Anchor
Настройка ММ
Настройка ММ

...

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

...

ММ предназначен для поддержания котировок фьючерсов, опционов. Параметры, на основе которых ММ выставляет заявки, задаются для каждого контракта отдельно (табл. 1)

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

 

Параметр
Описание
NameКод инструмента
PriceТекущая теоретическая цена
(теоретическая цена формируется только для опционов?)
Enable

Определяет, разрешено ли выставление заявок по

данному опциону

контракту, когда

робот (котирование всей серии. А разве мы всю серию котируем, или только этот контракт из серии) запущенЕсли флажки

ММ запущен. Также должны быть установлены переключатели Bid и

Ask не установлены, заявки не будут выставляться

/или Ask

Bid

Выставлять заявки на

продажу (одностороннее котирование)

покупку

Ask

Выставлять заявки на

покупку (одностороннее котирование)

продажу

ShooterВыбор режима Стрелок
(кратко, о чем он? суть режима.)
Join

Выбор режима

Связанных маркет-мейкеров

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

связанных ММ

Bid Quantity

Размер заявок на

продажу

покупку.

Параметр

Значение можно задать в одном из двух форматов:

  • в контрактах (например, 1 или 5);
  • в суммарной дельте (например,
 1d или 2
  •  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);
    • в процентах (например, 10%);
    Параметр может быть задан
    • со знаком "минус".

    Параметр используется в расчете цен заявок (см. таблицу Формулы расчета)

    Ask Spread

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

    Параметр

    Аналогично параметру Bid Spread может быть задан в единицах цены

    (например, 100p или 100) или в единицах волатильности (например, 2v)Параметр может быть задан

    , волатильности, в процентах, со знаком "минус"

    Параметр используется в расчете цен заявок (см. таблицу Формулы расчета)

    Sensitivity

    Чувствительность к изменению цены. Параметр можно задать:

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

    Например, если

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

    При изменении цены более чем на 10 пунктов (<3990 или >4010), ММ перевыставит заявки по текущей теоретической цене

    . Данный параметр также можно задавать в единицах волатильности (например, 1v или 3v)

    Shift per contract
    Корректировки мидл

    Корректировка миддл-маркета при совершении сделок. Параметр можно задать:

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

    Например, если параметр равен 5, то при совершении сделки на продажу объёмом три контракта, следующая пара заявок будет выставляться

    не

    по

    теоретической цене, а по теор.

    цене: Теоретическая цена + 5*3. Заявки

    оттянутся

    поднимутся вверх для уменьшения вероятности совершения дополнительных продаж

    . Данный параметр также можно задавать в единицах волатильности (например, 1v или 3v)

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

    Общие параметры

    ...

    Tекущая набранная позиция

    Параметры для всех контрактов

    В блоке настроек Settings задаются общие параметры для всех контрактов. Если

    ...

    ММ запущен, то для применения настроек нужно нажать всплывающую кнопку Apply changes.

    Рисунок 8 – настройки ММ9 – общие параметры для всех контрактов

    Таблица 2 – Параметры настройки всех ММ

    Параметр
    Описание
    Check price deviation
    Указывает на необходимость проверки
    Проверка отклонения теоретической цены
    опциона
    от текущего
    мидл
    миддл-маркета. В случае отклонения на
    величину, задаваемую параметром 
    величину Deviation threshold,
    работа
    ММ останавливается
    Deviation threshold
    Задает порог отклонения
    Отклонение теоретической цены опциона от текущего
    мидл
    миддл-маркета в процентах
    Shift all contracts
    Устанавливает
    Применение Shift per contract на все контракты
    текущего
    ММ
    Confirmation on start Вывод окна для подтверждения
    на запуск ММ
    запуска ММ

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

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

    Image Added

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

    Info

    Развернуть/свернуть поле у всех контрактов можно с помощью кнопок Image Added/Image Added в верхнем правом углу таблицы.

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

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

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

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

    На рисунке 6 11 показана форма ММ, настроенного на котирование двух опционов содержащая два опциона call и трех три – put. Для каждого контракта заданы параметры.

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

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

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

      Anchor
      Формулы расчета заявок
      Формулы расчета заявок
      Таблица 3 – Формулы расчета

      Единицы измерения
      Spread
      AskBidОписание параметров
      Цена

      Pask = T +

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

      Panel

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

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

      AskSpread + Curr.pos * Shift per сontract

      Pbid = T - BidSpread + Curr.Pos * Shift per сontract

      • T – теоретическая цена;
      • Ask/BidSpread – спрэд в единицах цены (с учетом знака +/-);
      • Curr. Pos – позиция
        (с учетом знака +/-);
      • Shift per сontract – корректировка миддл-маркета
      ВолатильностьPask/bid = Pteor + Curr.pos * Shift per сontract
       
      • Pteor – теоретическая цена с учетом сдвига волатильности Ask/BidSpread
        (с учетом знака +/-);
      • Curr. Pos – позиция
        (с учетом знака +/-);
      • Shift per сontract – корректировка миддл-маркета
      Проценты

      Pask = T+ AskSpread*T/100% + Curr.pos * Shift per сontract

       

      Pbid = T - BidSpread*T/100% + Curr.pos * Shift per сontract

      •  Т – теоретическая цена;
      • Ask/BidSpread – спрэд в %
        (с учетом знака +/-)
      • Curr. Pos – позиция
        (с учетом знака +/-);
      • Shift per сontract – корректировка миддл-маркета
    4. рассчитает цену заявки bid (см. табл.3). Если не превышены лимиты и разрешено выставление заявок bid, ММ выставит заявку с рассчитанной ценой и объёмом BidQuantity;

    5. ММ запомнит значение теоретической цены, относительно которой были выставлены заявки;перейдёт , и перейдёт в состояние ожидания. Как только ;
    6. заявки будут сняты, если:
      1. разница между текущей теоретической ценой и сохранённым значением превысит параметр Sensitivity
      , заявки будут сняты
      1. ;
      2. заявка исполнится частично и ее размер станет ≤ Replace at Quantity;
    7. ММ выставит новые по текущей цене. Ето так?;

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

    1. заявки.
    Info

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

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

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

    ...

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

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

    ...

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

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

    ...

    1. будет исполнена сразу после выставления;
    2. ММ выставит новые заявки, если выполнятся условия 2 и/или 3.
    Info

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

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

    ...

    Anchor
    Связанные ММ
    Связанные ММ

    Контракты в рамках одного ММ можно объединить в группы. В данном случае позиции будут набираться постепенно, в зависимости от размера позиций других роботов в группеконтрактов.

    Tip

    Например, необходимо купить стрэддл в объёме 100  путов put  и 100 колов call. В настоящий момент в стакане таких объёмов заявок нет. Объединив контракты в группу, и выставив им одинаковый верхний лимит (. Необходимо набирать позицию частями. Для этого следует:

    • объединить контракты put и call в группу;
    • установить верхний лимит Upper limit=100
    ) и
    • ;
    • установить количество контрактов в заявке
    (
    • Quantity=5
    ), при

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

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

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

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

    1. для каждого

      робота высчитывается его текущий

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

      (Cur. joint level), который равен частному от деления текущей позиции Curr. pos. на количество контрактов в заявке Quantity. Знак берется в зависимости

      .  

      Panel

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

      • Curr. Pos – текущая позиция (с учетом знака +/-);
      • Quantity размер заявок bid или ask.


      Знак зависит от направления торговли и знака

      текущей позиции:
      • для Bid – плюс при положительной позиции, минус при отрицательной;
      • для Ask – плюс при отрицательной позиции, минус при положительной.
      Например, для контракта с Quantity=5, направлением торговли Bid и 

      позиции (табл. 4).
      Таблица 4 – Знак параметра Cur. joint level

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

      Например, если Quantity=5, Curr. pos.=20

       текущий уровень позиций 

      , направление торговли Bid, то Cur. joint level=4.

      при каждой сделке или смене количества контрактов в заявке

      При совершении сделки или изменении объема заявки текущий уровень позиций пересчитывается;

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

      Panel

      Lmax = max(Li)

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

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

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

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

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

    Image Removed

    Рисунок 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).

    Image Removed

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

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

    ...

    Настройка волатильности

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

    Модель ценобразования можно установить для каждой серии опционов. В выпадающем списке представлены серии, контракты из которых добавлены в маркет-мейкер. Для выбора модели следует нажать Pricing model. Описание настроек представлено в разделе Настройка моделей ценообразования. При нажатии ссылки Option desk откроется доска опционов данной серии в отдельном окне.

    Image Added

    Рисунок 13 – выбор модели ценобразования

    Подробное описание представлено в разделе Модель ценообразования.

    Настройка расписания

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

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

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

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