Indikatoren: Kursprognose mit Nearest Neighbor ermittelt durch einen gewichteten Korrelationskoeffizienten - Seite 3

 
Amos Tsopotsa #:

dieser Code muss leicht verbessert werden, aber okay, deine Idee ist sinnvoll

Ich habe den Code leicht verbessert, indem ich:

  • Hinzufügen einer Variablen im globalen Bereich für b, und
  • Hinzufügen einer lastPatternStartTime-Variable und einer Bedingung, die sie mit der Startzeit eines neuen Musters vergleicht und ChartRedraw() aufruft, wenn sie nicht übereinstimmen.
(Nach dem, was ich in einigen Stunden des Testens herausfinden konnte, erschien das Chaos der vertikalen Linie, wenn ein neues Muster gefunden wurde).
 

Ein paar weitere kleine Verbesserungen:

  • OnInit() wurde von einem void zu einem int geändert, so dass es jetzt INIT_SUCCEEDED zurückgibt,
  • Hinzufügen einer terminalweiten GlobalVariable (GV), die den ersten zukünftigen Kurswert des Indikators speichert (CopyBuffer() funktioniert nicht in einem EA mit "zukünftigen Indikator-Pufferwerten "), und
  • OnDeinit() hinzugefügt, wobei die GV automatisch aus dem Terminal gelöscht wird.

Der Zweck dieser Änderungen ist es, den Indikator besser für den automatisierten Handel geeignet zu machen. Wenn Sie mehr Future-Kurswerte für Ihre Zwecke benötigen, durchlaufen Sie einfach die Balken 0 bis 48 am Ende des Codes und aktualisieren Sie den GV-Wert.

 
Ryan L Johnson #:


  • Hinzufügen einer terminalweiten GlobalVariable (GV), die den ersten Future-Preiswert des Indikators speichert(CopyBuffer() funktioniert nicht in einem EA mit " Future-Indikator-Pufferwerten "),

Der Zweck dieser Änderungen ist es, den Indikator für den automatisierten Handel besser geeignet zu machen. Wenn Sie weitere Future-Kurswerte für Ihre Zwecke benötigen, durchlaufen Sie einfach die Balken 0 bis 48 am Ende des Codes und aktualisieren Sie den GV-Wert.

Warum ist das so? Sie können auf alle Werte aus den Puffern des Indikators zugreifen , auch auf die des Futures.
MQL5 Book: Getting timeseries data from an indicator: CopyBuffer / Creating application programs
MQL5 Book: Getting timeseries data from an indicator: CopyBuffer / Creating application programs
  • www.mql5.com
An MQL program can read data from the indicator's public buffers by its handle. Recall that in custom indicators, such buffers are arrays specified...
 
Stanislav Korotky #:
Warum ist das so? Sie können auf beliebige Werte aus Indikatorpuffern zugreifen , auch aus der Zukunft.

Ich konnte das in Indikatoren tun, aber nicht in EAs. Haben Sie ein anderes Beispiel/einen anderen Artikel, der dies in einem EA tut, bitte?

 
Ryan L Johnson #:

Ich konnte das in Indikatoren tun, aber nicht in EAs. Haben Sie ein anderes Beispiel/Artikel, der dies in einem EA tut, bitte?

Bitte ignorieren Sie meinen Beitrag #24. Ich vermute, dass ich die falsche Form von Copybuffer() in einem EA verwendet habe. Die richtige Form scheint zu sein:

"[I]n den Parametern CopyBuffer ( erste Form) muss manoffset gleich (- N)angeben..."

int CopyBuffer(int handle, int buffer, int offset, int count, double &array[])
 

@Stanislav Korotky, Danke für den Hinweis auf die Dokumentation. Die "erste Form" ist sehr nützlich für das Kopieren zukünftiger Pufferwerte, insbesondere bei benutzerdefinierten Charts.

@Vladimir, ich danke Ihnen, wenn auch verspätet, für die Veröffentlichung des Quellcodes dieses Indikators. Ich hatte keine Ahnung, wie gültig solche Kursmuster von vor Jahrzehnten heute sein könnten. Ich habe ihn benutzt, um gleich zu Beginn 2 Gewinntrades zu erzielen. Der eine war um 1999, der andere um 2005.

Hier ist der Code des Indikators, den ich jetzt verwende (ohne GV):