0

场所 1 可以使用特定消息来请求说市场数据,而场所 2 可以使用另一条消息来完成相同的任务。现在映射这个的最好方法是什么?任何建议,将不胜感激

另外,在场所消息中附加额外的字段以使映射更容易是否明智?

谁能提供有关交易所如何执行此任务的见解?作为连接到多个场所的交易所,肯定必须解析和翻译每个场所的规范。

4

1 回答 1

2

不幸的是,FIX 的灵活性并没有真正让这成为一件容易的事。 我的另一个答案更详细地说明了为什么在 FIX 版本之间进行转换是不可行的,以及使用相同 FIX 版本的两个场所实际上是如何完全不兼容的。

根据我的经验,您确实必须为每个场地编写一个自定义适配器。一种方法是创建一组独立于场所的数据对象供您的应用程序使用,然后在您的对象和进出场所的 FIX 消息之间实现转换。该应用程序会将转换器视为只是一个通用接口;它不需要知道目标场地是 4.2 还是 4.4 之类的。

例如,您可以创建一个 GenericNewOrder 类和一个带有方法的 IConverter 接口SendNewOrder(GenericNewOrder)。IConverter 对每个场地都有一个实现,例如 VenueAConverter 和 VenueBConverter。VenueAConverter 为 VenueA 创建一个新的订单消息,而 VenueBConverter 为 VenueB 创建一个。如果你必须添加一个新的场地,只需实现一个新的 IConverter。

这是我能想到的最好的模式。

(像你这样的问题实际上出现在 QuickFIX 邮件列表中的频率很高。)

于 2013-03-01T15:20:39.010 回答