Przejdź do treści
MQL5 · MetaTrader 5 · po polsku
kod odczarowany

MQL5 / Zlecenie

ORDER_VOLUME_CURRENT

Wolumen, który w zleceniu jeszcze nie został wypełniony. Te dwie właściwości mylone są nagminnie, a różnica ujawnia się dopiero przy

double OrderGetDouble(ORDER_VOLUME_CURRENT);

1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.

Ile z zamówionej wielkości pozostało do wykonania. Odpowiednikiem pierwotnej wielkości jest ORDER_VOLUME_INITIAL.

Dlaczego to nie jest oczywiste

Te dwie właściwości mylone są nagminnie, a różnica ujawnia się dopiero przy wykonaniu częściowym. Zlecenie na jeden lot wypełnione w połowie ma ORDER_VOLUME_INITIAL równy 1.0 i ORDER_VOLUME_CURRENT równy 0.5 — i wciąż jest aktywne, w stanie ORDER_STATE_PARTIAL.

Kod liczący ekspozycję po wielkości pierwotnej policzy podwójnie: raz w pozycji, która już powstała z wypełnionej części, i drugi raz w zleceniu. Do limitów i do ryzyka bierze się wolumen bieżący.

Kod

ORDER_VOLUME_CURRENT
double pierwotny = OrderGetDouble(ORDER_VOLUME_INITIAL);
double pozostaly = OrderGetDouble(ORDER_VOLUME_CURRENT);

if(pozostaly < pierwotny)
   PrintFormat("zlecenie wypelnione czesciowo: %.2f z %.2f",
               pierwotny - pozostaly, pierwotny);

Powiązane