Indikatoren: Harmonic Pattern Finder V3 - Seite 2

 

Ich suche Hilfe bei der Anpassung der Werte des Chiffriermusters. Ich habe im Code gefunden, dass das Muster durch eine Reihe von 14 ganzen Zahlen definiert ist. Ich habe extrapoliert, dass die 14 Zahlen wie folgt sind:

(1)Name 0=XA

(2)Name 1=AB

(3)Name 2=BC

(4)Name 3=CD

(5)Name 4=XAB

(6)Name 5=XAD

(7)Name 6=ABC

(8)Bezeichnung 7=BCD

(8)Dreieck XB

(9)Dreieck BD

(10)Punkt X

(11) Punkt A

(12) Punkt B

(13) Punkt C

(14) Punkt D


Hier ist der darauf basierende Code für das Chiffriermuster:

0.382, 0.618, 0, 0, 0, 0, 0, 0, 0.786, 0.786, 1.13, 1.414, 0, 0


Kann mir jemand helfen, zu verstehen, wie ich diese Zahlen anpassen kann, um das herauszuholen, was ich brauche? Derzeit zeichnet das Cypher-Muster nicht richtig. Um sich als Cypher zu qualifizieren, muss Punkt B das 0,382 Fibonacci-Retracement von X-A erreichen, aber nicht unter 0,618 schließen, Punkt C muss die 1,272 Fib-Erweiterung von X-A erreichen, aber nicht über 1,41 schließen, und Punkt D muss das 0,786 Fib-Retracement von X-C erreichen.


Gegenwärtig scheint es, dass 80-90% der von diesem Tool gezeichneten Cypher-Muster die Kriterien nicht wirklich erfüllen. Die meisten erreichen nie einen korrekten Punkt D und viele schließen weit über der Zone für Punkt C. Jede Hilfe ist willkommen!

 
beachten Sie, dass oben gibt es 14 Zahlen in der Reihenfolge, aber ich verwendet 8 zweimal, so gibt es eigentlich 15 in den Code, den ich dachte, galt für die 14-Nummern-Sequenz....I kann falsch sein, auf die auch für die 14 Zahlen....now Ich bin wirklich verloren
 
jojo151579:
Beachten Sie, dass es oben 14 Zahlen in der Sequenz gibt, aber ich habe 8 zweimal verwendet, so dass es eigentlich 15 im Code gibt, von denen ich dachte, dass sie sich auf die 14-Zahlen-Sequenz beziehen....Ich kann mich irren, wenn sie sich sogar auf die 14 Zahlen beziehen....jetzt bin ich wirklich verloren

Die Muster werden durch eine Struktur von 18 Doubles beschrieben, die in "HPFMatcher.mqh" definiert sind:

struct PATTERN_DESCRIPTOR
  {
   double            ab2xa_min;
   double            ab2xa_max;
   double            bc2ab_min;
   double            bc2ab_max;
   double            cd2bc_min;
   double            cd2bc_max;
   double            ad2xa_min;
   double            ad2xa_max;
   double            cd2xc_min;
   double            cd2xc_max;
   double            xc2xa_min;
   double            xc2xa_max;
   double            cd2ab_min;
   double            cd2ab_max;
   double            bc2xa_min;
   double            bc2xa_max;
   double            cd2ad_min;
   double            cd2ad_max;
  };

Die Variablennamen sind also ziemlich erklärend; die erste ist das minimal akzeptierte Verhältnis von AB zu XA ("B muss ... von XA erreichen"), die nächste ist das maximal akzeptierte Verhältnis ("B darf ... von XA nicht berühren"), und so weiter. Aus diesem Grund ist es nicht einfach, eine Änderung vorzunehmen, damit das Kriterium "B darf nicht unter ... von XA schließen" geprüft wird, da der Matcher nur Hochs und Tiefs für die Berechnungen verwendet.

Wenn Sie es wirklich wollen, besteht eine Möglichkeit darin, das maximale Verhältnis etwas weiter nach unten zu setzen, z. B. 0,618 + 0,1, oder alternativ das nächste harmonische Niveau, und in einem Ad-hoc-Filter zu prüfen, ob der Schlusskurs wirklich über 0,618 lag oder nicht. Beachten Sie auch, dass bei den Standardeinstellungen des Indikators ein Spielraum von 0,05 auf diese Einschränkung angewandt wird, was bedeutet, dass das Muster trotzdem gefunden wird, solange das Hoch/Tief eines B-Punkt-Balkens nicht 0,668 berührt. Es liegt dann an Ihnen, die Schlusskurskriterien zu überprüfen.


Der Musterdeskriptor von Cypher ({0.382,0.618,0,0,0,0,0,0,0,0.786,0.786,1.13,1.414,0,0}) hat

  • ab2xa_min = 0,382
  • ab2xa_max = 0,618
  • cd2xc_min = 0,786
  • cd2xc_max = 0,786
  • xc2xa_min = 1,13
  • xc2xa_max = 1,414

Im Klartext bedeutet dies:

  • B muss das 0,382 XA-Retracement erreichen, aber nicht 0,618 berühren
  • D muss das 0,786 XC Retracement erreichen, aber auch dort umkehren
  • C muss die 1,13 XA-Erweiterung erreichen, aber nicht 1,414 berühren.
Damit der Matcher einen C-Punkt benötigt, der die 1,272-Erweiterung erreicht, ändern Sie einfach den Einstieg #11 von 1,13 auf 1,27. Auch hier ist es nicht so einfach, das Maximum von "kann nicht berühren" auf "schließt unter" zu ändern, und es wird der gleiche Spielraum von 0,05 angewendet.

 
Andre Enger:

Die Muster werden durch eine Struktur von 18 Doubles beschrieben, die in "HPFMatcher.mqh" definiert sind:

Die Variablennamen sind also ziemlich erklärend; die erste ist das minimal akzeptierte Verhältnis von AB zu XA ("B muss ... von XA erreichen"), die nächste ist das maximal akzeptierte Verhältnis ("B darf ... von XA nicht berühren"), und so weiter. Aus diesem Grund ist es nicht einfach, eine Änderung vorzunehmen, damit das Kriterium "B darf nicht unter ... von XA schließen" geprüft werden kann, da der Matcher nur Höchst- und Tiefstwerte für die Berechnung verwendet.

Wenn Sie es wirklich wollen, besteht eine Möglichkeit darin, das maximale Verhältnis etwas weiter nach unten zu setzen, z. B. 0,618 + 0,1, oder alternativ das nächste harmonische Niveau, und in einem Ad-hoc-Filter zu prüfen, ob der Schlusskurs wirklich über 0,618 lag oder nicht. Beachten Sie auch, dass bei den Standardeinstellungen des Indikators ein Spielraum von 0,05 auf diese Einschränkung angewandt wird, was bedeutet, dass das Muster trotzdem gefunden wird, solange das Hoch/Tief eines B-Punkt-Balkens nicht 0,668 berührt. Es liegt dann an Ihnen, die Schlusskurskriterien zu überprüfen.


Der Musterdeskriptor von Cypher ({0.382,0.618,0,0,0,0,0,0,0,0.786,0.786,1.13,1.414,0,0}) hat

  • ab2xa_min = 0,382
  • ab2xa_max = 0,618
  • cd2xc_min = 0,786
  • cd2xc_max = 0,786
  • xc2xa_min = 1,13
  • xc2xa_max = 1,414

Im Klartext bedeutet dies:

  • B muss das 0,382 XA-Retracement erreichen, aber nicht 0,618 berühren
  • D muss das 0,786 XC Retracement erreichen, aber auch dort umkehren
  • C muss die 1,13 XA-Erweiterung erreichen, aber nicht 1,414 berühren.
Damit der Matcher einen C-Punkt benötigt, der die 1,272-Erweiterung erreicht, ändern Sie einfach den Einstieg #11 von 1,13 auf 1,27. Auch hier ist es nicht so einfach, das Maximum von "kann nicht berühren" auf "schließen unter" zu ändern, und der gleiche Spielraum von 0,05 wird angewendet.

Vielen Dank für die Antwort! Ich dachte mir, dass es ziemlich schwierig wäre, einen Schlusskurs unterhalb von .618 zu setzen, so dass ich das überspringen kann (das Muster ist immer noch gültig, wenn es über .618 geht, kann nur nicht darüber schließen, so dass ich das selbst filtern kann). Ich ändere die Parameter, um die 1.27 (C) zu erreichen und die .786 zu erreichen, aber nicht dort zu stoppen (ich ändere die max auf 0, da das Muster immer über die .786 hinausgeht, da die .786 das Minimum ist und es nicht erforderlich ist, dort umzukehren, so dass die Änderung hoffentlich auch dieses Problem behebt) Ich werde dies ausprobieren und aktualisieren, wie es funktioniert.
 
Andre Enger:

Die Muster werden durch eine Struktur von 18 Doubles beschrieben, die in "HPFMatcher.mqh" definiert sind:

Die Variablennamen sind also ziemlich erklärend; die erste ist das minimal akzeptierte Verhältnis von AB zu XA ("B muss ... von XA erreichen"), die nächste ist das maximal akzeptierte Verhältnis ("B darf ... von XA nicht berühren"), und so weiter. Aus diesem Grund ist es nicht einfach, eine Änderung vorzunehmen, damit das Kriterium "B darf nicht unter ... von XA schließen" geprüft werden kann, da der Matcher nur Höchst- und Tiefstwerte für die Berechnung verwendet.

Wenn Sie es wirklich wollen, besteht eine Möglichkeit darin, das maximale Verhältnis etwas weiter nach unten zu setzen, z. B. 0,618 + 0,1, oder alternativ das nächste harmonische Niveau, und in einem Ad-hoc-Filter zu prüfen, ob der Schlusskurs wirklich über 0,618 lag oder nicht. Beachten Sie auch, dass bei den Standardeinstellungen des Indikators ein Spielraum von 0,05 auf diese Einschränkung angewandt wird, was bedeutet, dass das Muster trotzdem gefunden wird, solange das Hoch/Tief eines B-Punkt-Balkens nicht 0,668 berührt. Es liegt dann an Ihnen, die Schlusskurskriterien zu überprüfen.


Der Musterdeskriptor von Cypher ({0.382,0.618,0,0,0,0,0,0,0,0.786,0.786,1.13,1.414,0,0}) hat

  • ab2xa_min = 0,382
  • ab2xa_max = 0,618
  • cd2xc_min = 0,786
  • cd2xc_max = 0,786
  • xc2xa_min = 1,13
  • xc2xa_max = 1,414

Im Klartext bedeutet dies:

  • B muss das 0,382 XA-Retracement erreichen, aber nicht 0,618 berühren
  • D muss das 0,786 XC Retracement erreichen, aber auch dort umkehren
  • C muss die 1,13 XA-Erweiterung erreichen, aber nicht 1,414 berühren.
Damit der Matcher einen C-Punkt benötigt, der die 1,272-Erweiterung erreicht, ändern Sie einfach den Einstieg #11 von 1,13 auf 1,27. Auch hier ist es nicht so einfach, das Maximum von "kann nicht berühren" auf "schließen unter" zu ändern, und der gleiche Spielraum von 0,05 wird angewendet.

Ich habe es geschafft: Ich habe die 1,13 in 1,27 geändert und die zweite 0,786 in 1,000 (die Änderung auf 0 hatte katastrophale Folgen :) ). Jetzt funktioniert es viel genauer! Danke für die Hilfe mit dem Code. Jetzt kann ich mir einen Reim auf das ganze Zeug machen! Du bist ein Lebensretter! Frohe Feiertage!
 

Ich liebe diesen Indikator! (vor allem jetzt, dass ich die Fibo-Ebenen anpassen können!)

Wenn ich einen Scanner einrichten möchte, um dieses Tool zu verwenden und automatisch alle Aktien zu scannen, die in meinem Marktbeobachtungsfenster aufgelistet sind, nehme ich an, dass ich einen EA erstellen müsste, richtig? Ich bin kein Programmierer... Ist es erforderlich, zu wissen und in der Lage zu sein, Code zu schreiben, um diesen EA zu erstellen?Ich würde sagen, dass ich nur nach einem neuen Cypher-Muster in den letzten 150 Bars oder so suchen möchte. Dies wäre eine gespeicherte Einstellung, die wie üblich in den Indikator geladen werden könnte. Ist dies möglich und einfach zu erstellen oder bin ich zu wünschenswert, da ich kein Programmierer bin?

Oder gibt es vielleicht eine einfachere Möglichkeit, alle Aktien auf einmal in das Chart-Formular zu laden und dieses Tool einfach anzuwenden? Jede Aktie einzeln zu laden, um sie zu durchsuchen, nimmt eine Menge Zeit in Anspruch! (Ich bin ganz neu in MT, also muss ich noch alle Kniffe ausarbeiten :) )

Ich bin für jeden Beitrag dankbar.



Außerdem habe ich auf dem Cypher-Muster gesehen, dass die Linie von X nach D das Fibo-Retracement von XA anzeigt... wie würde ich das stattdessen in XC ändern? Das XA-Retracement gilt nur für Punkt B und ist nicht relativ zu Punkt D. Vielen Dank und tolle Arbeit! (Entschuldigung auch für die vielen Fragen)

 
jojo151579:

Ich liebe diesen Indikator! (vor allem jetzt, dass ich die Fibo-Ebenen anpassen können!)

Wenn ich einen Scanner einrichten möchte, um dieses Tool zu verwenden und automatisch alle Aktien zu scannen, die in meinem Marktbeobachtungsfenster aufgelistet sind, nehme ich an, dass ich einen EA erstellen müsste, richtig? Ich bin kein Programmierer... Ist es erforderlich, zu wissen und in der Lage zu sein, Code zu schreiben, um diesen EA zu erstellen?Ich würde sagen, dass ich nur nach einem neuen Cypher-Muster in den letzten 150 Bars oder so suchen möchte. Dies wäre eine gespeicherte Einstellung, die wie üblich in den Indikator geladen werden könnte. Ist dies möglich und einfach zu erstellen oder bin ich zu wünschenswert, da ich kein Coder bin?

Oder gibt es vielleicht eine einfachere Möglichkeit, alle Aktien auf einmal in das Chart zu laden und dieses Tool einfach anzuwenden? Jede Aktie einzeln zu laden, um sie zu durchsuchen, nimmt eine Menge Zeit in Anspruch! (Ich bin ganz neu in MT, also muss ich noch alle Kniffe herausfinden :) )

Ich bin für jeden Beitrag dankbar



Außerdem habe ich auf dem Cypher-Muster gesehen, dass die Linie von X nach D das Fibo-Retracement von XA anzeigt... wie würde ich dies stattdessen in XC ändern? Das XA-Retracement gilt nur für Punkt B und ist nicht relativ zu Punkt D. Danke und tolle Arbeit! (Sorry für die vielen Fragen)

Es scheint, dass die neueste Version von MT eine Funktion zum Abdocken der Charts hat. Es ist möglich, einen Chart für jede Aktie zu öffnen, den Indikator zu laden und den Chart zu minimieren, bis er das nächste Mal benötigt wird. Es ist zwar immer noch erforderlich, sich manuell durch jedes Fenster zu klicken, um es zu durchsuchen, aber zumindest ist es weniger umständlich, als jedes Mal den Chart und den Indikator zu laden. MT verfügt nicht über einen eingebauten Scanner oder Funktionen für diese Aufgabe. Man müsste einen programmieren, was im Übrigen in Form eines Skripts geschehen könnte.

Die Linie von X nach D wird für alle Muster nach demselben Verfahren gezeichnet. Eigentlich ist es eher ein Fehler, dass die Besonderheiten von Cypher (oder den anderen Mustern, bei denen der C-Punkt den A-Punkt übersteigt) nicht berücksichtigt werden, aber es wurde nie in Angriff genommen.

Um dies für den Cypher zu beheben, fügen Sie zunächst diese Zeile in der Nähe der Zeilennummer 880 in "HarmonicPatternFinderV3.mq5" ein:

string xcd=IntegerToString((int) MathRound(100*MathAbs(D-C)/MathAbs(X-C)));

Dann ersetzen Sie die aktuelle Zeilennummer 992, die lautet:

if(k!=FIVEO) ObjectSetString(0,name5,OBJPROP_TOOLTIP,prefix+_patternNames[k]+" XAD="+xad);

durch diese:

if(k!=FIVEO && k!=CYPHER)
  ObjectSetString(0,name5,OBJPROP_TOOLTIP,prefix+_patternNames[k]+" XAD="+xad);
else if(k!=FIVEO)
  ObjectSetString(0,name5,OBJPROP_TOOLTIP,prefix+_patternNames[k]+" XCD="+xcd);

Dadurch wird der aussagekräftigste Tooltip für bestätigte Muster hinzugefügt. Um ihn zusätzlich auf Projektionen zu haben, machen Sie dasselbe in der Projektionszeichenprozedur, d.h. fügen Sie die erste Zeile etwa bei Zeilennummer 1130 ein und ersetzen Sie die aktuelle 1180.


 
Andre Enger:

Es scheint, dass die neueste Version von MT eine Funktion zum Abdocken der Charts hat. Es ist möglich, einen Chart für jede Aktie zu öffnen, den Indikator zu laden und den Chart zu minimieren, bis er das nächste Mal benötigt wird. Es ist zwar immer noch erforderlich, sich manuell durch jedes Fenster zu klicken, um es zu durchsuchen, aber zumindest ist es weniger umständlich, als jedes Mal den Chart und den Indikator zu laden. MT verfügt nicht über einen eingebauten Scanner oder Funktionen für diese Aufgabe. Es würde Kodierung erfordern, um eine zu machen, die als ein Skript btw getan werden könnte.

Die Linie von X nach D wird für alle Muster nach demselben Verfahren gezeichnet. Eigentlich ist es eher ein Fehler, dass die Besonderheiten von Cypher (oder den anderen Mustern, bei denen der C-Punkt den A-Punkt übersteigt) nicht berücksichtigt werden, aber das wurde nie in Angriff genommen.

Um dies für Cypher zu beheben, fügen Sie zunächst diese Zeile in der Nähe der Zeilennummer 880 in "HarmonicPatternFinderV3.mq5" ein:

Ersetzen Sie dann die aktuelle Zeilennummer 992, die lautet:

in diese:

Dadurch wird die aussagekräftigste QuickInfo für bestätigte Muster hinzugefügt. Um sie zusätzlich auf Projektionen zu haben, tun Sie dasselbe in der Projektionszeichenprozedur, d.h. fügen Sie die erste Zeile etwa bei Zeilennummer 1130 hinzu und ersetzen Sie die aktuelle 1180.


Nochmals vielen Dank für die Hilfe! Leider habe ich alles kopiert und eingefügt (den ersten Code in Zeile 881 eingegeben und die ursprüngliche Zeile 992 ersetzt, kompiliert und neu gestartet) und nichts hat sich geändert. Das ist keine große Sache... Ich kann es bei Bedarf selbst nachvollziehen. Vielleicht hat es damit zu tun, dass es keine Zick-Zack-Linie gibt, die von x nach c geht. Danke für die Hilfe!

Irgendwie dachte ich, dass ein Scanner Code geschrieben werden müsste... MT5 ist großartig und schrecklich zugleich :). Ich kann nicht einmal ein xabcd-Zeichnungstool bekommen, wie Tradingview automatisch eingebaut hat... Wie auch immer, dieser Indikator wird immer noch großartig für Backtesting sein. Ich muss vielleicht eines Tages einen Scanner kaufen (und wenn ich einen finde, der nicht so verdammt teuer ist!)

 
jojo151579:

Nochmals vielen Dank für die Hilfe! Leider habe ich alles kopiert und eingefügt (den ersten Code in Zeile 881 eingegeben und die ursprüngliche Zeile 992 ersetzt, kompiliert und neu gestartet) und nichts hat sich geändert. Es ist keine große Sache... Ich kann es bei Bedarf selbst nachvollziehen. Vielleicht hat es damit zu tun, dass es keine Zick-Zack-Linie gibt, die von x nach c geht. Vielen Dank für die Hilfe!

Irgendwie dachte ich mir, dass man für einen Scanner einen Code schreiben müsste... MT5 ist großartig und schrecklich zugleich :). Ich kann nicht einmal ein xabcd-Zeichnungstool bekommen, wie es Tradingview automatisch eingebaut hat... Wie auch immer, dieser Indikator wird immer noch großartig für das Backtesting sein. Vielleicht muss ich eines Tages einfach einen Scanner kaufen (und wenn ich einen finde, der nicht so verdammt teuer ist!)

Ja, tut mir leid **facepalm**, es muss in "HPFDrawingObserver.mqh" stattdessen gemacht werden, dann fügen Sie in Zeile 300 ersetzen Zeile 410. Oder du könntest einfach ein Update herunterladen, das jetzt gepusht wird und das Problem für alle Muster behebt. Wenn Sie nur die Datei "HPFDrawingObserver.mqh" herunterladen, ist es nicht einmal notwendig, den geänderten Pattern-Deskriptor für den Cypher erneut einzugeben.
 
Andre Enger:
Ja sorry für das **facepalm**, es muss in "HPFDrawingObserver.mqh" stattdessen getan werden, dann fügen Sie in Zeile 300 ersetzen Zeile 410. Oder du könntest einfach ein Update herunterladen, das jetzt gepusht wird und das Problem für alle Muster behebt. Wenn Sie nur die Datei "HPFDrawingObserver.mqh" herunterladen, ist es nicht einmal notwendig, den geänderten Musterdeskriptor für den Cypher erneut einzugeben.
Oh ok.... danke..... habe alles oben genannte auch versucht und keine Änderung. Gibt immer noch die Info für XAD. Trotzdem vielen Dank