Merkmale der Sprache mql4, Feinheiten und Techniken - Seite 32

 
Andrey Khatimlianskii:

Wenn der 500-Balken-Zyklus und der Vergleich ihrer Werte mit den gespeicherten Werten viele Male durchgeführt werden müssten und dies länger dauern würde als die Berechnung des Hashwerts im selben Zyklus und der Vergleich mit dem gespeicherten Wert, dann wäre dies sinnvoll.
Dies ist jedoch kaum der Fall.

Warum brauchen Sie so lange zum Zählen, dass Sie das seltene Auftreten des Zurücksetzens von prev_calculated bemerken?

Der Expert Advisor ruft den Indikator jede Minute auf und prüft, was neu ist. Wenn prev_calculated=0 festgestellt wird, ist es eine vollständige Neuberechnung, vielleicht nicht so lange, aber immerhin. Zum Beispiel USDCNH Paar ist nicht selten bei meinem Broker zurückgesetzt.
Die Rückstellzeit (prev_calculated=0):


P.S. Ich bin selbst neugierig, welche Kerze sich ändert, wenn der Max bar in history/chart im Terminal auf 2000/2000 gesetzt wird.
 
Nauris Zukas:

P.S. Ich frage mich sogar, welche Kerze sich ändert, wenn das Terminal Max bar in history/chart auf 2000/2000 eingestellt ist.

Erstellen Sie einen Indikator mit 4 Indikatorpuffern, die OHLC speichern - füllen Sie sie, wenn Sie den Indikator zum ersten Mal ausführen

bei prev_calculated=0 in die Protokolldatei schreiben, wenn es eine Diskrepanz zwischen OHLC und Puffern gibt, und dann die Indikatorpuffer mit der neuenOHLC synchronisieren

HH: im Prinzip macht es keinen Sinn, die Puffer beim ersten Start des Indikators aufzufüllen - dies kann bei prev_calculated=0 geschehen

 
Nauris Zukas:

Der Expert Advisor ruft den Indikator jede Minute auf und prüft, was neu ist, wenn prev_calculated=0 gesehen wird, dann gibt es eine vollständige Neuberechnung, es kann nicht lange dauern, um zu zählen, aber trotzdem. Zum Beispiel USDCNH Paar ist nicht so selten bei meinem Broker zurückgesetzt.
Rückstellzeit (prev_calculated=0):


P.S. Ich frage mich sogar, welche Kerze sich ändert, wenn der Max bar in history/chart im Terminal auf 2000/2000 eingestellt ist.

Kaum eine Veränderung der Bar. Es handelt sich eher um eine Dienstleistung.

Ich sehe keinen Sinn darin, sich damit zu befassen.

 
Andrey Khatimlianskii:

Eher etwas Offizielles.

Das habe ich nicht gewusst. Dann hat es definitiv keinen Sinn, sich damit zu befassen. Lesen Sie einfach im Handbuch: "Wenn seit dem letzten Aufruf von OnCalculate() Preisdaten geändert wurden (eine tiefere Historie wurde gepumpt oder Historienleerstellen wurden aufgefüllt), dann wird der Wert des Eingabeparameters prev_calculated vom Terminal selbst auf Null gesetzt.

 
Igor Makanu:

Schreiben Sie einen Indikator mit 4 Indikatorpuffern, die OHLC speichern - füllen Sie sie beim ersten Start des Indikators

Wenn prev_calculated=0 ist, schreiben Sie in das Protokoll, wo es eine Diskrepanz zwischen OHLC und Puffern gibt und synchronisieren dann die Indikatorpuffer mit der neuenOHLC

HH: im Prinzip macht es keinen Sinn, Indikatorpuffer beim ersten Auftreten auszufüllen - man kann es bei prev_calculated=0 tun

Ja, danke, aus Interesse werde ich einen separaten Indikator erstellen und prüfen, ob sich die Kerzen ändern oder ob es einen Service gibt.

 
OrderModify TP und SL schlägt bei einem Paar (HSI50) fehl, alle anderen Paare sind in DC OK. Manuell ändert sich alles, aber sobald OrderModify versucht wird, gibt es keinen Weg, auch TP und SL können nicht aus OrderModify entfernt werden. Der Fehler zeigt einen ungültigen Preis an (129). Offensichtlich ist OrderModify dort verboten (keine Ahnung warum).
Frage, hat jemand nach OrderModify gesucht? Wie kann man das überprüfen?
P.S. Die Vertragsspezifikation lautet HSI50 (Full acces.)
 
Guten Tag!
Bei einem Broker fliegt MarketInfo() ständig (ein- oder zweimal am Tag) ab, bekommt den Wert 0 ( konkret MODE_MARGINREQUIRED). Das ist ziemlich normal, aber gleichzeitig gibt es keinen Versuch, den iCustom()-Indikator zu erreichen (der über eine Ressource verbunden ist). Selbst nachdem MarketInfo() Daten erhalten hat, bleibt iCustom() stumm. Nur ein Neustart des Terminals hilft. Wie kann ich auf den Indikator zugreifen, ohne das Terminal neu zu starten? Haben Sie eine Idee? Kann der Indikator irgendwo aus einer Ressource verschwinden?
 
Nauris Zukas:
Guten Tag!
Ein Broker fliegt ständig (ein- oder zweimal am Tag) MarketInfo() ab, erhält den Wert 0 ( MODE_MARGINREQUIRED speziell). Das ist ziemlich normal, aber gleichzeitig gibt es keinen Versuch, den iCustom()-Indikator zu erreichen (der über eine Ressource verbunden ist). Selbst nachdem MarketInfo() Daten erhalten hat, bleibt iCustom() stumm. Nur ein Neustart des Terminals hilft. Wie kann ich auf den Indikator zugreifen, ohne das Terminal neu zu starten? Haben Sie eine Idee? Kann der Indikator irgendwo aus einer Ressource verschwinden?

Das ist die Frage, auf die ich gerne eine Antwort hätte.

 
Ist es technisch möglich, herauszufinden, ob der Broker im normalen oder im FIFO-Modus arbeitet, ohne Trades zu eröffnen? Ich habe die gesamte Dokumentation durchsucht und einen solchen Parameter nicht gefunden. Wenn Sie ein Netting-Konto haben, ist das Hedging deaktiviert.
 
Hallo!

Ich kann mich nicht daran erinnern, dass ich bei Time[1] auf "array out of range" gestoßen bin, aber diese Tatsache ist in EA passiert. Tun Sie eine Art von Prüfung für "Array außerhalb des Bereichs" für vordefinierte Array-Variablen-Zeitreihen?