Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 10.08.18
Adlerauge Adlerauge ist offline
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard GetLastError()

Hallo Allerseits,
ich habe ein kleines Problem mit der GetLastError-Funktion.

Ich öffne eine Order mit einer while-Schleife:
PHP-Code:
 int i_Ticketnummer 0;
 
string s_Error_Beschreibung;
 while (
i_Ticketnummer <= 0)
  { 
RefreshRates();
     
i_Ticketnummer OrderSend(Symbol(),OP_SELL,1,Bid,1000,0,0,NULL,0,0);
    if (
GetLastError() == 132) { s_Error_Beschreibung "Markt geschlossen";                     Alert(Symbol(), s_Error_Beschreibung); break; }
    if (
GetLastError() == 134) { s_Error_Beschreibung "zu wenig Geld zur Orderöffnung";        Alert(Symbol(), s_Error_Beschreibung); break; }
    if (
GetLastError() == 136) { s_Error_Beschreibung "Off Quotes";                            Alert(Symbol(), s_Error_Beschreibung); break; }
    if (
GetLastError() == 137) { s_Error_Beschreibung "Broker busy";                           Alert(Symbol(), s_Error_Beschreibung); break; }
    if (
GetLastError() == 148) { s_Error_Beschreibung "Max. Anzahl erlaubter Trades erreicht"Alert(Symbol(), s_Error_Beschreibung); break; }
  } 
Wenn also einer der Error-Codes zutrifft, müsste ich eine Meldung bekommen und die while-Schleife abbrechen. Ist aber beides nicht der Fall. Ich habe es nun x-mal getestet, indem ich absichtlich eine zu grosse Order aufgegeben habe, die while-Schleife läuft immer weiter.
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...