Page 9
Sideways Channels Exploration
Periodicity: Daily
Formulas
ColumnA: Top
Mov(Peak(1,H,1),45,S)-Ref(Mov(Peak(1,H,1),45,S),-45)
ColumnB: Bottom
Mov(Trough(1,L,1),45,S)-Ref(Mov(Trough(1,L,1),45,S),-45)
Filter:
ColA < 1 AND ColA > -1 AND ColB < 1 AND ColB > -1
Congestion Index
((HHV(C,80)-LLV(C,80))/LLV(C,80))*100
Consolidation breakout (upside)
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)
Consolidation breakout (downside)
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)
from Richard Estes
Stochastic and RSI System
Mov((RSI(8)-LLV(RSI(8),8))/(HHV(RSI(8),8)-(LLV(RSI(8),8))),5,w)*100
A formula like this works best with confirming indicators. If the
MACD 13-34-89 is above the zero line (purple line in window 2
above), it confirms and uptrend and the indicator is usually more
accurate. If the MACD 13-34-89 is below the zero line, then a
"short" indication from the StochRSI may give better
results.StochRSI 13 also gives excellent indicators- in this index
it had 4 out of 5 winning signals in two year period. The time
between signals is of course longer. Check this method out on your
favorite issues.
from Andy G.
andyg@megsinet.net
BDPL
Trend Filter
cum ((if ((mov((C-ref(C,-1)),21,s))>0,1,-1) *
pwr(((mov((pwr(C-ref(C,-1),2)),21,s))+1),.5)) +
((pwr(((pwr(C-ref(C,-1),2))+1),.5))) * if ((C>ref(C,-1)),1,-1))
(fml(" BPDL Trend Filter") - (ref((fml(" BPDL Trend Filter")),-21)))
/ ((hhv(fml(" BPDL Trend Filter"),21)) - (llv(fml("BPDL Trend
Filter"),21)))
BUY -1 SELL 1
PFE
Indicator
Mov(If(C > Ref(C,-9), Sqr( Pwr( ROC(C,9,$),2) + Pwr(10,2))
/ Sum( Sqr( Pwr( ROC(C,1,$),2) +1), 9),-Sqr( Pwr(
ROC(C,9,$),2) + Pwr( 10,2)) / Sum(Sqr(Pwr(ROC(C,1,$),2)
+1),9)) * 100,5,E)
I use a 80, -80 trendline. I have stuck it in different things at
different times. Right now I have it crossing -80 with MACD 4, 35,5,
crossing, RSI(9) up one day, and selling pressure down one day.
from Stephen Zodkov
21 Day Trigger
Look at these two oscillators in MSWIN, and compare them to Dahl.
Put a 21 day EMA on each, think of the 21 day ema as a trigger. See
what they tell you -- Dahl is long term, Ian is shortest term.
Raschke Oscillator = Mov(Fml( "Raschke 3-10" ),16,E)
where "Raschke 3-10" = Mov(C,3,S) - Mov(C,10,S)
Ian Oscillator = (Mov(C,4,S)-Mov(C,9,S)) + (Mov(C,9,S)-Mov(C,17,S))
from Alton Stephens
FibboGatto
FG1:
((c+ref(c,-1)+ref(c,-2)+ref(c,-3)+ref(c,-5)+ref(c,-8)+ref(c,-13)+ref(c,-21)+ref(c,-34)+ref(c,-55)+ref(c,-89)+ref(c,-144))/c)*-1
{{{adding closing price only on fib days 1,2,3,5,8,13,21,34,55,89
and 144 and then dividing by today's close}}}
FG2:
mov(((c+ref(c,-1)+ref(c,-2)+ref(c,-3)+ref(c,-5)+ref(c,-8)+ref(c,-13)+ref(c,-21)+ref(c,-34)+ref(c,-55)+ref(c,-89)+ref(c,-144))/c)*-1,34,e)
{{{ 34 period mov avg of above indicator}}}
Look for crosses of the two indicators for positive or negatives.
Now, there are many whipsaws. I don't recommend this as a *system*
at all, just as an indicator. It really highlights some big moves
but measuring it with the system test is useless. You must use this
as ONE of the tools -- not THE tool.
Regards, Jerry Gatto
Dynamic Zones
{Zamansky&Stendahl's Dynamic Zones for MS6.5 (From the TASC July1997
article). First, for the Lookback Periods plot a 9-day RSI along
with StDev adjusted rolling 70-day SMAs; e.g., as can be seen in the
article's S&P500-example}
PR:=Input("Enter Periods for RSI",1,100,9);
PB:=Input("Enter Periods for BUY",1,100,70);
PS:=Input("Enter Periods for SELL",1,100,70);
UpZone:=Mov(RSI(PR),PS,S)+(1.3185 *Stdev(RSI(PR),PS));
LwZone:=Mov(RSI(PR),PB,S)-(1.3185 *Stdev(RSI(PR),PB));
UpZone;
LwZone;
Most indicators use a fixed zone for buy and sell signals. Here's a
concept based on zones that are responsive to past levels of the
indicator.
One approach to active investing employs the use of oscillators to
exploit tradable market trends. This investing style follows a very
simple form of logic: Enter the market only when an oscillator has
moved far above or below traditional trading levels. However, these
oscillator-driven systems lack the ability to evolve with the market
because they use fixed buy and sell zones. Traders typically use one
set of buy and sell zones for a bull market and substantially
different zones for a bear market. And therein lies the problem.
Once traders begin introducing their market opinions into trading
equations, by changing the zones, they negate the system's
mechanical nature. The objective is to have a system automatically
define its own buy and sell zones and thereby profitably trade in
any market -- bull or bear. Dynamic zones offer a solution to the
problem of fixed buy and sell zones for any oscillator-driven
system.
The algorithm for the dynamic zones is a series of steps. First,
decide the value of the lookback period t. Next, decide the value of
the probability Pbuy for buy zone and value of the probability Psell
for the sell zone.
The area above and below the dynamic zones constitute the upper and
lower 10% boundaries. The zones appear to evolve with the market
because they use a rolling 70-day period of indicator values in
their construction.
Dahl
Variations
Dahl Volume Trend
Mov(C,55,VOL)-Ref(Mov(C,55,VOL),-15)
PVT Dahl Trend:
Mov((PVT()-Ref( PVT(),-15)),55,E)
Smoothed OBV Vol 88:
Mov((OBV()-Mov(OBV(),88,VOL)),55,E)
OBV Dahl Trend:
Mov((OBV()-Ref(OBV(),-15)),55,E)
Compare each to ordinary Dahl or some other trend indicator.
Remember, I put a 21 EMA trigger on each.
from Alton Stephens
Dahl Oscillator
I came up with the following to put Dahl into an oscillator format.
It is the STOCHRSI formula, replacing RSI with a 55 day Dahl. Does
this reflect your thinking on the indicator? It seems to lead
changes in Dahl by a period or two, but doesn't seem as fast as the
STOCHRSI indicator. Checking a few stocks in my database, there are
very few times that it goes below zero, but it will 'peg out' at 100
for significant periods. Perhaps the 14 day smoothing is too short
in relation to the 55 period primary indicator. A longer MA period
seems to smooth it out significantly, which would seem to defeat the
purpose of using an oscillator.
Mov((mov(c,55,simp) - ref(mov(c,55,simp),-15)- LLV(mov(c,55,simp) -
ref(mov(c,55,simp),-15),14))/(HHV(mov(c,55,simp) -
ref(mov(c,55,simp),-15),14)-(LLV(mov(c,55,simp) -
ref(mov(c,55,simp),-15),14))),14,E)*100
from Jim O'Donnell
Full Formula
for RSI
{The following is copied from the Formula Field of my *RSI
canonical_12_day_for_P_I indicator. Change m if you choose another #
of periods n for rsi.}
{I wrote my own "canonical" RSI(12) which coincides with MetaStock's
RSI(12) if m=2*n-1 where m is used below in Mov( ,m,E); n - a number
of periods in rsi(n). Mind that since I didn't use those particular
tricks from the standard rsi(n) to shorten the initial transitional
period, this function and standard rsi(n) differ for about month or
so from the day 1. It was not that important for me, so I used this
shortcut.}
100 - 100/
(1.+ If(Mov(If(P-Ref(P,-1)<0,-(P-Ref(P,-1)),0),23,E)=0,1000000,
Mov(If(P-Ref(P,-1)>0, P-Ref(P,-1), 0),23,E)
/Mov(If(P-Ref(P,-1)<0,-(P-Ref(P,-1)),0),23,E)
))
From: Vitaly Larichev
vitaly@superlink.com
2 Day Hammer Exploration
Here is an exploration that pattern traders may find useful. It
tends to pick up two patterns: a two day hammer, that is if you
combined the open for day 1 and close for day 2, the resulting bar
would be a hammer, and a pattern similar to a Ross Hook, as I
understand a Ross Hook.
Ref((C-L)/(H-L),-1)<=.30 AND
((C-L)/(H-L)) >= .70 AND
Ref(ATR(1),-1) >ATR(10) AND
ATR(1) >= ATR(10)
from Styk
ATR
Trailing Stop Loss
For Long:
HHV(H - 2.5*ATR(5),10)
For Short:
LLV(L + 2.5*ATR(5),10)
Furthermore, it may be beneficial to dynamically adjust the number
of lookback periods in the HHV() or the LLV() function.
Yngvi Hardarson
Sine-Weighted Moving Average
Formula:
PI:=3.1415926;
SD:=180/6;
S1:=Sin(1*180/6)*C;
S2:=Sin(2*180/6)*Ref(C,-1);
S3:=Sin(3*180/6)*Ref(C,-2);
S4:=Sin(4*180/6)*Ref(C,-3);
S5:=Sin(5*180/6)*Ref(C,-4);
Num:=S1+S2+S3+S4+S5;
Den:=Sin(SD)+Sin(2*SD)+Sin(3*SD)+Sin(4*SD)+Sin(5*SD);
Num/Den
WRO and WSO
Indicators
In the May 1998 issue of STOCKS & COMMODITIES, a Traders' Tip
provided
MetaStock formulas for calculating support and resistance levels and
the WRO
and WSO support and resistance oscillators. The Traders' Tip was
based on my
article, "Automated Support And Resistance," also in that issue.
Since then,
I've received many E-mail messages from STOCKS & COMMODITIES readers
about
it.
While the method was well received, the formulas provided were a bit
confusing and could use some clarification. Further, execution was
slow and
screening of large numbers of stocks was difficult. Since then, I
have
developed a faster and improved method for computing these
indicators.
To begin, the support levels S1 through S6 and the resistance levels
R1
through R6 are separate indicators (12 in all), and each should be
entered
using the custom indicator option in the indicator builder.
S1 Indicator:
ValueWhen(1, Ref(L,-4) = LLV(L,9), Ref(L,-4))
S2 Indicator:
ValueWhen(2, Ref(L,-4) = LLV(L,9), Ref(L,-4))
S3 Indicator:
ValueWhen(3, Ref(L,-4) = LLV(L,9), Ref(L,-4))
S4 Indicator:
ValueWhen(4, Ref(L,-4) = LLV(L,9), Ref(L,-4))
S5 Indicator:
ValueWhen(5, Ref(L,-4) = LLV(L,9), Ref(L,-4))
S6 Indicator:
ValueWhen(6, Ref(L,-4) = LLV(L,9), Ref(L,-4))
R1 Indicator:
ValueWhen(1, Ref(H,-4) = HHV(H,9), Ref(H,-4))
R2 Indicator:
ValueWhen(2, Ref(H,-4) = HHV(H,9), Ref(H,-4))
R3 Indicator:
ValueWhen(3, Ref(H,-4) = HHV(H,9), Ref(H,-4))
R4 Indicator:
ValueWhen(4, Ref(H,-4) = HHV(H,9), Ref(H,-4))
R5 Indicator:
ValueWhen(5, Ref(H,-4) = HHV(H,9), Ref(H,-4))
R6 Indicator:
ValueWhen(6, Ref(H,-4) = HHV(H,9), Ref(H,-4))
These 12 indicators should be individually plotted with the price
data as
points, not lines (click on each and change the style to the one on
the
bottom of the style menu). The color red is recommended for the
support
levels S1 through S6 and the color blue for the resistance levels R1
through
R6. Entering these formulas and changing the style takes a bit of
time, but
once done, they can be saved as a template and easily applied to
another
stock.
If you are interested only in computing the WRO and WSO indicators,
then
these formulas can be entered as shown here. It is not necessary to
compute
S1 through S6 or R1 through R6, since the new formulas are now
self-contained. The new WRO and WSO formulas also contain max and
min
functions to ensure that the change for each level is either zero or
1. This
avoids a rare but occasional error when the price change is very
large over
a short period.
WSO Indicator:
L1:=ValueWhen(1,Ref(L,-4)=LLV(L,9),Ref(L,-4));
L2:=ValueWhen(2,Ref(L,-4)=LLV(L,9),Ref(L,-4));
L3:=ValueWhen(3,Ref(L,-4)=LLV(L,9),Ref(L,-4));
L4:=ValueWhen(4,Ref(L,-4)=LLV(L,9),Ref(L,-4));
L5:=ValueWhen(5,Ref(L,-4)=LLV(L,9),Ref(L,-4));
L6:=ValueWhen(6,Ref(L,-4)=LLV(L,9),Ref(L,-4));
L1M:= Max(0,Min(1,Int(L1/C)));
L2M:= Max(0,Min(1,Int(L2/C)));
L3M:= Max(0,Min(1,Int(L3/C)));
L4M:= Max(0,Min(1,Int(L4/C)));
L5M:= Max(0,Min(1,Int(L5/C)));
L6M:= Max(0,Min(1,Int(L6/C)));
100*(1-(L1M+L2M+L3M+L4M+L5M+L6M)/6)
WRO Indicator:
L1:=ValueWhen(1,Ref(H,-4)=HHV(H,9),Ref(H,-4));
L2:=ValueWhen(2,Ref(H,-4)=HHV(H,9),Ref(H,-4));
L3:=ValueWhen(3,Ref(H,-4)=HHV(H,9),Ref(H,-4));
L4:=ValueWhen(4,Ref(H,-4)=HHV(H,9),Ref(H,-4));
L5:=ValueWhen(5,Ref(H,-4)=HHV(H,9),Ref(H,-4));
L6:=ValueWhen(6,Ref(H,-4)=HHV(H,9),Ref(H,-4));
L1M:= Max(0,Min(1,Int(L1/C)));
L2M:= Max(0,Min(1,Int(L2/C)));
L3M:= Max(0,Min(1,Int(L3/C)));
L4M:= Max(0,Min(1,Int(L4/C)));
L5M:= Max(0,Min(1,Int(L5/C)));
L6M:= Max(0,Min(1,Int(L6/C)));
100*(1-(L1M+L2M+L3M+L4M+L5M+L6M)/6)
The WRO and WSO oscillators are generally plotted together on a
separate
scale from the price plot. It is helpful to add horizontal lines at
zero and
100 on this same scale. Horizontal lines can be added by clicking on
the
indicator and selecting "horizontal lines" from the Indicator
Properties
menu.
These formulas run much faster (by 40 times) than the earlier
formulas, and
theyÕve been tested successfully with both end-of-day data and
real-time
data using MetaStock Professional Version 6.51.
-- Mel Widner, Ph.D., 703 791-5910
Gap 1 System
{BUY}
L>Ref(H,-1) OR
Cum(1)=LastValue(Cum(1))
{SELL}
H<Ref(L,-1) OR
Cum(1)=LastValue(Cum(1))
Gap 2 System
{BUY}
N1:=5;
L>Ref(HHV(H,N1),-1) OR
Cum(1)=LastValue(Cum(1))
{SELL}
N1:=5;
H<Ref(LLV(L,N1),-1) OR
Cum(1)=LastValue(Cum(1))
Gap 3 System
{Enter Long}
N1:=5;
L>Ref(HHV(H,N1),-1) OR
Cum(1)=LastValue(Cum(1))
{Exit Long}
N2:=3;
C<Ref(LLV(L,N2),-1) OR
Cum(1)=LastValue(Cum(1))
{Enter Short}
N1:=5;
H<Ref(LLV(L,N1),-1) OR
Cum(1)=LastValue(Cum(1))
{Exit Short}
N2:=3;
C>Ref(HHV(H,N2),-1) OR
Cum(1)=LastValue(Cum(1))
{from Ton Maas}
TSI
and TSI Moving Average
100*(Mov(Mov(Roc(C,1,$),25,E),13,E)/Mov(Mov(Abs(Roc(c,1,$)),25,E),13,E))
Mov(Fml("TSI"),20,E)
RSI
Divergence Exploration
{A simple exploration filter formula for finding a bullish
divergence
between the RSI and the price is shown below. To find a bearish
divergence,
replace > with <. The differences in the trough function was found
through
an optimization routine and they may not be the best values for your
application.}
Ref(RSI(14),-1)>Trough(1,RSI(14),.8)
AND
Ref(CLOSE,-1)<Trough(1,CLOSE,.2)
{from Dan in Pocatello, ID}
Candle
- Hanging Man/Hammer and CCI Trading System
enter long:
(Fml("Candle - Hammer")=1) AND
(CCI(11)<-50)
close long:
((CCI(11)<80) AND
(Ref(CCI(11),-1)>80)) OR
((CCI(11)<-80) AND
Ref(CCI(11)>-80,-1))
enter short:
(Fml("Candle - Hanging Man'")=-1) AND
(CCI(11)>50)
close short:
((CCI(11)>-80) AND
(Ref(CCI(11),-1)<-80)) OR
((CCI(11)<80) AND
Ref(CCI(11)>80,-1))
Stix Indicator
Mov((H+L)/2,5,S)-Mov((H+L)/2,35,S)
RSI Divergence
{RSI(9) DIVERGENCE BUY:}
If(RSI(9) >= HHV(RSI(9),19) AND CLOSE <HHV(CLOSE,19), 1,0) OR
If(CLOSE <= LLV(CLOSE,19) AND RSI(9) > LLV(RSI(9),19), 1,0)
{RSI(9) DIVERGENCE SELL:}
If(CLOSE >= HHV(CLOSE,19) AND RSI(9)<HHV(RSI(9),19),1,0) OR
If(RSI(9) <= LLV(RSI(9),19) AND CLOSE > LLV(CLOSE,19),1,0)
{You can substitute any formula for the "RSI(9)"}
{from Mike Arnoldi}
Denvelope (RSI)
pds:=Input("Periods",2,200,14);
sd:=Input("Standard Deviations",.01,10,2);
D1:= RSI(pds);
alpha:=2/(pds+1);
mt:=alpha*D1+(1-alpha)*(If(Cum(1)<pds,D1,PREV));
ut:=alpha*mt+(1-alpha)*(If(Cum(1)<pds,D1,PREV));
dt:=((2-alpha)*mt-ut)/(1-alpha);
mt2:=alpha*Abs(D1-dt)+(1-alpha)*PREV;
ut2:=alpha*mt2+(1-alpha)*PREV;
dt2:=((2-alpha)*mt2-ut2)/(1-alpha);
but:=dt+sd*dt2;
blt:=dt-sd*dt2;
blt;
dt;
but;
{from Adam Hefner
VonHef@email.msn.com }
High Low
Len:=Input("Periods",1,400,89);
(Mov((H - L + Abs(H - Ref(C,-1)) + Abs(L - Ref(C,-1)) ),len,E))/2
{ from Bob bjagow@jps.net }
Cyclical System
from Ton Maas ms-irb@wxs.nl
"Trading Stocks With A Cyclical System" by Jeffrey Owen Katz
(TASC-Feb1999).
(Translated for MetaStock 6.5 by Ton Maas -The Netherlands -
June1999).
----------------------------------------------------------------------------
(The system's original Easy Language formulas+system were derived
from
theabove mentioned TASC article). My guess is that Equis (Alan
McNichol) was
not in the possession of them when he wrote the Equis version of the
system,
back in the Feb99 Trader's Tips section of TASC).
-----------------------
MetaStock 6.5 Indicator
-----------------------
Name:
Cyclical System - J O Katz
Formula:
{TASC Feb99}
thresh:= {omit whipsaw} 4;
k:= {roc comparison period} 3;
m:= {cycle period} 63;
hld:= {maximum period holding position} 10;
Value1:= {volatility}
Stdev(Mov(C,m,S)-Mov(C,m+k,S),20);
Value2:= {roc, relative comparison ratio}
Mov(C,m,S)-Mov(C,m+k,S);
tv1:= thresh*Value1;
EL:={Enter Long} Value2>tv1;
CL:={Close Long} Ref(Cross(Value2,tv1),-hld);
ES:={Enter Short} Value2<tv1;
CS:={Close Short} Ref(Cross(tv1,Value2),-hld);
JKcycl:=If((EL>0)=1,+10,
If((ES>0)=1,-10,0));
JKcycl
---------------------------
MetaStock 6.5 System Tester
---------------------------
Name:
Jeffrey Owen Katz - Cyclical System
Notes:
{February 1999 - TASC-article (see also TRADERS' TIPS)}
Formulas:
{copy-repeat all that is printed below when applying for the right
rule}
thresh:= {omit whipsaw} 4;
k:= {roc comparison period} 3;
m:= {cycle period} 63;
hld:= {maximum period holding position} 10;
Value1:= {volatility}
Stdev(Mov(C,m,S)-Mov(C,m+k,S),20);
Value2:= {roc, relative comparison ratio}
Mov(C,m,S)-Mov(C,m+k,S);
tv1:= thresh*Value1;
Rules:
{Enter Long} Value2>tv1
{Close Long} Ref(Cross(Value2,tv1),-hld)
{Enter Short} Value2<tv1
{Close Short} Ref(Cross(tv1,Value2),-hld)
{After entering the formulas, click OK. Then click Options. On the
Testing
page, set the Trade Delay to zero, set Positions to "both", and then
set any
other desired options (apart from Optimizing, which is not
advisable; leave
the factory default settings). Click OK to save the changes, and
then open a
chart and run the system.}
Body Momentum
{I was reading in Perry Kaufman's latest book and he described a
little
oscillator he called "Body Momentum". This simply calculates the
momentum of
the closes above the opens versus the closes below the opens. The
theory is
that as prices move up, closing prices will be higher than opening
prices
and vice-versa for down. If this oscillator is above 70 then the
whites
(Candle-sticks) dominate and below 30 the blacks are dominant.}
{I also added a 3 day moving average to the calculation (for
smoothing).}
{Here is the code:}
Lb:=Input("Look-Back Period?",3,60,14);
B:=CLOSE - OPEN;
Bup:= Sum(B > 0, Lb);
Bdn:= Sum(B < 0, Lb);
BM:=(Bup/(Bup+Bdn))*100;
Mov(Bm,3,S)
{from Adam Hefner}
ST Oscillator
{The StTO is really nothing unique. It is basically a momentum
indicator and
plots very similar to the "Chande Momentum Oscillator" with the main
difference being the "StTO" doesn't seem to swing as far as the CMO.
I am not sure how the math is calculated for the CMO, but the
(basic) math
for the StTO is: (Close- Yesterday's Close) /
(H-L)}
{Here is the MetaStock code I use:}
{name: StTO}
{Short-term Trend Oscillator}
Lb:=Input("Smoothing Period?",1,60,5);
Num:=C-Ref(C,-1);
Den:=H-L;
Mn:=If(Mov(Num,Lb,S)=0,.01,Mov(Num,Lb,S));
Md:=If(Mov(Den,Lb,S)=0,.01,Mov(Den,Lb,S));
(Mn/Md)*100
{Adam Hefner}
CCI
Spike Trading System
{This system uses the momentum Commodity Channel Index (CCI)
indicator to
find short-term bottoms in the market. The CCI indicator is
extremely
volatile and is generally difficult to use when trading the S&P 500
Index.
We, however, have turned this volatility into a trading advantage by
using
the spread or gap between the CCI index and its moving average as a
reversal
signal. Specifically if the gap is larger then a certain percentage
and CCI
indicator crosses above its moving average we buy the market. The
system
remains in the market for a short period of time, exiting the trade
as the
indicators cross to the downside. As designed, this system only
trades long
the market; it can however be altered to short the market. It is
best used
in choppy bullish markets similar to the 1995 bull market.}
{Trading Tactics: This short-term bullish trading system exploits
over
extended markets. Futures, options, and mutual fund traders should
take full
advantage of this high probability trading system, either by taking
outright
positions or avoiding declining markets. The code for this system
can be
reversed to trade short positions. This system should be used in
place of
longer-term momentum systems in strong bullish choppy type markets.
This
system rarely exits at the market intermediate peak, so other
exiting
signals may be used in place of our indicator crossover technique.}
{Enter long:}
Ref(CCI(13)/(Mov(CCI(13),3,S)),-1)>1.5 AND
Cross(CCI(13),(Mov(CCI(13),3,S))) AND
Ref(CCI(13),-1)<-25
{Exit long:}
Cross((Mov(CCI(13),3,S)),CCI(13)) AND
Ref(CCI(13),-1)>200
{from Craig Monroe}
LookBack
Formula: X := Stdev(C, 30);
Y := Ref(X, -1);
Z := 1+((X-Y)/X);
If(Cum(1)=1, 20, Min(Max(Prev*Z, 20), 60))
Name: BuyBreak
Formula: HHV(H, LastValue(Fml("LookBack")+Prev-Prev))
Name: BuyExit
Formula: LLV(L, LastValue(Fml("LookBack")/2+Prev-Prev))
Name: SellBreak
Formula: LLV(L, LastValue(Fml("LookBack")+Prev-Prev))
Name: SellExit
Formula: HHV(H, LastValue(Fml("LookBack")/2+Prev-Prev))
Name: BreakWhere
Formula: TopB := Ref(Fml("BuyBreak"), -1);
LowB := Ref(Fml("SellBreak"), -1);
((O+H+L+C)/4 - LowB)*100/(TopB-LowB);
Name: DBS-System
Enter Long: H > Ref(Fml("BuyBreak"), -1)
Close Long: L < Ref(Fml("BuyExit"), -1)
Enter Short: L < Ref(Fml("SellBreak"), -1)
Close Short: H > Ref(Fml("SellExit"), -1)
This is George Pruitt's ("Futures Truth") basic system. It is also
the basic
system used as the basis for Thomas Stridsman's year-long series of
articles
about system development and tweaking.
Stochastic Momentum
SMI-Plex:=
StochMomentum(2,1,2)+StochMomentum(3,2,1)+StochMomentum(4,2,3)+StochMomentum
(5,3,5)+StochMomentum(8,21,13)+StochMomentum(13,25,2)
SMI13E-Plex:=
Mov(StochMomentum(2,1,2)+StochMomentum(3,2,1)+StochMomentum(4,2,3)+StochMome
ntum(5,3,5)+StochMomentum(8,21,13)+StochMomentum(13,25,2),13,E)
{from Craig DeHaan}
BradCCI
BradCCI: From Bill S.
Plot 1: BradCCI Line 1: (((H+L+C)/3)-Mov(C,28,S))/(.015*Std(C,28))
Plot 2: BradCCI Line 2: Std(((h+l+c)/3),28)
To Line 1, you can also add trend lines, if you wish:
Plot 1:
1. BradCCI Line 1: (((H+L+C)/3)-Mov(C,28,S))/(.015*Std(C,28))
2. trend(100,100)
3. trend(-100,-100)
4. trend(0,0)
McClellan Oscillator
rev. 01/06/97
The McClellan Oscillator, developed by Sherman and Marian McClellan,
is a
market breadth indicator that is based on the smoothed difference
between
the number of advancing and declining issues on the New York Stock
Exchange.
The McClellan Oscillator is one of the most popular breadth
indicators. Buy
signals are typically generated when the McClellan Oscillator falls
into the
oversold area of -70 to -100 and turns up. Sell signals are
generated when
the oscillator rises into the overbought area of +70 to +100 and
then turns
down.
Extensive coverage of the McClellan Oscillator is provided in their
book
Patterns for Profit .
To plot the McClellan Oscillator, create a composite security in The
DownLoader™ of Advancing Issues minus Declining Issues. Open a chart
of the
composite in MetaStock™ and plot this custom indicator.
Mov(CLOSE,19,EXPONENTIAL) - Mov(CLOSE,39,EXPONENTIAL)
McClellan Summation Index
rev. 01/06/97
The McClellan Summation Index is a market breadth indicator
developed by
Sherman and Marian McClellan. It is a long-term version of the
McClellan
Oscillator and its interpretation is similar to that of the
McClellan
Oscillator except that it is more suited to major trend reversals.
For more extensive coverage of the index refer to the book Patterns
for
Profit, by Sherman and
Marian McClellan.
McClellan suggests the following rules for use with the summation
Index:
Look for major bottoms when the Summation Index falls below -1300.
Look for major tops to occur when a divergence with the market
occurs above
a Summation Index level of +1600.
The beginning of a significant bull market is indicated when the
Summation
Index crosses above +1900 after moving upward more than 3600 points
from its
prior low (e.g. the index moves from -1600 to +2000).
The summation index is plotted by adding the Cum function to the
McCllellan
Oscillator. The formula is Cum(Mov(C,19,E) - Mov(C,39,E)).
Jack Landis' Weighted
Stochastic
(shortened to Landis)
((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,8)*.16)+(S
toch(21,5)*.10))
Landis 3 week s m a
mov(((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,8)*.16
)+(Stoch(21,5)*.10)),15,s)
landis multiple time periods
formula #1
mov(((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,8)*.16
)+(Stoch(21,5)*.10)),15,s)
formula #2
mov(((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,8)*.16
)+(Stoch(21,5)*.10)),10,s)
formula #3
mov(((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,8)*.16
)+(Stoch(21,5)*.10)),5,s)
formula #4
mov(((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,8)*.16
)+(Stoch(21,5)*.10)),2,s)
multiple slopes of landis
formula #1
slope(mov(((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,
8)*.16)+(Stoch(21,5)*.10)),15,s),2)
formula #2
slope(mov(((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,
8)*.16)+(Stoch(21,5)*.10)),10,s),2)
formula #3
slope(mov(((Stoch(8,3)*.05)+(Stoch(89,21)*.43)+(Stoch(55,13)*.26)+(Stoch(34,
8)*.16)+(Stoch(21,5)*.10)),5,s),2)
Barnes' Accelleration
The Barnes' Acceleration measures rate of price change as opposed to
price
levels
If the Barnes' Acceleration sustains the value of -1 for many days
then the
security may be ready to show strong trend or it may already be
trending.
Examine the chart for prolonged values at -1. This may indicate an
upcoming
stall or turnaround. The number of days needed may be different
depending on
the type of issue. A utility stock may need to sustain the -1 level
for 10
days whereas a highly volatile technology stock may need to sustain
the -1
trend for as little as 5 days.
From the 1981 Technical Commodity Yearbook, Robert M. Barnes
formula 1: if(mov(fml("Barnes' acceleration",2) - ref(fml("Barnes'
acceleration",2),-1),20,e)>0.0001,1, if(mov(fml("Barnes'
acceleration",2) -
ref(fml("Barnes'
acceleration",2),-1),20,e)<-0.0001,-1,0))
formula 2: mov((c-ref(c,-1))/ref(c,-1),daysm,e)
Barnes' Adaptive Forecast
Based on the premise that closing price may be predictable based on
previous
closes
See (1981 Technical Commodity Yearbook Robert M. Barnes Van Nostrand
Reinhold 1981) for theory and applications.
formula 1: if(fml("Barnes' adaptive
forecast",2)>0.05,1,if(fml("Barnes'
adaptive forecast",2)<-0.05,-1,0))
formula 2: mov(c,dayf,e) - ref(mov(c,dayf,e),-1)
Barnes' Moving Average
See (1981 Technical Commodity Yearbook Robert M. Barnes Van Nostrand
Reinhold 1981) for theory and applications.
if (c - mov( c, dayf, e) > pf,
{ Then Action } 1,
{ Else Action } if ( mov( c, dayf, e) - c > pf, { Then } -1, { Else
} 0))
{ Notice that comments may be placed within braces }
Chande
and Kroll's R2 Indicator
rev. 01/06/97
In their book "The New Technical Trader," Chande & Kroll introduce
the r2
indicator. They state that
"the primary use of r2 is as a confirming indicator" and that "it is
a
lagging indicator that shows
the strength of the trend."
In MetaStock the r2 formula is:
Pwr(Corr(Cum( 1 ),C,14,0),2)
They also present a smoothed r2 which would be:
Mov(Pwr(Corr(Cum( 1 ),C,14,0),2)*100,14,S)
For interpretation refer to Chande & Kroll's book, as stated above.
Price
Action Indicator (PAIN)
If you were only given today's open, high, low and
close, how could you make heads or tails of it?
The Price Action Indicator (PAIN) can help. The formula
returns a single value that weighs
intra-day momentum (C-O), Late Selling Pressure (LSP)
(C-L), and Late Buying Pressure
(LBP) (C-H). The formula is proven by constructing ideal
limit-up and limit down scenarios in bond
futures. The output is shown to be consistent with the
interpretation of Japanese candlestick
patterns. See Michael B. Geraty (1997). "Getting Better
Directions" Futures Vol. 26: Aug.
PAIN
((C-O)+(C-H)+(C-L))/2
Natenberg's Volatility
rev. 01/21/97
Historical volatility is defined by Sheldon Natenberg, as the
standard
deviation of the logarithmic
price changes measured at regular intervals of time. In Mr.
Natenberg's
book, "Option Volatility &
Pricing," he covers volatility in detail and gives the formula for
computing
historical volatility. In
MetaStock, the equivalent formula would be:
Std( Log( C / Ref( C ,-1 ) ) ,10 ) * Sqrt( 365 / 7 )
The above assumes Weekly Data. To utilise this with Daily Data, the
MetaStock formula would be:
Std( Log( C / Ref( C,-1) ),10 ) * Sqrt( 365 )
For further interpretation refer to the book "Option Volatility &
Pricing,"
by Sheldon Natenberg.
Nat's Volt
Std(log(c/ref(c,-1)),10)*sqr(365/7)
Tema
StochRSI Formula
I use is Tema smoothed and I subtract 0.5 so I
can plot it as a histogram. It's:}
Periods := Input("Enter Tema Smoothing Periods",5,233,13);
Tema(((RSI(Periods) - LLV(RSI(Periods),Periods)) /
((0.0001+HHV(RSI(Periods),Periods)) -
LLV(RSI(Periods),Periods))) -0.5,Periods)
{from Jim Greening}
DEVSTOP
Here's what I think a DEVSTOP is in MetaStock language, described in
Kase's
"Trading with the Odds", and better described in Kaufman's "Trading
Systems
and Methods". It uses a 2-day range, calculates an average range and
SD of
the range, and then draws 4 lines below the high, at 1 range and
0,1,2, and
3 SD's. "2.2" and "3.6" are corrections for skew of the
distribution.
AVTR:=Mov(HHV(H,2) - LLV(L,2),20, S);
SD:=Stdev(HHV(H,2) - LLV(L,2),20);
HHV(H-AVTR-3.6*SD, 20);
HHV(H-AVTR-2.2*SD,20);
HHV(H-AVTR-SD,20);
HHV(H-AVTR,20);
from Mikelu
Weekly
Pivot Point
{Weekly Pivot Point Projection 8/4/99}
Dw:=If(DayOfWeek()<=Ref(DayOfWeek(),-1),1,0);
{Weekly Typical Price}
PP1:=If(Dw=1,
{then}(Ref(HighestSince(1,Dw=1,H),-1)+
Ref(LowestSince(1,Dw=1,L),-1) +
Ref(C,-1))/3,
{else}0);
{Weekly High}
Wh1:=If(Dw=1,
{then}Ref(HighestSince(1,Dw=1,H),-1),
{else}0);
{Weekly Low}
Wl1:=If(Dw=1,
{then}Ref(LowestSince(1,Dw=1,L),-1),
{else}0);
Wh:=ValueWhen(1,Wh1>0,Wh1);
Wl:=ValueWhen(1,Wl1>0,Wl1);
PP:=ValueWhen(1,PP1>0,PP1);
{Resistance 1}
R1:=(2*PP)-Wl;
{Support 1}
S1:=(2*PP)-Wh;
{Resistance 2}
R2:=(PP-S1)+R1;
{Support 2}
S2:=PP-(R1-S1);
R2;
R1;
S1;
S2;
ATR
Modified
prd1:=input("enter ATR period",1,9999,7);
prd2:=(prd1*2)-1;
{max (absolute) of yesterday's close to today's high or today's low}
myatr1:=Max(Abs(Ref(C,-1)-H),Abs(Ref(C,-1)-L));
{max of yesterday's close to today's high or today's low or today's
range}
myatr2:=Max(myatr1,H-L);
Highest High Since Buy Signal
> Anyone know how to keep track of, for example, the highest high
since a
buy signal was triggered? I want to > add this into a system test
that I am
trying to run.
HighestSince(1, {Buy Signal-->}Cross(C,Mov(C,20,E))
,H)
from Ken
Forecast Oscillator System Alternative
Enter long:
Cross(ForecastOsc(C,21),Mov(ForecastOsc(C,21),3,E)) AND
Cross(ForecastOsc(C,21),0)
Exit long:
Cross(Mov(ForecastOsc(C,21),3,E),ForecastOsc(C,21)) AND
Cross(6,ForecastOsc(C,21))
{You can use alert() function on either if you don't require both
conditions
to fire on the same day.}
Forecast Oscillator System
Enter long:
Cross(ForecastOsc(C,21),Mov(C,3,E)) AND
Cross(ForecastOsc(C,21),0)
Exit long:
Cross(Mov(C,3,E),ForecastOsc(C,21)) AND
Cross(6,Mov(C,3,E))
Equivalent to Wilders TR
Wilders(TR,periods) = Mov(TR,2*periods-1,E)
True Range Formula
TR = (H - L + Abs(H - Ref(C,-1)) + Abs(L - Ref(C,-1)) )/2
{from Bob Jagow} |