{{Quickfixn}} Help me in resolving msgType 35=W issue

Nirjhar Jain nirjhar.jain at commdel.net
Mon Nov 25 21:23:29 PST 2013


Hi Grant Sir,

 

I have already followed the instructions you have told me to do. I have
already added 9063 (SettType) field in the spec file as below:

 

<message name="MarketDataSnapshotFullRefresh" msgtype="W" msgcat="app">

    <field name="MDReqID" required="N" />

    <component name="Instrument" required="Y" />

   <group name="NoUnderlyings" required="N">

      <component name="UnderlyingInstrument" required="N" />

    </group>

    <group name="NoLegs" required="N">

      <component name="InstrumentLeg" required="N" />

    </group>

    <field name="FinancialStatus" required="N" />

    <field name="CorporateAction" required="N" />

    <field name="NetChgPrevDay" required="N" />

    <group name="NoMDEntries" required="Y">

      <field name="MDEntryType" required="Y" />

      <field name="MDEntryPx" required="N" />

      <field name="Currency" required="N" />

      <field name="MDEntrySize" required="N" />

      <field name="MDEntryDate" required="N" />

      <field name="MDEntryTime" required="N" />

      <field name="TickDirection" required="N" />

      <field name="MDMkt" required="N" />

      <field name="TradingSessionID" required="N" />

      <field name="TradingSessionSubID" required="N" />

      <field name="QuoteCondition" required="N" />

      <field name="TradeCondition" required="N" />

      <field name="MDEntryOriginator" required="N" />

      <field name="LocationID" required="N" />

      <field name="DeskID" required="N" />

      <field name="OpenCloseSettlFlag" required="N" />

      <field name="TimeInForce" required="N" />

      <field name="ExpireDate" required="N" />

      <field name="ExpireTime" required="N" />

      <field name="MinQty" required="N" />

      <field name="ExecInst" required="N" />

      <field name="SellerDays" required="N" />

      <field name="OrderID" required="N" />

      <field name="QuoteEntryID" required="N" />

      <field name="MDEntryBuyer" required="N" />

      <field name="MDEntrySeller" required="N" />

      <field name="NumberOfOrders" required="N" />

      <field name="MDEntryPositionNo" required="N" />

      <field name="Scope" required="N" />                

      <field name="PriceDelta" required="N" />

      <field name="Text" required="N" />

      <field name="EncodedTextLen" required="N" />

      <field name="EncodedText" required="N" />

                  <field name="SettType" required="N" />

    </group>

    <field name="ApplQueueDepth" required="N" />

    <field name="ApplQueueResolution" required="N" />

  </message>

Also added inside the field tag

<field number="9063" name="SettType" type="STRING" />

 

After doing this I have regenerated the code and used the dll.

 

Also I have added "UseDataDictionary=Y" and "DataDictionary=path/to/xml" in
my config file. Then also below mentioned error is coming.

When received(from HSBC) message i.e. msgStr is passed through below code,
the sequence of tags change. 

Message message = msgFactory_.Create(beginString, msgType.Obj);

                message.FromString( msgStr, this.ValidateLengthAndChecksum,

                    this.SessionDataDictionary,
this.ApplicationDataDictionary,

                    this.msgFactory_);

 

Please help. Also I have added the tag separator(.) in the below mail.

 

 

Thanks & Regards,

Nirjhar Jain

Software Engineer


COMMDEL

Commdel Consulting Services P Ltd, 

H-134, Sector-63, Noida - U.P. (India)   

               

 <http://www.commdel.net/> www.commdel.net   

A n   I S O     9 0 0 1 : 2 0 0 8      C e r t i f i e d     C o m p a n y

Payment           Enterprise            Mobility            Internet  

 

From: quickfixn-bounces at lists.quickfixn.com
[mailto:quickfixn-bounces at lists.quickfixn.com] On Behalf Of Grant Birchmeier
Sent: Monday, November 25, 2013 9:31 PM
Cc: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} Help me in resolving msgType 35=W issue

 

Nirjhar,

 

The message passed to Next(msgStr) is what HSBC is actually sending to you.

 

The first version you pasted is messed up because I think your
DataDictionary xml file is not correct.  As I've told you a few times now,
9063 is not a default FIX field.  HSBC invented it.  You need to edit your
DD xml file to define this field and you need to specify where in the W
message's 269 group it is located.

See http://quickfixn.org/tutorial/custom-fields-groups-and-messages

 

Also, do you have "UseDataDictionary=Y" and "DataDictionary=path/to/xml" in
your config file?  You need these.

 

 

TIP: In the future, when pasting messages, please changing the field
separators to something readable.  For example, please change this:

8=FIX.4.49=20735=W34=4...

To this:

8=FIX.4.4|9=207|35=W|34=4...

So that these messages are easier to read and we can help you better.

 

 

On Fri, Nov 22, 2013 at 3:11 AM, Nirjhar Jain <nirjhar.jain at commdel.net
<mailto:nirjhar.jain at commdel.net> > wrote:

Hi All,

 

I am receiving MarketDataSnapshotFullRefresh 35=W from the HSBC server i.e.

8=FIX.4.4.9=0207.35=W.49=HSBCAPFIX.56=KRISQLSSTR.34=4.52=20131122-08
<tel:20131122-08>
:51:58.244.57=KRIS.55=USD/JPY.262=MARKETDATAID08:53:19.9019294.268=2.269=0.2
70=101.026.271=1000000.272=20131126.299=00c00000001:A.9063=SP.269=1.270=101.
034.10=182

 

In my quickfix code, in Session.cs file, Next(string msgStr) function is
getting above mentioned string as msgStr.

 

But inside Next(string msgStr) function when the msgStr is passed inside
below :

Message message = msgFactory_.Create(beginString, msgType.Obj);

                message.FromString(msgStr, this.ValidateLengthAndChecksum,
this.SessionDataDictionary, this.ApplicationDataDictionary,
this.msgFactory_);

 

the message format is getting changed to below one:

 

8=FIX.4.4...9=207...35=W...34=4...49=HSBCAPFIX...52=20131122-08
<tel:20131122-08>
:51:58.244...56=KRISQLSSTR...57=KRIS...55=USD/JPY...262=MARKETDATAID08:53:19
.9019294...269=1...270=101.034...9063=SP...268=2...269=0...270=101.026...271
=1000000...272=20131126...299=00c00000001:A...10=134

 

If we pass it to Next(message); message, It is giving error and generating
QuoteReject message as below:

 

8=FIX.4.4...9=146...35=3...34=4...49=KRISQLSSTR...50=KRIS...52=20131122-08
<tel:20131122-08> :54:07.038...56=HSBCAPFIX...45=4...58=Incorrect NumInGroup
count for repeating group...371=268...372=W...373=16...10=173

 

 

Here message.FromString(msgStr, this.ValidateLengthAndChecksum,
this.SessionDataDictionary, this.ApplicationDataDictionary,
this.msgFactory_);

Is changing the sequence of tags and also changing the value of tag 10.

 

Please help me in resolving this issue.

 

 

Thanks & Regards,

Nirjhar Jain

Software Engineer


COMMDEL

Commdel Consulting Services P Ltd, 

H-134, Sector-63, Noida - U.P. (India)   

               

 <http://www.commdel.net/> www.commdel.net   

A n   I S O     9 0 0 1 : 2 0 0 8      C e r t i f i e d     C o m p a n y

Payment           Enterprise            Mobility            Internet  

 





 

-- 

Grant Birchmeier

Connamara Systems, LLC

Made-To-Measure Trading Solutions.

Exactly what you need. No more. No less.

http://connamara.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20131126/a2c34c7a/attachment-0002.htm>


More information about the Quickfixn mailing list