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

Re: evaluating system tests



PureBytes Links

Trading Reference Links

Aaron Schindler wrote:
> While I have the continuous, back-adjusted futures in data1, I have
> the continuous, UN-adjusted futures in data2.  My trade size is
> always 100000/closeD(1) of data2 contracts. This will give you fewer
> contracts when the index level (and margin requirements) were very
> high and more contracts lately. 

This is basically Stridsman's approach, since he recommends 
percent-based stops and (I think) position sizing.

For stops I've always felt that volatility-based approaches made 
more sense than %-based.  Consider that the ND's price range in 
late 2000 was the same as in 9/99 or so, so Stridsman would have 
you use the same stops.  But the average daily range was 3x 
higher!  You definitely couldn't use the same stops in 12/00 that 
you used in 9/99, because the market was moving a lot faster and 
farther.

You can use this same type of volatility approach for position 
sizing, and it doesn't require a second data series.  Just 
calculate the daily ATR of your series like this:

vars:  ATRlen(50), Ndays(0), Factor(0), ATR(0), HH(0), LL(0);
if Date>Date[1] then begin
	NDays = NDays + 1;
	Factor = 2 / (MinList(ATRlen, NDays) + 1);
	ATR = Factor * (HH-LL) + (1-Factor) * ATR;
	HH=0; LL=999999;
end;
HH = MaxList(HH, H);
LL = MinList(LL, L);

This code uses a "rapid spin-up" EMA so it starts producing 
sensible results pretty quickly, even if you use a long ATRlen.  
It will be a bit noisy at the start until it settles.

Then calculate your position size as 
  if ATR <> 0 then cnts = int(1000 / ATR);
or something similar.

I just tried comparing ATR-sizing vs. fixed-position sizing 
(100000 / Close, like Aaron suggested) in one of my systems over 
the last 7 years.  The stats were very similar, with ATR-sizing 
doing slightly better.  The equity curve seemed straighter too.

Gary