StDay:=
Input
(
"start Day"
,1,31,1);
StMnth:=
Input
(
"start Month"
,1,12,1);
StYear:=
Input
(
"start Year"
,1800,2200,2006);
growth:=
Input
(
"Trendline Yearly Growth %pa"
,
-1000,1000,20);
type:=
Input
(
"Trendline based on: [1]Calendar days, [2]Bars"
,1,2,1);
plot:=
Input
(
"[1]TrendLine, [2]Real %pa, [3]Tline-Real Diff"
,1,3,1);
active:=
Year
()>StYear
OR
(
Year
()=StYear
AND
(
Month
()>StMnth
OR
Month
()=StMnth
AND
DayOfMonth
()>=StDay));
date:=active
AND
Alert
(active=0,2)
OR
Cum
(1)=1;
signal:=date
AND
Cum
(date)=
LastValue
(
Cum
(date));
signalVal:=
ValueWhen
(1,signal,
C
);
leap:=
Frac
(
Year
()/4)=0
AND
Frac
(
Year
()/100)<>0
OR
Frac
(
Year
()/400)=0;
y:=
Year
()*365+
Int
(
Year
()/4)
-
Int
(
Year
()/100)+
Int
(
Year
()/400)-730484;
m:=
If
(
Month
()=2,31-leap,
If
(
Month
()=3,59,
If
(
Month
()=4,90,
If
(
Month
()=5,120,
If
(
Month
()=6,151,
If
(
Month
()=7,181,
If
(
Month
()=8,212,
If
(
Month
()=9,243,
If
(
Month
()=10,273,
If
(
Month
()=11,304,
If
(
Month
()=12,334,
-leap)))))))))));
DayNr:=y+m+
DayOfMonth
();
growth:=growth/
If
(type=1,365,252);
counter:=
If
(type=2,
BarsSince
(signal),
DayNr-
ValueWhen
(1,signal,DayNr));
trend:=signalVal*(1+counter*growth/100);
actual:=(
C
/signalVal-1)*36500
/Max(DayNr-
ValueWhen
(1,signal,DayNr),.000001);
trend:=
If
(plot=1,trend,counter*growth);
If
(plot=3,actual-trend,trend);
If
(plot=1,trend,
If
(plot=2,actual,actual-trend))