Fehler, Irrtümer, Fragen - Seite 342

 
Urain:

Die einfachste Lösung für MQ wäre, die Funktionsparameter

Arrays anstelle von Variablen, die jetzt als Parameter existieren. Die Lösung ist natürlich einseitig, da es ohnehin keine Möglichkeit gibt, Daten zwischen EAs zu übertragen, aber es ist immer noch besser als nichts.

Noch besser wäre etwas wie dieses

void SendData(const int handle,const long &lparam[],const double &dparam[],const string &sparam[])
void GetData(const int handle,const long &lparam[],const double &dparam[],const string &sparam[])

Die Möglichkeit, an einen bestimmten Empfänger zu senden und von einem bestimmten Absender zu empfangen. Und nicht nur für eine Tabelle schicken. Und das Handle öffentlich machen. Nun, so etwas in der Art.

 

Es gibt eine solche Aufgabe: Das Indikatorfenster sollte aus dem Expert Advisor entfernt und wiederhergestellt werden. Die berechneten Daten bleiben jedoch konstant.

Eine einfache Lösung besteht darin, einen Indikator für die Berechnung von Daten (nennen wir ihn "Berechnen") und einen Indikator für die Anzeige von Daten in einem separaten Fenster (nennen wir ihn "Darstellen") zu erstellen. Der "Plot" -Indikator wird von iCustom("Calculate") aufgerufen, aber der Expert Advisor wird auch vorher von iCustom("Calculate") aufgerufen. Sie werden mit denselben Parametern aufgerufen. Ich habe irgendwo erwähnt, dass zwei Indikatoren mit den gleichen Parametern nicht in einem Diagramm erstellt werden, sie erstellen ein zusätzliches Handle, das sich auf das Haupthandle des bereits gestarteten Indikatorprozesses bezieht.

Daher die Frage: Nachdem der Plot aus einem EA entfernt und wieder hinzugefügt wurde, wird der im Plot gestartete Calculate-Indikator erneut berechnet, oder übernimmt er einfach die berechneten Daten des im EA gestarteten Calculate-Indikators?

 
Urain:

Ich habe irgendwo erwähnt, dass nicht zwei Indikatoren mit denselben Parametern in einem Diagramm erstellt werden, sondern nur ein zusätzliches Handle erstellt wird, das sich auf das Haupt-Handle eines bereits laufenden Indikatorprozesses bezieht.

MQL5 Referenzhandbuch / Technische Indikatoren / Funktionen für die Arbeit mit technischen Indikatoren:

"Alle Funktionen wie iMA, iAC, iMACD, iIchimoku usw. erstellen eine Kopie des entsprechenden technischen Indikators im globalen Cache des Client-Terminals. Existiert bereits eine Kopie des Indikators mit diesen Parametern, wird keine neue Kopie erstellt, sondern der Zähler der Verweise auf diese Kopie wird erhöht.

Diese Funktionen geben das Handle der entsprechenden Indikatorkopie zurück. Mit diesem Handle können Sie anschließend die vom entsprechenden Indikator berechneten Daten abrufen..."

"Hinweis. Mehrere Aufrufe der Indikatorfunktion mit den gleichen Parametern innerhalb eines mql5-Programms erhöhen den Referenzzähler nicht mehrfach, sondern nur einmal um 1. . ..".

 
Yedelkin:

MQL5 Referenzhandbuch / Technische Indikatoren / Funktionen für die Arbeit mit technischen Indikatoren:

...

"Hinweis. Ein mehrfacher Zugriff auf die Indikatorfunktion mit den gleichen Parametern innerhalb eines mql5-Programms führt nicht zu einer mehrfachen Erhöhung des Indikatorzählers, der Zähler wird nur einmal um 1 erhöht. ...".

Ja, das ist genau das Richtige. Danke für den Hinweis.

Ich verstehe diesen Satz nicht ganz. Ist es möglich, den im Expert Advisor gestarteten Indikator als ein Programm zu betrachten oder handelt es sich um zwei Programme?

Wenn die erste Annahme zutrifft, dann ist alles in Ordnung. Wenn der Compiler sie jedoch als unterschiedliche Programme behandelt, gibt es ein Problem.

 
Urain:

Kann der Indikator, der in der EA läuft, als ein Programm betrachtet werden, oder handelt es sich um zwei Programme?

1. Im Handbuch heißt es:"Alle Funktionen wie iMA, iAC, iMACD, iIchimoku usw. erstellen eine Kopie des entsprechenden technischen Indikators im globalen Cache des Client-Terminals".

Ich lese es so (in Bezug auf Ihre Frage):"Alle Funktionen, wie iMA, iAC, iMACD, iIchimoku , etc.werden von einem bestimmten mql5-Programm aufgerufen understellen eine Kopie des entsprechenden technischen Indikators im globalen Cache des Client-Terminals". Daher bedeutet die allgemeine Formulierung"EA E führt Indikator I aus" , dass EA E die Funktion I aufruft, die eine Kopie des Indikators im globalen Cache des Client-Terminals erstellt und EA E veranlasst, das Handle dieser Kopie zu erhalten.

2. wenn "EA E ruft Indikatorfunktion I auf", dann bedeutet das, dass er die Indikatorfunktion "innerhalb eines mql5-Programms" aufruft.

 
Ich habe 420 Build von hierhttps://www.mql5.com/ru/forum/23/page11 heruntergeladen, aber es wird tatsächlich 412 installiert. Habe ich ein Problem oder haben sie vergessen, die Dateimetaquotes.net zu ändern?
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
 
Yedelkin:

1. Im Referenzhandbuch heißt es:"Alle Funktionen wie iMA, iAC, iMACD, iIchimoku usw. erstellen eine Kopie desbetreffenden technischen Indikators im globalen Cache des Client-Terminals".

Ich lese es so (in Bezug auf Ihre Frage):"Alle Funktionen, wie iMA, iAC, iMACD, iIchimoku, etc. werden von einem bestimmten mql5-Programm aufgerufen und erstellen eine Kopie des entsprechenden technischen Indikators im globalen Cache des Client-Terminals". Daher bedeutet die allgemeine Formulierung"EA E führt Indikator I aus" , dass EA E die Funktion I aufruft, die eine Kopie des Indikators im globalen Cache des Client-Terminals erstellt und EA E veranlasst, das Handle dieser Kopie zu erhalten.

2) Wenn "EA E ruft Indikatorfunktion I auf", dann handelt es sich um den Aufruf der Indikatorfunktion "innerhalb eines einzigen mql5-Programms".

Ich habe sie. Der Schlüsselbegriff ist hier"im globalen Cache des Client-Terminals".

Wenn ja, dann ist alles in Ordnung. Eine weitere Frage wurde geklärt.

 
a483483:
Ich lade den 420er Build von hierhttps://www.mql5.com/ru/forum/23/page11 herunter, aber es wird tatsächlich der 412er Build installiert. Ich habe ein Problem oder inmetaquotes.net Datei vergessen zu ändern ?

Warten Sie also und es sollte sich auf die neueste Version aktualisieren.

SZS lassen Sie einfach das Terminal laufen und kümmern Sie sich um Ihre eigenen Angelegenheiten, nach einer Weile werden Sie in der Terminal-Meldung sehen, dass diese und jene Version heruntergeladen wurde, und werden aufgefordert, das Terminal neu zu starten.

 

Guten Tag!

Nach dem Upgrade auf die Version 420 begann ich, meinen EA zu testen und bemerkte, dass er aus irgendeinem Grund zu "verlieren" begann. Ich habe meine Geschäfte analysiert und festgestellt, dass der Stop-Loss bei nicht existierenden Kursen ausgelöst wird. Zum Beispiel habe ich den Stop Loss bei 1.06520 für EURUSD gesetzt, aber es funktioniert, obwohl der maximale Preis 1.05920 ist. Wenn ich mich weiter umschaue, sehe ich eine Menge solcher Angebote. Der Take Profit wird nach dem gleichen Prinzip ausgelöst (bei nicht vorhandenen Kursen) - das Delta ist dasselbe - 600 Punkte. Im Testgerät auf dem Diagramm "hängen" die Auf- und Abwärtspfeile in der Luft, weit entfernt von Balken.

Ein Bildschirmfoto ist beigefügt.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
Dateien:
eurusd.jpg  235 kb
 
Kairoser:

Guten Tag!

Nach dem Upgrade auf die Version 420 begann ich meinen EA zu testen und bemerkte, dass er aus irgendeinem Grund zu "verlieren" begann. Ich habe meine Geschäfte analysiert und festgestellt, dass der Stop-Loss bei nicht existierenden Kursen ausgelöst wird. Zum Beispiel habe ich den Stop Loss bei 1.06520 für EURUSD gesetzt, aber es funktioniert, obwohl der maximale Preis 1.05920 ist. Wenn ich mich weiter umschaue, sehe ich eine Menge solcher Angebote. Der Take Profit wird nach dem gleichen Prinzip ausgelöst (bei nicht vorhandenen Kursen) - das Delta ist dasselbe - 600 Punkte. Im Testgerät auf dem Diagramm "hängen" die Auf- und Abwärtspfeile in der Luft, weit entfernt von Balken.

Ein Bildschirmfoto ist beigefügt.

Versuchen Sie, Ihren EA auf dem MQ-Server zu testen. Alpari hat möglicherweise immer noch das alte Problem mit falschen historischen Daten.
Grund der Beschwerde: