0

我希望有人能对 Quickfixn 引擎如何处理传出的 FIX 消息有所了解……我已经建立了传出连接,并且我得到了心跳。但是,当我生成传出消息时,它会被拒绝,因为它说标签 58 对于此消息类型无效......(35 = AE)......通常,如果这是一个入站连接,我可以修改数据字典一切都会好起来的......但是看看这是一个传出连接,加上我的 UseDataDictionary 属性设置为“N”...... quickfix 引擎使用什么来验证传出消息?可以更改某些内容以允许引擎传递消息吗?还是唯一的解决方案是不在我的传出消息中包含此标签?

对此问题的任何帮助将不胜感激。

编辑-

消息被 quickfix 引擎拒绝。我正在构建的消息和相应的拒绝消息是:

8=FIX.4.4 9=400 35=AE 34=38 49=XXX 52=20130528-23:11:04.040 56=YYY 31=1.3022 32=1000000.00 39=0 55=欧元/美元 58=ABCD 60=20130528- 22:34:52.000 64=20130531 75=20130529 570=N 571=ABCD 5495=0 5971=1302200.00 552=1 54=2 37=ABCD 453=3 448=LP1-DBAB 447=D 4527=17 448=XXX 4 =D 4​​52=1 448=XXX 447=D 452=19 15=120 欧元=10 美元=082

8=FIX.4.4 9=130 35=3 34=38 49=YYY 52=20130528-23:11:04.283 56=XXX 45=38 58=未定义此消息类型的标签 371=58 372=AE 373=2 10=033

我已经看到传入的消息被快速修复引擎拒绝,因为数据字典没有正确的消息规范......我认为这可能是同一件事,但传出连接似乎没有使用数据字典.

4

2 回答 2

1

您的 FIX 库不会拒绝消息。而是将消息发送给对方,然后对方在接收和验证您的消息时将其拒绝为无效。其原因是因为标签 58(如果存在)必须是“NoSides 重复组(标签 552)的一部分,在您的情况下它不是,这使得消息格式错误。您要做的是发送“逻辑上”正确的消息。我建议您参考适当的 FIX 协议规范,以获取有关如何构造正确消息的参考。

于 2013-05-30T13:07:56.173 回答
0

弗拉德的回答是正确的,但我想提醒您注意问题中的另一种危险。

我的 UseDataDictionary 属性设置为“N”

我有 90% 的把握你不想这样做。无论您认为自己通过使用获得什么,=N都可能是基于对某事的误解。

如果没有 DD,您将无法阅读具有重复组的消息,因为引擎将不知道哪些字段属于哪个组。

在实践中,每个场地都使用重复组。因此,您需要设置UseDataDictionary=Y 并且需要使用 .xml 指定一个 xml 文件DataDictionary=<file>

我们在 QF/n 中允许的唯一原因=N是与 QF/C++ 和 QF/j 保持一致。

于 2013-05-30T17:50:18.693 回答