修复协议:如何处理3方OCO订单

时间:2015-04-24 19:29:55

标签: fix-protocol

我的情况是我收到了客户的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在修订规范中不存在(我认为)。除非有标签表明所有这些订单都会在某个时间取消(或进入市场)。

如果没有正常的方法这样做......一些选项似乎是一种自定义处理方式。我可以在列表中发送订单,并在每个订单的Text(58)字段中提供OTO / OCO指令......或者可能在ListExecInst(69)中...并且基本上将括号中的文本放在客户中订单。

1)有没有正式的方法来解决这个问题?

2)是否有其他非官方但常用的方式?

3)如果不是1或2,我的方式似乎是一个好方法。

4)我的建议是否合理......或者使用修复是一种可怕的扭曲方式?

谢谢! - 布赖恩

注意:我正在编程接受器并将收到这些消息......但将定义要发送的内容。

2 个答案:

答案 0 :(得分:0)

已经四年了,但是可能有人会在寻找这些信息。这是我可以找到的:

没有模拟OTO + OCO订单提交的标准方法。

答案 1 :(得分:-1)

我不知道,但怀疑数据字典中没有为此操作定义任何内容。我想你在谈论一个用户定义的工具。我之前没有编写过用户定义的工具,但请查看here