Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 849

 
Vladislav Andruschenko:
Vielen Dank, sehr hilfreich.
 

Kann jemand helfen, EA-Code auf MT5 zu beheben?

Ich habe die Handbücher gelesen, aber beim Kompilieren komme ich nicht über 2 Lacke hinaus.

Deklaration von "xxxx" verdeckt globale Deklaration

и

möglicher Datenverlust aufgrund von Typumwandlung

EA beigefügt
Dateien:
r1rvcc.mq5  32 kb
 
ilyav:

Kann jemand helfen, EA-Code auf MT5 zu beheben?

Ich habe die Handbücher gelesen, aber beim Kompilieren komme ich nicht über 2 Lacke hinaus.

Deklaration von 'xxx ' verdeckt globale Deklaration

möglicher Datenverlust aufgrund von Typumwandlung

EA-Anwendung

Ich habe mir den Code nicht angeschaut, aber er ist einfach und überschaubar. Die Warnung besagt, dass die lokale Variable in der Funktion genau denselben Namen hat wie die globale Variable in dieser und jener Zeile (die Zeilennummer ist in der Warnung angegeben). Legen Sie einen anderen Namen für die lokale Variable in der Funktion fest. Oder benennen Sie die globale Variable um - es wird Fehler im Code geben, die auf alle Vorkommen der umbenannten globalen Variable verweisen - ersetzen Sie einfach ihren Namen an allen Stellen in Ihrem Code.

 
ilyav:

Kann jemand helfen, EA-Code auf MT5 zu beheben?

Ich habe die Handbücher gelesen, aber beim Kompilieren komme ich nicht über 2 Lacke hinaus.

Deklaration von "xxxx" verdeckt globale Deklaration

и

möglicher Datenverlust aufgrund von Typumwandlung

Anhang Tipp im Anhang

Deklaration von "xxxx" verdeckt globale Deklaration

sagt mir, dass diese Variable bereits global deklariert wurde. Benennen Sie sie in eine Funktion um, damit sie nicht verfälscht wird

möglicher Datenverlust aufgrund von Typumwandlung

zeigt an, dass der Typ "links" nicht mit dem Typ "rechts" identisch ist.

z.B.:

        Ticket = HistoryOrderGetTicket(i);  // получим тикет очередного ордера

Fahrkarte = lang

und HistoryOrderGetTicket = ulong

 
Experten, bitte erklären Sie: Die FunktionChartRedraw(0) und die Aktualisierung im Kontextmenü des Diagramms ist die gleiche Aktion? Ich dachte, es sei dasselbe, aber das Diagramm wird über das Kontextmenü aktualisiert, aber ich kann es nicht mit der Funktion tun.
 
khorosh:
Experten, bitte erklären Sie: Die Funktion ChartRedraw(0) und die Aktualisierung im Kontextmenü des Diagramms ist die gleiche Aktion? Ich dachte, es sei dasselbe, aber das Diagramm wird über das Kontextmenü aktualisiert, aber ich kann es nicht mit der Funktion tun.
ChartRedraw() zeichnet die grafischen Objekte des angegebenen Diagramms neu, aktualisiert aber nicht die Daten vom Server.
 
Artyom Trishkin:
ChartRedraw() zeichnet die grafischen Objekte des angegebenen Diagramms neu, anstatt die Daten vom Server zu aktualisieren.

Und die Indikatorkurven, die mit Hilfe von Puffern gezeichnet werden, sollten sie aktualisiert werden? Ich habe einen selbst erstellten Kurvenindikator, der erst dann aktualisiert wird, wenn ich über das Kontextmenü ein Diagramm aktualisiere. Wie kann ich eine solche Aktualisierung, die über das Kontextmenü erfolgt, automatisieren?

 
khorosh:

Und die Indikatorkurven, die mit Hilfe von Puffern gezeichnet werden, sollten sie aktualisiert werden? Ich habe einen selbst erstellten Kurvenindikator, der erst dann aktualisiert wird, wenn ich über das Kontextmenü ein Diagramm aktualisiere. Wie kann ich eine solche Aktualisierung, die bei Verwendung des Kontextmenüs erfolgt, automatisieren?

Bearbeiten Sie den Kurvenindikator. Sie können eine Linie erst dann zeichnen, wenn sie vollständig neu berechnet ist, was über den Befehl im Kontextmenü geschieht.
 
Artyom Trishkin:
Fixieren Sie den Kurvenindikator. Eine Linie kann nur bei einer vollständigen Neuberechnung gezeichnet werden, die mit dem Befehl im Kontextmenü durchgeführt wird.

Es stellt sich also heraus, dass es keine ähnliche Funktion wie "Aktualisieren" gibt? Eine weitere Frage: Wie kann man erreichen, dass die Funktion zum Entfernen von Objekten, die in deinit() platziert wurde, nur beim Entfernen des Indikators aus dem Diagramm ausgeführt wird?

 
khorosh:

Es stellt sich also heraus, dass es keine ähnliche Funktion wie "Aktualisieren" gibt? Eine weitere Frage: Wie kann man erreichen, dass die Funktionen von deinit() nur dann ausgeführt werden, wenn der Indikator aus dem Diagramm gelöscht wird?

Es gibt auch mql4.

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Причины деинициализации
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Причины деинициализации
  • www.mql5.com
//| get text description                                             | //| Expert deinitialization function                                 |
Grund der Beschwerde: