Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1112

 
Alexey Viktorov:

In OnChartEvent müssen Sie auch den genauen Namen des Objekts kennen. Und die hat man erst, wenn man das Objekt selbst hat.

Sie ist bei der Schöpfung in sparam.

Im Allgemeinen funktioniert OnChartEvent, aber nicht in der Testversion.

 
Andrey Sokolov:

Sie ist bei der Schöpfung in sparam.

Im Allgemeinen funktioniert es in OnChartEvent, aber es funktioniert nicht in der Testversion.

Versuchen Sie diese Logik:

wenn es ein neues Objekt gibt ...

 
Andrey Sokolov:

Bei der Schöpfung ist es in sparam.

Im Allgemeinen funktioniert es in OnChartEvent, aber es funktioniert nicht in der Testversion.

Aber womit soll ich es vergleichen? Woran erkennen Sie, dass es sich um das richtige Objekt handelt? Woher wissen Sie, dass es bei derselben Zecke funktioniert?

Artyom Trishkin:

Versuchen Sie diese Logik:

Wenn es ein neues Objekt gibt ...

Es wird auf dem nächsten Tick sein, egal wie schwer es ist.

 
Artyom Trishkin:

Versuchen Sie diese Logik:

wenn es ein neues Objekt gibt ...

Bitte klären Sie, wie genau

 
Alexey Viktorov:

Aber womit vergleichen Sie sparam? Woran erkennt man, dass es sich um das richtige Objekt handelt? Am Namensteil.

Wie kann man feststellen, ob es mit derselben Zecke funktioniert? - Durch die Ausgabe auf dem Drucker.

 
Andrey Sokolov:

Aber womit vergleichen Sie sparam? Woran erkennt man, dass es sich um das richtige Objekt handelt? Am Namensteil.

Wie kann man feststellen, ob es mit derselben Zecke funktioniert? - Druckausgabe.

1. Sieh dir die anderen Objekte an, um zu sehen, ob diese Teile des Namens übereinstimmen.

2. Wird die Zeit in Sekunden ausgedruckt? Und wie oft gibt es Zecken?

 
Alexey Viktorov:


Das wird sozusagen auf den nächsten Tick geschehen.

Nun, warten Sie..., mit einem Millisekunden-Timer können wir die aktuelle Lautstärke ermitteln. Solange sich das Volumen nicht geändert hat (aktueller Tick), prüfen wir, ob ein neues Objekt erschienen ist. Sobald die Anzahl der Objekte in der Vergangenheit nicht mehr gleich der Anzahl der Objekte in der Gegenwart ist, während das aktuelle Volumen gleich dem Volumen in der Vergangenheit ist - das Auftauchen eines Objekts im aktuellen Tick - tun Sie, was Sie brauchen.
Oder täusche ich mich? Es sollte geprüft werden...

SZZ: Wenn ein neues Objekt im Timer erscheint, senden wir ein Benutzerereignis, in das wir die notwendigen Informationen schreiben. Die gesamte Verarbeitung des Erscheinens eines neuen Objekts wird in einem Event-Handler durchgeführt. Und es ist nicht sicher, ob die Annahme richtig ist, und es ist die Mühe wert...

 
Artyom Trishkin:

Moment mal, mit einem Millisekunden-Timer können wir die aktuelle Lautstärke ermitteln. Solange sich das Volumen nicht geändert hat (aktueller Tick), prüfen wir, ob ein neues Objekt erschienen ist. Sobald die Anzahl der Objekte in der Vergangenheit nicht mehr gleich der Anzahl der Objekte in der Gegenwart ist, während das aktuelle Volumen gleich dem Volumen in der Vergangenheit ist - das Auftauchen eines Objekts im aktuellen Tick - tun Sie, was Sie brauchen.
Oder täusche ich mich? Es sollte geprüft werden...

SZZ: Wenn ein neues Objekt im Timer erscheint, senden wir ein Benutzerereignis, in das wir die notwendigen Informationen schreiben. Die gesamte Verarbeitung des Auftretens eines neuen Objekts auf diese Weise wird im Event-Handler durchgeführt. Und es ist nicht sicher, ob die Annahme richtig ist und ob es die Mühe wert ist...

Wenn nicht im Tester, OnChartEvent ist genug, aber im Tester weder Timer noch OnChartEvent funktionieren.

Bislang besteht das Problem darin, dass es im Testgerät auf demselben Tick funktioniert.

 
Alexey Viktorov:

1. Schau dir die anderen Objekte an, um zu sehen, ob diese Teile des Namens übereinstimmen. - Das ist gut genug für mich.

2. Wird die Zeit in Sekunden ausgedruckt? Wie oft treten die Zecken auf? - Es gibt keine spürbare Verzögerung, Sie können sich selbst davon überzeugen, der Code ist minimal

 
Artyom Trishkin:

Moment mal, im Millisekunden-Timer können wir die aktuelle Lautstärke ablesen. Solange sich das Volumen nicht geändert hat (aktueller Tick), prüfen wir, ob ein neues Objekt erschienen ist. Sobald die Anzahl der Objekte in der Vergangenheit nicht mehr gleich der Anzahl der Objekte in der Gegenwart ist, während das aktuelle Volumen gleich dem Volumen in der Vergangenheit ist - das Auftauchen eines Objekts im aktuellen Tick - tun Sie, was Sie brauchen.
Oder täusche ich mich? Es sollte geprüft werden...

SZZ: Wenn ein neues Objekt im Timer erscheint, senden wir ein Benutzerereignis, in das wir die notwendigen Informationen schreiben. Die gesamte Verarbeitung des Auftretens eines neuen Objekts auf diese Weise wird im Event-Handler durchgeführt. Und es ist nicht sicher, ob die Annahme richtig ist, und es ist die Mühe wert...

So wie ich die Aufgabe verstehe:

In einem Diagramm gibt es einen Indikator, der Markierungen zeichnet, und einen EA, der diese Markierungen liest.

Der Expert Advisor muss auf einem Tick die Markierung lesen, die der Indikator auf demselben Tick gezogen hat. Wo ist die Garantie, dass der Indikator schneller arbeitet als der Expert Advisor? Das Ereignis wird gleichzeitig im Indikator und im Expert Advisor auftreten. Zweitens ist es auch in einem Code nach ObjectCreate nicht möglich, die Objekteigenschaften zu lesen, obwohl das Objekt bereits erstellt wurde.

Ich bezweifle sehr, dass ein solcher Trick möglich ist. Aber ich wäre sehr froh, wenn ich mich irren würde.