[Quickfix-developers] Repeating groups?
Brought to you by:
orenmnero
From: Rob K. <ro...@ri...> - 2003-04-10 19:07:25
|
I have attached the result of creating a quickfix MassQuote message with = three quotes for some RBK options. it is presented in the order in = which the string was generated, I have added tabs and linebreaks to show = the repeating groups. When ever I send a message like this to my = counterparty it breaks their fix server. They are telling me that the = tags are out of order. tag 302 304 and 311 have to precede 209 and tag = 301 has to precede tag 296. my question is this: Is this FIX standard? = If it is, what is wrong with generation of the message. I have attached = psudocode of my message generation after the message. 8=3DFIX.4.2=019=3D433=0135=3Di=0134=3D30=0149=3DSENDER=0150=3DSUB=0152=3D= 20030410-18:09:08=0156=3DTARGET=0157=3DTEST=01 117=3DQUOTEID=01 296=3D1=01 295=3D3=01 55=3DRBK=01 60=3D20030410-13:09:08=01 132=3D0=01 133=3D0.05=01 134=3D1=01 135=3D1=01 167=3DOPT=01 200=3D200304=01 201=3D1=01 202=3D30=01 299=3D0=01 336=3DW_AM1=01 55=3DRBK=01 60=3D20030410-13:09:08=01 132=3D10.2=01 133=3D10.7=01 134=3D1=01 135=3D1=01 167=3DOPT=01 200=3D200304=01 201=3D0=01 202=3D32.5=01 299=3D1=01 336=3DW_AM1=01 55=3DRBK=01 60=3D20030410-13:09:08=01 132=3D0=01 133=3D0.05=01 134=3D1=01 135=3D1=01 167=3DOPT=01 200=3D200304=01 201=3D1=01 202=3D32.5=01 299=3D2=01 336=3DW_AM1=01 302=3D1=01 304=3D0=01 311=3DRBK=01 301=3D1=01 10=3D063=01 private void Tick() { QuickFix42.MassQuote m =3D new QuickFix42.MassQuote(); m.setField(new QuoteID(mClient.mUserID)); m.setField(new QuoteResponseLevel(1)); //tell me only about bad quotes foreach(group of quotes I am quoting known as the variable p) { Group Qset =3D new Group(296, 0x1); Qset.setField(new QuoteSetID(mQuoteSetID.ToString())); Qset.setField(new UnderlyingSymbol(p.Series)); Qset.setField(new TotQuoteEntries(0)); foreach(quote in my quote group p known as Q) { Group Quotes =3D new Group(295, 0x1); //set all the quote fields Quotes.setField(new QuoteEntryID(i.ToString())); Quotes.setField(new Symbol(q.Symbol)); Quotes.setField(new SecurityType(q.SecurityType)); Quotes.setField(new MaturityMonthYear(q.strMaturityMonthYear)); Quotes.setField(new SecurityType(q.SecurityType)); Quotes.setField(new StrikePrice(q.StrikePrice)); Quotes.setField(new PutOrCall(q.IsCall ? PutOrCall.CALL : = PutOrCall.PUT )); Quotes.setField(new BidPx(q.BidPX)); Quotes.setField(new OfferPx(q.OfferPX)); Quotes.setField(new BidSize(q.BidSize)); Quotes.setField(new OfferSize(q.OfferSize)); Quotes.setField(new TransactTime(DateTime.Now)); Quotes.setField(new TradingSessionID(mClient.Parent.Key)); i++; Qset.addGroup(Quotes); } m.addGroup(Qset); mQuoteSetID++; } send m } |