[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: Seasonality Plot


  • Date: Wed, 16 Dec 2009 07:19:49 -0000
  • From: "Mike" <sfclimbers@xxxxxxxxx>
  • Subject: [amibroker] Re: Seasonality Plot

PureBytes Links

Trading Reference Links



If "quick and dirty" is good enough for you, you can just assume 252 trading days per trading year and then use Ref() with multiples of that number.

e.g.
years = Param("Years", 3, 1, 15, 1);
avgClose =
0
;

// Create dynamic variables for each year (excluding current)

for (y = 1
; y <= years; y++) {
   pastClose =
Ref(Close, -252
* y);
   
VarSet("Year"
+ y, pastClose);
   avgClose += pastClose;
}

avgClose /= years;

// Plot current year with thick emphasis

Plot(Close, "Close", colorDarkRed, styleThick
);

// Plot previous years with incrementing colors

for (y = 1
; y <= years; y++) {
   
Plot(VarGet("Year" + y), "" + y + " Years Ago", colorDarkRed
+ y);
}

// Plot average as solid area

Plot(avgClose, "Avg.", colorDarkRed + y, styleArea);

Note that the example assumes that the number of backyears (i.e. years variable) plus the base color (e.g. colorDarkRed) will not exceed the maximum color index found here: http://www.amibroker.com/guide/a_language.html

Mike


--- In amibroker@xxxxxxxxxxxxxxx, "Rick_Miller_98" <rick300m@xxx> wrote:
>
> I removed the nested loops line and defined MonthPer=1 and managed to get a plot.
>
> However this is looking at a month to month ROC with only 12 datapoints. A seasonality chart needs to be daily, weekly at most.
>
> Ideally the chart would have each year's performnce plotted in the background and the composite chart of all years plotted in the foreground on a daily basis.
>
> This seams like quite complicated coding. I would be willing to contribute towards a properly functioning chart Afl if anyone has it or is willing to code it.
>
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Richard" richpach2@ wrote:
> >
> > Thank you for posting this code.
> > Whitout <Nested_Includes.AFL> some values are not defined.
> > can you please advise what is the default value for MonthPer and what is the ListMonths represent?
> >
> > Regards
> > Richard
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "vlanschot" <vlanschot@> wrote:
> > >
> > > Below is some old code of mine. May get you going though.
> > >
> > > PS
> > >
> > > #include_once <Nested_Includes.AFL>
> > >
> > > Maand = Month();
> > >
> > > JanRet = ValueWhen(Maand == 1 AND Ref(Maand,1)==2,ROC(C,MonthPer));
> > > FebRet = ValueWhen(Maand == 2 AND Ref(Maand,1)==3,ROC(C,MonthPer));
> > > MarRet = ValueWhen(Maand == 3 AND Ref(Maand,1)==4,ROC(C,MonthPer));
> > > AprRet = ValueWhen(Maand == 4 AND Ref(Maand,1)==5,ROC(C,MonthPer));
> > > MayRet = ValueWhen(Maand == 5 AND Ref(Maand,1)==6,ROC(C,MonthPer));
> > > JunRet = ValueWhen(Maand == 6 AND Ref(Maand,1)==7,ROC(C,MonthPer));
> > > JulRet = ValueWhen(Maand == 7 AND Ref(Maand,1)==8,ROC(C,MonthPer));
> > > AugRet = ValueWhen(Maand == 8 AND Ref(Maand,1)==9,ROC(C,MonthPer));
> > > SepRet = ValueWhen(Maand == 9 AND Ref(Maand,1)==10,ROC(C,MonthPer));
> > > OctRet = ValueWhen(Maand == 10 AND Ref(Maand,1)==11,ROC(C,MonthPer));
> > > NovRet = ValueWhen(Maand == 11 AND Ref(Maand,1)==12,ROC(C,MonthPer));
> > > DecRet = ValueWhen(Maand == 12 AND Ref(Maand,1)==1,ROC(C,MonthPer));
> > >
> > >
> > > SeasRet =
> > > IIf(Maand == 1, LastValue(Cum(JanRet)),
> > > IIf(Maand == 2, LastValue(Cum(FebRet)),
> > > IIf(Maand == 3, LastValue(Cum(MarRet)),
> > > IIf(Maand == 4, LastValue(Cum(AprRet)),
> > > IIf(Maand == 5, LastValue(Cum(MayRet)),
> > > IIf(Maand == 6, LastValue(Cum(JunRet)),
> > > IIf(Maand == 7, LastValue(Cum(JulRet)),
> > > IIf(Maand == 8, LastValue(Cum(AugRet)),
> > > IIf(Maand == 9, LastValue(Cum(SepRet)),
> > > IIf(Maand == 10,LastValue(Cum(OctRet)),
> > > IIf(Maand == 11,LastValue(Cum(NovRet)),
> > > IIf(Maand == 12,LastValue(Cum(DecRet)),0))))))))))));
> > >
> > > SeasRet = SeasRet/(BarCount-1);
> > >
> > > KleurHist = IIf(SeasRet<0, colorRed,IIf(SeasRet>0,colorGreen,colorLightGrey));
> > >
> > > Plot(SeasRet,FullName()+" Seasonal Return for "+StrExtract(ListMonths,SelectedValue(Month()-1)),KleurHist,2+4);
> > > //Plot(OctRet,"ret",1,1);
> > > Title = "{{DATE}} -- {{INTERVAL}}\n{{VALUES}} ";
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, Rick Osborn <ricko@> wrote:
> > > >
> > > > I would be interested in that too
> > > >
> > > > Best Regards
> > > > Rick Osborn
> > > >
> > > >
> > > >
> > > >
> > > > ________________________________
> > > > From: Rick_Miller_98 <rick300m@>
> > > > To: amibroker@xxxxxxxxxxxxxxx
> > > > Sent: Mon, December 14, 2009 9:53:23 PM
> > > > Subject: [amibroker] Seasonality Plot
> > > >
> > > >
> > > > I am looking for some code to overlay multiple years on the same Jan-Dec axis and to create a composite plot of all of those years to identify seasonality trends.
> > > >
> > > > Please E-Mail me if you have it. I am willing to contribute to the cause.
> > > >
> > > > Thanks!
> > > >
> > >
> >
>



__._,_.___


**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/





Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___