Download MetaTrader 5


Modifies the position parameters by specified symbol.

bool  PositionModify(
   const string  symbol,     // symbol
   double        sl,         // Stop Loss price
   double        tp          // Take Profit price

Modifies position parameters by the specified ticket.

bool  PositionModify(
   const ulong   ticket,     // position ticket
   double        sl,         // Stop Loss price 
   double        tp          // Take Profit price



[in]  Name of trade instrument, by which it is intended to modify position.


[in]  Ticket of the position to be modified.


[in] The new price by which the Stop Loss will trigger (or the previous value, if the change is not necessary).


[in] The new price by which the Take Profit will trigger (or the previous value, if the change is not necessary).

Return Value

true - successful check of the basic structures, otherwise - false.


Successful completion of the PositionModify(...) method does not always mean successful execution of the trade operation. It is necessary to check the result of trade request (trade server return code) using ResultRetcode().

For the "netting" interpretation of positions (ACCOUNT_MARGIN_MODE_RETAIL_NETTING and ACCOUNT_MARGIN_MODE_EXCHANGE), only one position can exist for a symbol at any moment of time. This position is a result of one or more deals. Do not confuse positions with valid pending orders, which are also displayed on the Trading tab of the Toolbox window.

If individual positions are allowed (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), multiple positions can be open for one symbol. In this case, PositionModify will modify the position with the lowest ticket.

Updated: 2016.05.30