[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bad ticks



PureBytes Links

Trading Reference Links

Re: Bad ticks caused by Incorrect Orders

David,

thanks for your valuable feedback, my system is fully mechanical 
by passing Buy/Sell signals generated by TS5 directly to PATS.
.It also compares eSignal and PATS prices on tick-by-tick basis.

You have brought another topic to my attention: aberration in prices
can also be caused by placing "bad" orders. Let's talk about
"bad" limit orders.

Let's assume that ES is going up and is hitting a point of resistance
at price P1. The system is predicting with a very high accuracy
a retracement to a lower level at P2 = P1 - Delta points and then
advance to levels above P1.

A correct action for the system is to issue order: 

BUY @ P2 Limit, order is placed bellow the current market price.

Let's assume a  "bug" in EL code causing the following
"bad" order to be sent to PATS for order execution:

BUY @ P3 Limit, where P3 = P1 + Delta points, i.e.
instead - sign, a + sign is used in Buy formula.

This bad order is placed above the market, and I am
expecting  that PATS will snatch it right away and
execute it within 2 sec. 

Other market participants will see a spike in prices
above current market equal to Delta. They will interpret
it as a "bad" tick. Only I will know it was a bug in my
EL code.

You  have mentioned bad ticks caused by a poorly placed
stop orders. My guess is that both stop and limit
orders incorrcetly placed can cause bad ticks.

DC
 
----- Original Message ----- 
From: "david b. stanley" <davestan@xxxxxxxxxx>
To: <omega-list@xxxxxxxxxx>
Sent: Friday, May 31, 2002 6:15 PM
Subject: Re: Bad ticks


You didn't mention if your system was mechanical or descetionary.
Since you are trading index futures, a bad tick is usually
off by 100.00 or more. Anything less is often an FOMC announcement,
an opening gap, or a real poorly placed stop on the minis.

If you are charting anything other than 1-tick charts, the H or L of the bar
should be the bad tick.
Define bad ticks.

vars:BadTick(0);

if (absvalue(H-H[1])>=100
or absvalue(L-L[1])>=100
then BadTick=1 else BadTick=0;

Then nest the code that you do not want to execute on a bad tick.....

if BadTick=0 then begin
   ...your code
end;

In some cases, you may want to create synthetic values for indicator varibles
when bad ticks occur.