| |
|
|
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
|
|
 |
 |
|
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;
|
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)
|
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}
|
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)
|
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);
|
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}
|
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;
|
|
 |
 |
|
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))))
|
|
 |
 |
|
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))
|
| |
|