Korrelationkoeffizient für TS4 am Beispiel DAX vs. DTE | |
Die normierte Kovarianz zweier Zeitreihen, errechnet sich nach der Formel:
( summe(x[k]-xm)*(y[i]-ym) ) / n ----------------------------------------------------------------------------- = R wurzel( summe( (x[k]-xm)^2) /n) * wurzel( summe((y[i]-ym)^2)/n)
Ausgehend von der empirischen Kovarianz (steht im Zähler) zweier zueinander um | k-i | versetzer Zeitreihen X und Y, wird der Korrelationskoeffizient durch die Normierung mit dem Produkt der jeweiligen Standardabweichungen berechnet.
Je näher dieser Faktor R bei 1 liegt umso großer ist die positive Abhängigkeit (Gleichlauf) und je näher das Ergebniss bei -1 liegt, umso größer ist die Gegensätzlichkeit (Kontra-Lauf). Im übrigen Bereich und je näher der Wert bei Null liegt, gilt eine weitestgehende Unabhängikeit der Entwicklung beider Werte.
DAX .. DTE .. Korrelationskoeffizient
Der Indikator UR_Korrelation: {******************************************************** * UR_Korrelation (Indikator) * * Autor: Uwe Richtsteig; Mai 1998 * * © 1998 Uwe Richtsteig, 10717 Berlin (Germany) * * ===============================================*} inputs: Reihe1(close), Reihe2(close), MaxN(5), Lag(0), Level1(-0., Level2(+0.; vars: korrelation(0);
Korrelation=UR_KORR(Reihe1, Reihe2[Lag], MaxN);
plot1(Korrelation, "Korrelation"); plot2(Level1,"Level1"); plot3(Level2,"Level2"); plot4(0,"");
Benötigte Funktion UR_KORR: {******************************************************** * UR_KORR (Funktion) - Berechnet den Korrelationskoeffizienten * * Autor: Uwe Richtsteig; Mai 1998 * * © 1998 Uwe Richtsteig, 10717 Berlin (Germany) * *===============================================* Inputs: SeriesNumericSeries), SeriesY(NumericSeries), maxN(Numeric); vars: m0), mY(0), counter(0); vars: s0), sY(0), sXY(0), d0), d20), dY(0), d2Y(0), rXY(0);
mX = average(SeriesX, MaxN); mY = average(SeriesY, MaxN);
if CurrentBar>MaxN then begin sX = 0; sY = 0; sXY = 0;
for counter=0 to MaxN-1 begin dX = SeriesX[counter]-mX; d2X = dX * dX; dY = SeriesY[counter]-mY; d2Y = dY * dY;
sX = sX + d2X/(MaxN-1); sY = sY + d2Y/(MaxN-1); sXY = sXY + dX * dY / (MaxN-1); end; if sX>0 then sX = squareRoot(sX); if sY>0 then sY = squareRoot(sY); if sX*sY>0 then rXY = sXY / ( sX * sY ); end;
UR_KORR=rXY;
=================================== Weitere Aufrufbeispiele der Funktion
Value = UR_KORR( Close, Close[5], 10 ) liefert R der um 5 Bars versetzten Kurve auf die Ausgangskurve, bei einer Berechnungszeitraum von 10
Value = UR_KORR( Indikator1(....), Indikator2(...), Length) liefert die Korrelationskoeffizienen zweier Indikatoren Änliches kann auch für Preise und Indikatoren geschrieben werden.
Viel Spaß Uwe Richtsteig
|