Funkcja double DifferencePositionMarket() zwraca różnicę między bieżącą ceną rynkową a ceną otwarcia pozycji na podstawie jej ticket'u. Ma następujące argumenty:
f_ticket | - | ticket otwartej pozycji. |
f_ticket - ticket otwartej pozycji.
Jeśli funkcji przekazać ticket oczekującego zlecenia lub liczbę, której nie odpowiada żaden ticket, funkcja zwróci wartość stałej DBL_MAX , tj. 1.7976931348623158e+308.
double DifferencePositionMarket(int f_ticket) // ticket { for(int i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if(OrderTicket()==f_ticket) { int f_type=OrderType(); if(f_type==OP_BUYLIMIT || f_type==OP_SELLLIMIT || f_type==OP_BUYSTOP || f_type==OP_SELLSTOP) return DBL_MAX; //--- if(f_type==OP_BUY) return MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice(); if(f_type==OP_SELL) return MarketInfo(OrderSymbol(),MODE_ASK)-OrderOpenPrice(); } return DBL_MAX; }