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
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);