Author |
Topic: FAST "MarketDataSnapshotFullRefresh" question (2 messages, Page 1 of 1) |
||||
---|---|---|---|---|---|
Moderators: VPfau | |||||
AVerbitskiy7473 Posts: 2 Joined: Aug 28, 2015 |
My app sent a FAST message "MarketDataRequest" in order to request quotes for symbol "ES":
id=59,MsgType=V,MDReqID=«1», SubscriptionRequestType=1(Snapshot and subscription), MarketDepth=1(Quote or Tick subscription), MDUpdateType=0(Full Refresh), SubscriptionType=null,StartTime=null,EndTime=null, NoMDEntryTypes=2 { MDEntryType=«0»(Bid),MDEntryType=«1»(Offer),MDEntryType=«6»(High Price),MDEntryType=«7»(Low price) }, NoRelatedSym=1 { Symbol=«ES»,MaturityMonthYear=201512,StrikePrice=null,SecurityExchange=«CME»,CFICode=«FXXXXS» } and received respond as "MarketDataSnapshotFullRefresh" message My app decoded this messages. decoded data log listed below. Hex digits sorraunded by () show sbit encoded FAST fields and follow by decoded value, inital or previous value if a pmap bit absant. But this record is not clear: (0xC0)PMap1=0x40 (0xB1)EntryType=1 ()exponent=0 (0x736F91)mantissa=-198767 There is no pmap bit for the exponent nullable field. Do we take default exponent value=0 or ignore whole decimal field with negative mantissa in this case? 14:01:40 (0xE0)PMap=Ox60 (0x82)id=2 (0xB1)MDReqID="1" (0x84)NoMDEntries=4 14:01:40 (0xE0)PMap1=0x60 (0xB0)EntryType=0 (0xFE)exponent=-2 (0xC20C7)mantissa=200775 14:01:40 (0xB6)EntrySize=53 (0x94D75E2)EntryDate=20151009 (0x344227B0)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:40 (0xC0)PMap1=0x40 (0xB1)EntryType=1 ()exponent=0 (0x736F91)mantissa=-198767 14:01:40 (0x99)EntrySize=77 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:40 (0xE0)PMap1=0x60 (0xB7)EntryType=7 (0xFF)exponent=-1 (0x1DB1)mantissa=18097 14:01:40 (0x80)EntrySize=77 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:40 (0xE0)PMap1=0x60 (0xB8)EntryType=8 (0xFE)exponent=-2 (0xA7CBA)mantissa=179770 14:01:40 (0x80)EntrySize=77 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:41 (0x80)PMap=Ox0 ()id=2 ()MDReqID="1" (0x84)NoMDEntries=4 14:01:41 (0xE0)PMap1=0x60 (0xB0)EntryType=0 (0xFE)exponent=-2 (0x784)mantissa=900 14:01:41 (0xEA)EntrySize=182 (0x81)EntryDate=20151009 (0x81)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:41 (0xC0)PMap1=0x40 (0xB1)EntryType=1 ()exponent=0 (0x736F91)mantissa=-198767 14:01:41 (0x97)EntrySize=204 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:41 (0xE0)PMap1=0x60 (0xB7)EntryType=7 (0xFF)exponent=-1 (0x1DB1)mantissa=18097 14:01:41 (0x80)EntrySize=204 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:41 (0xE0)PMap1=0x60 (0xB8)EntryType=8 (0xFE)exponent=-2 (0xA7CBA)mantissa=179770 14:01:41 (0x80)EntrySize=204 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 ... e.s. Is it possible to show a dump of hex sbit encoded FAST fields which OEC server sending to my client on my request? My test login is My app sent a FAST message "MarketDataRequest" in order to request quotes for symbol "ES": id=59,MsgType=V,MDReqID=«1», SubscriptionRequestType=1(Snapshot and subscription), MarketDepth=1(Quote or Tick subscription), MDUpdateType=0(Full Refresh), SubscriptionType=null,StartTime=null,EndTime=null, NoMDEntryTypes=2 { MDEntryType=«0»(Bid),MDEntryType=«1»(Offer),MDEntryType=«6»(High Price),MDEntryType=«7»(Low price) }, NoRelatedSym=1 { Symbol=«ES»,MaturityMonthYear=201512,StrikePrice=null,SecurityExchange=«CME»,CFICode=«FXXXXS» } and received respond as "MarketDataSnapshotFullRefresh" message My app decoded this messages. decoded data log listed below. Hex digits sorraunded by () show sbit encoded FAST fields and follow by decoded value, inital or previous value if a pmap bit absant. But this record is not clear: (0xC0)PMap1=0x40 (0xB1)EntryType=1 ()exponent=0 (0x736F91)mantissa=-198767 There is no pmap bit for the exponent nullable field. Do we take default exponent value=0 or ignore whole decimal field with negative mantissa in this case? 14:01:40 (0xE0)PMap=Ox60 (0x82)id=2 (0xB1)MDReqID="1" (0x84)NoMDEntries=4 14:01:40 (0xE0)PMap1=0x60 (0xB0)EntryType=0 (0xFE)exponent=-2 (0xC20C7)mantissa=200775 14:01:40 (0xB6)EntrySize=53 (0x94D75E2)EntryDate=20151009 (0x344227B0)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:40 (0xC0)PMap1=0x40 (0xB1)EntryType=1 ()exponent=0 (0x736F91)mantissa=-198767 14:01:40 (0x99)EntrySize=77 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:40 (0xE0)PMap1=0x60 (0xB7)EntryType=7 (0xFF)exponent=-1 (0x1DB1)mantissa=18097 14:01:40 (0x80)EntrySize=77 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:40 (0xE0)PMap1=0x60 (0xB8)EntryType=8 (0xFE)exponent=-2 (0xA7CBA)mantissa=179770 14:01:40 (0x80)EntrySize=77 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:41 (0x80)PMap=Ox0 ()id=2 ()MDReqID="1" (0x84)NoMDEntries=4 14:01:41 (0xE0)PMap1=0x60 (0xB0)EntryType=0 (0xFE)exponent=-2 (0x784)mantissa=900 14:01:41 (0xEA)EntrySize=182 (0x81)EntryDate=20151009 (0x81)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:41 (0xC0)PMap1=0x40 (0xB1)EntryType=1 ()exponent=0 (0x736F91)mantissa=-198767 14:01:41 (0x97)EntrySize=204 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:41 (0xE0)PMap1=0x60 (0xB7)EntryType=7 (0xFF)exponent=-1 (0x1DB1)mantissa=18097 14:01:41 (0x80)EntrySize=204 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 14:01:41 (0xE0)PMap1=0x60 (0xB8)EntryType=8 (0xFE)exponent=-2 (0xA7CBA)mantissa=179770 14:01:41 (0x80)EntrySize=204 (0x80)EntryDate=20151009 (0x80)EntryTime=110138287 (0x80)EntryPositionNo=0 ... e.s. Is it possible to show a dump of hex sbit encoded FAST fields which OEC server sending to my client on my request? Alexey Verbitskiy |
||||
AVerbitskiy7473 Posts: 2 Joined: Aug 28, 2015 |
I found my mistake and corrected code. New my app work properly.
My app calculated new price value using formula: new_price=prev_price+price_delta but I must calculate new mantissa first: new_mantissa=prev_mantissa+mantissa_delta and then calculate new price using new mantissa and new e?ponent. Alexey Verbitskiy |
||||