[英]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.