Home  Search  Register  Login  Recent Posts

Information on DTN's Industries:
DTN Oil & Gas | DTN Trading | DTN Agriculture | DTN Weather
Follow DTNMarkets on Twitter
DTN.IQ/IQFeed on Twitter
DTN News and Analysis on Twitter
»Forums Index »Archive (2017 and earlier) »IQFeed Developer Support »Decoding Timestamps in Update Messages.
Author Topic: Decoding Timestamps in Update Messages. (11 messages, Page 1 of 1)

Craig
-DTN Guru-
Posts: 326
Joined: Apr 16, 2010


Posted: Sep 20, 2017 05:59 PM          Msg. 1 of 11
I've switched to using the timestamps in the feed as opposed to local timestamps.
But I'm now getting out of order times. My algorithm is as follows...

* If the "Message Contents" contains "C" use the last trade time.
* else if the "Message Contents" contains "b" use the bid time.
* else if the "Message Contents" contains "a" use the ask time.

This seems straight forward, but is obviously incorrect.
Could I receive a "Message Contents" with a "C" where the Bid or Ask time is after the trade time?
...or an "Message Contents" with a "b" but the ask time is greater than the bid time?

How should I use the "Message Contents" in general to figure out what timestamp to assign a quote?

DTN_Tim Walter
-DTN Guru-
Posts: 1238
Joined: Apr 25, 2006


Posted: Sep 21, 2017 11:46 AM          Msg. 2 of 11
Ok, 2 assumptions up front, if either of these is not true, just let me know.
You are using "Last Trade Time" and not "Most Recent Trade Time"
You are only comparing messages of a single symbol.

Assuming both of those things, the logic you are using makes sense to me. Can you just send me an example and I will take a look? If you could include which protocol you are using and what your field order is that would certainly help.

Tim

Craig
-DTN Guru-
Posts: 326
Joined: Apr 16, 2010


Posted: Sep 21, 2017 02:05 PM          Msg. 3 of 11
Hi Tim,

1) I'm using "Last Time"
2) Yep, only one symbol.

Today I've logged the L1 data, so I'll be comparing what I've recorded.
Please let me know if 1) is correct.

Craig
-DTN Guru-
Posts: 326
Joined: Apr 16, 2010


Posted: Sep 21, 2017 03:14 PM          Msg. 4 of 11
OK, here is an example: My field set is Symbol,Last,Bid,Ask,Most Recent Trade Size,Message Contents,Most Recent Trade Market Center,Bid Size,Ask Size,Last Time,Bid Time,Ask Time. The symbol is SPY.

Here is my recorded data:
27 2017-09-21 09:30:00.559 249.9000 249.89 249.90 12100 3000 100 25 FALSE
28 2017-09-21 09:30:00.559 249.9000 249.89 249.90 12100 1000 100 25 FALSE
29 2017-09-21 09:30:00.559 249.9000 249.89 249.91 12100 1100 100 25 FALSE
30 2017-09-21 09:30:00.559 249.9000 249.89 249.90 12100 100 100 25 FALSE
31 2017-09-21 09:30:00.559 249.9000 249.89 249.90 12700 100 100 25 FALSE
32 2017-09-21 09:30:00.559 249.9000 249.89 249.90 13200 100 100 25 FALSE
33 2017-09-21 09:30:00.559 249.9000 249.89 249.90 17100 100 100 25 FALSE
34 2017-09-21 09:30:00.565 249.9000 249.89 249.90 13200 100 100 25 FALSE
35 2017-09-21 09:30:00.565 249.9000 249.89 249.90 13100 100 100 25 FALSE
36 2017-09-21 09:30:00.565 249.9000 249.89 249.90 10500 100 100 25 FALSE

---> Timestamp jumps back.

37 2017-09-21 09:30:00.556 249.8975 249.89 249.90 10500 100 100 19 TRUE
38 2017-09-21 09:30:00.559 249.8800 249.89 249.90 10500 100 500 11 TRUE
39 2017-09-21 09:30:00.559 249.8950 249.89 249.90 10500 100 200 11 TRUE

Now the L1 data from IQFeed.

Q,SPY,249.9000,249.8900,249.9000,100,ba,25,12100,3000,09:30:00.545301,09:30:00.559047,09:30:00.559047,
Q,SPY,249.9000,249.8900,249.9000,100,ba,25,12100,1000,09:30:00.545301,09:30:00.559077,09:30:00.559077,
Q,SPY,249.9000,249.8900,249.9100,100,ba,25,12100,1100,09:30:00.545301,09:30:00.559107,09:30:00.559107,
Q,SPY,249.9000,249.8900,249.9000,100,ba,25,12100,100,09:30:00.545301,09:30:00.559261,09:30:00.559261,
Q,SPY,249.9000,249.8900,249.9000,100,ba,25,12700,100,09:30:00.545301,09:30:00.559797,09:30:00.559797,
Q,SPY,249.9000,249.8900,249.9000,100,ba,25,13200,100,09:30:00.545301,09:30:00.559954,09:30:00.559954,
Q,SPY,249.9000,249.8900,249.9000,100,ba,25,17100,100,09:30:00.545301,09:30:00.560185,09:30:00.560185,
Q,SPY,249.9000,249.8900,249.9000,100,ba,25,13200,100,09:30:00.545301,09:30:00.566021,09:30:00.566021,
Q,SPY,249.9000,249.8900,249.9000,100,ba,25,13100,100,09:30:00.545301,09:30:00.566318,09:30:00.566318,
Q,SPY,249.9000,249.8900,249.9000,100,ba,25,10500,100,09:30:00.545301,09:30:00.566496,09:30:00.566496,
Q,SPY,249.8975,249.8900,249.9000,100,C,19,10500,100,09:30:00.556657,09:30:00.566496,09:30:00.566496,

--> Here is the trade, note trade time 09:30:00.556657 is before the previous Bid/Ask update time (09:30:00.566496)

Q,SPY,249.8975,249.8900,249.9000,8,O,11,10500,100,09:30:00.556657,09:30:00.566496,09:30:00.566496,
Q,SPY,249.8800,249.8900,249.9000,500,C,11,10500,100,09:30:00.559100,09:30:00.566496,09:30:00.566496,
Q,SPY,249.8950,249.8900,249.9000,200,C,11,10500,100,09:30:00.560176,09:30:00.566496,09:30:00.566496,

Please advise.

Craig
-DTN Guru-
Posts: 326
Joined: Apr 16, 2010


Posted: Sep 22, 2017 01:45 PM          Msg. 5 of 11
Any updates here?

DTN_Steve_S
-DTN Guru-
Posts: 2096
Joined: Nov 21, 2005


Posted: Sep 22, 2017 02:18 PM          Msg. 6 of 11
Craig, sorry for the delay in responding.

What you are showing here is expected behavior. The bid/ask quotes for these equities come from the exchange on a different feed and we merge them in-house before forwarding them to customers. Any effort to assure they are in chronological order would result in intentionally delaying at least one of the feeds while waiting for data from the other feed. Instead, we opt for the option that gets data to customers as quickly as possible. As a result, you will occasionally see discrepancies between trades timestamps and bid/ask timestamps in this scenario.

Craig
-DTN Guru-
Posts: 326
Joined: Apr 16, 2010


Posted: Sep 22, 2017 02:37 PM          Msg. 7 of 11
Thank you Steve, when you say 'different feed', do you mean different exchanges?
If this is the case should the time-stamps be chronological by market center?

bards
-Interested User-
Posts: 32
Joined: May 7, 2011


Posted: Oct 7, 2017 10:51 AM          Msg. 8 of 11
This is a followup on Craig's comment about using time as follows

* If the "Message Contents" contains "C" use the last trade time.
* else if the "Message Contents" contains "b" use the bid time.
* else if the "Message Contents" contains "a" use the ask time.

For some options that are not highly traded, ask time has a value, but
bid time has 99:99:99

I have included a snippet below of an option. This was traded 10/5/2017.

Symbol,Last,Total Volume,Ask,Ask Size,Ask Market Center,Ask Time,Bid,Bid Size,Bid Market Center,Bid Time,Message Contents,Most Recent Trade Size,Most Recent Trade Market Center,Last Time

XRX1720J35 0.11 0 0.07 58 108 10:01:01.990488 99:99:99.990488 ba 2.0 13.0 10:15:24.512977
XRX1720J35 0.11 0 0.07 70 108 10:01:01.991206 99:99:99.991206 ba 2.0 13.0 10:15:24.512977
XRX1720J35 0.11 0 0.07 83 12 10:01:10.236872 99:99:99.236872 ba 2.0 13.0 10:15:24.512977
XRX1720J35 0.11 0 0.07 96 9 10:01:11.115193 99:99:99.115193 ba 2.0 13.0 10:15:24.512977
XRX1720J35 0.11 0 0.07 96 9 10:01:39.732290 0.01 15 18 10:01:39.732290 ba 2.0 13.0 10:15:24.512977

In this scenario, should the time not be that of Ask Time?

DTN_Tim Walter
-DTN Guru-
Posts: 1238
Joined: Apr 25, 2006


Posted: Oct 9, 2017 09:29 AM          Msg. 9 of 11
Any bid or ask update received with a 99:99:99 timestamp is the exchange saying there is no valid value currently.

Bid and ask are always sent as pairs though so you can get several invalid updates on the bid while the ask size continues to update as it does here in your example.

Tim

bards
-Interested User-
Posts: 32
Joined: May 7, 2011


Posted: Oct 10, 2017 11:06 AM          Msg. 10 of 11
Thanks Tim.

So, just to double-check, it is fine to use Ask Time in my example.

DTN_Tim Walter
-DTN Guru-
Posts: 1238
Joined: Apr 25, 2006


Posted: Oct 10, 2017 11:07 AM          Msg. 11 of 11
Correct
 

 

Time: Sat December 7, 2024 4:51 PM CFBB v1.2.0 8 ms.
© AderSoftware 2002-2003