...
Рисунок 9 – настроенная форма маркет-мэйкераММ
Для каждого контракта заданы свои собственные параметры. После запуска маркет-мэйкера произойдёт ММ произойдёт следующее:
к текущей теоретической цене контракта будет прибавлено значение AskdSpread. Если не превышены лимиты и разрешено выставление заявок Ask – выставит заявку с получившейся ценой и объёмом AskQuantity;
Panel |
---|
Pask = T + Sask + Qposition * Sshift, где: - Sask – AskdSpread, размер спрэда между заявками ask и теоретической ценой;
- Qposition – Curr. Pos, текущая позиция;
- Sshift – Shift per Contract, корректировка мидмаркета.
|
от теоретической цены будет вычтено значение параметра BidSpread. Если не превышены лимиты и разрешено выставление заявок Bid – выставится заявка с получившейся ценой и объёмом BidQuantity;
Panel |
---|
Pbid = T - Sbid + Qposition * Sshift, где: - Sbid – AskdSpread, размер спрэда между заявками bid и теоретической ценой;
- Qposition – Curr. Pos, текущая позиция;
- Sshift – Shift per Contract, корректировка мид-маркета.
|
- ММ зафиксирует значение теоретической цены, относительно которой были выставлены заявки;
- перейдёт в состояние ожидания. Как только разница между текущей теоретической ценой и сохранённым значением превысит параметр Sensitivity, заявки будут сняты;
- ММ выставит новые по текущей цене. Ето так?;
...
Tip |
---|
Например, необходимо купить стрэддл в объёме 100 путов и 100 колов. В настоящий момент в стакане таких объёмов нет. Объединив контракты в группу, и выставив им одинаковый верхний лимит (Upper limit=100) и количество контрактов в заявке (Quantity=5), при исполнении заявки на 5 контрактов по одному из контрактов соответствующий маркет-мейкер ММ прекратит выставление новых заявок до тех пор, пока не исполнится такой же объём по второму контракту. |
Включить ММ в группу или исключить из нее можно при помощи галочки Join. Объединять маркет-мейкеров можно ММ можно только внутри одной серии.
Рисунок 10 – работа с маркет-мейкерамиММ
Порядок работы связанных маркет-мейкеров следующийММ следующий:
- для каждого робота высчитывается его текущий уровень позиций относительно нуля (Cur. joint level), который равен частному от деления текущей позиции Curr. pos. на количество контрактов в заявке Quantity. Знак берется в зависимости от направления торговли и знака текущей позиции:
- для Bid – плюс при положительной позиции, минус при отрицательной;
- для Ask – плюс при отрицательной позиции, минус при положительной.
Например, для контракта с Quantity=5, направлением торговли Bid и Curr. pos.=20 текущий уровень позиций Cur. joint level=4. - при каждой сделке или смене количества контрактов в заявке текущий уровень позиций пересчитывается;
- для всей группы рассчитывается максимальный уровень позиций Max. joint level;
- маркет-мейкер ММ выставляет заявку с заданным в параметре Quantity количеством, если его текущий уровень позиций меньше максимального уровня позиций в группе или, если все маркет-мейкеры достигли ММ достигли одинакового уровня. При этом выполняется правило, по которому объем в заявке не должен превысить текущие лимиты Lower limit, Upper limit.
...