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

Reply via email to