Registrierung Kalender FAQ & Boardregeln Suche Mitgliederliste Moderatoren und Administratoren Linkdatenbank Startseite
Tradestation User Group Germany » freie Foren » Posts aus dem alten Userforum » Normierung der Polarized Fractal Efficiency (PFE) » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
_Hans_Handler
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 18

_Hans_Handler ist offline
  Normierung der Polarized Fractal Efficiency (PFE)Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo,

Ich habe den Programmcode fuer der PFE Indikator aus dem Beitrag von Uwe vom 1.2.2001.
Ich habe nun einen Eingabeparameter verallgemeinert. Dadurch ändert sich jedoch auch die Amplitude des Indikators.
Ich suche jetzt einen Normierungsfaktor, sodass sich der verallgemeinerte PFE stets im Bereich -100 bis +100 bewegt.

Schönen Gruß,
Hans

Ursprünglicher Code:


Inputs: back(9), len1(2), Multi(0.333), Buyzone(62), Sellzone(-62);
Vars: PFE(0), C2C(0), Counter(0), Frac(0), EMA(0);

PFE = 0;
C2c = 0;
Counter = 0;
Frac = 0;
EMA = 0;

PFE = SquareRoot(Power(close-Close[back], len1)+100);

For Counter = 1 to 9 begin
C2C = C2C + SquareRoot(Power((close[Counter-1]-Close[counter]),len1)+1);
End;

if (close-Close[9]) > 0 then
Frac = Round((PFE/C2C)*100,0)
else
Frac = Round(-(PFE/C2C)*100,0);

If Currentbar = 1 then
EMA = Frac
else
EMA = Round((Frac*Multi)+(EMA[1]*(1-Multi)),0);

Plot1(EMA,"EMA");
Plot2(Buyzone,"Buyzone");
Plot3(Sellzone,"Sellzone");


Verallgemeinerter Code:

Inputs: back(9), len1(2), Multi(0.333), Buyzone(62), Sellzone(-62);
Vars: PFE(0), C2C(0), Counter(0), Frac(0), EMA(0);

PFE = 0;
C2c = 0;
Counter = 0;
Frac = 0;
EMA = 0;

PFE = SquareRoot(Power(close-Close[back], len1)+Power((back+1),len1));

For Counter = 1 to back begin
C2C = C2C + SquareRoot(Power((close[Counter-1]-Close[counter]),len1)+1);
End;

if (close-Close[back]) > 0 then
Frac = Round((PFE/C2C)*100,0)
else
Frac = Round(-(PFE/C2C)*100,0);

If Currentbar = 1 then
EMA = Frac
else
EMA = Round((Frac*Multi)+(EMA[1]*(1-Multi)),0);

Plot1(EMA,"EMA");
Plot2(Buyzone,"Buyzone");
Plot3(Sellzone,"Sellzone");




12.04.2001, 12:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Hans_Handler senden Homepage von _Hans_Handler
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: Normierung der Polarized Fractal Efficiency (PFE)Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo, Hans!

Den von Dir mir zugeschriebenen Programmcode habe ich seinerzeit auf Anfrage dem Buch "Neue Trading Dimensionen" von Erik Florek entnommen.

Was eigentlich in der Formel auf der Seite 207, berechnet wird, ist nicht so geheimnisvoll, wie im Buch dargestellt, das, wie meine Texte, einen umsichtigen, wissenschaftlichen Lektor vertragen könnte. dargestellt ist. Die angebene Formel ist im Vergleich zu den Angaben auf der Seite für MetaStock-Formeln von Equis (und nach Logik) falsch und die Grafik (Abb. 117) ist kaum aus dem Formelansatz entstanden (eine EMA mit scharfen Spitzen deutet nicht auf eine Mittlung hin).

Nichts Chaos, wie im buch beschrieben, ein wenig Geometrie, wegen meiner auch fraktale, jedoch Lehrstoff mit dem bekannten Satz vom Pytagoras a^2+b^2=c^2 und ein wenig Prozentrechenkenntnissen erklärbar).

Hier die {kommentierte}Formel nach Equis:

Polarized Fractal Efficiency

Mov(
If(C,>,Ref(C,-9),
{Wenn Polarstrahl steigt dann +PolarC2C/SUMc2c}
Sqr(Pwr(Roc(C,9,$),2) + Pwr(10,2)) / Sum(Sqr(Pwr(Roc(C,1,$),2)+1),9),
{Wenn Polarstrahl steigt dann -PolarC2C/SUMc2c }
-Sqr(Pwr(Roc(C,9,$),2) + Pwr(10,2)) / Sum(Sqr(Pwr(Roc(C,1,$),2)+1),9))
{und als Prozentdarstellung}
*100,
{als exponentiale Durchschnittskurve dargestellt}
5,E)


Schaut man sich den Aufbau an, so wird man erkennen, daß hier nur
  1. die direkte "Länge" der Verbindungslinie (PolarC2C) zwischen zwei Close-Kursen, die eine Periode begrenzen,
  2. der "tatsächlichen Länge" der Wegstrecke, wie sie sich aus der Summation der "Einzelwegstrecken" (SUMc2c) von Tages-Close zu Tages-Close des Folgetages ergibt,
  3. gegenüber gestellt und in Prozent ausgedrückt wird (PFE = (PolarC2C / SUMc2c)*100).
  4. Eine exponentialle Glättung liefert die sichtbare Kurve


Nun das ganze nocheinmal auf EL übertragen, mit der Erweiterung von Heinz_Handler und Abänderungen einiger Anweisungen um der Beschreibung gerecht zu werden):

{BEGIN DES (kommentierten) EL-Programms}
Inputs: back(9), Multi(0.333), Buyzone(62), Sellzone(-62);
Vars: PolarC2C(0), SUMc2c(0), PFE(0), Counter(0), Frac(0), EMA(0);

{"Länge der Strecke" vom Close[back] bis zum Close[0]
- Pythagoras a^2+b^2 = c^2
- a^2 Quadrat der Preisdifferenz
- b^2 Quadrat der Baranzahl (Handelstage-Strecke)
- c^2 Quadrat der Verbindingslinien-"länge"
- PolarC2C Verbindungslinien-"Länge" zwischen den Closekursen}

PolarC2C = SquareRoot(Power(Close-Close[back], 2)+Power(back+1,2));

{
Ermittlung und Aufsummeirung der "wahren" Wegstrecken ("Längen" der Verbindungslinien zwischen aufeinanderfolgenden Tagesclosekursen, Mit a = Close-Close[1] und b = 1 = eine Handelstag-"Länge)"
}

SUMc2c=0;
For Counter = 1 to back
begin
SUMc2c = SUMc2c + SquareRoot(Power((Close[Counter-1]-Close[counter]),2) + 1);
End;

{
Mit PolorC2C steht der Wert der "Länge" der direkten (Geraden) Verbindungsstrecke (Zeit/Range) zwischen den Closekursen am Beginn und am Ende der Periode mit der Länge back+1 zu Verfügung. Der Wert SUMc2c stellt die Summe aller Teilstrecken innerhalb dieser Periode dar, die an jedem Tag, bei verbindung der Closekurse enstanden sind.

Beide "Streckenlängen" weren ins %-Verhältnis zueinander gesetzt, und da die Gerade die kürzeste Verbindung ist, ist ihr Wert kleiner oder höchstens gleich der Summation der Einzelweglängen (PolarC2C <= SUMc2c), woraus 0 < PFE < 100 folgt. Es wird nur der gerundete Wert ermittelt
}

PFE = round(100*PolarC2C/SUMc2c,0);

{
Die Vorzeichenbestimmung erfolgt über die Richtungsgröße der Polarstrecke
}

if (close-Close[back])<0 then PFE = -PFE;

{
Es folgt noch eine exponentialle Glättung
}

If Currentbar = 1 then
EMA = PFE
else
EMA = Round((PFE*Multi)+(EMA[1]*(1-Multi)),0);

Plot1(EMA,"EMA(PFE)");
Plot2(Buyzone,"Buyzone");
Plot3(Sellzone,"Sellzone");

{ENDE DES (kommentierten) EL-Programms}


Nun hoffe ich, das die Abhandlung in diesem Sinne richtig ist, da ich keine andere Interpretation der EQUIS-Formel erkennen kann, denn danach benötigst Du keine Steuerung zur Nomierung der Werte zwischen -100 <= PFE <= +100, da diese als Prozentzahl, wo der Nenner immer einen größeren oder wenigsten den gleichgroßen Wert liefert, gar kein Ergebnis größer |100| liefern kann.

Kurzgefaßt stellt in dieser Vorstellung der Indikator eine Maßzahl für die "Gradlinigkeit" der Richtung dar. Je mehr Zickzacks notwendig werden, um einen Kurs zu erreichen, umso näher wird der Indikatorwert bei Null liegen (Vorzeichen nach Polarstrahlrichtung).

Mit dieser Definition wird aber auch wahrscheinlich, das weit auseinanderliegende Begrenzungen eine Periode (back) durch eine kleine Kennzahl von EMA(PFE) gekennzeichnet sein dürften, da die Schwünge um die Verbindungslinie beider Begrenzungsbars, die Größe des Nenners ("wahren Weg") bestimmen.

Die "Effizienz" der Richtung, die durch den "Polarstrahl" gegeben ist, ist am größten, wenn möglichts wenig schwünge auf dieser Strecke passieren (PFE strebt gegen |100|).

Vielleicht liest der Autor des Buches hier mit und kann kurz Stellung dazu nehmen, wo mein Fehler liegt, daß es mir nicht gelingt, Formel (S. 207), Abb.117 (S.209) und Programm (S.444) in seinem Buch in Einklang miteinander zu bringen.

Ich hoffe, daß ich nicht mehr Fragen aufgeworfen habe, als ich beantworten konnte. Zudem möge man mir zu Gute halten, daß heute Freitag der 13. und mir somit das eien oder andere Mißgeschick passieren darf.

Gruß
Uwe

13.04.2001, 20:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Hans_Handler
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 18

_Hans_Handler ist offline
  RE: Normierung der Polarized Fractal Efficiency (PFE)Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo UWe,

Vielen Dank für deine wunderbaren Erklärungen. Jetzt kann ich mir die Bedeutung der PFE zum ersten Mal anschaulich vorstellen.

Daher glaube ich auch jetzt, dass in der Berechnung der "Länge der Strecke vom Close[back] bis zum Close[0]" ein kleiner Fehler ist. Statt SquareRoot(Power(close-Close[back], 2)+Power((back+1),2)) sollte es wahrscheinlich (Power(close-Close[back], 2)+Power((back),2)) heissen.

Auch mich würde das Programm mit dem die Abbildung 117 gemacht wurde interessieren. Im besonderen die Bedeutung des 2. Parameters (z.B. 8/2, 13/5). Kann es sein das dies der im Programm auf Seite 444 angegebene "Faktor" ist ? Wenn ich dann im Programm noch statt "Close - Close[back]/Faktor" "(Close - Close[back])/Faktor nehme, gefallen mir die entstehenden Kurven eigentlich besser.

Liebe Grüße
Hans

16.04.2001, 00:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Hans_Handler senden Homepage von _Hans_Handler
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: Normierung der Polarized Fractal Efficiency (PFE)Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Dein Einwand, Hans, bezüglich des Einsatzes von back bzw. back+1 ist richtig, wenngleich nur bei kleiner Parameterwahl entscheiden. Stelle ich nämlich back=1 ein, so sollte ja PolarC2C=SUMc2c sein und bleiben.

Anderseits, wenn man von den der Betrachung zugrundeliegenden Anzahl der Bars ausgeht, die man zur Berechnung der Wegstrecken benögtig, dann sind dies eben back+1.

Vielleicht ist ja auch jemand im Besitz des orginalartikels, aus dem die Grundlagen entnommen werden können um nicht auf meiner möglichen Fehlinterpretation hocken zu bleiben (V.12:1 (38-41)January issue of Stocks & Commodities).

Gruß
Uwe

16.04.2001, 11:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR