[This message was posted by Declan Caulfield of Getco LLC <[EMAIL PROTECTED]>
to the "FAST Protocol" discussion forum at http://fixprotocol.org/discuss/46.
You can reply to it on-line at http://fixprotocol.org/discuss/read/e59292e4 -
PLEASE DO NOT REPLY BY MAIL.]
Michael,
thanks for the response.
One of my coworkers has suggested the following : that the data is not present
in the output decoded message but that the state/value remain assigned in the
dictionary.
I think my confusion comes from my interpretation of the relationship that
exists between the decoded message and the current dictionary.
I think I need my own state for further processing that indicates absent but
assigned.
Cheers,
Declan
> Declan:
>
> For what it's worth, I also get NULL values for sequence elements 7
> and 8 using code unrelated to the CME Java implementation.
>
> In both the 7th and the 8th sequence elements it looks as if the
> exponent was NULL. Which made the entire optional decimal NULL. The
> mantissa therefore never made it to the stream.
>
> Also seems correct that the element 9 mantissa value of -4265 was
> applied as delta to the element 6 mantissa value of 4300.
>
> Some spam follows. Hope this helps,
>
> M
>
>
>
> B: 1128 ApplVerID String 1 false false false Constant [PMap=0]
> [Data= ] String = [8]
> C: 35 MessageType String 1 false false false Constant [PMap=0]
> [Data= ] String = [X]
> D: 49 SenderCompID String 1 false false false Constant [PMap=0]
> [Data= ] String = [CME]
> E: 34 MsgSeqNum UInt32 1 false false false None [PMap=0] [Data=10
> 58 47 f6 ] UInt32 = [35005430]
> F: 52 SendingTime UInt64 1 false false false None [PMap=0]
> [Data=23 55 72 76 3b 4b 21 f5 ] UInt64 = [20081031133712629]
> G: 43 PosDupFlag String 1 true true true Default [PMap=0] [Data= ]
> String = [] (NULL)
> H: 75 TradeDate UInt32 1 false false false None [PMap=0] [Data=09
> 49 53 87 ] UInt32 = [20081031]
> I: 0 MDEntries Sequence 13 false false false None [PMap=0] [Data=
> ] Sequence = [] (N/A)
> J: * 268 NoMDEntries UInt32 1 false false false None [PMap=0] [Data=8b ]
> UInt32 = [11]
> K: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> L: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> M: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b0 ]
> String = [0]
> N: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> O: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=1e 53
> fb ] UInt32 = [502267]
> P: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=03 4c 88
> ] UInt32 = [58888]
> Q: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> R: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> S: * 0 SInt64 1 false false false Delta [PMap=0] [Data=11 fc ]
> SInt64 = [2300]
> T: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=06
> 96 ] SInt32 = [790]
> U: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=3f
> 61 11 80 ] UInt32 = [133712000]
> V: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> W: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=1] [Data=82
> ] UInt32 = [2]
> X: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Y: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b1 ]
> String = [1]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=80 ]
> UInt32 = [502267]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=81 ]
> UInt32 = [58889]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> Z: * 0 SInt64 1 false false false Delta [PMap=0] [Data=03 f4 ]
> SInt64 = [2800]
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=7e
> 81 ] SInt32 = [535]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=0] [Data= ]
> UInt32 = [2]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b0 ]
> String = [0]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=11 4e
> f3 ] UInt32 = [790894]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=59 ca ]
> UInt32 = [53971]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> Z: * 0 SInt64 1 false false false Delta [PMap=0] [Data=03 c2 ]
> SInt64 = [3250]
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=c9
> ] SInt32 = [480]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=0] [Data= ]
> UInt32 = [2]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b1 ]
> String = [1]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=80 ]
> UInt32 = [790894]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=81 ]
> UInt32 = [53972]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> Z: * 0 SInt64 1 false false false Delta [PMap=0] [Data=03 f4 ]
> SInt64 = [3750]
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=01
> d7 ] SInt32 = [695]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=0] [Data= ]
> UInt32 = [2]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b0 ]
> String = [0]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=57 30
> ff ] UInt32 = [125421]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=28 8e ]
> UInt32 = [59106]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> Z: * 0 SInt64 1 false false false Delta [PMap=0] [Data=b2 ]
> SInt64 = [3800]
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=7e
> a9 ] SInt32 = [480]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=0] [Data= ]
> UInt32 = [2]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b1 ]
> String = [1]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=80 ]
> UInt32 = [125421]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=81 ]
> UInt32 = [59107]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> Z: * 0 SInt64 1 false false false Delta [PMap=0] [Data=03 f4 ]
> SInt64 = [4300]
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=01
> a5 ] SInt32 = [645]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=0] [Data= ]
> UInt32 = [2]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b0 ]
> String = [0]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=1] [Data=09 67
> 8b ] UInt32 = [286072]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=1] [Data=05 24 d7
> ] UInt32 = [145722]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=1] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=1] [Data=80 ] SInt32
> = [] (NULL)
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=7a
> fb ] SInt32 = [0]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=1] [Data=80
> ] UInt32 = [0]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b1 ]
> String = [1]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=1] [Data=80 ]
> UInt32 = [286072]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=1] [Data=81 ]
> UInt32 = [145723]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=1] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=1] [Data=80 ] SInt32
> = [] (NULL)
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=80
> ] SInt32 = [0]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=0] [Data= ]
> UInt32 = [0]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b0 ]
> String = [0]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=0f 6b
> ab ] UInt32 = [545571]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=77 30 a4
> ] UInt32 = [4447]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> Z: * 0 SInt64 1 false false false Delta [PMap=0] [Data=5e d7 ]
> SInt64 = [35]
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=03
> f4 ] SInt32 = [500]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=1] [Data=81
> ] UInt32 = [1]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b1 ]
> String = [1]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=0d 2d
> 9d ] UInt32 = [764352]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=01 5e ed
> ] UInt32 = [32972]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> Z: * 0 SInt64 1 false false false Delta [PMap=0] [Data=0a d5 ]
> SInt64 = [1400]
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=99
> ] SInt32 = [525]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=1] [Data=82
> ] UInt32 = [2]
> Z: * 279 MDUpdateAction UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [5]
> Z: * 1023 MDPriceLevel UInt32 1 false false false Constant [PMap=1]
> [Data= ] UInt32 = [1]
> Z: * 269 MDEntryType String 1 false true false Copy [PMap=1] [Data=b0 ]
> String = [0]
> Z: * 22 SecurityIDSource UInt32 1 false false false Constant [PMap=0]
> [Data= ] UInt32 = [8]
> Z: * 48 SecurityID UInt32 1 false false false Delta [PMap=0] [Data=7c 22
> 98 ] UInt32 = [703192]
> Z: * 83 RptSeq UInt32 1 false false false Delta [PMap=0] [Data=38 e6 ]
> UInt32 = [40242]
> Z: * 270 MDEntryPx Decimal 2 true false false None [PMap=0] [Data= ]
> Decimal = [] (NULL)
> Z: * 0 SInt32 1 true true true Default [PMap=0] [Data= ] SInt32 = [0]
> Z: * 0 SInt64 1 false false false Delta [PMap=0] [Data=7e ea ]
> SInt64 = [1250]
> Z: * 271 MDEntrySize SInt32 1 false false false Delta [PMap=0] [Data=02
> f7 ] SInt32 = [900]
> Z: * 273 MDEntryTime UInt32 1 false false false Delta [PMap=0] [Data=80
> ] UInt32 = [133712000]
> Z: * 336 TradingSessionID String 1 false true false Default [PMap=0]
> [Data= ] String = [2]
> Z: * 346 NumberOfOrders UInt32 1 false true false Copy [PMap=0] [Data= ]
> UInt32 = [2]
>
> > Heres a message from the CME:
> >
> > static char anActualCMEMessage[] = { 0xc0, 0xa9, 0x10, 0x58, 0x47,
> > 0xf6, 0x23, 0x55, 0x72, 0x76, 0x3b, 0x4b, 0x21, 0xf5, 0x09, 0x49,
> > 0x53, 0x87, 0x8b, 0xc8, 0xb0, 0x1e, 0x53, 0xfb, 0x03, 0x4c, 0x88,
> > 0x11, 0xfc, 0x06, 0x96, 0x3f, 0x61, 0x11, 0x80, 0x82, 0xc0, 0xb1,
> > 0x80, 0x81, 0x03, 0xf4, 0x7e, 0x81, 0x80, 0xc0, 0xb0, 0x11, 0x4e,
> > 0xf3, 0x59, 0xca, 0x03, 0xc2, 0xc9, 0x80, 0xc0, 0xb1, 0x80, 0x81,
> > 0x03, 0xf4, 0x01, 0xd7, 0x80, 0xc0, 0xb0, 0x57, 0x30, 0xff, 0x28,
> > 0x8e, 0xb2, 0x7e, 0xa9, 0x80, 0xc0, 0xb1, 0x80, 0x81, 0x03, 0xf4,
> > 0x01, 0xa5, 0x80, 0xe8, 0xb0, 0x09, 0x67, 0x8b, 0x05, 0x24, 0xd7,
> > 0x80, 0x7a, 0xfb, 0x80, 0x80, 0xe0, 0xb1, 0x80, 0x81, 0x80, 0x80,
> > 0x80, 0xc8, 0xb0, 0x0f, 0x6b, 0xab, 0x77, 0x30, 0xa4, 0x5e, 0xd7,
> > 0x03, 0xf4, 0x80, 0x81, 0xc8, 0xb1, 0x0d, 0x2d, 0x9d, 0x01, 0x5e,
> > 0xed, 0x0a, 0xd5, 0x99, 0x80, 0x82, 0xc0, 0xb0, 0x7c, 0x22, 0x98,
> > 0x38, 0xe6, 0x7e, 0xea, 0x02, 0xf7, 0x80 };
> >
> >
> > There are 11 Incremental Market Refreshes in here from Template 41.
> >
> > The CME Java decoder outputs the following:
> >
> > [34]="35005430" [35]="X" [49]="CME" [52]="20081031133712629"
> > [75]="20081031" [268]="11"
> > [35]="8" [48]="502267" [83]="58888" [MDEntryType]="0"
> > [MDEntryPx]="2300"
> > [271]="790" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="2" [1023]="1"
> > [36]="8" [48]="502267" [83]="58889" [MDEntryType]="1"
> > [MDEntryPx]="2800"
> > [271]="535" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="2" [1023]="1"
> > [37]="8" [48]="790894" [83]="53971" [MDEntryType]="0"
> > [MDEntryPx]="3250"
> > [271]="480" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="2" [1023]="1"
> > [38]="8" [48]="790894" [83]="53972" [MDEntryType]="1"
> > [MDEntryPx]="3750"
> > [271]="695" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="2" [1023]="1"
> > [39]="8" [48]="125421" [83]="59106" [MDEntryType]="0"
> > [MDEntryPx]="3800"
> > [271]="480" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="2" [1023]="1"
> > [40]="8" [48]="125421" [83]="59107" [MDEntryType]="1"
> > [MDEntryPx]="4300"
> > [271]="645" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="2" [1023]="1"
> > [41]="8" [48]="286072" [83]="145722" [MDEntryType]="0" [271]="0"
> > [273]="133712000" [279]="5" [336]="2" [NumberOfOrders]="0"
> > [1023]="1"
> > [42]="8" [48]="286072" [83]="145723" [MDEntryType]="1" [271]="0"
> > [273]="133712000" [279]="5" [336]="2" [NumberOfOrders]="0"
> > [1023]="1"
> > [43]="8" [48]="545571" [83]="4447" [MDEntryType]="0" [MDEntryPx]="35"
> > [271]="500" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="1" [1023]="1"
> > [44]="8" [48]="764352" [83]="32972" [MDEntryType]="1"
> > [MDEntryPx]="1400"
> > [271]="525" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="2" [1023]="1"
> > [45]="8" [48]="703192" [83]="40242" [MDEntryType]="0"
> > [MDEntryPx]="1250"
> > [271]="900" [273]="133712000" [279]="5" [336]="2"
> > [NumberOfOrders]="2" [1023]="1" [1128]="8"
> >
> > It indicates that the MDEntryPx is absent for updates 7 and 8.
> >
> > Then update 9 uses the prior value from update 6.
> >
> > Heres the template entry for MDEntryPx:
> >
> > <decimal name="MDEntryPx" id="270" presence="optional"> <exponent>
> > <default value="0" /> </exponent> <mantissa> <delta /> </mantissa>
> > </decimal>
> >
> > There are multiple things in here that are confusing to me.
> >
> > 1 - The PMAP Bit for the MDEntryPx fields in updates 7 and 8 are not
> > set. This implies that I use the inital value and that the field is
> > assigned. However I only have an initial value for the exponent not
> > the mantissa.
> >
> > 2 - The CME Java Decoder indicates the MDEntryPx fields are absent for
> > updates 7 and 8 but then uses the prior value from 6 to calculate the
> > new mantissa. The spec says that if the prior State of a Delta Value
> > is empty then it is a dynamic error.
> >
> > 3 - Optional Default Fields indicate that when they are absent the
> > state/value should remain unchanged. This is how I have implemented it
> > and the MDEntryPx for updates 7 and 8 then inherits the prior value
> > from update 6 and stay assigned. Update 9 gets the correct delta value
> > from 7 and 8 and everything looks good.
> >
> >
> > Any thoughts on the correct implementation of this would be greatly
> > appreciated.
> >
> > Cheers,
> >
> > Declan
[You can unsubscribe from this discussion group by sending a message to
mailto:[EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Financial Information eXchange" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/FIX-Protocol?hl=en
-~----------~----~----~----~------~----~------~--~---