场地1可以使用特定消息来请求说市场数据,而场地2可以使用另一个消息来执行相同的任务。现在映射这个的最佳方法是什么?任何建议将不胜感激
另外,将额外字段附加到场地消息,使映射更容易是明智的吗?
任何人都可以提供有关交换如何执行此任务的见解吗?由于连接到多个场地的交换必须必须解析和翻译每个场地规范。
答案 0 :(得分:2)
不幸的是,FIX的灵活性并不能真正实现这一目标。 My other answer详细介绍了为什么FIX版本之间的转换不可行以及使用相同FIX版本的两个场地实际上是如何完全不兼容的。
根据我的经验,你真的必须为每个场地编写一个自定义适配器。一种方法是创建一个与场地无关的数据对象集供您的应用程序使用,然后实现对象与FIX消息之间的转换。应用程序会将转换器视为通用接口;它不需要知道目标场地是4.2或4.4还是诸如此类。
例如,您可以使用方法SendNewOrder(GenericNewOrder)
创建GenericNewOrder类和IConverter接口。 IConverter具有针对每个场所的实现,例如, VenueAConverter和VenueBConverter。 VenueAConverter创建一个适合VenueA的新订单消息,VenueBConverter为VenueB创建一个。如果您需要添加新场地,只需实施一个新的IConverter。
这是我能够提出的最佳模式。
(像你这样的问题实际上是在QuickFIX邮件列表上频繁出现的。)