retcode 10019
10019 — TRADE_RETCODE_NO_MONEY
Na rachunku brakuje wolnego depozytu na otwarcie pozycji o tym wolumenie.
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Co ten kod znaczy
Wymagany depozyt zabezpieczający przekracza dostępne środki. Kod pojawia się także wtedy, gdy na rachunku jest sporo pieniędzy, ale są już zablokowane pod inne pozycje.
Skąd się bierze
- wolumen wyliczony z ryzyka bez sprawdzenia dostępnego depozytu
- kilka pozycji otwartych jednocześnie na tym samym instrumencie
- dźwignia inna, niż zakładał kod, na przykład obniżona dla egzotyków
- wymóg depozytu podniesiony przez brokera na weekend
Co z tym zrobić
Zamiast zgadywać, zapytaj o wymagany depozyt przed wysłaniem zlecenia:
Czy stać nas na tę pozycję
bool StacNas(const string symbol, const ENUM_ORDER_TYPE typ,
const double wolumen, const double cena)
{
double wymagany = 0.0;
if(!OrderCalcMargin(typ, symbol, wolumen, cena, wymagany))
return false;
double wolny = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
//--- zostawiamy zapas, bo depozyt policzony teraz i pobrany za sekundę
//--- to nie zawsze ta sama liczba
if(wymagany > wolny * 0.9)
{
PrintFormat("Depozyt %.2f przekracza wolne środki %.2f", wymagany, wolny);
return false;
}
return true;
}Kontrola po stronie eksperta jest tu ważniejsza niż obsługa błędu: pozycja, której nie stać się otworzyć, zwykle sygnalizuje błąd w wyliczaniu wielkości pozycji, a nie chwilowy brak środków.