veränderte externe varaible in globale Variablen speichern

 

Hallo zusammen,


wenn ich eine externe Variable hab, welche

sich während der Laufzeit des EA ändert und

ich möchte die nach dem deaktivieren des "LiveTrading"

in eine globale Variable speichern, dann funktioniert das nicht.

Er speichert immer die vorgegebene Variable aus den Einstellungen.

Mach ich da was falsch??


Grüße

 
Zeig den Code, der nicht funktioniert.
 
Eine externe variable kann ja nicht während der Laufzeit verändert werden, die muss ja irgendwo mit anderen Namen geändert werden
 
amando #:
Eine externe variable kann ja nicht während der Laufzeit verändert werden, die muss ja irgendwo mit anderen Namen geändert werden

sie ändert sich ja während der Laufzeit ganua bis dahin, wo ich das Live Trading deaktiviere und diesen Wert in die

globale Variablenliste reinschreiben möchte.

Also zum Ablauf...

1. extern Var = 1; diese kann vor Beginn in den Einstellungen geändert werden

2. Programm beginnt und zu unterschiedlichen Zeiten erhöht sich dieser Wert im OnTick Event

3. ich deaktiviere "Livetrading" und hab im OnTick Event eine Abfrage, wenn das deaktiviert wurde,

schreibe die Variable Var in die gloabele Variablenliste.

Dort steht aber allerdings dann wieder die originale drin, warum auch immer.

Noch nicht getestet, wäre jetzt eine zusätzliche globale Varibale im OnInit zu schreiben, welche

die extern Var aufnimmt und dann diese speichert.


Grüße

 
  1. Wieso? Wenn im Terminal manuell Livetrading deaktiviert wurde, kann der EA immer noch versuchen einen Auftrag abzuschicken, das erzeugt aber den Fehler: ERR_TRADE_DISABLED, 4752, Handel für Expert ist verboten, der in _LastError abgefragt werden kann.
  2. Was meinst Du mit " gloabele Variablenliste"?
    Kennst Du https://www.mql5.com/de/docs/globals
    "Globale Variablen befinden sich im Client-Terminal innerhalb von 4 Wochen seit dem letzten Zugang, dann werden sie automatisch entfernt."
Dokumentation zu MQL5: Handelsfunktionen / OrderSend
Dokumentation zu MQL5: Handelsfunktionen / OrderSend
  • www.mql5.com
Die Funktion OrderSend() wird für die Durchführung von Handelsoperationen durch das Senden von Anfragen an einen Handelsserver verwendet...
 
Carl Schreiber #:
  1. Wieso? Wenn im Terminal manuell Livetrading deaktiviert wurde, kann der EA immer noch versuchen einen Auftrag abzuschicken, das erzeugt aber den Fehler: ERR_TRADE_DISABLED, 4752, Handel für Expert ist verboten, der in _LastError abgefragt werden kann.
  2. Was meinst Du mit " gloabele Variablenliste"?
    Kennst Du https://www.mql5.com/de/docs/globals
    "Globale Variablen befinden sich im Client-Terminal innerhalb von 4 Wochen seit dem letzten Zugang, dann werden sie automatisch entfernt."

Hallo Carl,


natürlich wird OnTick immer noch ausgeführt. Ist auch nicht das Problem.

Die Variablenliste ist die, wie du schon beschrieben hast. In diesem

Fall GlobalVariableSet.

Wenn ich versuche die geänderte externe Variable nach dem Deaktivieren zu speichern,

speichert er mir die originale Variable, nicht die zur Laufzeit veränderte. Heißt für mich

eigentlich, dass alle externen Variablen nach dem Deaktivieren keine Gültigkeit mehr haben,

bzw. nicht die veränderten. Das wäre zu prüfen. Prüfen konnte ich bereits, dass wenn ich die externe Variable

zur Laufzeit speichere, dann funktioniert es auch. Nur nicht wenn LiveTrading deaktiviert ist.


Grüße

 
Ich kann mir das nicht vorstellen, zeig den Code! Druck auch den Zeitstempel von GlobalVariableSet aus, da sie die Zeit des letzten Zugangs, anderenfalls 0 zurückgibt.