是否有可以更改每个交易对手使用的 FIX SPEC 的开源 FIX 模拟器?
例如,我可能是一端使用带有一些自定义标签的 FIX 4.2 的用户,并且我想模拟与我和另一个使用带有一些自定义标签的 FIX 4.4 的用户的会话。
是否有可以更改每个交易对手使用的 FIX SPEC 的开源 FIX 模拟器?
例如,我可能是一端使用带有一些自定义标签的 FIX 4.2 的用户,并且我想模拟与我和另一个使用带有一些自定义标签的 FIX 4.4 的用户的会话。
这个答案比你的问题更广泛,但它旨在找出我认为你的问题所基于的一些误解的根源。
两个交易对手必须使用相同的 FIX 版本。例如,4.2 方无法与 4.4 方通话。
此外,FIX 版本之间的自动转换,例如,将 4.4 消息转换为 4.2 并再次转换回来,实际上是不可能的。4.4 具有 4.2 没有的功能字段。
此外,您甚至不能相信两个 4.4 交换会以相同的方式解释任何给定的消息。这两个交易所可能以完全不同的方式使用某些字段,并且发送给例如 ICE 的给定 4.4 消息的解释可能与发送给 BARX 的相同消息不同。ICE 将需要不同的字段,或以不同的方式处理这些字段,或已将自定义字段添加到 BARX 不使用的规范中,反之亦然。 根据我的经验,每个商业 FIX 界面都使用与所有其他供应商不同的自定义消息/字段字典。 他们只是不关心彼此的互操作性。
最好将 FIX 视为带有建议的字段和消息字典的传输协议。我从未与任何使用未更改默认字典的交易对手合作过。
只是认为一些澄清是为了那些不熟悉 FIX 的人。FIX 集线器可以(轻松)在各种 FIX 协议之间无缝转换和规范化 FIX 消息,因此 FIX 4.0 上的客户端可以毫无问题地向 FIX 4.2 上的卖方发送订单。Grant所指的所有应用层问题都是通过认证来解决的。FIX 协议不仅仅是一个指南,但肯定有解释的空间(这就是您在启用实时交易连接之前进行认证的原因)。该协议不仅仅是一个建议,尽管与任何协议一样,只要双方都知道自定义项,您就可以对其进行自定义(因此您基本上将使用基于 FIX 的新协议)。
同意其中大部分是应用程序层,因此您需要就双方将如何解释业务级别的信息达成一致。
You definitely can take a higher protocol version (ex FIX 4.4) and send them to a lower protocol version (ex FIX 4.0). You can either lose fidelity of the information or you can pass the 4.4 tags along on the 4.0 message. This is all part of FIX message normalization, one of the main reasons you'd use a FIX hub.