【发布时间】:2021-10-15 21:14:21
【问题描述】:
将带有一条 FIX 消息的原始字符串转换为一个适当类型的 QuickFIX/J 消息对象(如 quickfix.fix44.ExecutionReport 对象)的推荐方法是什么?
我只需要处理 FIX 4.4 版本。
我在this thread on Quickfixj-users mailing list 找到了两个选项。
我根据自己的情况调整了这些选项,并且能够以两种不同的方式成功转换消息。
FIX 消息示例:
8=FIX.4.49=11035=834=749=EXEC52=20211014-19:39:25.75856=BANZAI6=011=114=10017=137=139=154=155=IBM150=2151=40010=237
我想知道以下哪个选项更好,或者如果两者都错了,还有更好的方法。
提前致谢。
1 个选项
quickfix.Message rawMessage = new quickfix.Message(rawMessageString);
// Example of MsgType = 8
MsgType msgType = new MsgType();
rawMessage.getHeader().getField(msgType);
MessageFactory messageFactory = new DefaultMessageFactory(ApplVerID.FIX44);
quickfix.Message message = messageFactory.create("FIX.4.4", msgType.getValue());
message.fromString(messageString, null, false, true);
// message.getName() = quickfix.fix44.ExecutionReport
System.out.println(message.getName() = " + message.getClass().getName());
2 选项
MessageFactory messageFactory = new DefaultMessageFactory(ApplVerID.FIX44);
quickfix.Message messageFromMessageUtils = quickfix.MessageUtils.parse(messageFactory, null, rawMessageString);
// message.getName() = quickfix.fix44.ExecutionReport
System.out.println(message.getName() = " + message.getClass().getName());
数据字典
在上述测试中,我没有使用数据字典,但在我的实际应用程序中我会使用一个。
【问题讨论】:
标签: quickfixj