MetaStock Custom Formula Collection
If you can't find the custom formula you need here, or elsewhere, Equis International can create formulas for a
fee. If you would like more information on this service, click here.
Many of these formulas have been features in Technical Analysis of Stocks & Commodities. If you would like to
purchase a particular issue click here.
Absolute Breadth Index {$%*} rev. 01/06/97
Advance / Decline Line with Negative Volume {%*} rev. 01/06/97
Adaptive Moving Average, by Perry Kauffman {#} rev. 01/14/98
Arms Index (TRIN) {$%*} rev. 01/06/97
Aroon Indicators, by Tushar Chande {$%*} rev. 01/06/97
"Average-Modified Method", by Perry Kauffman {#} rev. 10/27/97
Bollinger Bands {$%*} rev. 01/06/97
Breadth Thrust {$%*} rev. 01/06/97
CCI Moving Average Crossover System Test {$%*} rev. 01/06/97
Chande's Momentum Oscillator {$%*} rev. 01/06/97
Combining Trend and Oscillator Signals" System Test {*} rev. 01/06/97
Commodity Channel Index Buy & Sell Signals {$%*} rev. 01/06/97
Comparative Relative Strength in MetaStock for Windows {%*} rev. 01/06/97
Comparative Relative Strength in MetaStock for DOS 4.x {$} rev. 01/06/97
Comparative Relative Strength Exploration {%*} rev. 01/06/97
Coppock Curve {$%*} rev. 01/06/97
Derivative Moving Average {$%*} rev. 01/21/97
Detrended Price Oscillator {$%*} rev. 01/06/97
Disparity Index {$%*} rev. 01/06/97
Displaying the Price of a Security in 32nds and 64ths {$%*} rev. 01/06/97
Divergence between the Close and an Indicator {%*} rev. 03/18/97
Dynamic Momentum Oscillator {$%*} rev. 01/06/97
Elder Ray and The Force Index in MetaStock for Windows {%*} rev. 01/06/97
Elder Ray and Force Index in MetaStock for DOS {$} rev. 01/06/97
End Point Moving Average {$%*} rev. 01/06/97
End Points of a Linear Regression Line with Standard Deviations {%*} rev. 01/06/97
Genesis of a Simple Futures Trading system {%*} rev. 04/04/97
Historical Volatility System, Connors and Raschke's {$%*} rev. 02/24/97
Historical Volatility Daily {%*} rev. 01/21/97
Historical Volatility Weekly {%*} rev. 01/21/97
Investors Preference Indicator {#} rev. 01/13/98
Insync Index {$%*} rev. 01/06/97
Keltner Channels {$%*} rev. 01/06/97
Ken Roberts' Formulas {%*} rev. 06/18/97
KST Formulas, Martin Pring's {$%*} rev. 01/06/97
Kurtosis Indicator {$%*} rev. 01/06/97
MACD Histogram {$%*} rev. 01/09/98
Market Facilitation Index {$%*} rev. 01/06/97
Market Facilitation Index Expert Advisor {*} rev. 02/24/97
Market Thrust Oscillator {$%*} rev. 01/06/97
Mass Index {$%*} rev. 01/06/97
McClellan Oscillator {$%*} rev. 01/06/97
McClellan Summation Index {$%*} rev. 01/06/97
Modified VIX Indicator {$%*} rev. 01/06/97
Money Flow Index {$%*} rev. 01/06/97
Moving Average of Only One Day of a the Week {%*} rev. 01/06/97
Natenberg's Volatility {$%*} rev. 01/21/97
Pathfinder Trading System {%*} rev. 02/21/97
Plotting Alpha and Beta {$%*} rev. 01/06/97
Polarized Fractal Efficiency {%*} rev. 03/20/97
Price Action Indicator (PAIN) {%*} rev. 07/31/97
Price Volume Rank {$%*} rev. 01/06/97
Random Walk Index {$%*} rev. 01/06/97
Rate of Change Since a Specific Date {%*} rev. 01/06/97
Regression Oscillator and the Slope/Close Indicator {%*} rev. 02/25/97
Relative Volatility Index (RVI) {*} rev. 01/06/97
R squared , Chande & Kroll's {$%*} rev. 01/06/97
Slope of a Line {$%*} rev. 01/06/97
Slope of a Linear Regression Line {#} rev. 10/05/98
Standard Error Bands for MetaStock for DOS {$} rev. 01/06/97
Standard Error Bands for MetaStock for Windows {%*} rev. 01/06/97
STIX Oscillator {%*} rev. 01/06/97
Stochastic %D {$%*} rev. 01/06/97
Stochastic Relative Strength Index {$%*} rev. 01/06/97
The New Advance Decline Line {$%*} rev. 01/06/97
Tick Line Momentum Oscillator {$%*} rev. 01/06/97
Trading Channel Index {$%*} rev. 01/06/97
Ultimate Oscillator {$%*} rev. 04/29/97
Up Trend / Down Trend Signals {%*} rev. 01/06/97
Wilder's Volatility {*} rev. 01/06/97
WillSpread by Larry Williams {#} rev.01/13/98
What are the explorations Equis uses to determine the listed Hot Picks on the Equis Web site each week? rev.
01/06/97
1996 August TASC Trader's Tips - Connors and Raschke's Historical Volatility System {$%*#}
1996 October TASC Trader's Tip - Freeburg Precious Metal Switch Fund system {$%*#}
1996 December TASC Trader's Tip - 2/20-Day EMA Breakout System {%*#}
1997 May TASC Trader's Tip -"Genesis of a Simple Futures Trading" {%*#}
1997 July TASC Trader's Tip - "Rainbow Charts" {%*}
1997 October TASC Trader's Tip - "Volatility Bands As A Long Term Strategy" {$%*#}
1997 November TASC Trader's Tip - Using Fibonacci Ratios and Momentum {%*#}
1997 December TASC Trader's Tip - Volatility % Indicator {%*#}
1998 January TASC - Breaking out of Price Channels - VIDYA Article {#}
1998 January TASC - Smoothing Techniques for more Accurate Signals {#}
1998 February TASC - Anchored Momentum {$%*#}
1998 February TASC - Double Tops and Double Bottoms{#}
1998 March TASC Trader's Tip - Adaptive Moving Average {#}
1998 May TASC Trader's Tip - Automatic Support and Resistance {%*#}
1998 June TASC Traders' Tip - Mutated Variables, Volatility and a New Market Paradigm {*#}
1998 July TASC Traders' Tip - Channel Analysis {#}
1998 July TASC Traders' Tip - A Volatility Trade in Gold {#}
1998 August TASC Traders' Tip - From Terms to Technical Tools {#}
1998 September TASC Trader's Tip - Simple Moving Average with Resistance and Support {#}
1998 October TASC Trader's Tip - "Combining Statistical and Pattern Analysis", Shark - 32 {#}
Click here for questions about creating System Tests.
MetaStock Formula Version Legend:
$
Formula written for MetaStock 4.x for DOS
%
Formula written for MetaStock 5.x for Windows
*
Formula written for MetaStock 6.0 for Windows 95 and NT
#
Formula written for MetaStock 6.5 for Windows 95 and NT
Absolute Breadth Index
rev. 01/06/97
The Absolute Breadth Index (ABI) is a market momentum indicator that was developed by Norman G. Fosback.
The ABI shows how much activity, volatility, and change is taking place on the New York Stock Exchange while
ignoring the direction prices are headed. You can think of the ABI as an "activity index". High readings indicate
market activity and change, while low readings indicate lack of change. In Mr. Fosback's book, Stock Market
Logic, he indicates that historically, high values typically lead to higher prices three to twelve months later.
The MetaStock™ formula for the Absolute Breadth Index is:
ABS ( Advancing Issues - Declining Issues )
To plot it:
Create a composite security of the Advancing Issues - Declining Issues. In Windows versions use The
DownLoader™ to create the composite or in the DOS versions use MetaStock's File Maintenance to
create the composite.
In MetaStock open the composite and plot the custom formula ABS( C ) on it.
**For interpretation refer to the book Stock Market Logic by Norman G. Fosback.
Advance / Decline Line with Negative Volume
rev. 01/06/97
There is a way to get the negative volume on an advance-decline line chart in MetaStock™ for Windows™.
The requirement is: Each security must have both the number of issues and the volume in the file. Advancing
issues with advancing volume in one security and declining issues with declining volume in one security file.
These files may be obtained from Reuters Trend Data by way of The DownLoader for Windows. You will also
need to create a composite security of the Advance-Decline line, which is the advances - declines.
The following steps will get you an advance-decline line with negative volume where applicable. Follow these
steps once and save as a CHART. When you want to use it simply load the chart and the program will calculate
the new volume plot using the new data.
Create a NEW chart of the advancing issues.
Create a NEW chart of the declining issues.
Create a NEW chart of the advance-decline composite.
Create a NEW INNER WINDOW on the declining issues chart.
Delete the volume plot on the advance-decline composite chart.
Copy the volume from the advancing issues chart and paste it into the new inner window on the declining
issues chart.
Drop the custom formula, P-V on the advancing volume plot in the declining issues chart, creating a new
scale.
Copy that plot to the empty inner window (where the volume was) of the advance-decline composite.
Save that chart as the adv-decl chart (perhaps advdecl.mwc).
This will be the chart you load to do your study of the advance-decline line with negative volume.
Adaptive Moving Average by Perry Kauffman
This is a Metastock for Windows version 6.5 formula.
Periods := Input("Time Periods",1,1000, 10);
Direction := CLOSE - Ref(Close,-periods);
Volatility := Sum(Abs(ROC(CLOSE,1,$)),periods);
ER := Abs(Direction/Volatility);
FastSC := 2/(2 + 1);
SlowSC := 2/(30 + 1);
SSC := ER * (FastSC - SlowSC) + SlowSC;
Constant := Pwr(SSC,2);
AMA := If(Cum(1) = periods +1, ref(Close,-1) + constant * (CLOSE -
ref(Close,-1)),Prev + constant * (CLOSE - PREV));
AMA
Arms Index (TRIN )
rev. 01/06/97
The Arms Index, also known as TRIN, is a market indicator that shows the relationship between the number of
stocks that increase or decrease in price (advancing/declining issues) and the volume associated with stocks
that increase or decrease in price (advancing/declining volume). The Arms Index was developed by Richard W.
Arms, Jr. in 1967.
The Arms Index is primarily a short term trading tool. The Index shows whether volume is flowing into advancing
or declining stocks. If more volume is associated with advancing stocks than declining stocks, the Arms Index
will be less than 1.0; if more volume is associated with declining stocks, the Index will be greater than 1.0.
The formula for the Arms Index is:
(Advancing Issues / Declining Issues) / (Advancing Volume / Declining Volume)
To calculate the Arms Index in MetaStock™ for Windows you will need to first collect the four pieces of data.
Reuters Trend Data (RTD) supplies this data in two files. The tickers are X.NYSE-A (Advances, number
and volume) and X.NYSE-D (Declines, number and volume).
Dial/Data also supplies this data in two files. Advances, number and volume and Declines, number and
volume. The tickers are @*NAZ_K and @*NDZ_K.
CompuServe supplies this data in 4 files. The tickers are NYSEI (Advances)use the cusip 00000157
rather than the symbol; NYSEJ (declines); NYUP (Advance volume) and NYDN (decline volume).
After the data has been collected follow these steps:
For data from RTD or Dial Data
In the DownLoader™ create a composite security of the Advances / Declines.
In MetaStock open the composite.
Create and plot the custom formula: C/V
This gives you the Arms Index (TRIN).
For data from CompuServe
In the DownLoader create the two composites.
Advancing Issues / Declining Issues
Advancing Volume / Declining Volume
In MetaStock open both composites.
Tile the charts so they can both be viewed.
Drag the plot of the Adv. Volume/Dec. Volume composite into an inner window in the Adv. Issues/Dec.
Issues chart.
Create the custom formula: C/P
Plot this formula on top of the Adv. Volume/Dec. Volume plot (the Adv. Volume/Dec. Volume plot will turn
a purplish color to signify the formula will be plotted on it).
You will know have the Arms Index (TRIN) plotted. You can drag it to its own inner window if you prefer.
For interpretation refer to Mr. Arms book, The Arms Index.
Aroon Indicators, by Tushar Chande
rev. 01/06/97
For interpretation of the Aroon indicators refer to Tushar Chande's article "Time Price Oscillator" in the
September, 95 Technical Analysis of Stocks & Commodities magazine.
The Aroon down:
100* (14 - (( If (Ref (L,-1) = LLV( L ,14 ) ,1 , If ( Ref (L ,-2 ) = LLV ( L,14 ) ,2 , If ( Ref (L ,- 3 ) =
LLV( L,14 ) ,3 ,If ( Ref (L ,-4 ) = LLV ( L ,14 ) ,4 ,If (Ref ( L ,-5 ) = LLV ( L ,14 ) ,5 ,If (Ref (L ,-6 ) =
LLV( L,14 ) ,6 ,If ( Ref (L ,-7 ) = LLV ( L,14 ) ,7 ,If (Ref ( L ,-8 ) = LLV ( L ,14 ) ,8 ,If (Ref( L ,-9 ) =
LLV( L,14 ) ,9 ,If ( Ref (L,-10) = LLV (L,14 ) ,10 ,If (Ref (L ,-11) = LLV( L,14 ) ,11 ,If (Ref(L,-12 ) =
LLV(L ,14) ,12,If ( Ref (L,-13) = LLV (L ,14 ) ,13 ,If ( Ref ( L,-14) = LLV( L,14 ) ,14 ,0) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) / 14
The Aroon up:
100 * ( 14 - ( ( If (Ref (H ,-1) = HHV(H ,14 ) ,1 ,If (Ref (H ,-2 ) = HHV (H ,14 ) ,2 ,If (Ref (H ,- 3 ) =
HHV(H ,14 ) ,3, If (Ref (H ,-4 ) = HHV(H ,14 ) ,4 ,If (Ref (H ,-5 ) = HHV(H ,14 ) ,5 ,If (Ref (H ,-6 ) =
HHV(H ,14 ) ,6 ,If (Ref (H,-7 ) = HHV(H ,14 ) ,7 ,If (Ref (H ,-8 ) = HHV(H ,14) ,8 , If (Ref (H ,-9 ) =
HHV(H ,14) ,9 ,If (Ref (H ,-10 ) = HHV(H ,14 ) ,10 ,If (Ref (H ,-11 ) = HHV(H ,14) ,11 ,If (Ref (H ,-12 ) =
HHV(H ,14) ,12 ,If (Ref(H ,-13) = HHV(H ,14 ) ,13 ,If (Ref (H ,-14 ) = HHV(H ,14 ) ,14 ,0 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) /
14
The Aroon Oscillator = Aroon up - Aroon down.
** The UP and DOWN Aroon indicators are to be plotted in the same inner-window.
** These are constructed using 14 time periods, you can alter this by replacing every entry of 14 with the
desired time period.
Note: The Aroon indicators are built in indicators, in MetaStock 6.0 for Windows.
"Average-Modified Method"
From The New Commodity Trading Systems and Methods, by Perry J. Kaufman
Chapter 4 - Moving Averages, pg. 60.
This formula is for version 6.5 of MetaStock for Windows 95 & NT only and cannot be written in previous version.
This is a modified simple moving average.
The formula will prompt you for input for the number of time periods to use in the moving average.
Day:=Cum(1)+1;
Z:=Input("Periods",2,1000,5);
MV:=(1/Z);
If(Day<(Z+2),C,If(day=(Z+2),Mov(C,LastValue(Z),S),PREV+(MV*(C-PREV))))
Bollinger Bands
rev. 01/06/97
"Trading bands are one of the most powerful concepts available to the technically based investor, but they do
not, as is commonly believed, give absolute buy and sell signals based on price touching the bands. What they
do is answer the perennial question of whether prices are high or low on a relative basis. Armed with this
information, an intelligent investor can make buy and sell decisions by using indicators to confirm price action.
But before we begin, we need a definition of what we are dealing with. Trading bands are lines plotted in and
around the price structure to form an ''envelope". It is the action of prices near the edges of the envelope that we
are particularly interested in…."
Taken from Stocks & Commodities, V. 10:2 (47-51): Using Bollinger Bands by John Bollinger
For further interpretation refer to the above article found in the February 1992 issue of Technical Analysis of
Stocks and Commodities.
Bollinger Bands are built into MetaStock™, however you may prefer to use the individual custom formulas.
The custom formulas for the components of the Bollinger Bands are as follows:
Upper Band:
mov( C,20,S ) + ( 2 * ( std( C,20 ) ) )
Lower Band:
mov( C,20,S ) - ( 2 * ( std( C,20 ) ) )
Middle Band:
mov( C,20,S )
%B :
( ( C+2 * std( C,20 ) - mov( C,20,S ) ) / ( 4 * std( C,20 ) ) ) * 100
Band width :
( ( mov( C,20,S) + ( 2 * ( std( C,20 ) ) ) )- ( mov( C,20,S) - ( 2 * ( std( C,20 ) ) ) ) )
/ mov( C,20,S)
Breadth Thrust
rev. 01/06/97
The Breadth Thrust indicator is a market momentum indicator developed by Dr. Martin Zweig. The Breadth
Thrust is calculated by taking a 10-day exponential moving average of the advancing issues divided by the
advancing plus declining issues.
According to Dr. Zweig a Breadth Thrust occurs when, during a 10-day period, the Breadth Thrust indicator rises
from below 40 percent to above 61.5 percent. A "Thrust" indicates that the stock market has rapidly changed
from an oversold condition to one of strength, but has not yet become overbought.
Dr. Zweig also points out that there have only been 14 Breadth Thrusts since 1945. The average gain following
these 14 Thrusts was 24.6 percent in an average time frame of 11 months. Dr. Zweig also points out that most
bull markets begin with a Breadth Thrust.
To plot the Market Breadth in MetaStock™ for Windows you will need to:
Create a composite security of the Advancing Issues + Declining Issues in The DownLoader™.
In MetaStock open a chart of the composite and a chart of the Advancing Issues.
Tile the charts so you can see both of them on the screen.
Drag the plot of the composite into the chart of the Advancing Issues.
Create the custom indicator: mov( C / P, 10, S ), then plot it on top of the plot of the composite (the
composite's plot will turn a purplish color ). If you get a flat line then it was not plotted directly on top of
the composite's plot.
You can then right-click on the Breadth Thrust, select Breadth Thrust Properties, go to the Horizontal
Lines page and add horizontal lines at 40 and 60.
To plot it in MetaStock for DOS:
Create a composite security of the Advancing Issues + Declining Issues.
Open a chart of the composite and plot the custom indicator "C" on the composite.
Press Ctrl B and select Save to Indicator Buffer
Open the chart of the Advancing Issues
Press Ctrl B and select Restore from Indicator Buffer
Create the custom indicator: mov( C / P, 10, S ) and plot it.
CCI Moving Average Crossover System Test
rev. 01/06/97
System Explanation:
Buy when the Moving Average crosses up through the CCI and
sell on the reverse condition
System Formula:
Enter Long:
When( CCI( opt1 ) ,< ,Mov( CCI( opt1 ) ,opt2 ,E ) ) AND When( Ref( CCI(opt1) ,-1) ,>= ,Ref( Mov( CCI( opt1 )
,opt2 ,E ) ,-1 ) )
Enter Short:
When( CCI( opt1 ) ,> ,Mov( CCI( opt1 ) ,opt2 ,E ) ) AND When( Ref( CCI(opt1) ,-1) ,<= ,Ref( Mov( CCI( opt1 )
,opt2 ,E ) ,-1 ) )
Optimization Variables:
Opt1:
Min = 5 Max = 40 Step = 1
Opt2:
Min = 5 Max = 40 Step = 1
Chande's Momentum Oscillator
rev. 01/06/97
The following are MetaStock formulas for Tuschar Chande's Momentum Oscillator. For interpretation refer to the
book The New Technical Trader, by Tuschar Chande and Stanley Kroll.
CMO_1
Sum( If( C ,> ,Ref( C, -1 ) , ( C - Ref( C ,-1 ) ) ,0 ) ,14 )
CMO_2
Sum( If( C ,< ,Ref( C ,-1 ) , ( Ref( C ,-1 ) - C ) ) ,0 ) ,14 )
CMO_Final
100 * ( ( Fml( "CMO_1" ) - Fml( "CMO_2" ) ) / ( Fml( "CMO_1" ) + Fml( "CMO_2" ) ) )
You could also combine the above three formulas into one formula. The syntax would be:
100*((Sum(If(C,>,Ref(C,-1),(C-Ref(C,-1)),0),14))-(Sum(If(C,<,REF(C,-1),(REF(C,-1)-C),0),14)))
/((Sum(If(C,>,Ref(C,-1),(C-Ref(C,-1)),0),14)+(Sum(If(C,<,REF(C,-1),(REF(C,-1)-C),0),14))))
*** These formulas were constructed using 14 time periods, you can change this by replacing every occurrence
of 14 with your desired time period value.
"Combining Trend and Oscillator Signals" System Test
rev. 01/06/97
The information for this test was published in the December 1996 issue of Technical Analysis of Stocks and
Commodities. The test appears in the article "Combining Trend and Oscillator Signals" by Jeremy G.
Konstenius. Mr. Konstenius describes a trading system that combines Linear Regression and Moving averages
to generate trades.
To create this test in MetaStock do the following:
Run MetaStock version 6.0.
Click Tools|System Tester|New.
Type a name for the test in the Name column.
Enter the following System Test rules and options.
ENTER LONG:
C>Mov(C,OPT1,S) AND LinRegSlope(C,OPT2)>LinearReg(LinRegSlope(C ,OPT3),50)
CLOSE LONG:
C<Mov(C,OPT1,S) OR LinRegSlope(C,OPT2)<LinearReg(LinRegSlope(C ,OPT3),50)
ENTER SHORT:
C<Mov(C,OPT1,S) AND LinRegSlope(C,OPT2)<LinearReg(LinRegSlope(C ,OPT3),50)
CLOSE SHORT:
C>Mov(C,OPT1,S) OR LinRegSlope(C,OPT2)>LinearReg(LinRegSlope(C ,OPT3),50)
OPTIMIZE:
OPT1: Minimum 5 Maximum 50 Step 5
OPT2: Minimum 5 Maximum 50 Step 5
OPT3: Minimum 5 Maximum 50 Step 5
Initial Equity: Any amount.
Positions: Long and Short
Trade Price: Close
Trade delay: 0
The author uses weekly data and a $50 round turn commission. You can modify this test by changing the
distance from Minimum to Maximum or the Step used in each OPT variable.
For information about the test contact Jeremy G. Konstenius at jkonsten@sprynet.com and
Commodity Channel Index Buy & Sell Signals
rev. 01/06/97
This system generates buy and sell signals based on the criteria using the Commodity Channel Index indicator.
It enters a long position when yesterday's 14 period CCI is greater than -250 and today's 14 period CCI is less
than -250. It will close long according to the criteria you specify in close long. It enters a short position when
yesterday's 14 period CCI is less than 250 and today's 14 period CCI is greater than 250 and closes short
according to the criteria you specify in close short.
Enter Long:
When( Ref(CCI( 14 ) ,-1 ) ,> ,-250 ) AND When(CCI( 14 ) ,< ,-250 )
Close Long:
When( enter your criteria here )
Enter Short:
When( Ref(CCI( 14 ) ,-1 ) ,< ,250 ) AND When(CCI( 14 ) ,> ,250 )
Close Short:
When( enter your criteria here )
** You can change to a different periodicity other than 14 by changing every occurrence of 14 with the desired
periodicity.
Comparative Relative Strength in MetaStock™ for Windows
rev. 01/06/97
Comparative Relative Strength charts can be useful in deciding which security to buy, by helping to pinpoint the
best performer. They can also be useful in developing spreads, i.e., purchase of the best performer "long", and
selling the weaker issues "short." Comparative Relative Strength can be applied in MetaStock for Windows as
follows:
Creation of a Template for Comparative Relative Strength
(For this illustration, we assume an equity/stock is compared to the S&P 500, both of which must first have
been collected from your vendor. Both data files should be in the same periodicity.)
1.Load the S&P 500.
2.Load the equity, or whatever you wish to find the relative strength for.
3.Drag the S&P 500 plot into a new inner window of the equity. (You may need to click Stack first.)
4.Close the S&P 500 chart.
5.Create a custom indicator: Div(close, p)
6.Drag the custom indicator into the inner window containing the S&P 500 plot, moving it over the plot until
the plot changes to a pink or lavender color, then release your mouse button. (This is called dragging and
dropping an indicator on an indicator. The new indicator will plot in the same window as the S&P 500
plot.) You have two options here:
You can change the color of the S&P 500 plot to be the same as the chart background color, so
that it is effectively invisible. (Double-click the S&P 500 plot to get to its "properties", then choose
the color you need from the Colors list.)
You can give both plots different colors so you can tell which is which.
7.Save this chart as a Template. (File|Save As, set "Save File As Type" to Template, and give it a name,
such as CMPRELST.MWT.)
Any time you want to see Comparative Relative Strength of an equity against the S&P 500, apply this template
to the equity's chart. Note: if you should move the data file against which you are comparing, such as the S&P
500, this template will no longer work, and would have to be recreated.
To Run an Exploration Using Comparative Relative Strength
1.Load the S&P 500 (or whatever you want to compare against).
2.Create a custom indicator of the Close.
3.Drag and drop this indicator on the S&P 500 (or whatever...). (Note: the S&P 500 plot must change to
pink/lavender color before you drop it.) The indicator will plot.
4.Select the indicator plot (by single-clicking with the left mouse button on the line).
5.Do an Exploration with DIV(Close,p) in column A, and specify which directory to explore.
6.The results are displayed in the Exploration report.
(P is a special variable that points at the last indicator plotted or selected.)
Comparative Relative Strength in MetaStock™ for DOS 4.x
rev. 01/06/97
To plot a Comparative Relative Strength use the following steps:
Load the Index (e.g. S&P 500).
Create and plot a custom formula of the closing prices (e.g. Close).
Press Control B and select Save to Buffer.
Load the security.
Press Control B and select Restore from Buffer.
Create and plot the custom formula: C/P.
To use the Comparative Relative Strength in the MetaStock Explorer:
Plot the index used for comparison (S&P, DOW, etc.).
Create a custom formula that plots the closing price of the index in the indicator window.
Plot the "Closing price" indicator.
Enter the Explorer. In column A enter "(C/P)" which means the close divided by the previous plotted
indicator; in this case P= the closing price of the index.
Enter your filter which may say something like: "when(colA,>=,x)".
Once this is complete, the Explorer will search through the securities in various directories and find those that
meet the Comparative RS criteria.
Chances are when you are filtering or ranking on Relative Strength Comparative you may want to do something
more sophisticated than just the relative strength number itself. The reason is the value of this number will be
based solely on how high the current stock price is. A rate of change of the relative strength or other method to
show how quickly the RS is rising or falling would probably give a better comparison. Whichever way you decide
to compare c/p would be used as the data array for any formula when referencing the relative strength
comparative.
Comparative Relative Strength Exploration
rev. 01/06/97
To construct a Comparative Relative Strength Exploration in MetaStock for Windows perform the
following steps:
Load the S & P 500.
Create a custom indicator of the Close. Plot the indicator on the S & P 500. Select this plot by clicking
on it.
Create an exploration with div(C,P) in column A and also specify which directory to explore.
Note: ( the P variable references the selected indicator in the active chart which would be the close)
The results are displayed in the exploration report.
Coppock Curve
rev. 01/06/97
The Coppock Curve was developed by Edwin Sedgwick Coppock in 1962. It was featured in the November 94
issue of Technical Analysis of Stocks & Commodities, in the article "The Coppock Curve", written by Elliot
Middleton.:
Taken from Stocks & Commodities, V. 12:11 (459-462): The Coppock Curve by Elliott Middleton
"We are creatures of habit. We judge the world relative to what we have experienced. If we're shopping for a
mortgage and rates have been in the teens (as they were in the early 1980s) and then drop to 10%, we are
elated. If, however, they've been at 8% and then rise to 10%, we are disappointed. It all depends on your
perspective.
The principle of adaptation-level applies to how we judge our income levels, stock prices and virtually every other
variable in our lives. Psychologically, relativity prevails..
SIMPLEST FORMS
The moving average is the simplest form of adaptation-level. Moving average crossover rules accurately signal
the onset of periods of returns outside the norm, whether positive or negative. This makes moving average
crossovers useful to traders who want to get a boost on entering or exiting stocks or funds.
The oscillator is also based on adaptation-level, although in a slightly different way. Oscillators generally begin
by calculating a percentage change of current price from some previous price, where the previous price is the
adaptation-level or reference point. The mind is attuned to percentage changes because they represent returns.
If you bought Microsoft Corp. stock (MSFT) at $50 and it goes to $80, you make 60% before dividends. If you
bought Berkshire Hathaway (BRK) at $4,000 and it rises to $4,030, the same dollar gain, you make 0.75%
before dividends. It's the percentage change that counts. Relativity again.
Coppock reasoned that the market's emotional state could be determined by adding up the percentage changes
over the recent past to get a sense of the market's momentum (and oscillators are generally momentum
indicators ). So if we compare prices relative to a year ago - which happens to be the most common interval -
and we see that this month the market is up 15% over a year ago, last month it was up 12.5% over a year ago,
and 10%, 7.5% and 5%, respectively, the months before that, then we may judge that the market is gaining
momentum and, like a trader watching for the upward crossover of the moving average, we may jump into the
market."
The MetaStock™ formula for the Coppock Curve is:
(MOV(ROC(MOV(C,22,S),250,%),150,E))/100
The Derivative Moving Average
Rev 01/21/97
The information for this test was published in the June 1996 issue of "Technical Analysis of Stocks and
Commodities". The test appears in the article "The Derivative Moving Average" by Adam White, page 18. Mr.
White describes this test as using a variation of the "tried-and-true simple moving average for entry signals and
the "trend analysis index" for exit signals.
System syntax:
Enter Long: When(Ref(Mov(C,28,S),-1),=,LLV(Mov(C,28,S),4))
Close Long: When(Fml("TAI"),<,0.4) AND When(Ref(Fml("TAI").-1),>=,0.4)
TAI formula
((HHV(Mov(C,28,S),5)-LLV(Mov(C,28,S),5))/C)*100
Detrended Price Oscillator
rev. 01/06/97
The Detrended Price Oscillator (DPO) is an indicator that attempts to eliminate the trend in prices. Detrended
prices allow you to more easily identify cycles and overbought/oversold levels. Here is the MetaStock custom
formula for the DPO:
Close-Ref( Mov(Close, X, Simple ), T)
***where X is the number of Time Periods for the Oscillator and T = X / 2 + 1.
For example, a 20 period DPO would be:
X = 20
T = (20/2 + 1) = 11
Close-Ref( Mov(Close, 20, Simple),11)
Disparity Index
rev. 01/06/97
Steve Nison refers to the his Disparity Index "as a percentage display of the latest close to a chosen moving
average". This can be defined in MetaStock using the formula:
( ( C - Mov( C ,X ,? ) ) / Mov( C ,X ,? ) ) * 100
** where X is the number of time periods and ? is the calculation type of the moving average.
For example:
( ( C - Mov( C ,13,E ) ) / Mov( C ,13 ,E ) ) * 100
** where X = 13 time periods and ? = Exponential moving average.
For interpretation on the Disparity Index refer to Steve Nison's book Beyond Candlesticks which is available from
the Equis Direct catalogue.
Displaying the Price of a Security in 32nds and 64ths
rev. 01/06/97
All versions of MetaStock prior to our Windows software would need this formula.
You can display your security's prices in 32nds and 64ths, by using the following custom formulas. Once
plotted these values will be displayed in the indicator window.
For 32nds:
INT( C ) + ( ( FRAC( C ) / .03125 ) / 100 )
For 64ths:
INT( C ) + ( ( FRAC( C ) / .015625 ) / 100 )
**Where C is for the security's closing price and can be replaced with O, H, or L for the open, high, or low price
instead.
The Investor Preference Index
This indicator was discussed in the December 1997 Technical Analysis of Stocks & Commodities magazine, page 19. The article was written
by Cyril V. Smith Jr.
"This indicator, a long - term stock market investment tool, compares the performance of the S&P 500 to the New York Stock Exchange index
to measure sentiment. The theory is that investors have a preference for certain types of investments, blue chips versus mid-cap, during
phases of a bull market."
To plot this in MetaStock for Windows, follow these instructions. When complete, if you save this as a chart, you will simply need to load the
chart and it will recalculate using the newest data.
Open a chart of the S&P 500.
Open a chart of the New York Stock Exchange index.
Drag the S&P 500 price plot into the NYSE chart.
Drop the indicator listed below on the plot of the S&P 500. The plot will turn a different color when you are pointing at it.
The resultant plot is the Investor Preference Index.
Slope of a Linear Regression Line
rev. 01/06/97
The following custom formula will return the slope of a Linear Regression Line.
tp:=Input("Time Periods",1,200,21);
((tp*(Sum(Cum(1)*C,tp)))-(Sum(Cum(1),tp)*(Sum(C,tp))))/((tp*Sum(Pwr(Cum(1),2),tp))-Pwr(Sum(Cum(1),tp),2))
WillSpread by Larry Williams
The Larry Wiliams' indicator named WillSpread is quite easy to plot in MetaStock for Windows version 6.5.
Using version 6.5 of MetaStock for Windows, please follow these steps.
Plot the underlying commodity.
Drag the Spread Indicator from the indicator quick list to this commodity chart.
Select either Tbonds or Tbills as the security to use to spread. I recommend you plot this
in a new inner window.
Drag the Price Oscillator from the indicator quick list and drop it on the SPREAD plot, not
the price plot. The parameters Mr. Williams' uses are 7 and 11 time period exponential
moving averages. You also want to use "points" as the method. This plot is the WillSpread
indicator.
At this point, you may change the Spread Indicator plot's color to match the background of
the chart, or perhaps move the WillSpread indicator to a separate inner window.
If you save this first effort as a template, perhaps named WillSpread, you are able to apply this template to any
commodity you wish and the indicator will be automatically calculated against that commodity.
You may also use the "Next Security" function within MetaStock for Windows to view each of your commodities
by setting the options for next security to "Keep line studies". If you apply this template to the first commodity
in your futures folder, you may then use the right arrow to move down the folder contents. Each new commodity
will have the WillSpread calculated as it is loaded.
What are the explorations Equis uses to determine the listed Hot
Picks on the Equis Web site each week?
rev. 09/02/97
Following are the explorations for each list we display. To use them, you will need to enter them into your
exploration file.
Stocks with Bullish Engulfing Lines
ColA: CLOSE
ColB: Volume
Mov(V,70,S)
Filter: EngulfingBull() AND ROC(C,60,%)<-15 AND BarsSince(Stoch(9,1)<10)<=3 AND Year()=1997
Filter enabled Yes
Periodicity Daily
Records required 1300
Stocks with Bearish Engulfing Lines
Col A: CLOSE
ColB: Volume
Mov(V,70,S)
Filter: EngulfingBear() AND ROC(C,60,%)>15 AND BarsSince(Stoch(9,1)>90)<=3 AND Year()=1997
Filter enabled Yes
Periodicity Daily
Records required 1300
Stocks up > 20% on double average volume
Col A: CLOSE
Col B:ROC(C,5,%)
Filter ROC(C,5,%)>=20 AND Mov(V,5,S)>=(2*Ref(Mov(V,60,S),-5))
Filter enabled Yes
Periodicity Daily
Records required 1300
Stocks down > 20% on double average volume
Col A: CLOSE
Col B: ROC(C,5,%)
Filter ROC(C,5,%)<=-20 AND Mov(V,5,S)>=(2*Ref(Mov(V,60,S),-5))
Filter enabled Yes
Periodicity Daily
Records required 1300
Stocks Crossing Above 200-day Moving Average on Twice Average Volume
Filter (C>Mov(C,200,S) AND Ref(C,-5)<Ref(Mov(C,200,S),-5)) AND C>5 AND V>Mov(V,200,S)*2
Stocks Crossing Below 200-day Moving Average on Twice Average Volume
Filter (C<Mov(C,200,S) AND Ref(C,-5)>Ref(Mov(C,200,S),-5)) AND C>5 AND V>Mov(V,200,S)*2
Stocks consolidating over the last 16 weeks
Col A: CLOSE
Filter Fml("congestion index") <= 10 AND BarsSince(Fml("congestion index")>10) > 0
Filter enabled Yes
Here is the "congestion index" formula:
((HHV(C,80)-LLV(C,80))/LLV(C,80))*100
Stocks breaking out of consolidation (upside)
Col A: CLOSE
Filter: Fml("Consolidation breakout (upside)") = 1
Filter enabled: Yes
Here is the "consolidation breakout(upside)" formula:
If(Ref(Fml("congestion index"),-5),<,10,
{and} If(Fml("congestion index"),>=,10,
{and} If(CLOSE,>,Ref(HHV(C,80),-5),
{and} If(Mov(V,5,S),>=,1.5*(Ref(Mov(V,60,S),-5)),
+1,0),0),0),0)
Stocks breaking out of consolidation (downside)
Col A: CLOSE
Filter: Fml("Consolidation breakout (downside)") = 1
Filter enabled: Yes
Here is the "consolidation breakout(downside)" formula:
If(Ref(Fml("congestion index"),-5),<,10{%},
{and} If(Fml("congestion index"),>=,10{%},
{and} If(CLOSE,<,Ref(LLV(C,80),-5),
{and} If(Mov(V,5,S),>=,1.5*(Ref(Mov(V,60,S),-5)),
+1,0),0),0),0)
Most volatile stocks over last 16 weeks
Col A: CLOSE
Col B: Vol(10,80)
Filter: Vol(10,80)>200
Filter enabled: Yes
Biggest % gainers over last week (Report determined by sort order)
Col A: CLOSE
Col B: ROC(C,5,%)
Filter: (ROC(C,5,%)>10 OR ROC(C,5,%)<-10) AND C>5
Filter enabled: Yes
Biggest % losers over last week (Report determined by sort order)
Col A: CLOSE
Col B: ROC(C,5,%)
Filter: (ROC(C,5,%)>10 OR ROC(C,5,%)<-10) AND C>5
Filter enabled: Yes
Most overbought\oversold stocks (Report determined by sort order)
Col A: CLOSE
Col B: Fml("ob/os summation")
Filter: Fml("ob/os summation") > 450 OR Fml("ob/os summation") < -50
Filter enabled: Yes
Here is the "ob/os summation" formula:
RSI(25)+Stoch(25,3)+Mo(25)+CCI(25)
1996 August TASC Trader's Tips - Connors and Raschke's
Historical Volatility System
Here is the Connors and Raschke's historical volatility system exploration in August 1996 TASC Trader's Tips
translated for MetaStock.
COLUMN FORMULAS
---------------
Column A : Vol ratio
std(log(C/ref(C,-1)),5)/std(log(C/ref(C,-1)),99)
Column B : NR4 day
if(HIGH-LOW,<,ref(llv(H-L,3),-1),1,0)
Column C : Inside
if(HIGH,<,ref(HIGH,-1),if(LOW,>,ref(LOW,-1),1,0),0)
Column D : High
HIGH
Column E : Low
LOW
FILTER FORMULA
--------------
Formula:
when(colA,<,0.5) AND (when(colB,=,1) OR when(colC,=,1))
1996 October TASC Trader's Tip - Freeburg Precious Metal Switch
Fund system
To create the Freeburg Precious Metal Switch Fund system in MetaStock for Windows, you must first create
the K ratio as a composite security. To do this, launch The DownLoader from MetaStock, and choose New and
then Composite from The DownLoader's File menu. Make sure the directory specified is the directory where
your weekly GMI and Handy and Harman data are located. Name the composite the K ratio, then choose the
Barron's Gold Mining Index as the Primary symbol and Handy and Harman prices as the secondary symbol.
Next, choose Divide as the Operator and the click the OK button to add the composite. Open the K ratio chart
in MetaStock, Plot the Bollinger Bands Indicator and enter 46 for the number of periods and 2.3 for the standard
deviations. Plot Bollinger Bands again and enter 4 for the periods and 1.6 for the Standard Deviations. Your
chart should look like the one in Figure ?.
You can also create this system in MetaStock for Dos with the same steps.
The data necessary for this chart/indicator, is extremely difficult to obtain. The only source we are aware of on
diskette is the author of the article. The data is in a Lotus spreadsheet. It must be output to ASCII and then
converted to MetaStock data files. He will make a small charge for this data.
To keep the GMI data updated, it is only available from Barrons magazine and must be manually input. The
Handy & Harman data must also be manually updated. This may be obtained from the Wall Street Journal as
well.
1996 December TASC Trader's Tip - 2/20-Day EMA Breakout
System
To create the 2/20-Day EMA Breakout System by David Landry in MetaStock for Windows, choose System
Tester from the Tools menu. Now choose new and enter the following system test rules and options:
Enter long
Alert(Cross(Sum(L > Mov(C,20,E),2) = 2,.5),10) AND HIGH >= Peak(1,Cross(Sum(L > Mov(C,20,E),2) = 2,.5) *
HHV(H,2),1) + .001{10 ticks} AND BarsSince(Cross(Sum(L > Mov(C,20,E),2) = 2,.5)) <
BarsSince(LOW <= Mov(C,20,E))
Close long
LOW <= Mov(C,20,E)
Enter short
Alert(Cross(Sum(H < Mov(C,20,E),2) = 2,.5),10) AND LOW <= Peak(1,Cross(Sum(H < Mov(C,20,E),2) = 2,.5) *
LLV(L,2),1) - .001{10 ticks} AND BarsSince(Cross(Sum(H < Mov(C,20,E),2) = 2,.5)) < BarsSince(HIGH >=
Mov(C,20,E))
Close short
HIGH >= Mov(C,20,E)
Initial equity Points Only
Positions Long and short
Trade price Close
Trade delay 0
Please note the {10 ticks} comment in the system rules. The value used in these rules is for most currencies.
You should change this value based upon the commodity your testing.
1997 May TASC Trader's Tip - "Genesis of a Simple Futures Trading"
It's quite easy to use MetaStock for Windows to duplicate the Genesis of a Simple Futures Trading system which is presented in
this issue's interview of Jay Kaeppel. In MetaStock, choose System Tester from the Tools menu. Click on the New button and
enter in the following rules:
Jay Kaeppel's Simple Futures Trading System
SIGNAL FORMULAS
---------------
Enter Long:
Cross( Mov( CLOSE,9,S), Mov( CLOSE,50,S)) AND
CLOSE > Mov( CLOSE,80,S)
Close Long:
Cross( Mov( CLOSE,50,S), Mov( CLOSE,9,S)) AND
CLOSE > Mov( CLOSE,80,S)
Enter Short:
Cross( Mov( CLOSE,50,S), Mov( CLOSE,9,S)) AND
CLOSE < Mov( CLOSE,80,S)
Close Short:
Cross( Mov( CLOSE,9,S), Mov( CLOSE,50,S)) AND
CLOSE < Mov( CLOSE,80,S)
When testing futures in MetaStock it's best to use a "points only" test. To do this, choose Options from the System Tester dialog
and then Points Only Test from the Testing page.
To use The Explorer to screen for futures generating a recent signal with this system, choose The Explorer from the Tools dialog
and enter in the following rules:
Jay Kaeppel's Simple Futures Trading Sys
COLUMN FORMULAS
---------------
ColumnA: Buy Sign
Cross( Mov( CLOSE,9,S), Mov( CLOSE,50,S)) AND
CLOSE > Mov( CLOSE,80,S)
ColumnB: Shrt Sig
Cross( Mov( CLOSE,50,S), Mov( CLOSE,9,S)) AND
CLOSE < Mov( CLOSE,80,S)
FILTER SOURCE
-------------
Filter Enabled: Yes
Formula:
colA = 1 OR colB = 1
Next choose Explore and The Explorer will search for and then display any futures, which have generated new signals.
997 July TASC Trader's Tip - "Rainbow Charts"
To create Rainbow Charts in MetaStock for Windows, open any chart, drop the moving average indicator from the Indicator QuickList, and
drop it in the same inner windows as the price bars. Enter two for the Periods and simple for the Method. Next plot a second moving
average on the first moving average by dragging a moving average from the QuickList and dropping it on the first moving average (Note: The
first moving average should turn light purple before you release the mouse button). If you dropped it correctly the Parameters dialog should
say `Indicator' for the Price Field. Click OK to accept two periods and simple as the parameters. 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 ten
moving averages. Choose Yes if MetaStock prompts you about plotting a duplicate indicator.
To save you time, I have created a template that allows you to bypass these steps. You can download this template directly off of the
Equis web site at http://199.234.225.19/customer/support/files/systems.html. Download this file to the Charts folder (e.g.
C:\Equis\Mswin\Charts) in your MetaStock folder. Open any chart and then click on your right mouse button while the pointer is located on
the chart. Choose Apply Template from the Chart Shortcut menu and choose the Rainbow Chart template. You should now have a chart
with ten different colored moving averages.
Next choose Indicator Builder from the Tools menu and enter the following formulas.
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))
Plot the Rainbow Oscillator in a new inner window of your chart with the ten 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. Now save this as a new template by choosing Save As from the File Menu and changing the File Type to template, so you can
easily apply it to any chart.
1997 October TASC Traders Tip - Volatility Bands As A Long
Term Strategy
This article "Volatility Bands As A Long Term Strategy", by Ahmet Tezel, Ph.D., and Suzan Koknar-Tezel,
M.S., which appears in this issue introduces two different volatility band trading systems. One system uses
bands based on moving averages and the other is based on bands which use regression. To plot the Moving
Average Asymmetric Volatility Price Bands in MetaStock for Windows, simply plot Bollinger Bands using 11
periods and 1.7 standard deviations. Then click your right-mouse button while the cursor is over the lower band
and choose properties. Change the standard deviations to 2. This plot will now appear exactly as the bands
discussed in the article.
To plot the Regression Asymmetric Volatility Price Bands in Metastock for Windows, simply plot Standard Error
Bands using 21 periods, 1 for standard errors, and 1 for the smoothing periods. Then click your right-mouse
button while the cursor is over the lower band and choose properties. Change the standard errors to 1.5.
To recreate the systems in MetaStock for Windows, choose System Tester from the Tools menu. Next choose
New and enter the following trading rules and stop conditions. After entering this information, choose Options
and change the trade delay to 1, then change the Trade Price to Open. If you have MetaStock 6.5 enter the first
set of formulas. MetaStock 6.5 allows variables which will allow you to change the periods when testing much
more easily.
1997 November TASC Traders Tip - Using Fibonacci Ratios and
Momentum
In MetaStock for Windows, you can establish Fibonacci Retracement levels as outlined in the November 1997 TASC article
"Using Fibonacci Ratios and Momentum" by Thom Hartle by first creating an Expert in the Expert Advisor. To do this, choose
Expert Advisor from the Tools menu and then choose New. Enter the following Expert Highlights and Expert Symbols into your
Expert.
Fibonacci Ratios and Momentum
Highlights
Name: RSI > 50
Condition: RSI(14) > 50
Color: Dk Green
Name: RSI < 50
Condition: RSI(14) < 50
Color: Red
Symbols
Name: Isolated Low
Condition: LOW < Ref(LOW,-1) AND
LOW < Ref(LOW,1)
Graphic: Buy Arrow
Color: Black
Label: Isolated Low
Name: Isolated High
Condition: HIGH > Ref(HIGH,-1) AND
HIGH > Ref(HIGH,1)
Graphic: Sell Arrow
Color: Black
Label: Isolated High
Note: If the Symbol labels make the chart too busy you may want to shorten the label (e.g. change Isolated High to IH).
Next, close the Expert Advisor, open any chart, and then click the right-mouse button on the chart's heading. Choose Expert
Advisor and then Attach from the Chart Shortcut Menu. You can now choose Fibonacci Retracement from the Insert menu,
and then drag from one isolated extreme to another. In MetaStock 6.5 you should right-click on the Fibonacci Retracement
lines and choose properties. Check the Snap to Price checkbox so the Retracement lines will automatically snap to the high
and low prices. If you followed these steps correctly, your chart should look like the chart below.
1997 December TASC Trader's Tip - Volatility % Indicator
You can easily create the Volatility% Indicator from William Brower's article in MetaStock for Windows. First
choose Indicator Builder from the Tools menu in MetaStock. Next choose New and enter one of the following
formulas:
Formula for MetaStock 6.5
Volatility%
Lookback := Input("Time Periods",1,1000,50);
HighVolatility := Input("High Volatility %",.01,100,3);
100 * Sum(100 * ATR(1)/CLOSE > HighVolatility, Lookback)/Lookback
Formula for earlier versions of MetaStock for Windows
Volatility%
100 * Sum(100 * ATR(1)/CLOSE > 3, 50)/50
1998 January Tasc - Breaking out of Price Channels - VIDYA
Article
Breaking out of Price Channels, by Gerald Marisch,"Technical Analysis of Stocks & Commodities", January
1998, page 93.
"Here's a technique based upon Tushar Chande's variable-length moving average. The indicator is more
responsive to market price movements than a conventional simple or exponential moving average, and can be
used for position trading."
The following formula will match the authors slight modification to the variable moving average:
VIDYA 21,5 Indicator
Length:=Input("Length",1,200,21);
Smooth:=Input("Smoothing",1,200,5);
AbsCMO:=(Abs(CMO(C,Length)))/100;
SC:=2/(Smooth+1);
VIDYA:=If(Cum(1)<=(Length+1),C,(SC*AbsCMO*CLOSE)+(1-(SC*AbsCMO))*PREV);
VIDYA
The following Expert highlights will show you when the price has undergone trend changes as discussed in the
article. Enter each section as a separate highlight in an Expert Advisor. To do this, create a new Expert and
select Highlights from the tab dialog. Then select New and name it Bull. Paste the Bull trend formula into the
condition box within the editor and set the color to green. Do this for the Bear and the Pause conditions as
well, selecting the matching colors, Attach this Expert to your chart and if the conditions are met, the price
bars will be displayed in the proper colors.
Green Bars (Bull trend):
Length:=21;
Smooth:=5;
AbsCMO:=(Abs(CMO(C,Length)))/100;
SC:=2/(Smooth+1);
VIDYA:=If(Cum(1)<=(Length+1),C,(SC*AbsCMO*CLOSE)+(1-(SC*AbsCMO))*PREV);
C>(Vidya*1.01)
Red Bars (Bear trend):
Length:=21;
Smooth:=5;
AbsCMO:=(Abs(CMO(C,Length)))/100;
SC:=2/(Smooth+1);
VIDYA:=If(Cum(1)<=(Length+1),C,(SC*AbsCMO*CLOSE)+(1-(SC*AbsCMO))*PREV);
C<(VIDYA*.99)
Yellow Bars( Pause or pending reversal of the trend):
Length:=21;
Smooth:=5;
AbsCMO:=(Abs(CMO(C,Length)))/100;
SC:=2/(Smooth+1);
VIDYA:=If(Cum(1)<=(Length+1),C,(SC*AbsCMO*CLOSE)+(1-(SC*AbsCMO))*PREV);
C>(VIDYA*.99) AND C<(VIDYA*1.01)
Smoothing Techniques for more Accurate Signals
The following formulas are from the 1998 January TASC article "Smoothing Techniques for more Accurate
Signals", by Tim Tillson. Refer to his article for interpretation.
"More sophisticated smoothing techniques can be used to determine market trend. Better trend recognition
can be lead to more accurate trading signals."
ILRS
Periods:=Input("Periods?",2,63,11);
Size:=LastValue(Cum(1));
Start:=LastValue(Ref(Mov(P,Periods,S),Periods-Size));
Cum(LinRegSlope(P,Periods))+Start;
T3
Periods:=Input("Periods?",1,63,5);
a:=Input("Hot?",0,2,.7);
e1:=Mov(P,Periods,E);
e2:=Mov(e1,Periods,E);
e3:=Mov(e2,Periods,E);
e4:=Mov(e3,Periods,E);
e5:=Mov(e4,Periods,E);
e6:=Mov(e5,Periods,E);
c1:=-a*a*a;
c2:=3*a*a+3*a*a*a;
c3:=-6*a*a-3*a-3*a*a*a;
c4:=1+3*a+a*a*a+3*a*a;
c1*e6+c2*e5+c3*e4+c4*e3;
February 1998 TASC Trader's Tip - "Anchored Momentum"
The four indicators in Rudy Stefenel's article "Anchored Momentum" can be easily created in MetaStock. First,
choose Indicator Builder from the Tools menu. If you have MetaStock 6.5 enter the following formulas:
General Anchored Momentum w/ Exponential Smoothing
MomPer := Input("Momentum Periods",1,1000,10);
SmaPer := Input("Simple Moving Average Periods",1,1000,7);
EmaPer := Input("Exponential Moving Average Periods",1,1000,7);
100 * ((Mov(CLOSE, EMAPer, E) / Ref(Mov(CLOSE, SmaPer, S), ((SmaPer - 1)/2)
- MomPer)) - 1)
General Anchored Momentum
MomPer := Input("Momentum Periods",1,1000,10);
SmaPer := Input("Simple Moving Average Periods",1,1000,7);
100 * ((CLOSE / Ref(Mov(CLOSE, SmaPer, S), ((SmaPer - 1)/2) - MomPer)) - 1)
Most Anchored Momentum w/ Exponential Smoothing
MomPer := Input("Momentum Periods",1,1000,10);
SmaPer := Input("Simple Moving Average Periods",1,1000,7);
EmaPer := Input("Exponential Moving Average Periods",1,1000,7);
100 * ((Mov(CLOSE, EmaPer, E) / Mov(CLOSE, (2 * MomPer) + 1, S) ) - 1)
Most Anchored Momentum
MomPer := Input("Momentum Periods",1,1000,10);
SmaPer := Input("Moving Average Periods",1,1000,7);
100 * ((CLOSE / Mov(CLOSE, (2 * MomPer) + 1, S) ) - 1)
Drag any of the above indicators from the Indicator QuickList to the desired chart. MetaStock 6.5 will prompt
you to enter values for the specified parameters. If you have an earlier version of MetaStock, you will need to
enter values in the following formulas instead of using the MomPer, SmaPer, and EmaPer variables.
General Anchored Momentum w/ Exponential Smoothing
100 * ((Mov(CLOSE, EMAPer, E) / Ref(Mov(CLOSE, SmaPer, S), ((SmaPer - 1)/2)-
MomPer)) - 1)
General Anchored Momentum
100 * ((CLOSE / Ref(Mov(CLOSE, SmaPer, S), ((SmaPer - 1)/2) - MomPer)) -1)
Most Anchored Momentum w/ Exponential Smoothing
100 * ((Mov(CLOSE, EmaPer, E) / Mov(CLOSE, (2 * MomPer) + 1, S) ) - 1)
Most Anchored Momentum
100 * ((CLOSE / Mov(CLOSE, (2 * MomPer) + 1, S) ) - 1)
1998 February TASC - Double Tops and Double Bottoms
In the February 1998 issue of Technical Analysis of Stocks & Commodities magazine, Thomas Bulkowski
discusses the use of Double Bottoms as a means of finding profitable trades.
In MetaStock for Windows, you can find both Double Tops and Double Bottoms with these formulas. There is a
caveat however. In the article, Mr. Bulkowski utilizes the High-Low range in finding Double Bottoms. These
formulas use only the close value, so a few of the lower priced issues will not produce signals in MetaStock.
Overall, however, these formulas produce most of the major signals he discusses.
Double Tops
PK:=Zig(C,10,%)<Ref(Zig(C,10,%),-1) AND Ref(Zig(C,10,%),-1)>Ref(Zig(C,10,%),-2);
TR:=Zig(C,10,%)>Ref(Zig(C,10,%),-1) AND Ref(Zig(C,10,%),-1)<Ref(Zig(C,10,%),-2);
PK1:=PeakBars(1,C,10);
PK2:=PeakBars(2,C,10);
(ValueWhen(1,PK,Ref(C,-1))/ValueWhen(2,PK,Ref(C,-1))>.96 AND ValueWhen(1,PK,Ref(C,-1)) /
ValueWhen(2,PK,Ref(C,-1))<1.04) AND PK2-PK1>=10 AND Cross(ValueWhen(1,TR,Ref(C,-1)),C)
Double Bottoms
PK:=Zig(C,10,%)<Ref(Zig(C,10,%),-1) AND Ref(Zig(C,10,%),-1)>Ref(Zig(C,10,%),-2);
TR:=Zig(C,10,%)>Ref(Zig(C,10,%),-1) AND Ref(Zig(C,10,%),-1)<Ref(Zig(C,10,%),-2);
TR1:=TroughBars(1,C,10);
TR2:=TroughBars(2,C,10);
(ValueWhen(1,TR,Ref(C,-1))/ValueWhen(2,TR,Ref(C,-1))>.96 AND ValueWhen(1,TR,Ref(C,-1)) /
ValueWhen(2,TR,Ref(C,-1))<1.04) AND TR2-TR1>=10 AND Cross(C,ValueWhen(1,PK,Ref(C,-1)))
1998 March TASC Trader's Tip - Adaptive Moving Average
In MetaStock 6.5 you can easily create the Perry Kaufman Adaptive Moving Average system. With MetaStock
6.5 running, choose Indicator Builder from the Tools menu and then click on the New button. Enter the following
formulas.
Adaptive Moving Average Binary Wave
Periods := Input("Time Periods",1,1000, 10);
Direction := CLOSE - Ref(Close,-periods);
Volatility := Sum(Abs(ROC(CLOSE,1,$)),periods);
ER := Abs(Direction/Volatility);
FastSC := 2/(2 + 1);
SlowSC := 2/(30 + 1);
SSC := ER * (FastSC - SlowSC) + SlowSC;
Constant := Pwr(SSC,2);
AMA := If(Cum(1) = periods +1, ref(Close,-1) + constant * (CLOSE -
ref(Close,-1)),Prev + constant * (CLOSE - PREV));
FilterPercent := Input("Filter Percentage", 0,100,15)/100;
Filter := FilterPercent * Std(AMA - Ref(AMA,-1),Periods);
AMALow := If(AMA < Ref(AMA,-1),AMA,PREV);
AMAHigh := If(AMA > Ref(AMA,-1),AMA,PREV);
If(AMA - AMALow > Filter, 1 {Buy Signal}, If(AMAHigh - AMA > Filter, -1 {Sell
Signal}, 0 {No_Signal}))
Adaptive Moving Average
Periods := Input("Time Periods",1,1000, 10);
Direction := CLOSE - Ref(CLOSE,-periods);
Volatility := Sum(Abs(ROC(CLOSE,1,$)),periods);
ER := Abs(Direction/Volatility);
FastSC := 2/(2 + 1);
SlowSC := 2/(30 + 1);
SSC := ER * (FastSC - SlowSC) + SlowSC;
Constant := Pwr(SSC,2);
AMA := If(Cum(1) = periods +1, ref(Close,-1) + constant * (CLOSE -
ref(Close,-1)),Prev + constant * (CLOSE - PREV));
AMA
If you want to see the Adaptive Moving Average, just plot it on any chart. If you want to see the buy and sell
signals of the Adaptive Moving Average system plot the Adaptive Moving Average Binary wave. This binary wave
plots a 1 when there is a buy signal, a -1 when there is a sell signal and a zero when there is no signal.
1998 May TASC Trader's Tip - Automatic Support and Resistance
Copied from Technical Analysis of Stocks and Commodities Magazine. This is in regards to an article on page
51 of the May 1998 issue.
In my article "Automatic support and resistance" in this issue, I present a computerized approach to finding
support and resistance levels on a chart. To recreate the indicators and system described in my article using
MetaStock for Windows, enter the following formulas:
Indicators:
S1: IF(Ref(LOW,-4)=LLV(LOW,9),Ref(LOW,-4),PREVIOUS)
S2: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S1"),-1))
S3: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S2"),-1))
S4: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S3"),-1))
S5: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S4"),-1))
S6: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S5"),-1))
WSO: 100*(1(Int(Fml("S1")/CLOSE)+Int(Fml("S2")/CLOSE)+Int(Fml("S3")/CLOSE)+Int(Fml("S4")/CLOSE)
+Int(Fml("S5")/CLOSE)+Int(Fml("S6")/CLOSE))/6)
R1: IF(Ref(HIGH,-4)=HHV(HIGH,9),Ref(HIGH,-4),PREVIOUS)
R2: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R1"),-1))
R3: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R2"),-1))
R4: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R3"),-1))
R5: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R4"),-1))
R6: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R5"),-1))
WRO: 100*(1(Int(Fml("R1")/CLOSE)+Int(Fml("R2")/CLOSE) +Int(Fml("R3")/CLOSE)+Int(Fml("R4")/CLOSE)
+Int(Fml("R5")/CLOSE)+Int(Fml("R6")/CLOSE))/6)
The indicators S1 through S6 and R1 through R6 should be plotted as points and not as a continuous line.
Trading System Formulas and Parameters: Enter long positions on either building support or sustained
uptrend and exit position using stops. No short positions.
Enter Long: Fml("WSO") > Mov( Fml("WSO") , 4 , S ) OR Mov( Fml("WRO") , 30 , S ) > 95
Stop Out:
Breakeven stop: Floor level at 2%
Trailing stop: Profit risk of 10 Percent, ignoring 10 periods
Maximum loss stop: Maximum loss of 7%
Other Conditions:
Initial equity = 1000, Long positions only, Trade price = close, Trade delay = 0, Entry commission = 0%, Exit
commission = 0%, , Interest rate = 5%, Margin req. 100%
-- Mel Widner, Ph.D., 703 791-5910
E-mail techstrategies@msn.com.
1998 June TASC Traders' Tip - Mutated Variables, Volatility and a
New Market Paradigm
Mutated Variables, Volatility and a New Market Paradigm by Walter T. Downs, Ph.D.
In MetaStock for Windows 6.0 or higher, use the Expert Advisor to create highlights, which will show when
contraction and expansion phases are present. First, choose Expert Advisor from the tools menu in MetaStock.
Create a new Expert with the following highlights:
Expert name: New Market Paradigm
HIGHLIGHTS
Name: Contraction
Condition: BBandTop(CLOSE,28,SIMPLE,2)< Ref(BBandTop(CLOSE,28,SIMPLE,2),-1) AND
BBandBot(CLOSE,28,SIMPLE,2)>Ref(BBandBot(CLOSE,28,SIMPLE,2),-1)
Color: Blue
Name: Expansion
Condition: BBandTop(CLOSE,28,SIMPLE,2)> Ref(BBandTop(CLOSE,28,SIMPLE,2),-1) AND
BBandBot(CLOSE,28,SIMPLE,2)<Ref(BBandBot(CLOSE,28,SIMPLE,2),-1)
Color: Red
Click OK to save the changes to the Expert. Open a chart and then click your right-mouse button while pointing
at the chart heading. Choose Expert Advisor and then choose Attach from the chart shortcut menu. Choose the
New Market Paradigm Expert and then click the OK button. The price bars in the chart will be highlighted blue
during a contraction phase and red in an expansion phase.
1998 July Trader's Tip - Channel Analysis
Channel Analysis, beginning on page 18 of the July 1998 Technical Analysis of Stocks & Commodities
Magazine It's quite easy to create the Trend Channels discussed in Thom Hartle's Channel Analysis article in
MetaStock for Windows. After opening a chart, you may want to zoom in a little to make it easier to draw the
Trend Channels more precisely. You can do this by clicking on the "+" button located on the Chart Toolbar at
the bottom of the chart. Next you may want to identify the bars for the support or resistant points by drawing
circles on the bars as Mr. Hartle did in the article, or you can use symbols from the symbol pallete. Both can be
chosen from the Drawing Toolbar which is on left side of the chart. After identifying the points to draw the
trendline, click on the Trendline button, also located on the Drawing Toolbar, and draw the trendline between the
closing prices of the two bars. If you are using MetaStock 6.5, you may want to right-click on the trendline,
choose properties, and then check the Snap to Price checkbox. This will make the trendline line up exactly with
the closing prices. To create the second trendline of the Trend Channel, right-click on the first trendline and
choose Create Parallel Line. Drag this parallel line so it aligns with the highest high between the two support
points or the lowest low between two resistance points. If desired, you can go to the properties of each of these
trendlines and choose to extend the lines to the right.
1998 July Trader's Tip - A Volatility Trade In Gold
"A Volatility Trade In Gold" by David S. Landry, CTA, Technical Analysis of Stocks & Commodities, page 87. In this article the author gives formulas for three indicators MetaStock.
The formulas as given will work in all versions of MetaStock. However, there is an error in the formula the author names Volatility 12 EMA. The formula should be:
Mov((Fml("CONHV4") + Fml("CONHV6") + Fml("CONHV10"))/3,12,e) Here are formulas for version 6.5 of MetaStock for Windows. These formulas use Inputs which allow you to select
the time periods when you plot the formulas. David Landry Historical Volatility Num:=Input("Number Of Periods For Numerator",1,100,4); Den:=Input("Number Of Periods For
Denominator",2,1000,100); Std(Log(C/Ref(C,-1)),Num)/Std(Log(C/Ref(C,-1)),Den) David Landry Average Historical Volatility Den:=Input("Number Of Periods For
Denominator",2,1000,100);
((Std(Log(C/Ref(C,-1)),4)/Std(Log(C/Ref(C,-1)),Den))+(Std(Log(C/Ref(C,-1)),6)/Std(Log(C/Ref(C,-1)),Den))+(Std(Log(C/Ref(C,-1)),10)/Std(Log(C/Ref(C,-1)),Den)))/3 David Landry EMA of
Historical Volatility Den:=Input("Number Of Periods For Denominator",2,1000,100); EMA:=Input("Number Of Periods For EMA",2,100,12);
Mov(((Std(Log(C/Ref(C,-1)),4)/Std(Log(C/Ref(C,-1)),Den))+(Std(Log(C/Ref(C,-1)),6)/Std(Log(C/Ref(C,-1)),Den))+(Std(Log(C/Ref(C,-1)),10)/Std(Log(C/Ref(C,-1)),Den)))/3,LastValue(EMA),E)
Note: Standard deviation information was not included here because the way these formulas are being used, any standard deviation being used would return an identical value as 1
standard deviation.
1998 August Trader's Tip - From Terms To Technical Tools
In Walter Downs' article "From Terms To Technical Tools" he introduces the Point of Balance Oscillator, two
conditions to color bars and two system tests. All of these can be created quite easily in MetaStock 6.5. To
create the Point of Balance Oscillator, choose Indicator Builder from the Tools menu, click on the New button,
and enter the following formula:
Point of Balance Oscillator
n := Input("Time Periods",1,100,12)/2;
POBC1 := (HHV(CLOSE, n) + LLV(CLOSE,n))/2;
POBC2 := (HHV(POBC1, n) + LLV(POBC1,n))/2;
POBC3 := (HHV(POBC2, n) + LLV(POBC2,n))/2;
POBC4 := (HHV(POBC3, n) + LLV(POBC3,n))/2;
POBC5 := (HHV(POBC4, n) + LLV(POBC4,n))/2;
POBC6 := (HHV(POBC5, n) + LLV(POBC5,n))/2;
POBC7 := (HHV(POBC6, n) + LLV(POBC6,n))/2;
POBC8 := (HHV(POBC7, n) + LLV(POBC7,n))/2;
POBC9 := (HHV(POBC8, n) + LLV(POBC8,n))/2;
POBC10 := (HHV(POBC9, n) + LLV(POBC9,n))/2;
AV := (POBC1 + POBC2 + POBC3 + POBC4 + POBC5 + POBC6 + POBC7 + POBC8 + POBC9 + POBC10) /
10;
POBCOsc := 100 * ((CLOSE - AV) / (HHV(CLOSE, 10)-LLV(CLOSE, 10)));
POBCOsc
To highlight bars based on the Bull Fear and Bear Fear conditions discussed in the article, choose Expert
Advisor from the Tools menu, click on the New button and enter the following expert:
Bull Fear and Bear Fear Expert
HIGHLIGHTS
Name: Bull Fear
Condition:
n := 12 {Time periods};
BullFear := (HHV(HIGH,n) - LLV(HIGH,n))/2 + LLV(HIGH,n);
CLOSE > BullFear
Color: Blue
Name: Bear Fear
Condition:
n := 12 {Time periods};
BearFear := (HHV(LOW,n) - LLV(LOW,n))/2 + LLV(LOW,n);
CLOSE < BearFear
Color: Red
To test the two systems discussed in the article, choose System Tester from the Tools menu and enter both of
the following systems:
Bull and Bear Fear System Test
SIGNAL FORMULAS
---------------
Enter Long:
n := 12 {Time periods};
BullFear := (HHV(HIGH,n) - LLV(HIGH,n))/2 + LLV(HIGH,n);
Cross(CLOSE,BullFear)
Enter Short:
n := 12 {Time periods};
BearFear := (HHV(LOW,n) - LLV(LOW,n))/2 + LLV(LOW,n);
Cross(BearFear,CLOSE)
Four-Bar Fear System Test
SIGNAL FORMULAS
---------------
Enter Long:
n := 12 {Time periods};
BullFear := (HHV(HIGH,n) - LLV(HIGH,n))/2 + LLV(HIGH,n);
BearFear := (HHV(LOW,n) - LLV(LOW,n))/2 + LLV(LOW,n);
Cross(CLOSE,BullFear) AND Ref(Sum(CLOSE < BullFear AND CLOSE > BearFear,4),-1) = 4
Close Long:
LOW < Ref(LLV(LOW,3),-1)
Enter Short:
n := 12 {Time periods};
BullFear := (HHV(HIGH,n) - LLV(HIGH,n))/2 + LLV(HIGH,n);
BearFear := (HHV(LOW,n) - LLV(LOW,n))/2 + LLV(LOW,n);
Cross(BearFear,CLOSE) AND Ref(Sum(CLOSE < BullFear AND CLOSE > BearFear,4),-1) = 4
Close Short:
HIGH > Ref(HHV(HIGH,3),-1)
After entering the systems click on the Options button in the System Tester dialog, go to the Testing tab and
change the Trade Price to Open and set the Trade delay to one.
Following is the formula for the moving averages discussed in the article, but not contained in the Traders Tip
published in TASC. Please note, this formula will plot all three moving averages, but will not plot them in three
different colors.
TP:=Input("Time Periods",1,100,12);
BLF:=((HHV(H,TP)+LLV(H,TP))/2);
BRF:=((HHV(L,TP)+LLV(L,TP))/2);
POB:=((BLF-BRF)/2)+BRF;
BLF;
BRF;
POB
1998 September TASC Trader's Tip - Simple Moving Average with
Resistance and Support
In this issue, Dennis L.Tilley uses support and resistance to confirm price and SMA crossover signals in his
article "Simple Moving Average with Resistance and Support".
In MetaStock for Windows, you can easily recreate the SMARS Indicators discussed in Tilley's article. First,
choose Indicator Builder from the Tools menu in MetaStock 6.5. Next, choose New and enter the following
formulas:
Resistance and Support
LookBack := Input("Look Back Periods",1,1000,10);
Resistance :=ValueWhen (1,Cross(Mov(C, LookBack, S),C),HHV(H, LookBack));
Support :=ValueWhen (1,Cross(C,Mov(C, LookBack, S)),LLV(L, LookBack));
Resistance;
Support;
Resistance and Support * F
PrCnt:=Input("Percentage",0,100,10);
LookBack:= Input("Look Back Periods",1,1000,10);
Resistance:=ValueWhen(1,Cross(Mov(C,LookBack,S),C),HHV(H,LookBack));
Support:=ValueWhen(1,Cross(C,Mov(C,LookBack,S)),LLV(L,LookBack));
Resistance * ((100-prcnt)/100);
Support * ((prcnt/100)+1);
Note* It is much easier to see the difference between the actual "Resistance and Support" lines and the
"Resistance and Support * F " lines if you change the color and/or style of one of them. *
To Display the Indicators in MetaStock 6.5 Drag the "Moving Average" indicator from the Indicator QuickList into
the price window. Choose Simple as the method, enter the time periods and then click OK.
Now, drag the "Resistance and Support" indicator from the QuickList into the price window. You will be
prompted to enter the "Look Back" periods. You should select the same time periods you used with the "Moving
Average".
Finally, drag the "Resistance and Support * F" indicator into the price window. You will be prompted to enter the
"Percentage" and the "Look Back" periods. If you would like the indicator to be a 10% difference from the
"Resistance and Support" line, you would enter 10. You should select the same time periods you used with the
"Moving Average".
Allan McNichol
Equis International
1998 October TASC Trader's Tip - "Combining Statistical and
Pattern Analysis", Shark - 32
In MetaStock for Windows you can use the Expert Advisor to recreate the "Shark - 32" signals on your charts
as discussed in Walter T. Down's article "Combining Statistical and Pattern Analysis".
First, choose Expert Advisor from the Tools menu in MetaStock 6.5. Next, choose New and enter the following
formulas:
Name:
Click the Name tab and enter "Shark - 32" in the Name field.
Trends:
Click the Trends tab and enter the following formulas in the Bullish and Bearish fields.
Bullish: Mov(C,5,S)>Mov(C,20,S);
Bearish: Mov(C,5,S)<Mov(C,20,S);
Highlights:
Click the Highlights tab, choose New, and enter "3rd Bar" in the Name field. Now change the color in the Color
field to Blue. Finally, enter the following formula in the Condition field, and then choose OK.
Symmetry:=.28;
Apex:=(H+L)/2;
WB:=Ref(H,-2)-Ref(L,-2);
Shark:=If((H<Ref(H,-1) AND L>Ref(L,-1) AND Ref(H,-1)<Ref(H,-2) AND Ref(L,-1)>Ref(L,-2))=1,If(Apex <=
(Ref(H,-2)-(WB*Symmetry)) AND Apex >= (Ref(L,-2)+(WB*Symmetry)) ,1,0),0);
Shark;
Using the same method as above, enter the following 2 highlight formulas.
Name: 2nd Bar
Color: Blue
Condition:
Symmetry:=.28;
Apex:=(H+L)/2;
WB:=Ref(H,-2)-Ref(L,-2);
Shark:=If((H<Ref(H,-1) AND L>Ref(L,-1) AND Ref(H,-1)<Ref(H,-2) AND Ref(L,-1)>Ref(L,-2))=1,If(Apex <=
(Ref(H,-2)-(WB*Symmetry)) AND Apex >= (Ref(L,-2)+(WB*Symmetry)) ,1,0),0);
Ref(Shark,+1)=1;
Name: 1st Bar
Color: Blue
Condition:
Symmetry:=.28;
Apex:=(H+L)/2;
WB:=Ref(H,-2)-Ref(L,-2);
Shark:=If((H<Ref(H,-1) AND L>Ref(L,-1) AND Ref(H,-1)<Ref(H,-2) AND Ref(L,-1)>Ref(L,-2))=1,If(Apex <=
(Ref(H,-2)-(WB*Symmetry)) AND Apex >= (Ref(L,-2)+(WB*Symmetry)) ,1,0),0);
Ref(Shark,+2)=1;
Symbols:
Click the Symbols tab, choose New and enter "Shark Buy" in the Name field. Now enter the following formula in
the Condition field.
Symmetry:=.28;
Apex:=(H+L)/2;
WB:=Ref(H,-2)-Ref(L,-2);
Shark:=If((H<Ref(H,-1) AND L>Ref(L,-1) AND Ref(H,-1)<Ref(H,-2) AND Ref(L,-1)>Ref(L,-2))=1,If(apex <=
(Ref(H,-2)-(WB*Symmetry)) AND Apex >= (Ref(L,-2)+(WB*Symmetry)) ,1,0),0);
Buyok:=Cross(C,ValueWhen(1,Shark=1,Ref(H,-2)));
Chk:=Cum(Buyok)-ValueWhen(1,Shark=1,Cum(Buyok));
ValidChk:=Alert(Shark=1,25);
{Note* The above ValidChk variable makes the Shark signal valid for 25 periods. If the price does not cross
above the High value of the base within 25 periods, you will not receive a signal. You can change the number of
periods by changing 25 to the number of periods you desire. *}
Buy:= Buyok=1 AND Ref(Chk,-1)=0 AND ValidChk=1;
Buy;
Click the Graphic tab. Change the symbol in the Graphic field to Buy Arrow. Now change the color in the Color
field to Green. Finally, type "Buy" in the Label field, and then choose OK.
Using the Same method as above, enter the following Symbol formula.
Name: Shark Sell
Condition:
Symmetry:=.28;
Apex:=(H+L)/2;
WB:=Ref(H,-2)-Ref(L,-2);
Shark:=If((H<Ref(H,-1) AND L>Ref(L,-1) AND Ref(H,-1)<Ref(H,-2) AND Ref(L,-1)>Ref(L,-2))=1,If(apex <=
(Ref(H,-2)-(WB*Symmetry)) AND Apex >= (Ref(L,-2)+(WB*Symmetry)) ,1,0),0);
Sellok:=Cross(ValueWhen(1,Shark=1,Ref(L,-2)),C);
Chk:=Cum(Sellok)-ValueWhen(1,Shark=1,Cum(Sellok));
ValidChk:=Alert(Shark=1,25);
{Note* The above ValidChk variable makes the Shark signal valid for 25 periods. If the price does not cross
below the Low value of the base within 25 periods, you will not receive a signal. You can change the number of
periods by changing 25 to the number of periods you desire. *}
Sell:= Sellok=1 AND Ref(Chk,-1)=0 AND ValidChk=1;
Sell;
Symbol: Sell Arrow
Color: Red
Label: Sell
After you have finished creating the Symbol formulas, you can attach the Expert to your chart by choosing
Expert Advisor from the Tools Menu. Select the Expert called "Shark -32" from your list of Experts, choose
Attach, and then Close.
1
51