Equity-Oszillator von MQL5 bedeutet - Seite 3

 

DV2010:

...Renat, so wie ich es verstehe, basiert die Anzeige des Indikators auf dem Diagramm nach Abschluss des Tests auf den Berechnungen, die während des Tests durchgeführt wurden, und auf dem Füllen des Indikator-Arrays. Aber was bedeutet es, dass die Ergebnisse nicht vom Tester in das Diagramm des benutzerdefinierten Indikators übertragen werden?

Natürlich werden die Daten der Indikatorberechnung vom Tester-Agenten nicht auf die Terminalkarte übertragen. Wir werden nicht Hunderte von Megabytes an berechneten Daten an das Terminal übergeben, und sie werden sofort (und beim nächsten Tick) vom Indikator neu berechnet (der Aufruf der Funktion OnCalculate wurde nicht abgebrochen).

Der Indikator sollte sich selbst berechnen.

 

sergey1294:
Отвечу вам одно, пока не появиться режим визуализации решить вашу задачу не так просто. Есть одно решение, это записывать данные эквити в файл при тесте. потом данные из этого файла записать в буфер индикатора тем самым построить график эквити.

Aber wo genau schreibe ich die Daten in den Puffer?

Ich dachte, es könnte nur in OnCalculated geschrieben werden und habe versucht, es auf diese Weise zu implementieren.

 
DV2010:

Rosh, die Variante für Online wurde bereits gepostet, aber als jemand, der hauptsächlich mit Geschichte arbeitet, brauche ich eine Variante, die mit historischen Daten arbeitet. Und es fällt mir immer noch schwer zu verstehen, worin hier die Hauptschwierigkeit liegen könnte.


Aktienwerte in eine Datei schreiben. Stellen Sie dann den Indikator anhand dieser Werte dar. Die Datendatei muss jedoch manuell übertragen werden, da die Dateien während der Tests in den Ordner agent_name/MQL5/Files geschrieben werden.
 
DV2010:

Aber wo genau schreibe ich die Daten in den Puffer?

Ich dachte, es könnte nur in OnCalculated geschrieben werden und habe versucht, es auf diese Weise zu implementieren.

Wir verwenden expert, um Werte in die Datei zu schreiben, und schreiben dann in den Indikator den Code zum Lesen aus der Datei und zum Schreiben von Daten in den Puffer. Ich kann Ihnen den Code noch nicht zeigen, es wird einige Zeit dauern, bis ich ihn geschrieben habe.

 
Renat:

Die berechneten Indikatorwerte können natürlich nicht vom Tester-Agenten auf das Terminal-Chart übertragen werden. Wir werden nicht Hunderte von Megabytes an berechneten Daten an das Terminal übergeben, und sie werden sofort (und beim nächsten Tick) vom Indikator neu berechnet (der Aufruf der Funktion OnCalculate wurde nicht abgebrochen).

Renat, der Indikator sollte sich selbst lesen

Deshalbinitialisiere ich die Werte des Indikator-Arrays mit einigen Werten in der Methode OnCalculated . Aber warum ist es möglich, die Indikatorlinie auf diese Weise zu initialisieren (aufzubauen), während die Aktienwerte dies nicht tun?

 
DV2010:

Renat, der Indikator sollte sich selbst lesen

Deshalbinitialisiere ich die Werte des Indikator-Arrays mit einigen Werten in der Methode OnCalculated . Aber warum ist es möglich, die Indikatorlinie aufdiese Weise zu initialisieren (aufzubauen), während die Aktienwerte dies nicht tun?

Denn die Preise haben eine Geschichte, das Eigenkapital aber nicht. Daher müssen Sie Ihren eigenen Verlauf für Equity erstellen, indem Sie ihn in eine Datei schreiben.
 
Rosh: Schreiben Sie Aktienwerte in die Datei. Anschließend wird der Indikator auf der Grundlage dieser Werte konstruiert. Die Datendatei muss jedoch manuell übertragen werden, beim Testen werden die Dateien in den Ordner Agent_name/MQL5/Files geschrieben.

So wie ich es verstehe, sollte es im OnInit des Expert Advisors in die Datei geschrieben werden, basierend auf der Definition über AccountInfoDouble(ACCOUNT_EQUITY) und aus der Datei gelesen werden - im OnCalculated Indikator.

Aber warum sind die Daten der Variablen Equty über AccountInfoDouble(ACCOUNT_EQUITY) direkt in OnCalculated verfügbar?

Der Code würde dann zu umständlich werden.....

Ich kannnicht verstehen ...OnCalculated in Print AccountInfoDouble(ACCOUNT_EQUITY) gibt einen Wert aus .

Was genau verhindert, dass es sofort dem Array der Indikatorwerte zugewiesen wird?

Ich dachte immer, dass sich die Anzeige von Werten im Tester auf der Historie von der Anzeige aktueller Werte nur dadurch unterscheidet, dass die Historie bereits aufgezeichnet ist, während die aktuellen Daten gerade erst eintreffen.

 

sergey1294:
потому что цены имеют историю а эквити нет. По этому для эквити вам нужно строить собственную историю записав ее в файл.

Aber wie wird dann die Equty-Dynamik überhaupt durch AccountInfoDouble(ACCOUNT_EQUITY) in OnCalculated Indicator angezeigt (nicht nur in OnTick Expert Advisor)?

Oder funktioniert der OnCalculated Indicator im Testmodus anders als im Anzeigemodus?

 

Deklarieren Sie zwei Arrays Equity[] und Time[] auf globaler Ebene in EA.

Schreiben Sie den Wert des Eigenkapitals und der Zeit in das entsprechende Array, wenn Sie den EA testen.

Verwenden Sie ein Skript, um die Datei am Ende des Tests zu lesen und den Wert im gewünschten Diagramm darzustellen.

Dies ist die beste Lösung für Ihre Zwecke. Ich verstehe nicht, warum Sie einen Indikator benötigen.

 
DV2010:

Soweit ich das verstehe, sollte sie im OnInit des Expert Advisors auf Basis der Definition über AccountInfoDouble(ACCOUNT_EQUITY) in die Datei geschrieben und im OnCalculated Indikator aus der Datei gelesen werden.

Aber warum sind die Daten der Variablen Equty über AccountInfoDouble(ACCOUNT_EQUITY) direkt in OnCalculated verfügbar?

Der Code würde dann zu umständlich werden.....

Ich kannnicht verstehen ...OnCalculated in Print AccountInfoDouble(ACCOUNT_EQUITY) gibt einen Wert aus .

Was genau verhindert, dass es sofort dem Array der Indikatorwerte zugewiesen wird?

Ich dachte immer, dass die Anzeige von Werten im Tester auf der Historie sich von der Anzeige aktueller Werte nur dadurch unterscheidet, dass die Historie bereits aufgezeichnet ist, während die aktuellen Daten gerade erst eintreffen.

Ich weiß nicht einmal, wie ich es Ihnen erklären soll. AccountInfoDouble(ACCOUNT_EQUITY) speichert den letzten Eigenkapitalwert. Nach dem Test wird der Indikator, wie Renat sagte, neu initialisiert und neu berechnet. Dadurch werden die während des Tests im Indikatorpuffer angesammelten Eigenkapitaldaten gelöscht.