【问题标题】:QuickFix Trouble - Repeating GroupsQuickFix 故障 - 重复组
【发布时间】:2013-03-26 14:56:45
【问题描述】:

我的修复引擎不断拒绝消息,我希望有人能帮我找出原因...我收到以下示例消息:

8=FIXT.1.1 9=518 35=AE 34=4 1128=8 49=XXXXXXX 56=YYYYYYY 52=20130322-17:58:37 552=1 54=1 37=Z00097H4ON 11=NOREF 826=0 78=1 79=NOT SPECIFIED 80=100000.000000 5967=129776.520000 453=5 448=BCART6 452=3 447=D 448=BARX 452=1 447=D 448=BARX 452=16 447=D 448=bcart6 452=11 447=D 448=ABCDEFGHI 452=12 447=D 571=6611540 150=F 17=Z00097H4ON 32=100000.000000 38=100000.000000 15=EUR 1056=129776.520000 31=1.2977652 194=1.298120 195=-3.5480 64=20130409 63=W2 60=20130322-17:26:50 75=20130322 1057=Y 460=4 167=FOR 65=OR 55=EUR/USD 10=121 

8=FIXT.1.1 9=124 35=3 34=4 49=XXXXXXX 52=20130322-17:58:37.917 56=YYYYYYY 45=4 58=Tag appears more than once 371=448 372=AE 373=13 10=216

但是您可以看到它被 quickfix 引擎拒绝。我正在使用 5.0sp1 数据字典并在我的配置文件中进行了配置:

[DEFAULT]
ConnectionType=initiator
HeartBtInt=30
ReconnectInterval=10
SocketReuseAddress=Y
FileStorePath=D:\XXX\Interface\ReutersStore
FileLogPath=D:\XXX\Interface\ReutersLog


[SESSION]
BeginString = FIXT.1.1
SenderCompID = XXXXX
TargetCompID= YYYYY
DefaultApplVerId = FIX.5.0  
UseDataDictionary=Y
AppDataDictionary=FIX50SP1.xml
StartDay=sunday
StartTime=20:55:00
EndTime=06:05:00
EndDay=saturday
SocketConnectHost= A.B.C.D
SocketConnectPort= 123

有人知道引擎为什么会拒绝此消息吗?我知道 quickfix 通常能够处理带有重复组的消息,这是配置的东西吗?任何帮助将不胜感激!

【问题讨论】:

    标签: config quickfix fix-protocol forex


    【解决方案1】:

    您的信息似乎是有序的。试着把它放在你的配置文件中。

    ValidateFieldsOutOfOrder=N
    

    默认情况下,Quickfix 将其设置为 Y,并且存储选项卡和字段值的底层结构无法看到之前的计数。 453 > 448。

    作为旁注,请务必检查这些字段。他们应该指出问题的根源。

    58=Tag appears more than once 
    371=448
    

    【讨论】:

    • 谢谢。是的,那个标签 448 是 PartyId 并且是一个重复值。我已经尝试设置 ValidateFieldsOutOfOrder=N 以及我发现的所有其他属性,只是想看看它是否会对它产生任何影响,但不幸的是消息仍然被 FIX 引擎拒绝。
    • 字段在数据字典中的排列方式。您是否也尝试过修补?您的 UseDataDictionary 是 Y。所以这可能也是一个值得一看的地方。
    • 我使用的数据字典是QuickFix引擎自带的标准FIX50SP1.xml。我看了看,但一切似乎都井井有条......
    • 您是否将 ValidateFieldsOutOfOrder=N 放入接受器并引用数据字典?您在问题中提出的配置是针对您的发起人的。
    • 不,我没有。不确定您所说的 Acceptor 是什么意思...就像我说的,我使用的 AppDataDictionary 与 FIX 引擎提供的相同。我尝试将 ValidateFieldsOutOfOrder 放在 Initiator 中,但没有奏效。
    【解决方案2】:

    也许这是在黑暗中拍摄,但我在使用 5.0sp2 字典时遇到了类似的问题。 我使用从库 SVN 存储库编译的 quickfix 库的更新版本解决了问题。如果我没记错的话this 是错误。

    quickfix库好像很久没有更新了,更新版本的fix建议你使用repo的“trunk”。

    【讨论】:

    • 我下载了最新的 QuickFix 版本,但仍然没有修复。
    • 我相信 Luca 建议您从存储库中查看最新版本,而不是下载最新版本 (1.13.3)
    【解决方案3】:

    我遇到了同样的问题,我通过在消息 AE TradeCaptureReport 中调整我的 DataDictionary 来解决它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多