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 '-)
|