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...