Category
Strategy
Difficulty
Beginner
Used in
Strategy designMT5 operationRisk management

Take-profit

A price level attached to a position at which the broker closes it automatically to realise a gain. Like the stop-loss it lives on the broker's server, and like the stop-loss it is decided before the trade is open.

also: TP, profit target, target

Updated

In plain English

The price at which the trade is finished being right. It is the other half of the decision made at entry — the stop says how wrong you are willing to be, the target says how right is enough.

Why it matters

The target is where a strategy's edge is actually collected, and it is the number most often adjusted after the fact. Fixing it at entry is what makes the risk/reward ratio a claim rather than a story told afterwards, and it decides the shape of the equity curve as much as the entry rule does.

  • Together with the stop it fixes the breakeven win rate, so moving it moves the bar the strategy has to clear.
  • It executes on the broker's server, which means a target reached overnight is collected whether or not the terminal is running.
  • Its distance decides the character of the strategy. Near targets produce frequent small wins and a high win rate; distant ones produce long stretches of nothing punctuated by the trades that pay for them.
  • It is where costs bite hardest on short distances: spread and commission are a fixed toll, so the closer the target the larger the fraction of it they consume.

In MetaTrader 5

Where it appears in MT5

  • New Order dialog (F9) → Take Profit — set at entry, expressed as a price
  • Toolbox → Trade tab → right-click a position → Modify or Delete Position — added or moved afterwards
  • Chart → drag the position's target line — the same modification, done visually
  • Strategy Tester → Inputs — an EA's target is an optimisable input, and one of the easiest to overfit

How EAs use it

  • Sent in the tp field of MqlTradeRequest at entry, as a price — the EA converts its intended distance into a level itself.
  • Attached after the fill with TRADE_ACTION_SLTP or CTrade::PositionModify() when the strategy needs the actual entry price first.
  • Derived from the stop distance when the strategy is expressed as a ratio: a 2R target is simply twice the stop distance from entry.
  • Sometimes replaced entirely by a trailing stop for trend strategies, which trades a known exit for an open-ended one.
  • Partial exits are two operations, not one: the EA closes a fraction of the volume at the first level and leaves the remainder running with its own target or trail.

Typical settings

Setting Typical value Note
Ratio-based target 1.5–3 × the stop distance The most common EA formulation, because it makes the risk/reward explicit.
ATR multiple 2–4 × ATR(14) Adapts to volatility the same way an ATR stop does.
Mean-reversion target the moving average or band midpoint Distance varies per trade; the exit is a condition rather than a fixed number of pips.
Minimum distance from price broker's stops level A target closer than this is rejected, exactly like a stop that is too tight.
Partial close 50% at 1R, remainder trailed Reduces variance and, on most trend strategies, reduces expectancy along with it.

Common operational problems

  • The target is reached by the bid while the position needs the ask to close — on a short, the spread has to be crossed, so a target set exactly at a level can be missed by the spread's width.
  • Points and pips confusion on 5-digit quotes makes a target ten times nearer than intended, which produces a suspiciously high win rate in testing.
  • A target inside the broker's stops level is rejected, leaving a position running with no exit on the profit side.
  • Optimising the target on the same window as the entry rule fits both to the same noise, and the pair fails together out of sample.
  • Widening a target while the trade is open changes the risk/reward the trade was taken on, and the reported ratio no longer describes any decision that was actually made.

Related MT5 functions

MqlTradeRequest.tp
The target price sent with the order; zero means no target.
CTrade::PositionModify(ticket, sl, tp)
Adds or moves the target on an open position.
CTrade::PositionClosePartial(ticket, volume)
Takes part of the position off at the first level, leaving the rest running.
SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL)
Minimum distance from price for both stop and target.
PositionGetDouble(POSITION_TP)
Reads back the target actually in force after the request.

Example

The same entry, two target distances. Nothing about the signal changes — only how often the strategy has to be right for the arithmetic to work.

Stop distance
30 pips
Target A
30 pips (1:1)
Breakeven win rate 50% before costs.
Target B
90 pips (3:1)
Breakeven win rate 25% before costs.
Spread paid on each trade
1.5 pips
5% of target A, 1.7% of target B — the same toll, a different share.

Target A wins far more often and gives most of it back in costs and in the losses that are the same size as the wins. Neither is better in the abstract — but they are not the same product.

Calculation 1 ÷ (1 + 1) = 50% · 1 ÷ (1 + 3) = 25%

Result Two strategies from one entry rule, needing very different hit rates

How it is used

Read the target with the stop and with the realised results, not with the settings alone. What the EA achieved on average says more than what it was configured to aim for.

Range What it means
Average win well below the configured target Something is closing trades early — a trailing stop, a time exit, or a target price the market keeps missing by a fraction.
Average win close to the target The exit is doing what it says. The declared risk/reward is the one being traded.
Target within a few times the spread Costs are a large share of every win. The strategy needs an exceptional hit rate to survive them.
No target, exit by trailing stop only Legitimate for trend strategies, but the risk/reward cannot be declared in advance — it has to be measured from realised trades.
  • Compute the realised risk/reward from the ledger — average win over average loss — and compare it with the configured one. The gap is the strategy's real behaviour.
  • Add the spread to the target distance when the target is small. A 10-pip target on a 1.5-pip spread gives up 15% of the gain before anything else.
  • Do not optimise the target and the entry on the same window without an out-of-sample check; the pair will fit the same noise together.
  • Decide between a fixed target and a trailing exit from the strategy's shape, not from preference — mean-reversion has a natural target, trend following does not.

mt5depot EA pages state the exit rule for each listing and publish the full trade ledger, so the average realised win can be checked against the target the description claims.

Common mistakes

Moving the target after entry

Extending a target because a trade is going well changes the ratio the trade was taken on. The honest risk/reward is the one that existed when the position opened; anything after that is a new decision being reported as the old one.

Setting a target inside the noise and calling the win rate an edge

A target of a few pips will be hit most of the time. It is not a demonstration of skill — it is a description of how often price moves a small distance, and the rare large loss on the other side pays for all of it.

Ignoring which side of the spread closes the trade

A long closes at the bid and a short at the ask. A target placed exactly at a round level can sit unfilled while the chart appears to have reached it, because the chart is showing the other side of the quote.

Assuming a fixed target beats a trailing exit

It depends on the return distribution. Mean-reversion strategies have a level price tends back to; trend strategies do not, and capping them at a fixed distance removes the few trades that pay for the rest.

Frequently asked questions

Should an EA use a fixed take-profit or a trailing stop?
It depends on the shape of the strategy. Mean-reversion and breakout systems have a natural level price is expected to reach, which a fixed target expresses well. Trend systems have no such level, and capping them at a fixed distance cuts off the extended moves that pay for the losing trades.
What is a good take-profit distance?
One that produces a defensible risk/reward when paired with the stop, and that is large relative to the spread. Between 1.5 and 3 times the stop distance covers most workable EA configurations; distances only a few times the spread need an exceptional win rate to survive costs.
Why did my take-profit not trigger when price reached it?
Because the closing side of the quote matters. A long position closes at the bid and a short at the ask, so on a short the ask has to reach the target even though the chart usually draws the bid. A target sitting within the spread of the displayed price can be missed for that reason alone.
Does a take-profit work if my terminal is closed?
Yes. Once accepted it sits on the broker's server and executes there, which is why it is preferable to closing at a level in EA code when the terminal may not be running.

Related articles