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

MQL5 / Zlecenie

ORDER_POSITION_ID

Identyfikator pozycji, której dotyczy zlecenie. To jest jedyny wiarygodny sposób, żeby dowiedzieć się, co zrobiło twoje

long OrderGetInteger(ORDER_POSITION_ID);

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

Wiąże zlecenie z pozycją: dla zlecenia otwierającego jest to pozycja, która powstała, dla zamykającego — pozycja, która została zamknięta.

Dlaczego to nie jest oczywiste

To jest jedyny wiarygodny sposób, żeby dowiedzieć się, co zrobiło twoje zlecenie. Bilet zlecenia nie ma z pozycją nic wspólnego, a przeglądanie transakcji wymaga dodatkowego kroku.

Przy zleceniu oczekującym, które jeszcze się nie aktywowało, pole wynosi zero. Wypełnia się dopiero w chwili wykonania — i właśnie dlatego kod śledzący zlecenie musi patrzeć na jego wersję historyczną, a nie na tę z listy aktywnych.

Kod

ORDER_POSITION_ID
//--- co zrobilo nasze zlecenie po aktywacji
if(!HistorySelect(TimeCurrent() - 86400, TimeCurrent()))
   return;

if(!HistoryOrderSelect(bilet))
   return;

long pozycja = HistoryOrderGetInteger(bilet, ORDER_POSITION_ID);

if(pozycja == 0)
  {
   Print("Zlecenie nie doprowadzilo do zadnej pozycji.");
   return;
  }

if(HistorySelectByPosition(pozycja))
   PrintFormat("pozycja %I64d ma %d transakcji", pozycja, HistoryDealsTotal());

Powiązane