PureBytes Links
Trading Reference Links
|
I would appreciate it if someone could confirm and/ or correct the attached
code I created for Cynthia Kase's Dev-stop. I attempted to follow the
steps enumerated in Perry Kaufman's book "Trading Systems and Methods" (page
604), which are reproduced below: When I plot the values on a chart for
IBM, for example, there are places where the first DEV-STOPS are above the
price series in the chart. (Oct, 1999 - Jan, 2000). The scaling I used for
ploting in the indicator on the chart was "Screen."
I would appreciate any advice, and perhaps the finished product can be of
use to others on the list.
The word-for-word steps according to Perry Kaufman are:
1- Calculate the true range (TR) of the past 2 trading days using the
highest high and the lowest low of the 2-day period.
2- Calculate the moving average ATR of TR (in step 1), using 30 periods for
intraday charts and 20 periods for daily charts.
3- Calculate the standard deviation of the true ranges in step 1 using the
same period as in step 2.
4- The stop-loss values are DDEV = ATR + (f * SDEV), where f=1, 2.06 to
2.25, and 3.20 to 3.50, and where the larger values of the pairs correct for
skew and the larger numbers allow for larger risk.
5- The dev-stop for long positions is Trade High - DDEV; the dev-stop for
short positions is Trade Low + DDEV.
Shown below is the EL code I created. I'm sure it could have been much
shorter, but making it go step by step helps me in these days of failing
memory.
============================================================================
============================
{Kase's Standard Deviation Stop, called DEV-STOP. Coding based on
description in Perry Kaufman's book "Trading Systems and Methods" -- pg
604}
Inputs: fVal_1(1), fVal_2(2.1){values between 2.06 - 2.25},
fVal_3(3.35){values between 3.20-3.50};
Variables: HiVal(0), LoVal(0), TruerangeVal(0) , AvgTrueRan(0), StandDev(0),
DDev1(0), DDev2(0), DDev3(3), DevStop1(0),
DevStop2(0), DevStop3(0), DevStop4(0), DevStop5(0),
DevStop6(0);
HiVal = highest(high,2); {calculate
highest high of past 2 trading days}
LoVal = lowest(low,2); {calculate
lowest low of past 2 trading days}
TruerangeVal = hival - loval; {calculate
true range of past 2 trading days}
AvgTrueRan = Average(TruerangeVal, 20); {calculate moving average
ATR of True range using 20 periods}
StandDev = StdDev(TruerangeVal, 20); {Calculate std dev of
true ranges using 20 periods}
DDev1 = AvgTrueRan + (fVal_1 * StandDev);
DDev2 = AvgTrueRan + (fVal_2 * StandDev);
DDev3 = AvgTrueRan + (fVal_3 * StandDev);
DevStop1 = high - DDev1; {Stop #1 for Long positions}
DevStop2 = high - DDev2; {Stop #2 for Long positions}
DevStop3 = high - DDev3; {Stop #3for Long positions}
DevStop4 = low + DDev1; {Stop #1 for SHORT positions}
DevStop5 = low + DDev2; {Stop #2 for SHORT positions}
DevStop6 = low + DDev3; {Stop #3 for SHORT positions}
Plot1(DevStop1," Dev-Stop-1");
Plot2(DevStop2," Dev-Stop-2");
Plot3(DevStop3," Dev-Stop-3");.
============================================================================
====================
Thank you for any help.
Barry
|