DEAL_VOLUME
Wolumen faktycznie wykonany w tej transakcji. To jest jedyne miejsce, gdzie widać, ile naprawdę weszło na rynek.
double HistoryDealGetDouble(ulong bilet, DEAL_VOLUME);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Wielkość, która realnie zmieniła stan pozycji. Może być mniejsza od wolumenu zlecenia.
Dlaczego to nie jest oczywiste
To jest jedyne miejsce, gdzie widać, ile naprawdę weszło na rynek. ORDER_VOLUME_INITIAL mówi, o ile prosiłeś, a suma wolumenów transakcji z tego zlecenia — ile dostałeś.
Przy strategii, która wylicza wielkość pozycji z ryzyka, ta różnica przekłada się wprost na ryzyko faktyczne. Wykonanie 0.7 lota zamiast zamówionego jednego oznacza, że ryzykujesz o trzydzieści procent mniej, niż zakłada twoja arytmetyka — i że stop loss wyliczony na jeden lot chroni kwotę, której nie masz.
Kod
double wolumen = HistoryDealGetDouble(bilet, DEAL_VOLUME);
double cena = HistoryDealGetDouble(bilet, DEAL_PRICE);
PrintFormat("wykonano %.2f lota po %.5f", wolumen, cena);