TrailingTakeProfit – expert for MetaTrader 5

This non-trading Expert Advisor is designed for the simple trailing of take profit orders of open positions.

The EA only works on hedging accounts.

Principle of operation: when a new position is opened, the EA checks its take profit order. If there is none, the EA sets a take profit order at the size specified in the EA parameters. Then the EA starts to move the position take profit, if the price moves farther than the distance specified in the settings. Actions are similar to a simple stop loss trailing function.

You can set position type – any/buy/sell, the position symbol (any or the specified one), the magic number (any or the specified one) or the position ticket (any or the specified one). It is also possible to set the take profit trailing in the losing area – if this mode is not selected, take profit will not be trailed in the losing area, and will stop at the breakeven distance from the position open price. The breakeven value can be specified in the EA parameters.

To check the trailing operation in all modes, the EA can open positions on each new bar. This mode can only be applied in the Strategy Tester.

The EA has nine input parameters:

  • Take Profit size in points – take profit value in points. It is also used for TrailingTake as a distance between the stop order and the price;
  • Positions type – the type of positions to trail;
  • Positions symbol (“” – any symbol) – the symbol of the positions to trail (an empty value means all symbols);
  • Positions magic number (0 – any magic) – the magic number of positions to trail;
  • Position ticket (0 – all tickets) – the ticket of positions to trail;
  • Trailing step – if the price moves away from the position take profit at a distance greater than the step, take profit will be modified so as to have the size specified in Take Profit size in points;
  • Trailing in the unprofitable zone – enable or disable trailing in the losing area. If disabled, take profit will not be set in the loss zone;
  • Breakeven in points – breakeven value. A losing area starts below this value;
  • Spread multiplier – spread multiplier for calculating a correct distance for stop orders.
For Stop Loss and Take Profit orders (as well as pending orders), there is a minimum allowed distance for placing such orders – StopLevel. I.e. Stop Loss and Take Profit (as well as pending orders) cannot be placed closer than this distance to the price. If StopLevel is zero, it does not mean its absence, it only means that StopLevel is floating. In this case, the minimum distance is usually equal to spread*, but sometimes even the double spread is not enough. So, this parameter allows specifying a custom multiplier for the spread used to calculate the minimum distance for placing stop orders.

Fig.1 Testing take profit trailing of a Buy position. Take profit is equal to 400 points, trailing step = 10, trailing is only applied in the profitable zone.