HOMETRADESTATIONMETASTOCKEMAILLINKS

 

metastock indicators

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

R

S

T

U

V

W

Y

Z

#

 

 
 
 

 

Schaff Trend Cycle Indicator v1.0


{ Automatic trigger levels }

{ variables input }
buffer:=Input("Long/Short buffer zone %",
0,100,0)/100;
pdsCy:=Input("Schaff cycle periods",2,252,10);
pdsSh:=Input("Short periods",1,252,10);
pdsLg:=Input("Long periods",2,2520,21);

{ Schaff Trend Cycle }
MCD:=Wilders(MP(),pdsSh)-Wilders(MP(),pdsLg);
ST:=(MCD-LLV(MCD,pdsCy))
/(HHV(MCD,pdsCy)-LLV(MCD,pdsCy))*100;
STC:=Wilders(ST,pdsCy/2);

{ Schaff Trend Cycle }
MCD:=Wilders(MP(),pdsSh)-Wilders(MP(),pdsLg);
ST:=(MCD-LLV(MCD,pdsCy))
/(HHV(MCD,pdsCy)-LLV(MCD,pdsCy))*100;
STC:=Wilders(ST,pdsCy/2);

{ automatic trigger levels }
pk:=Ref(STC,-1)>STC AND Ref(STC,-1)>Ref(STC,-2);
pkVal:=If(pk,Ref(STC,-1),0);
pkAvg:=Cum(pkVal)/(Cum(pk)+.000001);
pkAvg:=If(pkAvg=0,100,pkAvg);
tr:=Ref(STC,-1)<STC AND Ref(STC,-1)<Ref(STC,-2);
trVal:=If(tr,Ref(STC,-1),0);
trAvg:=Cum(trVal)/(Cum(tr)+.000001);


{ STC crossover signals }
In:=Cross(pkAvg,STC);
Out:=Cross(STC,trAvg);
InInit:=Cum(In)=1;
Init:=Cum(In+Out>-1)=1;
flag:=BarsSince(Init OR In)
< BarsSince(Init OR Out)+InInit;
signals:=(InInit AND Alert(InInit=0,2)
OR flag AND Alert(flag=0,2))
-(flag=0 AND Alert(flag,2));

{ trend support/resistance levels }
STCI:=If(flag,ValueWhen(1,signals,L*(1-buffer)),
ValueWhen(1,signals=-1 OR Init,H*(1+buffer)));

{ alternative STC crossover signals method}
{bb:=BarsSince(Cross(STC,trAvg));
bs:=BarsSince(Cross(pkAvg,STC));
tb:=ValueWhen(1,Cross(STC,trAvg),H*(1+buffer));
ts:=ValueWhen(1,Cross(pkAvg,STC),L*(1-buffer));
STCI:=If(bb<bs,tb,ts);}

{ plot on price chart }
STCI
Schaff Trend Cycle Oscillator v1.0


{ Automatic trigger levels }
{ variables input }
pdsCy:=Input("Schaff cycle periods",2,252,10);
pdsSh:=Input("Short periods",1,252,10);
pdsLg:=Input("Long periods",2,2520,21);

{ Schaff Trend Cycle }
MCD:=Wilders(MP(),pdsSh)-Wilders(MP(),pdsLg);
ST:=(MCD-LLV(MCD,pdsCy))
/(HHV(MCD,pdsCy)-LLV(MCD,pdsCy))*100;
STC:=Wilders(ST,pdsCy/2);

{ automatic trigger levels }
pk:=Ref(STC,-1)>STC AND Ref(STC,-1)>Ref(STC,-2);
pkVal:=If(pk,Ref(STC,-1),0);
pkAvg:=Cum(pkVal)/(Cum(pk)+.000001);
pkAvg:=If(pkAvg=0,100,pkAvg);
tr:=Ref(STC,-1);
trVal:=If(tr,Ref(STC,-1),0);
trAvg:=Cum(trVal)/(Cum(tr)+.000001);

{ plot on own window }
pkAvg;trAvg;STC

 

 

UP

HOME

 

 

Smoothed Adapative Stochastic Oscillator

n:=Input("**Volatility** lookback length",1,50,20);
x:=Input("%K smoothing (exponential smoothing)",1,50,3);
y:=Input("%D smoothing (exponential smoothing)",1,50,3);
lenmax:=28;
lenmin:=7;
v1:=Stdev(C,n);
v2:=HHV(v1,n);
v3:=LLV(v1,n);
v4:=((v1-v3)/(v2-v3));
currlen:=(Int(lenmin+(lenmax-lenmin)*(1-v4)));
hh:=HHV(H,LastValue(currlen));
ll:=LLV(L,LastValue(currlen));
RawStochK:=((C-ll)/(hh-ll))*100;
SmoothedStochK:=Mov(RawStochK,x,E);
StochD:=Mov(SmoothedStochK,y,E);
20;
80;
StochD;
SmoothedStochK;

 

UP

HOME

 

 

Smoothed Momentum

Mov(ROC(Cum(If(C>Ref(Mov(C,10,E),-1),1,If(C<Ref(Mov(C,10,E),-1),-1,0))),5,$),5,E)

 

UP

HOME

 

 

Smoothed Offset Momentum w. Kase Filter

PK:=Mov(C,30,S) - Ref(Mov(C,30,S),-10);
Per1:=30;
MN:=Mov(Pk,Per1,S);
SD:=Stdev(Pk,Per1);
Val1:=If(MN+(1.33*SD)>2.08,MN+(1.33*SD),2.08);
Val2:=If(MN-(1.33*SD)<-1.92,MN-(1.33*SD),-1.92);
LN:=If(Ref(Pk,-1)>=0 AND Pk>0,Val1,If(Ref(Pk,-1)<=0 AND
Pk<0,Val2,0));
Green:=If(PK>Ref(PK,-1),PK,0);
Red:=If(PK<Ref(PK,-1),PK,0);
Signal:=Mov(PK,5,S);
LN;
Signal;
Green;{plot as Histogram}
Red;{plot as histogram}

 

UP

HOME

 

 

Smoothed Tick Momemtum Line

mov(roc(cum(if(C,>,ref(mov(C,10,E),-1),+1,
if(C,<,ref(mov(C,10,E),-1),-1,0))),5,$),5,E)

 

UP

HOME

 

 

Stochastic and RSI System

Mov((RSI(8)-LLV(RSI(8),8))/(HHV(RSI(8),8)-(LLV(RSI(8),8))),5,w)*100

 

UP

HOME

 

 

Stochastic PVT

Mov((PVT()-LLV(PVT(),19)) / (HHV(PVT(),19)-LLV(PVT(),19)), 5, S);
Mov(Mov((PVT()-LLV(PVT(),19)) / (HHV(PVT(),19)-LLV(PVT(),19)), 5, S),3,S);

 

UP

HOME

 

 

Stop Loss Indicator

periodsshort:=Input("periods if short",1,50,10);
periodslong:=input("periods if long",1,50,10);

HHV(H,periodsshort)-atr(periodsshort);
{stop loss level for short positions}
LLV(L,periodslong)+ATR(periodslong);
{stoploss level for long positions}

 

UP

HOME

 

 

Support and Resistance

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;

Support and Resistance Levels

AVd:=If(CLOSE>Ref(Peak(1,H,1) ,-1),
{then}1,
{else}If(CLOSE<Ref(Trough(1,L,1),-1),
{then}-1,
{else}0));
ANv:=ValueWhen(1,AVd<>0,AVd);
SuRe:=If(ANv=-1,
{then}Peak(1,H,1),
{else}Trough(1,L,1));
SuRe;

 

UP

HOME

 

 

StochRSI Indicator I

Mov((RSI(8)-LLV(RSI(8),8)) / (HHV(RSI(8),8)- (LLV(RSI(8),8))),3,E) * 100
;17
;83
StochRSI Indicator II

RSIPeriod:= Input("Enter periods for RSI",2,300,8);
HLPeriod:= Input("Enter periods for HHV and LLV",2,300,8);
MAPeriod:= Input("Enter periods for Moving Average",2,300,3);
mat:= Input(" MA Typ,S,E,W,T",1,4,2);{1=S,2=E,3=W,4=T}

If(mat=1,(Mov((RSI(RSIPeriod)-LLV(RSI(RSIPeriod),HLPeriod))/
(HHV(RSI(RSIPeriod),HLPeriod)-LLV(RSI(RSIPeriod),HLPeriod)),MAPeriod,S)*100),
If(mat=2,(Mov((RSI(RSIPeriod)-LLV(RSI(RSIPeriod),HLPeriod))/
(HHV(RSI(RSIPeriod),HLPeriod)-LLV(RSI(RSIPeriod),HLPeriod)),MAPeriod,E)*100),
If(mat=3,(Mov((RSI(RSIPeriod)-LLV(RSI(RSIPeriod),HLPeriod))/
(HHV(RSI(RSIPeriod),HLPeriod)-LLV(RSI(RSIPeriod),HLPeriod)),MAPeriod,W)*100),
If(mat=4,(Mov((RSI(RSIPeriod)-LLV(RSI(RSIPeriod),HLPeriod))/
(HHV(RSI(RSIPeriod),HLPeriod)-LLV(RSI(RSIPeriod),HLPeriod)),MAPeriod,T)*100),0))))

 

UP

HOME

 

 

Swing Chart

If( High > Ref(High,-1) AND
Low > Ref(Low,-1), High, If( High < Ref(High,-1) AND
Low < Ref(Low,-1), Low, PREV))

Swing Line

If(Mov(C,9,S) > Ref(Mov(C,9,S),-1) , (If((H>Ref(H,-1) AND
Ref(H,-1)>Ref(H,-2)),H,L)),
If(Mov(C,9,S) < Ref(Mov(C,9,S),-1) , (If((L<Ref(L,-1) AND
Ref(L,-1)<Ref(L,-2)),L,H)),C))

 

UP

HOME

 

 

 

 

 

 

site map        disclaimer        mission        privacy policy