Die Sprache MQL5 von Grund auf selbst erlernen - Seite 64

 
MrBrooklin:

Muss Alert() verwendet werden, oder dient es nur zur Information?

Nicht unbedingt, es dient nur der Bequemlichkeit.

 
VVT:

Nicht unbedingt, sondern aus Bequemlichkeit

Ich verstehe.

Hochachtungsvoll, Vladimir.

 
MrBrooklin:

Hallo Valery! Ich danke Ihnen für Ihren Rat. Mit dem if-else-Operator habe ich mich bereits angefreundet, und jetzt muss ich auch den switch-Operator beherrschen. Muss ich Alert() verwenden, oder ist es nur für weitere Informationen da?

Mit freundlichen Grüßen, Vladimir.

Angesichts meiner Erfahrung als Elektronikingenieur. Wenn es brennt, ertönt eine Sirene, wenn der Boden nicht geputzt wird, ein Hinweis an die Reinigungskraft. Der Kommentar wird in das Diagramm geschrieben, in ein Protokoll gedruckt, in eine Datei geschrieben, ein Alarmton ertönt, und es gibt auch ein Meldungsfeld, das ebenfalls ertönt, aber es ist nicht nativ.

 
Valeriy Yastremskiy:

In Anbetracht der Erfahrung des Elektrikers. Auf Feuersirene, auf nicht gereinigten Böden, Hinweis auf Reinigungsmittel. Der Kommentar wird in das Diagramm geschrieben, in das Protokoll gedruckt, in eine Datei geschrieben, der Alarm piepst, und die Nachrichtenbox piepst auch, aber das ist nicht normal.

Danke, Sie haben das sehr gut erklärt!

Mit freundlichen Grüßen, Vladimir.

 
Valeriy Yastremskiy:

Wenn die Positionen mit unserem Magik und auf unserem Symbol Null sind, prüfen wir die Zeit und öffnen eine Position, wenn sie 1 ist, öffnen wir keine Position, wir prüfen die Schlusszeit und Schleppnetz, wenn sie mehr als 1 ist, schlagen wir Alarm und arbeiten nicht. Wir können Schriftrollen verwenden oder prüfen, obf.

Hallo Valery! Vielen Dank, Ihre Version "... wenn Positionen mit unserer Magie und an unserem Symbol gleich Null sind, prüfen wir die Zeit und eröffnen eine Position..." hat sich als die einfachste und effektivste herausgestellt. Ich habe es zur Bedingung der Überprüfung der Zeit && PositionTotal()==0 hinzugefügt und nur eine Position mit dem benötigten Betrag wird geöffnet!

   if(time_current.hour==time_open.hour && time_current.min==time_open.min && PositionsTotal()==0)
      OpenBUY();

Mit freundlichen Grüßen, Vladimir.


 
Hier ist ein interessanter Artikel
https://www.mql5.com/ru/articles/35

Exp und Indikator.
 
Aleksey Masterov:
Hier ist ein interessanter Artikel
https://www.mql5.com/ru/articles/35

Exp und Indikator.

Hallo Alexey, danke für den Link zu dem Artikel. Ja, es gibt eine Menge interessanter Dinge darin.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:
if(time_current.hour==time_open.hour && time_current.min==time_open.min


dies ist nicht der beste Weg, um die Wartezeit bis zur Eröffnung einer Position zu vergleichen

in der Testversion wird immer alles reibungslos funktionieren, im realen Konto können Fehler auftreten - der Expert Advisor arbeitet mit dem Eintreffen eines Ticks, wenn der Tick aus irgendeinem Grund nicht genau in der Minute kommt, auf die Sie warten, wird Ihr Algorithmus nicht korrekt funktionieren und es wird sehr schwer sein, diesen logischen Fehler später zu finden


Versuchen Sie, dieses Problem neu zu formulieren, um von einem strikten Gleichheitsvergleich ( == ) zu einer Bedingung mehr oder gleich ( >= ) ....( und/oder einer Bedingung weniger oder gleich) wegzukommen

 
Igor Makanu:

dies ist nicht der beste Weg, um die Wartezeit bis zur Eröffnung einer Position zu vergleichen

Im Test wird immer alles reibungslos funktionieren, im realen Konto können Fehler auftreten - der Expert Advisor arbeitet mit dem Eintreffen eines Ticks, wenn der Tick aus irgendeinem Grund nicht genau in der Minute kommt, auf die Sie warten, wird Ihr Algorithmus nicht korrekt funktionieren und es wird sehr schwer sein, diesen logischen Fehler später zu finden

Versuchen Sie, das Problem umzuformulieren, um von einem strikten Gleichheitsvergleich ( == ) zu einer Bedingung größer oder gleich ( >= ) ....( und/oder einer Bedingung kleiner als gleich) zu kommen

Hallo Igor, danke für den Tipp. Ich stimme Ihrer Argumentation voll und ganz zu, denn die Situationen, in denen man tickt, können tatsächlich unterschiedlich sein. Ich werde eine Korrektur im Code vornehmen.

Mit freundlichen Grüßen, Vladimir.

 

Der Code wurde, wie von Igor empfohlen, korrigiert. Sehr guter und aktueller Tipp! Damit wurde ein Problem in der EA-Operation beseitigt, das ich vorher nicht bemerkt hatte. Nochmals vielen Dank, Igor!

Mit freundlichen Grüßen, Vladimir.