Diskussion zum Artikel "DRAW_ARROW Zeichnungstyp in Multi-Symbol-Multi-Perioden-Indikatoren"

 

Neuer Artikel DRAW_ARROW Zeichnungstyp in Multi-Symbol-Multi-Perioden-Indikatoren :

In diesem Artikel werden wir uns mit Multi-Symbol-Multi-Perioden-Indikatoren beschäftigen, die Pfeile zeichnen. Wir werden auch die Klassenmethoden für die korrekte Anzeige von Pfeilen verbessern, die Daten von Pfeilindikatoren anzeigen, die auf einem Symbol/einer Periode berechnet wurden, das/die nicht mit dem Symbol/der Periode des aktuellen Charts übereinstimmt.

Wir setzen das Thema der Multi-Symbol-Multi-Perioden-Indikatoren fort. Der vorige Artikel dieser Reihe behandelte das Thema der Multi-Symbol-Multi-Perioden-Indikatoren. In diesem Artikel werden wir die Multi-Indikator-Klasse so ändern, dass sie mit Pfeil-Indikatoren arbeiten kann. 

Pfeilindikatoren bedeuten, dass nicht immer Daten in ihrem Puffer, der gezeichnet wird, verfügbar sind. Ist ein Wert in dem Puffer vorhanden, wird der Pfeil angezeigt, andernfalls enthält der Puffer den dafür eingestellten leeren Wert. Normalerweise ist dies EMPTY_VALUE, aber es ist möglich, den Puffer auf einen beliebigen Wert zu setzen, der dann für „leer“ steht und nicht im Chart angezeigt wird. Dies wird erreicht durch folgende Funktion

PlotIndexSetDouble(buffer_index,PLOT_EMPTY_VALUE,empty_value);

wobei buffer_index der Pufferindex des Puffers ist, für den mit empty_value der „Leerwert“ festgelegt wird.

Bei Mehrperioden-Indikatoren, bei denen die Datenpuffer Lücken aufweisen, ist es notwendig, das Vorhandensein von „leeren“ Werten zu berücksichtigen, sodass keine Pfeile gezeichnet werden, und diese „leeren“ Werte nicht in den Balken des Charts erscheinen, in dem bereits ein nicht-leerer Wert geschrieben ist. Andernfalls wird der zuvor platzierte Pfeil durch einen neuen „leeren“ Wert gelöscht. Dies ist der Fall, wenn Daten aus einem Indikator, der in einem niedrigeren Zeitrahmen berechnet wurde, in einen höheren Zeitrahmen kopiert werden.

Lassen Sie mich ein Beispiel nennen. Die М15-Balken werden dem M5-Chart überlagert:

Hier sehen wir die Fraktale des M5-Charts, die auf den Balken des M15-Charts installiert werden müssen.

Autor: Artyom Trishkin

 

Ein Händler schrieb mir einmal, er entwickle ein "schnelles Fraktal", fast wie ein Gral.

Und ich schrieb ihm: "Warum nicht Fraktale von M5 bis M15 verwenden". Das ist die Geschichte.

 
Vitaliy Kuznetsov Gral gleicht.

Und ich schrieb ihm: "Warum nicht Fraktale von M5 bis M15 verwenden". Das ist die Geschichte.

Ein Fraktal kann im Prinzip weder schnell noch langsam sein :)

Solange nicht zwei Balken von oben gebildet werden, gibt es kein Fraktal, oder besser gesagt, es gibt etwas, aber es ist kein Fraktal.


 
Vitaly Muzichenko #:

Ein Fraktal kann im Prinzip weder schnell noch langsam sein :)

Solange nicht zwei Balken von oben gebildet werden, gibt es kein Fraktal, oder besser gesagt, es gibt etwas, aber es ist kein Fraktal


Artem, ich habe Ihr Panel in den Expert Advisor eingefügt, was muss ich tun, damit es im Tester für visuelle Tests funktioniert?

 
Konstantin Seredkin #:

Artem, ich habe Ihr Panel in den Expert Advisor eingefügt, was sollte ich tun, um es in den Tester auf visuelle Prüfung zu machen?

Die Antwort hängt davon ab, was Sie während der visuellen Prüfung auf dem Panel sehen müssen.

 
Artyom Trishkin #:

Die Antwort hängt davon ab, was Sie bei der visuellen Prüfung auf der Platte sehen müssen.

Zum Beispiel, Ihr Expert Advisor aus den vorherigen Artikeln TestTrendADX, wenn Sie es auf visuelle laufen, werden die Daten nur nach der Initialisierung angezeigt, dann nichts angezeigt wird.



Wenn Sie es so machen, werden die Daten des aktuellen Balkens und die Indikatordaten angezeigt

//+------------------------------------------------------------------+
//| Experten-Tick-Funktion|
//+------------------------------------------------------------------+
void OnTick()
  {
//---
//--- Anzeige der aktuellen Balkendaten auf der Tafel
   DrawData(0,TimeCurrent());
  }



Aber ich weiß nicht, ob ich es richtig mache oder nicht.

 
Konstantin Seredkin #:

Nun, zum Beispiel, Ihr Expert Advisor aus den vorherigen Artikeln TestTrendADX, wenn Sie es auf visuelle laufen, werden die Daten nur nach der Initialisierung angezeigt, dann nichts angezeigt wird.



Wenn Sie das so machen, werden die Daten des aktuellen Balkens und die Daten des Indikators6 angezeigt



Ich weiß nicht, ob ich es richtig mache oder nicht.

Das Problem ist, dass OnChartEvent() nicht im visuellen Modus des Testers in Expert Advisors funktioniert, in Indikatoren nur Ereignisse von Mausklicks auf dem Chart funktionieren. Bei den Testindikatoren, von denen Sie sprechen, zeigt das Panel Daten unter dem Mauszeiger an. Das heißt, das Programm verfolgt die Position des Cursors und sendet Daten von dem Balken, der sich unter dem Cursor befindet, an das Panel. Im visuellen Modus des Testers müssen Sie auf den Balken klicken, von dem Sie Daten auf dem Panel erhalten möchten. Oder Sie holen die Daten in OnTick(), aber nur vom aktuellen Balken, wie Sie es getan haben.

 
Artyom Trishkin #:

Das Problem ist, dass OnChartEvent() im visuellen Modus des Testers in Expert Advisors nicht funktioniert, nur Mausklick-Ereignisse auf dem Chart funktionieren in Indikatoren. Bei den Testindikatoren, von denen Sie sprechen, zeigt das Panel Daten unter dem Mauszeiger an. Das heißt, das Programm verfolgt die Position des Cursors und sendet Daten von dem Balken, der sich unter dem Cursor befindet, an das Panel. Im visuellen Modus des Testers müssen Sie auf den Balken klicken, von dem Sie Daten auf dem Panel erhalten möchten. Oder Sie holen die Daten in OnTick(), aber nur vom aktuellen Balken, wie Sie es getan haben.

Alles klar, lesen Sie noch einmal das erste Thema.

In der Tat, um meine Informationen an das Panel auszugeben, brauche ich nur einen Event-Handler und rufen DrawData() In OnTick() und alles funktioniert.

Danke, ich habe lange nach dem einfachsten Panel gesucht, um Debugging-Informationen darin auszugeben, denn aus irgendeinem Grund sinkt die Geschwindigkeit von Tests auf der Visualisierung durch Comment() um ein Vielfaches, die Geschwindigkeit durch das Panel ist so, als ob es ein Test ohne es wäre.

 
Konstantin Seredkin #:

Alles geklärt, lesen Sie den ersten Thread erneut.

In der Tat, um meine Informationen im Panel anzuzeigen, brauche ich nur einen Event-Handler und rufen DrawData() In OnTick() und alles funktioniert.

Danke, ich habe für die einfachste Panel suchen, um Debugging-Informationen in es für eine lange Zeit, denn aus irgendeinem Grund die Geschwindigkeit der Prüfung auf Visualisierung fällt viele Male durch Comment(), die Geschwindigkeit durch das Panel ist, als ob es ein Test ohne sie waren.

Aber gut. Ich bin froh, dass Sie es selbst herausgefunden haben.

 
Artyom Trishkin #:

Gut. (lacht) Ich bin froh, dass du es selbst herausgefunden hast.

Sie schrieben, dass Sie, wenn die Zeit gekommen ist, einen Beispielroboter in Ihrer Bibliothek erstellen werden, auf dessen Grundlage klar ist, was und wo man einfügen muss, um Algorithmen vollständig zu nutzen und zu sammeln.

Die Zeit ist noch nicht gekommen... Ich sehe gerade, dass die Themen in der Bibliothek vorbei sind.

 
Konstantin Seredkin #:

Ich entschuldige mich, vielleicht off topic, ich habe Ihre Threads seit langem verfolgt, Sie schrieben, dass Sie, wenn die Zeit kommt, einen Beispielroboter in Ihrer Bibliothek erstellen werden, auf dessen Grundlage klar wäre, was und wo man einfügen muss, um Algorithmen vollständig zu nutzen und zu sammeln.

Die Zeit ist noch nicht gekommen... Ich sehe gerade, dass die Themen in der Bibliothek vorbei sind.

Auf der Bibliothek - auf die Fortsetzung mit Grafiken, während suspendiert Entwicklung wegen einer unangenehmen Fehler, der sich in periodischen Blinken der versteckten Teile der Objekte manifestiert. Bis ich die Ursache gefunden habe, sollte ich keine Grafiken erstellen, um keine Bugs anzuhäufen. Aber die restlichen Funktionen der Bibliothek werden bald fortgesetzt. Und dann werden wir zu den Beispielen kommen.