Herman,

I also use DTN IQFeed, however, I am only watching @ES# on a constant basis.  I 
gave up on stocks, because of the poor realtime data quality.  I did not know 
how to automate the process with all that random noise.  I went to the highest 
volume futures because the feed was clean and fast.  When I test a strategy, it 
trades the same way.  However, I still manually input my trades and watch the 
order book and charts.  I have seen nothing fishy.

A 5 minute delay is not tradable.  The best you can do is detect the anomalies 
and abort the strategy during bad delays. 

BR,
Dennis

On Jun 25, 2010, at 9:41 PM, Herman wrote:

> 
> 
> Thank you Dennis!
> 
> Yes,i realize that there is an order queue you can't jump.
> 
> In addition to your observation there is the fact that your orders may 
> actually may change the market, draw the price one way or the other. That 
> effect is impossible to Backtest. The only real test is to trade real money.
> 
> I can live with all that, but FIVE MINUTES delay from market to my computer? 
> I expected 15 seconds under heavy load... Five minutes seems really strange 
> and changes everything.
> 
> Can you think about an explanation for that?
> 
> herman
> 
> 
> 
> 
> 
> Herman,
> 
> I assume that you are aware that you will not get a limit fill just because 
> it touches your price.  You have to stand in line behind all the other limit 
> orders and will also be superseded by any market orders before you turn comes.
> 
> It is only if the backtest shows exceeding the limit order by a tick that you 
> know for sure that you would have been filled.
> 
> The other issue, is that there is about a 2 second delay from the time your 
> program sees the data until an order could be placed in reality.  A really 
> good high speed trading backtest needs to be done at the tick level, and the 
> backtest has to assume a 2 second delay in placing the order at the exchange. 
>  Add any AB/AFL processing delay to that number also.  
> 
> Timestamps on data from the exchanges are not when the trade occurred, but 
> when it is transmitted from the buffer to the internet.  When things get 
> really busy, they can delay sending out the data, but you can't know what the 
> real delays were.  
> 
> Most high speed trading computer systems sit right on the exchange floor to 
> eliminate these communication delays.  A fast trading algorithm located 
> across the internet must take into consideration the timestamps of the data 
> relative to current time.  Add to that the uncertainty that the timestamps do 
> not even reflect the execution time, and you can see how this limits the 
> practical trading speed of the system.
> 
> In my trading, I use limit orders, but realize that I have to place them in 
> advance to get a fill.  I look at the order book when I place the order.  If 
> there are a lot of orders ahead of me at a certain price, I may change my 
> price by a tick to increase my odds of a fill.  When I see the volume of 
> contracts filled start to approach the number when I placed my order, I know 
> I am about to get filled.
> 
> Not an easy thing to backtest.
> 
> BR,
> Dennis
> 
> On Jun 25, 2010, at 4:22 PM, Herman wrote:
> 
> 
> 
> If anyone is trading real-time it might help you to know your data latency; 
> it might explain why you don't get your LMT fills :-) 
> 
> I invite you to post possible explanations for the delays I experience, or 
> the code I wrote. Remember to adjust the code if you live in a different 
> timezone (subtract hours).
> 
> I am using IQFeed RT data. My time-zone is EST (UTC 5:00), my computer clock 
> is synchronized, I run AB at a 32% load factor, I ping DTN at about 134 
> milliseconds.
> My Internet tested slow today, at about 1Mb/sec, but can that explain a 5 
> minute delay at peak hours? I tested the system with 100 and 1800 tickers, no 
> difference. 
> 
> The data delay ranges from  < 1 sec to several minutes. The worst time 
> appears to be around 3:45PM, i.e., 15 minutes before the market closes. See 
> captures of my real-time scan at that time below. The results at about 3:45 
> PM market time are scary! At better times it is usually 1-3 seconds. 
> 
> I'd like to know what your data latency is. Below is some test code that you 
> can rework into a loop for your own system.
> 
> Data latency at 3:45 PM:
>  <int_1.jpg> <int_2.jpg>
> 
> function TimeNumToSeconds( TN )
> {
>     Seconds         = int( TN % 100 );
>     Minutes         = int( TN / 100 % 100 );
>     Hours                 = int( TN / 10000 % 100 );
>     SecondNum = int( Hours * 3600 + Minutes * 60 + Seconds );
>     return SecondNum;
> }
> 
> RequestTimedRefresh( 1 );
> Now4 = Now( 4 );
> UpdateTime                = StrToNum( "" + GetRTData( "UpdateTime" ) );
> UpdateSeconds = TimeNumtoseconds( UpdateTime );
> Now4Seconds        = TimeNumToSeconds( Now4 );
> 
> if ( UpdateSeconds >= 0 ) Latency = Now4Seconds - UpdateSeconds;
> else Latency = Null;
> 
> if ( Latency >= 0 ) LatencyStr = NumToStr( Latency, 1.0, False );
> else LatencyStr = "-";
> 
> Title = "Data latency: " + LatencyStr + " Sec."; 
> 
> <int_1.jpg><int_2.jpg>
> 
> 
> 
> 
> 

Reply via email to