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

RE: [amibroker] Corrolation function?



PureBytes Links

Trading Reference Links


Ho-my-god-you-guys-are-so-awesome!

I can see that this is gonna be a fun weekend!

-- John


On Sat, 13 Jul 2002, Listes trading wrote:

> Date: Sat, 13 Jul 2002 17:00:10 +0200
> From: Listes trading <listes.trading@xxxx>
> Reply-To: amibroker@xxxxxxxxxxxxxxx
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: RE: [amibroker] Corrolation function?
> 
> Hello
> 
> The following AFL code computes the autocorrelation function from lag 1 to
> 40 and normalises it with the variance.
> Histogram is plotted on the 40 last bars (last bar is lag1, last bar-1 is
> lag 2,...).
> Autocorrelations are significant when absolute value is bigger than
> confidence bands.
> Hope you like it
> 
> Waz
> 
> /* AUTOCORRELATION FUNCTION */
> 
> // Logarithmic return
> X = log(C/Ref(C,-1));
> 
> // Mean
> MX = LastValue(Cum(X)/Cum(1));
> 
> // Variance
> ACF0 = LastValue(Cum((X-MX)*(X-MX))/Cum(1));
> 
> // Autocorrelation from lag 1 to 40, normalised to variance
> ACF1 = LastValue(Cum((X-MX)*(Ref(X,-1)-MX))/(ACF0*Cum(1)));
> ACF2 = LastValue(Cum((X-MX)*(Ref(X,-2)-MX))/(ACF0*Cum(1)));
> ACF3 = LastValue(Cum((X-MX)*(Ref(X,-3)-MX))/(ACF0*Cum(1)));
> ACF4 = LastValue(Cum((X-MX)*(Ref(X,-4)-MX))/(ACF0*Cum(1)));
> ACF5 = LastValue(Cum((X-MX)*(Ref(X,-5)-MX))/(ACF0*Cum(1)));
> ACF6 = LastValue(Cum((X-MX)*(Ref(X,-6)-MX))/(ACF0*Cum(1)));
> ACF7 = LastValue(Cum((X-MX)*(Ref(X,-7)-MX))/(ACF0*Cum(1)));
> ACF8 = LastValue(Cum((X-MX)*(Ref(X,-8)-MX))/(ACF0*Cum(1)));
> ACF9 = LastValue(Cum((X-MX)*(Ref(X,-9)-MX))/(ACF0*Cum(1)));
> ACF10 = LastValue(Cum((X-MX)*(Ref(X,-10)-MX))/(ACF0*Cum(1)));
> ACF11 = LastValue(Cum((X-MX)*(Ref(X,-11)-MX))/(ACF0*Cum(1)));
> ACF12 = LastValue(Cum((X-MX)*(Ref(X,-12)-MX))/(ACF0*Cum(1)));
> ACF13 = LastValue(Cum((X-MX)*(Ref(X,-13)-MX))/(ACF0*Cum(1)));
> ACF14 = LastValue(Cum((X-MX)*(Ref(X,-14)-MX))/(ACF0*Cum(1)));
> ACF15 = LastValue(Cum((X-MX)*(Ref(X,-15)-MX))/(ACF0*Cum(1)));
> ACF16 = LastValue(Cum((X-MX)*(Ref(X,-16)-MX))/(ACF0*Cum(1)));
> ACF17 = LastValue(Cum((X-MX)*(Ref(X,-17)-MX))/(ACF0*Cum(1)));
> ACF18 = LastValue(Cum((X-MX)*(Ref(X,-18)-MX))/(ACF0*Cum(1)));
> ACF19 = LastValue(Cum((X-MX)*(Ref(X,-19)-MX))/(ACF0*Cum(1)));
> ACF20 = LastValue(Cum((X-MX)*(Ref(X,-20)-MX))/(ACF0*Cum(1)));
> ACF21 = LastValue(Cum((X-MX)*(Ref(X,-21)-MX))/(ACF0*Cum(1)));
> ACF22 = LastValue(Cum((X-MX)*(Ref(X,-22)-MX))/(ACF0*Cum(1)));
> ACF23 = LastValue(Cum((X-MX)*(Ref(X,-23)-MX))/(ACF0*Cum(1)));
> ACF24 = LastValue(Cum((X-MX)*(Ref(X,-24)-MX))/(ACF0*Cum(1)));
> ACF25 = LastValue(Cum((X-MX)*(Ref(X,-25)-MX))/(ACF0*Cum(1)));
> ACF26 = LastValue(Cum((X-MX)*(Ref(X,-26)-MX))/(ACF0*Cum(1)));
> ACF27 = LastValue(Cum((X-MX)*(Ref(X,-27)-MX))/(ACF0*Cum(1)));
> ACF28 = LastValue(Cum((X-MX)*(Ref(X,-28)-MX))/(ACF0*Cum(1)));
> ACF29 = LastValue(Cum((X-MX)*(Ref(X,-29)-MX))/(ACF0*Cum(1)));
> ACF30 = LastValue(Cum((X-MX)*(Ref(X,-30)-MX))/(ACF0*Cum(1)));
> ACF31 = LastValue(Cum((X-MX)*(Ref(X,-31)-MX))/(ACF0*Cum(1)));
> ACF32 = LastValue(Cum((X-MX)*(Ref(X,-32)-MX))/(ACF0*Cum(1)));
> ACF33 = LastValue(Cum((X-MX)*(Ref(X,-33)-MX))/(ACF0*Cum(1)));
> ACF34 = LastValue(Cum((X-MX)*(Ref(X,-34)-MX))/(ACF0*Cum(1)));
> ACF35 = LastValue(Cum((X-MX)*(Ref(X,-35)-MX))/(ACF0*Cum(1)));
> ACF36 = LastValue(Cum((X-MX)*(Ref(X,-36)-MX))/(ACF0*Cum(1)));
> ACF37 = LastValue(Cum((X-MX)*(Ref(X,-37)-MX))/(ACF0*Cum(1)));
> ACF38 = LastValue(Cum((X-MX)*(Ref(X,-38)-MX))/(ACF0*Cum(1)));
> ACF39 = LastValue(Cum((X-MX)*(Ref(X,-39)-MX))/(ACF0*Cum(1)));
> ACF40 = LastValue(Cum((X-MX)*(Ref(X,-40)-MX))/(ACF0*Cum(1)));
> 
> // Store autocorrelation function in the last 40 bars
> ACF = 0;
> ACF = IIf(Cum(1)==LastValue(Cum(1)),ACF1,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-1,ACF2,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-2,ACF3,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-3,ACF4,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-4,ACF5,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-5,ACF6,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-6,ACF7,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-7,ACF8,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-8,ACF9,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-9,ACF10,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-10,ACF11,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-11,ACF12,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-12,ACF13,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-13,ACF14,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-14,ACF15,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-15,ACF16,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-16,ACF17,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-17,ACF18,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-18,ACF19,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-19,ACF20,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-20,ACF21,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-21,ACF22,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-22,ACF23,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-23,ACF24,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-24,ACF25,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-25,ACF26,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-26,ACF27,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-27,ACF28,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-28,ACF29,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-29,ACF30,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-30,ACF31,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-31,ACF32,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-32,ACF33,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-33,ACF34,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-34,ACF35,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-35,ACF36,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-36,ACF37,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-37,ACF38,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-38,ACF39,ACF);
> ACF = IIf(Cum(1)==LastValue(Cum(1))-39,ACF40,ACF);
> ACF = 100*ACF;
> 
> // Significance bands
> Sigma = 100*LastValue(Cum(1))^(-0.5);
> 
> GraphXSpace=5;
> Graph0=ACF;Graph0Style=2+4;Graph0Color=3;
> Graph1=2*Sigma; Graph1Style=1; Graph1Color=2;
> Graph2=-2*Sigma; Graph2Style=1; Graph2Color=2;
> 
> -----Original Message-----
> From: Tomasz Janeczko [mailto:amibroker@x...]
> Sent: samedi 13 juillet 2002 11:01
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: Re: [amibroker] Corrolation function?
> 
> 
> Hello,
> 
> Look at the Correlation() function
> 
> CORRELATION (AFL 1.4)
> 
> SYNTAX correlation( ARRAY1, ARRAY2, periods )
> RETURNS ARRAY
> FUNCTION Calculates correlation between ARRAY1 and ARRAY2 using periods
> range
> EXAMPLE correlation( close, ref( close, -5 ), 5 ); - this calculates
> correlation between close price and and close price 5 days back
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "John Nelson" <trader@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Saturday, July 13, 2002 2:52 AM
> Subject: [amibroker] Corrolation function?
> 
> 
> >
> > All,
> >
> > Is there a Matlab-like corrolation function in AFL (or available to
> > AFL)? An auto-corrolator would be cool to combined multiple signals to
> > yield an aggregate signal (or so the thinking goes). Anyone looked into
> > this sort of thing?
> >
> > -- John
> >
> > --
> > _____________________________________________________
> >
> > John T. Nelson
> > Trader | Dreams Of Empire
> > mail: | trader@xxxx
> > web: | http://www.dreamsofempire.com/
> > _____________________________________________________
> > "Prediction is sexy... but strategy makes money"
> >
> >
> >
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
> >
> >
> >
> 
> 
> 
> 
> 
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
> 
> 
> 
> 
> 
> 
> 
> 
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 
>