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