Fix Protocol: как обрабатывать трехсторонние OCO-ордера

У меня есть ситуация, когда я получаю 4 заказа от моего клиента (см. ниже). Один ордер является OTO (ордер запускает ордер), и он активирует три других ордера, если он будет исполнен. Эти три ордера OCO (заказ отменяет ордер) друг друга. Таким образом, если один заполняется, два других аннулируются.

CME-ES.Enter ~ B 2 @ESM15 @ 2048.25 Limit Day [OTO CME-ES.ExitL, CME-ES.ExitS, CME-ES.ExitT]
CME-ES.ExitL ~ S 2 @ESM15 @ 2040.25 Limit Day [OCO CME-ES.ExitS, CME-ES.ExitT]
CME-ES.ExitS ~ S 2 @ESM15 @ 2058.25 Stop Day [OCO CME-ES.ExitL, CME-ES.ExitT]
CME-ES.ExitT ~ S 2 @ESM15 @ 1/24/2015 3:50pm Time Day [OCO CME-ES.ExitL, CME-ES.ExitS]

Note: "CME-ES.Enter" is the ClOrdID

В этой системе есть обычные стоп- и лимитный ордера на выход, но также есть и третий ордер на выход в определенное время.

Этот тип трехстороннего OTO/OCO не существует (я думаю) в спецификациях исправлений. Разве что есть тег, где бы все эти ордера отменялись (или уходили в рынок) в определенное время.

Если нет нормального способа сделать это... несколько вариантов кажутся обычным способом справиться с этим. Я мог бы отправить ордера в виде списка и предоставить инструкции OTO/OCO в поле Text(58) каждого ордера... или, возможно, в ListExecInst(69)... и, по сути, поместить текст, который находится в скобках, в поле клиента. заказы.

1) Есть ли официальный способ справиться с этим?

2) Есть ли какой-то другой неофициальный, но распространенный способ сделать это?

3) Если бы не 1 или 2, мой способ показался бы хорошим подходом.

4) Разумно ли мое предложение выше... или это ужасный извращенный способ использования исправления?

Спасибо! - Брайан

Примечание. Я программирую приемник и буду получать эти сообщения... но буду определять, что должно быть отправлено.


person Brian Rice    schedule 24.04.2015    source источник


Ответы (2)


Прошло четыре года, но может быть кто-то будет искать эту информацию. Вот что я могу найти:

Не существует стандартного способа моделирования отправки заказов OTO+OCO.

  • CQG обрабатывает аналогичный, но более простой случай, используя Запрос списка заказов v .

  • Integral обрабатывает аналогичный случай, используя последовательность New Order Single (35=D) запросы, в которых последующие заказы связаны с предыдущими и определяют их тип непредвиденных обстоятельств.

person Andy Malakov    schedule 16.01.2020

Я не знаю, но подозреваю, что в словаре данных для этой операции ничего не определено. Я думаю, вы говорите о пользовательском инструменте. Раньше я не создавал пользовательский инструмент, но посмотрите здесь

person rupweb    schedule 26.04.2015