[This message was posted by Michael Brock of Applied Algorithms, Inc. <[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/0bdf40d9 - PLEASE DO NOT REPLY BY MAIL.]
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]
B: 35 MessageType String 1 false false false
Constant [PMap=0] [Data= ] String = [X]
B: 49 SenderCompID String 1 false false false
Constant [PMap=0] [Data= ] String = [CME]
B: 34 MsgSeqNum UInt32 1 false false false
None [PMap=0] [Data=10 58 47 f6 ] UInt32 = [35005430]
B: 52 SendingTime UInt64 1 false false false
None [PMap=0] [Data=23 55 72 76 3b 4b 21 f5 ] UInt64 =
[20081031133712629]
B: 43 PosDupFlag String 1 true true true
Default [PMap=0] [Data= ] String = [] (NULL)
B: 75 TradeDate UInt32 1 false false false
None [PMap=0] [Data=09 49 53 87 ] UInt32 = [20081031]
B: 0 MDEntries Sequence 13 false false false
None [PMap=0] [Data= ] Sequence = [] (N/A)
B: * 268 NoMDEntries UInt32 1 false false false
None [PMap=0] [Data=8b ] UInt32 = [11]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b0 ] String = [0]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=1e 53 fb ] UInt32 = [502267]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=03 4c 88 ] UInt32 = [58888]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=11 fc ] SInt64 = [2300]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=06 96 ] SInt32 = [790]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=3f 61 11 80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=1] [Data=82 ] UInt32 = [2]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b1 ] String = [1]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [502267]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=81 ] UInt32 = [58889]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=03 f4 ] SInt64 = [2800]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=7e 81 ] SInt32 = [535]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=0] [Data= ] UInt32 = [2]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b0 ] String = [0]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=11 4e f3 ] UInt32 = [790894]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=59 ca ] UInt32 = [53971]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=03 c2 ] SInt64 = [3250]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=c9 ] SInt32 = [480]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=0] [Data= ] UInt32 = [2]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b1 ] String = [1]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [790894]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=81 ] UInt32 = [53972]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=03 f4 ] SInt64 = [3750]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=01 d7 ] SInt32 = [695]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=0] [Data= ] UInt32 = [2]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b0 ] String = [0]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=57 30 ff ] UInt32 = [125421]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=28 8e ] UInt32 = [59106]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=b2 ] SInt64 = [3800]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=7e a9 ] SInt32 = [480]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=0] [Data= ] UInt32 = [2]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b1 ] String = [1]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [125421]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=81 ] UInt32 = [59107]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=03 f4 ] SInt64 = [4300]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=01 a5 ] SInt32 = [645]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=0] [Data= ] UInt32 = [2]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b0 ] String = [0]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=1] [Data=09 67 8b ] UInt32 = [286072]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=1] [Data=05 24 d7 ] UInt32 = [145722]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=1] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=1] [Data=80 ] SInt32 = [] (NULL)
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=7a fb ] SInt32 = [0]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=1] [Data=80 ] UInt32 = [0]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b1 ] String = [1]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=1] [Data=80 ] UInt32 = [286072]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=1] [Data=81 ] UInt32 = [145723]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=1] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=1] [Data=80 ] SInt32 = [] (NULL)
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=80 ] SInt32 = [0]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=0] [Data= ] UInt32 = [0]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b0 ] String = [0]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=0f 6b ab ] UInt32 = [545571]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=77 30 a4 ] UInt32 = [4447]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=5e d7 ] SInt64 = [35]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=03 f4 ] SInt32 = [500]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=1] [Data=81 ] UInt32 = [1]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b1 ] String = [1]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=0d 2d 9d ] UInt32 = [764352]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=01 5e ed ] UInt32 = [32972]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=0a d5 ] SInt64 = [1400]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=99 ] SInt32 = [525]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 346 NumberOfOrders UInt32 1 false true false
Copy [PMap=1] [Data=82 ] UInt32 = [2]
B: * 279 MDUpdateAction UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [5]
B: * 1023 MDPriceLevel UInt32 1 false false false
Constant [PMap=1] [Data= ] UInt32 = [1]
B: * 269 MDEntryType String 1 false true false
Copy [PMap=1] [Data=b0 ] String = [0]
B: * 22 SecurityIDSource UInt32 1 false false false
Constant [PMap=0] [Data= ] UInt32 = [8]
B: * 48 SecurityID UInt32 1 false false false
Delta [PMap=0] [Data=7c 22 98 ] UInt32 = [703192]
B: * 83 RptSeq UInt32 1 false false false
Delta [PMap=0] [Data=38 e6 ] UInt32 = [40242]
B: * 270 MDEntryPx Decimal 2 true false false
None [PMap=0] [Data= ] Decimal = [] (NULL)
B: * 0 SInt32 1 true true true
Default [PMap=0] [Data= ] SInt32 = [0]
B: * 0 SInt64 1 false false false
Delta [PMap=0] [Data=7e ea ] SInt64 = [1250]
B: * 271 MDEntrySize SInt32 1 false false false
Delta [PMap=0] [Data=02 f7 ] SInt32 = [900]
B: * 273 MDEntryTime UInt32 1 false false false
Delta [PMap=0] [Data=80 ] UInt32 = [133712000]
B: * 336 TradingSessionID String 1 false true false
Default [PMap=0] [Data= ] String = [2]
B: * 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
-~----------~----~----~----~------~----~------~--~---