我的情况是我收到了客户的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)我的建议是否合理......或者使用修复是一种可怕的扭曲方式?
谢谢! - 布赖恩
注意:我正在编程接受器并将收到这些消息......但将定义要发送的内容。
答案 0 :(得分:0)
已经四年了,但是可能有人会在寻找这些信息。这是我可以找到的:
没有模拟OTO + OCO订单提交的标准方法。
CQG使用Order List Request v处理类似但更简单的情况。
Integral使用一系列New Order Single (35=D)请求来处理类似的情况,其中后续订单链接到前任并定义其意外类型。
答案 1 :(得分:-1)
我不知道,但怀疑数据字典中没有为此操作定义任何内容。我想你在谈论一个用户定义的工具。我之前没有编写过用户定义的工具,但请查看here