|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
GetLastError()
Hallo Allerseits,
ich habe ein kleines Problem mit der GetLastError-Funktion. Ich öffne eine Order mit einer while-Schleife: PHP-Code:
Im Journal kommt dann natürlich ununterbrochen die Meldung: order buy ............ opening at market ........ failed [not enough money] Die GetLastError-Funktion müsste dann eigentlich den Code 134 zurückbekommen - scheint aber nicht zu funktionieren. Hat jemand eine Idee? Danke... |
|
|||
Hallo,
lass doch mal mit Print() den Errorcode im Journal ausgeben damit du mal siehst welcher Errorcode wirklich vorliegt. und vor OrderSend() würde ich noch ResetLastError(); schreiben. --- Leopold --- |
|
|||
ja, hab ich gerade ausprobiert, ich habe die Zeile
Print("GetLastError: ", GetLastError()); hinter die OrderSent-Zeile gesetzt. ...wird glatt übergangen - vom Print-Befehl ist im Journal nichts zu sehen - die Fehlermeldung des MT4 selbst [not enough money] aber sehrwohl. Dann habe ich es mit Alert versucht: Alert("GetLastError: ", GetLastError()); Jetzt hängt sich der ganze MT4 beim Versuch, das Alert-Fenster aufzubauen auf, und lässt sich nur noch per Task-Manager killen. Er ist so, als ob die while-Schleife schon wieder von vorne beginnt, bevor sie ganz abgearbeitet wurde... |
|
|||
so, jetzt habe ich hinter der Print-Zeile eine Pause von einer Sekunde eingefügt:
Sleep(1000); Der Print-Befehl wird trotzdem nicht ausgeführt. Dann das gleiche nochmal mit Alert und Sleep: ... und siehe da, jetzt wird im Alert-Fenster der Fehlercode 134 ausgegeben. Trotzdem läuft die Schleife immer weiter, unbeeindruckt vom break, wenn der Fehlercode 134 lautet... |
|
|||
so, hab die Lösung gefunden:
if (GetLastError() == 134) funktioniert nicht. Man muss es mit einer Variablen machen: int i_Error_Code = GetLastError(); if (i_Error_Code == 134) { ... } @Leopold: trotzdem danke für Deine Antwort :-) |
|
|||
Hallo,
sobald GetLastError() abgefragt wurde, wird diese Funktion wieder zurückgesetzt. Somit ist es schon richtig über eine Variable zu gehen, da nachfolgende Abfragen ohne Ergebniss sind. |
Lesezeichen |
Stichworte |
getlasterror |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|