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

Re: Rainbow chart



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&amp;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 &amp; COMMODITIES magazine. <BR>&copy; 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 &quot;2&quot; for the period 
    and &quot;simple&quot; 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 
    &quot;indicator&quot; for the Price Field. Click OK to accept two periods 
    and &quot;simple&quot; 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 &quot;yes&quot; 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 
    &quot;apply template&quot; 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 &quot;indicator builder&quot; 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(&quot;Rainbow Max&quot;) - Fml(&quot;Rainbow Min&quot;)) /
(HHV(C,10) - LLV(C,10))

Upper Rainbow Band

100 *
(Fml(&quot;Rainbow Max&quot;) - Fml(&quot;Rainbow Min&quot;)) /
(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 &quot;Merge with scale on right.&quot; 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, &quot;Beating buy-and-hold&quot;). 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 &quot;indicator builder&quot; 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(&quot;Rainbow Max&quot;) - Fml(&quot;Rainbow Min&quot;)) / 
<BR>(HHV(C,10) - LLV(C,10)) <BR></P>
<P><B>Rainbow Uptrend Binary Wave</B></P>
<P>Mov(C,2,S) &gt; <BR>Mov(Mov(C,2,S),2,S) AND <BR>Mov(Mov(C,2,S),2,S) &gt; 
<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) 
&gt; <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) &gt; 
<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) &gt; 
<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) &gt; 
<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) &gt; 
<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) 
&gt; 
<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) 
&gt; 
<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>&nbsp; <BR><B>Rainbow Chart System</B></P>
<P>SIGNAL FORMULAS</P>
<P>Enter Long: <BR>Cross( Fml( &quot;Rainbow Uptrend Binary Wave&quot; ),.5) 
<BR>Close Long: <BR>(Fml( &quot;Rainbow Oscillator&quot; ) &lt; 0 AND 
<BR>Sum(ROC(Fml( &quot;Rainbow Oscillator&quot; ),1,$) &lt; 0,2) =2 AND <BR>Fml( 
&quot;Upper Rainbow Band&quot; ) &lt; opt1) OR <BR>200 * (C - Ref(C,-7))/(C + 
Ref(C,-7)) &lt; -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"