Rank: Advanced Member
Groups: Registered, Registered Users Joined: 1/19/2005(UTC) Posts: 1,065 Location: Koh Pha-Ngan, Earth
Was thanked: 2 time(s) in 2 post(s)
|
This updated indicator now includes historical as well as yearly RoC plots.
[code:1:2e152c4d21]
==========
Yearly RoC
==========
---8<-----------------------------
{ Yearly Rate of Change (RoC) v4.0
©Copyright 2004~2006 Jose Silva.
The grant of this license is for personal use
only - no resale or repackaging allowed.
All code remains the property of Jose Silva.
http://www.metastocktools.com }
{ User inputs }
method:=Input("Method: [1]%percent, [2]$points",1,2,1);
yr:=Input("RoC for Year [1800~2200]",
1800,2200,2004);
yrNr:=Input("Yearly RoC: [1]Year, [2]Yearly, [3]Historical",1,3,2);
plot:=Input("plot: [1]RoC, [2]Year signals",
1,2,1);
{ Start/End of year }
nuYear:=Year()<>Ref(Year(),-1) OR Cum(1)=2;
YearEnd:=PeakBars(1,
-(nuYear OR Cum(IsDefined(nuYear))=1),1)=0;
init:=Cum(IsDefined(YearEnd))=1;
{ Data Array }
x:=C;
{ Yearly $ RoC change }
chPts:=x-ValueWhen(1,YearEnd,x);
chPts:=If(YearEnd=0,chPts,
Ref(chPts,-1)+x-Ref(x,-1));
{ Yearly % RoC change }
chPer:=(x/ValueWhen(1,YearEnd,x)-1)*100;
chPer:=If(YearEnd=0,chPer,
Ref(chPer,-1)+(x/Ref(x,-1)-1)*100);
{ Select %/$ RoC method }
ch:=If(method=1,chPer,chPts);
{ Restrict RoC to selected year }
chYear:=If(Year()=yr,ch,0);
chYear:=If(Year()=yr,chYear,
ValueWhen(1,
init OR YearEnd AND Year()=yr,chYear));
{ Historical RoC from beginning of chart }
chAllPts:=x-ValueWhen(1,Cum(1)=1,x);
chAllPer:=(x/ValueWhen(1,Cum(1)=1,x)-1)*100;
{ Select %/$ historical RoC method }
chAll:=If(method=1,chAllPer,chAllPts);
{ Select type of Yearly RoC }
YearRoc:=If(yrNr=1,chYear,If(yrNr=2,ch,chAll));
{ Plot in own window }
If(plot=1,YearRoc,nuYear-YearEnd)
---8<-----------------------------
[/code:1:2e152c4d21]
jose '-)
|