PureBytes Links
Trading Reference Links
|
<x-html><!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
<HTML>
<HEAD>
<META content=text/html;charset=iso-8859-1 http-equiv=Content-Type><TITLE>Widner Abstract 9707</TITLE><BASE
href=file://D:\Equis\Z-Diversen\faq-MetaStock\TASC\S&c1997\><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<META content='"MSHTML 4.72.2106.11"' name=GENERATOR>
</HEAD>
<BODY bgColor=#ffffff>
<H1 align=center>Rainbow Charts </H1>
<CENTER>
<P>
<HR>
<B><I>by Mel Widner, Ph.D.</I></B><BR>
<HR>
<P></P></CENTER>
<BLOCKQUOTE>
<P><I><FONT size=+1>Here's a way that traders can use color for a visual cue
about changes in trends.<BR><BR>
<HR>
</FONT></I><FONT size=+2>R</FONT>epeated smoothing of data gives a spectrum
of trends that, when plotted in color, have the appearance of a rainbow.
Observe them all, pick your time frame, and act accordingly. The rainbow
oscillator, a trend-following oscillator, is derived from a consensus of the
trends. <BR><BR>Is there a pot of gold at the end of the rainbow? A fanciful
and rhetorical question, but one that may in the final analysis have some
truth. One approach to finding gold is momentum tracking and
trend-following. Trend-following is a common, if not the most common, timing
method used by traders and investors. In a perfect world, with smooth,
continuous data, it would be easy to determine the direction of the price
movement, open a position, hold it until the conditions change and then
close the position. The underlying premise is that prices have momentum and
inertia and will continue in the same direction until something occurs
fundamentally to change that.<BR><BR><BR><B>RECURSIVE
SMOOTHING<BR></B>Smoothing doesn't get much simpler than averaging two data
points. For a time series of data, an average of each pair of points is
about the most smoothing you can get with the least complexity. The smoother
curve is a reference for the original time series and, to some degree, is a
better representation of the prevailing conditions than the original data.
But why stop there?<BR><BR>Average the average values again, two by two, and
obtain an even smoother curve. Repeat this process over and over, averaging
the previous average. Applying the same formula repeatedly is a recursive
process, and the formula a recursion relation. The smoothing approach here
is called recursive smoothing. Each smoother curve is a reference and filter
for the less smooth curve. This process can be carried on ad infinitum,
although generally there is a practical limitation or diminishing return.
<BR><BR>A graphical display of the two-point averaging and smoothing is
shown in Figure 1. For a data series with typical variability, the two-point
average is simply the midpoint between each of the data points. This process
can be accomplished graphically, by hand, if desired. Connecting these
averaged points with a line produces a smoother curve than the original
data. In practice, the averaged values are not assigned to the midpoint of
each period but to the later time to the right for each period. This results
in the average lagging the data by half the period for a two-point
average.<BR>
<P></P>
<CENTER>
<P><IMG align=bottom height=264
src="cid:005701bdecca$ef4ea6e0$ea5779c3@xxxxx" width=360 NATURALSIZEFLAG =
3> </P></CENTER>
<BLOCKQUOTE>
<CENTER>
<P><B>Figure 1: Two-Point Smoothing. </B><I>The smoothed values are
located at the midpoint of a line connecting each pair of data points.
</I></P></CENTER></BLOCKQUOTE>
<P><BR></P>
<CENTER>
<P>
<HR width=48%>
<P></P></CENTER></BLOCKQUOTE>
<BLOCKQUOTE>
<BLOCKQUOTE>
<BLOCKQUOTE>
<BLOCKQUOTE>
<BLOCKQUOTE>
<H2>Identification requires separating meaningful signals
from noise. Was the latest change a blip or the start of a
trend? The answer often depends on a trader's frame of
reference.</H2></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
<BLOCKQUOTE>
<BLOCKQUOTE>
<H2 align=center>
<HR width=47%>
</H2></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
<H2 align=center><IMG align=bottom height=264
src="cid:005901bdecca$ef4ea6e0$ea5779c3@xxxxx" width=360 NATURALSIZEFLAG = 3>
</H2>
<BLOCKQUOTE>
<BLOCKQUOTE>
<CENTER>
<P><B>Figure 2: Rainbow Chart.</B> <I>Recursive smoothing is
successively applied to OEX data and each smoothed curve
plotted.</I><BR></P></CENTER></BLOCKQUOTE>
<P>The color plots are contiguous and appear as a continuous spectral color
change. Figure 2 shows an example of this. Here, daily OEX closing data and
the progressive averages are plotted. When the trend is up, the current data
is at the top (red) and the most smoothed curve is at the bottom (violet).
When the trend is down, the order is reversed. When the data crosses the
rainbow and continues on up or down, the averages follow and cross in
sequence. Moves away from the rainbow are seen as expansion and lead to
greater rainbow width, while moves into the rainbow are a contraction or
potential reverse. If the change is not large, then an attempted crossing
may fail. The depth of the penetration into the rainbow can measure the
strength of the move.</P></BLOCKQUOTE>
<P>
<HR>
<I>Mel Widner holds a doctorate in engineering and is the developer of
projection bands and the price mobility analysis method. He is located in the
Washington, DC, area and can be reached by phone or fax at 703 791-5910.</I>
<P></P>
<H5><I>Excerpted from an article originally published in the July 1997 issue of
Technical Analysis of STOCKS & COMMODITIES magazine. <BR>© Copyright
1997, Technical Analysis, Inc. All rights reserved. </I><A
href="http://www.traders.com">http://www.traders.com</A></H5>
<CENTER>
<P align=left>
<DIV align=left>
<HR>
<H4>METASTOCK
<BLOCKQUOTE>
<P>To create rainbow charts in MetaStock for Windows, open any chart, drag
the moving average indicator from the Indicator QuickList, and drop it in
the same inner windows as the price bars. Enter "2" for the period
and "simple" for the method. Next, plot a second moving average
over the first moving average by dragging a moving average from the
QuickList and dropping it onto the first moving average (the first moving
average should turn light purple before you release the mouse button). If
you dropped it correctly, the Parameters dialog should read
"indicator" for the Price Field. Click OK to accept two periods
and "simple" as the parameters. <BR><BR>Next, change the color of
this moving average as desired. Now plot a third moving average of the
second moving average by repeating these steps. Continue this until you have
10 moving averages. Choose "yes" if MetaStock prompts you about
plotting a duplicate indicator.<BR><BR>To save time, I created a template
that allows you to bypass these steps. You can download this template from
the Equis Web site at <A
href="http://www.equis.com/customer/files/files.html">http://www.equis.com/customer/files/files.html</A>
. Download this file to the Charts folder (for example,
C:\Equis\Mswin\Charts) in your MetaStock folder. Open any chart and then
click your right mouse button while the pointer is on the chart. Choose
"apply template" from the Chart Shortcut and choose the Rainbow
Chart template. You should now have a chart with 10 differently colored
moving averages.<BR><BR>Next, choose "indicator builder" from the
Tools menu and enter the following formulas:<BR><BR></P></BLOCKQUOTE>
<BLOCKQUOTE><PRE>Rainbow Max
Max(Mov(C,2,S),
Max(Mov(Mov(C,2,S),2,S),
Max(Mov(Mov(Mov(C,2,S),2,S),2,S),
Max(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),
Max(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),
Max(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),
Max(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),
Max(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),
Max(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),
2,S),2,S),2,S),
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),
2,S),2,S))))))))))
Rainbow Min
Min(Mov(C,2,S),
Min(Mov(Mov(C,2,S),2,S),
Min(Mov(Mov(Mov(C,2,S),2,S),2,S),
Min(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),
Min(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),
Min(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),
Min(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),
Min(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),
Min(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S))))))))))
Rainbow Oscillator
100 *
(CLOSE - ((Mov(C,2,S) +
Mov(Mov(C,2,S),2,S) +
Mov(Mov(Mov(C,2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S)) / 10)) /
(HHV(C,10) - LLV(C,10))
Lower Rainbow Band
-100 *
(Fml("Rainbow Max") - Fml("Rainbow Min")) /
(HHV(C,10) - LLV(C,10))
Upper Rainbow Band
100 *
(Fml("Rainbow Max") - Fml("Rainbow Min")) /
(HHV(C,10) - LLV(C,10))</PRE>
<P><BR><BR>Plot the rainbow oscillator in a new inner window of your chart
with the 10 moving averages by dropping the custom indicator from the
QuickList onto the chart's heading. Right-click on the rainbow oscillator
and choose properties, then change the style to a histogram. Now plot the
lower rainbow band and the upper rainbow band in the same inner window as
the rainbow oscillator. If the scaling dialog appears when plotting these
indicators, choose "Merge with scale on right." Change the colors
of the upper and lower rainbow bands as desired. Save this as a new template
by choosing Save As from the File menu and changing the File Type to
template so you can apply it to any chart.<BR><BR></P>
<BLOCKQUOTE>
<P><I>-- Allan J. McNichol, EQUIS International<BR>800 882-3040, 801
265-8886<BR>Internet: <A
href="http://www.equis.com">http://www.equis.com</A></I></P></BLOCKQUOTE></BLOCKQUOTE></H4>
<H4>
<HR>
</H4>
<H4>METASTOCK</H4>
<P>Last month, the MetaStock Traders' Tip covered creating a template and
formulas to reproduce rainbow charts, which were introduced by Mel Widner in the
same issue. This month I'll show how to create a system test, which will allow
you to test the exit strategy Widner gave toward the end of the article (under
the subheading, "Beating buy-and-hold"). For this test, I've chosen to
enter a long position when all rainbow averages are in an uptrend sequence. The
exit rule used here adheres to Widner's instructions in the article.</P>
<P>To perform this test, first enter the following three custom indicators by
choosing "indicator builder" from the Tools menu. (<I>Note: </I>The
first two formulas are repeated from last month's Traders' Tips, so if you've
already entered them, you'll only have to enter the third formula.) <BR></P>
<P><B>Rainbow Oscillator</B></P>
<P>100 * <BR>(CLOSE - ((Mov(C,2,S) + <BR>Mov(Mov(C,2,S),2,S) +
<BR>Mov(Mov(Mov(C,2,S),2,S),2,S) + <BR>Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S) +
<BR>Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S) +
<BR>Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S) +
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2, S) +
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S) +
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S)
+
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S))
/ <BR>10)) / (HHV(C,10) - LLV(C,10)) <BR></P>
<P><B>Upper Rainbow Band</B></P>
<P>100 * <BR>(Fml("Rainbow Max") - Fml("Rainbow Min")) /
<BR>(HHV(C,10) - LLV(C,10)) <BR></P>
<P><B>Rainbow Uptrend Binary Wave</B></P>
<P>Mov(C,2,S) > <BR>Mov(Mov(C,2,S),2,S) AND <BR>Mov(Mov(C,2,S),2,S) >
<BR>Mov(Mov(Mov(C,2,S),2,S),2,S) AND <!-- Generation of PM publication page 4 --> <BR>Mov(Mov(Mov(C,2,S),2,S),2,S)
> <BR>Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S) AND
<BR>Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S) >
<BR>Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S) AND
<BR>Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S) >
<BR>Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S) AND
<BR>Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S) >
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S) AND
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S) >
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S)
AND
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S)
>
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,
S),2,S) AND
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S)
>
<BR>Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S)
<BR></P>
<P>Next, enter the following system by choosing System Tester from the Tools
menu. I've created an optimization variable for the <I>Ubro</I> constant so you
can find the results that work best for you, but you can also replace the
<I>opt1</I> with 38 as mentioned in Widner's article.</P>
<P> <BR><B>Rainbow Chart System</B></P>
<P>SIGNAL FORMULAS</P>
<P>Enter Long: <BR>Cross( Fml( "Rainbow Uptrend Binary Wave" ),.5)
<BR>Close Long: <BR>(Fml( "Rainbow Oscillator" ) < 0 AND
<BR>Sum(ROC(Fml( "Rainbow Oscillator" ),1,$) < 0,2) =2 AND <BR>Fml(
"Upper Rainbow Band" ) < opt1) OR <BR>200 * (C - Ref(C,-7))/(C +
Ref(C,-7)) < -7 <BR></P>
<P>OPTIMIZATION VARIABLES <BR>OPT1: Ubro <BR>Min = 30.00 Max = 60.00 Step = 1.00
<BR></P>
<ADDRESS>Allan J. McNichol, Equis International</ADDRESS>
<ADDRESS>800 882-3040, 801 265-8886</ADDRESS>
<ADDRESS>Internet: <A
href="http://www.equis.com">http://www.equis.com</A></ADDRESS></DIV></CENTER></BODY></HTML>
</x-html>
Attachment Converted: "c:\eudora\attach\Re Rainbow chart.gif"
Attachment Converted: "c:\eudora\attach\Re Rainbow chart1.gif"
|