[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
}
|