MAE & MFE: Reading Your Trade Excursions
Maximum Adverse and Maximum Favorable Excursion show how far trades move against and for you. They also reveal whether your stops and targets are in the right place.
Most traders review their closed trades. They look at entry, exit, and profit. What they don't look at is what happened in between, and that in-between data is where the real information lives.
Two numbers capture it: Maximum Adverse Excursion (MAE) and Maximum Favorable Excursion (MFE).
Definitions
MAE is the worst drawdown the trade experienced while open. If you're long BTC and price drops 1.2% before reversing and closing at a profit, your MAE is 1.2% (or expressed as an R-multiple: if 1R = 1%, your MAE is 1.2R).
MFE is the best unrealized gain the trade reached while open. If that same BTC position ran up 4% before you exited at +2.5%, your MFE was 4% (4R if 1R = 1%).
Neither MAE nor MFE appear on your P&L. They require intrabar data, specifically 1-minute highs and lows, to reconstruct the trade's full path. Most journal tools don't bother computing them. That's a gap, because MAE and MFE are diagnostic in ways that closed PnL is not.
What they diagnose
MAE and MFE answer two separate questions.
MAE answers: are my stops in the right place?
If a large fraction of your winning trades had an MAE close to your stop level, meaning price nearly stopped you out before reversing, your stop is too tight. You're getting shaken out of trades that would have worked, and the ones that didn't stop out were close calls.
The opposite problem: if your MAE distribution shows that most winners barely moved against you at all (MAE well below your stop distance), you might be able to tighten stops and reduce your loss on the trades that don't work.
MFE answers: am I leaving too much on the table?
If the average MFE of your winners is 3R but your average realized win is 1.4R, you're systematically exiting too early. Price went to 3R and you took 1.4R. That 1.6R gap is not a market problem. It's a target or management problem.
Similarly, if your losing trades have high MFE (they went in your favor before reversing), those are trades that could have been closed profitably at a partial exit. If you held them all the way to your stop when they were up 1R at some point, you have a trade management issue that dollar PnL alone won't show you.
Reading the scatter
The most useful visualization is a scatter plot with MAE on one axis and final PnL (in R) on the other, with winners and losers colored differently.
What you're looking for:
Winners cluster at low MAE. Most profitable trades shouldn't need to go deeply against you before working. If winners are scattered across the full MAE range (some that went 0.2R against you, some that went 0.9R against you), your entries aren't consistent. Some entries are well-timed, others are sloppy.
Losers should stop at −1R MAE. If you see losers with MAE of −1.8R, −2.3R, those are trades where you moved your stop or held past it. The MAE scatter makes stop-moving visible.
The gap between MAE and the stop line tells you your cushion. If you set stops 1R below entry but your best winners only reach 0.4R MAE before running in your favor, you have 0.6R of unused stop cushion. You could tighten that stop, which would improve your reward-to-risk ratio on losing trades while keeping essentially all your winners intact.
Adjusting stop placement with data
Here's the practical move. Take the last 50 trades on your highest-volume setup. Compute MAE for each trade. Then ask: what stop level would have preserved X% of my winners?
Concrete worked example. You've been running a support breakout retest strategy on ETH perp. Your current stop is 1.0R below entry. Looking at MAE for 40 completed trades:
- 34 winners: MAE distribution is 0.0R to 0.7R, with 90% of winners showing MAE ≤ 0.6R
- 6 losers: all hit −1.0R (you're disciplined on stops)
This tells you: if you moved your stop from −1.0R to −0.6R, you'd keep 90% of your winners (those that had MAE ≤ 0.6R would still survive). You'd lose the 10% of winners that dipped between −0.6R and −1.0R before reversing.
What does that trade-off look like?
Current stop at −1.0R:
Winners: 34 × avg 2.4R = +81.6R
Losers: 6 × 1.0R = −6.0R
Net: +75.6R over 40 trades
Tighter stop at −0.6R:
Winners kept: 31 (lost 3 that had MAE 0.6–0.9R)
Winners: 31 × avg 2.4R = +74.4R
Losers: 6 + 3 = 9 × 0.6R = −5.4R
Net: +69.0R over 40 trades
In this example, tightening doesn't help. You lose 6.6R on the extra stopped-out winners. But if your win rate were lower and your losers ran larger, the math would shift. The point is that this is a decision you can make with data rather than feel.
MFE applies the same logic in reverse. If your MFE data shows your average winner reaches 4.5R before pullback but you're taking exits at 2R, you can test scaling partial exits at 3R while leaving a runner. Whether that improves expectancy depends on whether those runners maintain their MFE, and only your data shows that.
How Viktury computes MAE and MFE
To reconstruct the path of an open trade, you need the 1-minute high and low for every minute the trade was open. Viktury pulls and stores this candle data from your connected exchanges at sync time, then computes:
- MAE: the worst adverse excursion from entry to close, using the 1-minute low (for longs) or high (for shorts) at each minute within the trade window
- MFE: the best favorable excursion, using the 1-minute high (for longs) or low (for shorts)
Both are expressed in price terms and converted to R-multiples using your recorded planned stop loss. The scatter plots are available per setup so you can run the analysis on a specific playbook rather than your full trade history.
For round-trips with multiple partial entries and exits, MAE and MFE are measured against the net position, starting from the first entry and ending at the last exit.
These metrics are most useful after 30–40 trades on a single setup. Before that, the sample is too small to draw stop placement conclusions.
MAE and MFE don't tell you what trades to take. They tell you whether the trades you're taking are being managed well after entry. Combined with R-multiple tracking, they give you a complete picture of where your edge is slipping.
Binance perp traders: see the Binance exchange page for details on sync method and which contract types support 1-minute candle data in Viktury.
Start your free trial at Viktury and see your own MAE/MFE scatter after importing your first batch of trades.