我有一个QuickFIX启动器,它从市场数据中获得了标签270中的1.23E-6。然后我看到QuickFIX / J抛出以下错误:
拒绝无效消息:quickfix.IncorrectDataFormat:值字段= 270的数据格式不正确
有什么主意如何避免拒绝并解析正确的值?
我也从标签44(价格)中的35 = 8消息中收到了科学的数字格式,但是我可以先将getString然后将它们转换为BigDecimal,没有问题。
答案 0 :(得分:1)
这里的真正问题是,您的交易对手不应该在该字段中发送科学计数值。该字段的类型为“ Price”,每个规范应为整数或十进制数,这就是QF引擎正在验证的内容。
所以,我不知道您的对手方是谁,但也许您想与他们联系,以查看这是否可能是他们的合法漏洞。
(我无法解释为什么您的35 = 8 / tag-44消息被接受。您的情况一定有一个我不知道的细节。)
如果您仍然需要解决此问题:使引擎接受此消息的一种简单的作弊方法是,只需将数据字典xml文件中的字段类型更改为“字符串”。当然,这将要求您始终将字符串显式转换为BigDecimal,但这听起来像是您没有问题。