简体   繁体   English

QuickFix市场数据消息错误

[英]QuickFix Market Data Message Error

I am new to fix. 我是新手要修复。 I am using quick fix library in my app. 我在我的应用程序中使用快速修复库。 Im able to do logon and exchange heart beat. 我能够登录并交换心跳。 When i send the marketdata request, im getting the response from the server. 当我发送marketdata请求时,我从服务器获得响应。 But my application is sending reject message to fix, when it receives a message. 但是,当我的应用程序收到消息时,它会发送拒绝消息进行修复。 And so im not able to process the message. 因此,即时通讯无法处理该消息。 Below are the incoming and outgoing message. 以下是传入和传出消息。

20160623-11:19:45.898 : 8=FIX.4.49=24235=X34=12049=CfhDemoPrices52=20160623-11:19:46.41456=PrimoDEMOFIX262=PrimoApp123268=2279=1269=0278=30/23-14404955=GBPUSD270=1.48854271=1500000290=164=20160627279=1269=1278=30/23-14405455=GBPUSD270=1.48885271=1000000290=110=004
20160623-11:19:45.924 : 8=FIX.4.49=13735=334=12249=PrimoDEMOFIX52=20160623-11:19:45.92256=CfhDemoPrices45=12058=Tag not defined for this message type371=55372=X373=210=140

and below is how i subscribe for market data: 以下是我如何订阅市场数据:

        QuickFix.FIX44.MarketDataRequest msg = new QuickFix.FIX44.MarketDataRequest();

        // Fill message fields
        msg.SetField(new MDReqID("PrimoApp123"));
        msg.SetField(new SubscriptionRequestType('1'));
        msg.SetField(new MarketDepth(1));
        msg.SetField(new MDUpdateType(1));

        // Add the MDEntryTypes group
        QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup noMDEntryTypes = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup();
        noMDEntryTypes.SetField(new MDEntryType('0'));
        msg.AddGroup(noMDEntryTypes);

        // Add the NoRelatedSym group
        QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup();
        noRelatedSym.SetField(new Symbol("GBPUSD"));
        msg.AddGroup(noRelatedSym);

        // Send message
        Session.SendToTarget(msg, FeederApp.mysession);

Please help me with this if possible 如果可以的话请帮我

Did you even look at what your reject message says? 您甚至没有看到拒绝消息中所说的内容吗?

45=120   // RefSeqNum - seq num of message that was rejected
58=Tag not defined for this message type
371=55   // RefTagID - tag 55 is the problem
372=X    // RefMsgType - the rejected message was an X (MarketDataIncrementalRefresh)
373=2    // SessionRejectReason 2=[TagNotDefinedForThisMessageType]

So according to this, the problem is that your DataDictionary is not configured to expect tag 55 (Symbol) inside of message type X. 因此,据此,问题在于您的DataDictionary没有配置为在消息类型X内包含标记55(符号)。

However, that doesn't appear to be entirely accurate. 但是,这似乎并不完全正确。 If you're pasted message is correct, it breaks down like this: 如果您粘贴的消息是正确的,则会按以下方式分解:

8 =FIX.4.4
9 =242
35 =X
34 =120
49 =CfhDemoPrices
52 =20160623-11:19:46.414
56 =PrimoDEMOFIX
262 =PrimoApp123
268 =2     // 2 MDEntry Sequences
  279 =1   // 1st sequence
  269 =0
  278 =30/23-144049
  55 =GBPUSD     // this looks ok here...
  270 =1.48854
  271 =1500000
  290 =1
  64 =20160627  // what?  this doesn't belong here!

  279 =1   // 2nd sequence
  269 =1
  278 =30/23-144054
  55 =GBPUSD
  270 =1.48885
  271 =1000000
  290 =1

10=004

Therefore, I suspect that either (1) you made an error when you copy/pasted your message, or (2) it's actually field 64 that is your problem. 因此,我怀疑(1)您在复制/粘贴邮件时出错了,或者(2)实际上是字段64是您的问题。

Next Steps: 下一步:

1) Read this page to learn how to customize the DataDictionary: 1)阅读此页面以了解如何自定义DataDictionary:
http://quickfixn.org/tutorial/custom-fields-groups-and-messages.html http://quickfixn.org/tutorial/custom-fields-groups-and-messages.html

2) Get documentation from your counterparty and make sure your DataDictionary reflects all the field/message customizations that they have added to their system. 2)从交易对手处获取文档,并确保您的DataDictionary反映了他们已添加到系统中的所有字段/消息自定义项。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM