retcode 10040
10040 — TRADE_RETCODE_LIMIT_POSITIONS
Osiągnięto maksymalną liczbę otwartych pozycji dla rachunku.
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Co ten kod znaczy
Dotyczy przede wszystkim rachunków typu hedging, gdzie pozycji na jednym instrumencie może być wiele. Na rachunku netting limit liczy się po instrumentach.
Skąd się bierze
- strategia otwierająca pozycję na każdym sygnale bez górnego limitu
- limit ustawiony przez brokera niżej, niż zakłada kod
- reguły konta proptradingowego
Co z tym zrobić
Ekspert powinien mieć własny, świadomy limit — niższy niż brokerski:
int mojeOtwarte = 0;
for(int i = PositionsTotal() - 1; i >= 0; i--)
{
ulong bilet = PositionGetTicket(i);
if(bilet > 0 && PositionSelectByTicket(bilet) &&
PositionGetInteger(POSITION_MAGIC) == (long)Magic)
mojeOtwarte++;
}
if(mojeOtwarte >= MaksymalnaLiczbaPozycji)
return;Liczenie wyłącznie własnych pozycji po numerze magicznym jest tu istotne — na rachunku bywają pozycje z innych źródeł.