Skip to main content
All articlesSkip to article content
Behavioral EdgeConcept PrimerJun 12, 2026 · 7 min read

What Is Maximum Favorable Excursion in Futures Trading?

Maximum favorable excursion is the peak unrealized profit a futures trade reached before it closed. Here is how to measure the gap and what it reveals.

By Imperial Analytics

Maximum favorable excursion is the peak unrealized profit a futures trade reached at any point between entry and exit. The gap between that peak and the realized exit, measured across many trades, is one of the cleanest behavioral signals a journal can produce. This post defines the term, walks through the calculation step by step, and explains how to read the gap without inventing rules from a sample that is too small to support them.

By Imperial Analytics

What maximum favorable excursion actually is

Maximum favorable excursion is the highest unrealized profit a trade carried at any single moment between the entry fill and the exit fill. It is measured per trade, in dollars, against the entry price. Its companion, maximum adverse excursion, is the deepest unrealized loss the same trade carried in the same window. Together the two numbers describe the price journey of the trade, not just its endpoint.1

The pair of numbers was introduced by John Sweeney in 1996 as a way to study what happens to a trade between the moment it opens and the moment it closes.1 Most traders look at their journal and see only two prices per trade, the entry and the exit. A long MES trade entered at 5,200 and exited at 5,206 reads as a 6-point win. The journal forgets that the same trade may have reached 5,212 first and then given the move back. It also forgets that the same trade may have spent time at 5,195 before recovering. Both of those facts are visible in the trade's price journey. Neither one shows up in the realized P&L.

Maximum favorable excursion captures the first of those facts. It is the single highest price the position reached for a long trade, or the single lowest price for a short trade, between the entry timestamp and the exit timestamp. Maximum adverse excursion captures the second. It is the single lowest price the position reached for a long trade, or the single highest for a short trade, in the same window. Both are computed from the same underlying time series of bars or ticks. Both are converted to dollars using the contract's tick value before they enter the journal.

The two numbers are not strategy signals. They do not tell the trader where to enter or what to set as a stop. They are post-trade measurements, written into the journal after the position has closed, and they sit alongside the realized P&L as a fuller description of what the trade did.

How to compute the MFE-to-exit gap from your own fills

The per-trade gap has three inputs: the entry fill, the exit fill, and the highest favorable price the position reached at any moment between them. Convert each price to dollars per contract using the contract's tick value, subtract the realized exit from the MFE peak, and the result is the gap on that trade. Apply across a sample, then sum or average across the sample to read it.

The calculation is mechanical. The journal needs four pieces of information per trade: side (long or short), entry price, exit price, and the high (for a long) or low (for a short) of every bar inside the holding window. Most charting platforms expose the holding-window high and low as a single field per trade if the trade is recorded against a synced bar feed; if the trade is reconstructed by hand, the trader pulls the highest bar high (or lowest bar low) inside the time range between entry and exit.

A worked example shows the shape. A long MES trade entered at 5,200 and exited at 5,206. The highest bar high inside the holding window was 5,212. The contract's tick value is $1.25 per 0.25-point tick, or $5 per point per contract. Realized profit on the trade is 5,206 minus 5,200, equal to 6 points, equal to $30 per contract. Maximum favorable excursion is 5,212 minus 5,200, equal to 12 points, equal to $60 per contract. The MFE-to-exit gap on this trade is $60 minus $30, equal to $30 per contract.

Across a sample of 25 long trades on the same instrument, the trader applies the same arithmetic to each row, then sums or averages the per-trade gaps. The sum is the dollar total left between MFE and the realized exit across the sample. The average is the per-trade signal. A trader who carries 5 contracts on these trades multiplies the per-contract gap by 5 to read the dollar number against actual position size.

Data note

The 5,200 entry, 5,212 MFE peak, 5,206 exit, and the 25-trade sample are illustrative. They are written to show the shape of the calculation, not to describe a live trade or a live trader's results. A real MFE-to-exit gap is computed from the trader's actual fills and bar data, with the per-trade values recorded in the journal and summed or averaged across whatever sample the trader is studying.

The same arithmetic runs on the loss side. Maximum adverse excursion is the lowest bar low inside the holding window for a long trade, converted to dollars against the entry. If the same trade above reached 5,195 before recovering, the MAE was 5 points adverse, equal to minus-$25 per contract. The MAE-to-stop gap measures how far the position had to swing against the trader before it recovered, and it is the input the stop-management literature has used since Sweeney first wrote about it.1

Why the MFE-to-exit gap is a behavioral signal, not a strategy flaw

A consistent MFE-to-exit gap on winning trades tells the trader that the strategy is finding the move and the exit rule is leaving the back of it on the table. The signal sits in the trader's decision-making after entry, not in the entry itself. A small gap on a losing trade and a large gap on a winning trade are different facts; the journal must separate them before any rule can be drawn from the number.

The reason the gap is a behavioral signal is that it isolates the trader's exit decision from everything else. The entry rule already filled the order. The market already produced the favorable excursion. Whatever sat between the MFE peak and the realized exit is a function of how the trader managed the open position, not of how they chose to take it. That isolation is what makes the number useful for a journal.

A trader who consistently exits well before the MFE peak is making one of three decisions repeatedly. They are taking profit at a target that sits inside the move the market produces. They are trailing a stop that gets clipped by a normal retracement before the move resolves. Or they are exiting on a discretionary trigger that fires before the move is finished. Each of those three is a separate behavioral input, and the journal can separate them if the entry rule, target rule, stop rule, and discretionary exit are all tagged at trade time.

The opposite shape is a tight MFE-to-exit gap on winners and a wide MAE-to-stop gap on losers. That trader is letting winners run close to the move's peak but allowing losers to swing far against them before exiting. The same MFE/MAE machinery reveals that shape too. The signal is not that the strategy is wrong. It is that the exit machinery is asymmetric in a way that costs the trader without changing the entry edge.

↳ Note

Maximum favorable excursion is the part of the trade that already happened. The exit is the part the trader chose. The gap between them is the only part the trader can change without touching the entry rule.

A wider gap on winning trades is not, on its own, a verdict. It is a question the journal hands to the trader. The trader then has to decide whether the target was set inside the move on purpose, whether the trailing stop was sized correctly for the instrument's normal retracement, and whether any discretionary exits inside the sample changed the answer. The MFE-to-exit gap is the input to that decision, not the decision itself.

How to use MFE data without inventing rules from a tiny sample

A single trade with a large MFE-to-exit gap proves nothing. A pattern requires enough trades in the same condition to clear the journal's sample-size floor. Imperial Analytics' AI Operating Charter requires at least twenty trades in the matching condition before any pattern claim is surfaced. Below that, the gap is observed and recorded, but no rule is drawn from it.

The trap a trader walks into is rewriting an exit rule after a single trade left a large gap. The instinct is reasonable. The trade just printed money on the screen and gave it back, the gap is sitting in the journal, and the next session is hours away. The problem is that one trade is one observation. A second trade with a much smaller gap, or a trade where the same exit rule prevented a much larger adverse excursion, is enough to flip the conclusion. A rule built on a sample of one is a rule built on noise.

The fix is to record the gap on every trade and to defer the rule change until the sample is large enough for a pattern to be visible. Twenty trades in the matching condition is the floor Imperial Analytics enforces before it surfaces a pattern claim. Below that floor, the gap is an observation. At or above the floor, the gap can be averaged, paired with its standard deviation, and read against the rest of the sample as a pattern. The same floor applies to MAE-to-stop analysis on the loss side.

The matching condition matters as much as the sample size. A twenty-trade sample on the same instrument, the same setup, and the same time-of-day window is a stronger pattern than a twenty-trade sample drawn at random across an entire journal. The condition is the structural reason the trades are comparable. A wide MFE-to-exit gap on one setup is not a verdict on a different setup with a different exit rule. The journal separates the conditions before the calculation runs.

The other reason to wait for sample size is that an exit rule change has a cost in the real world. A wider profit target prints fewer fills. A wider trailing stop accepts larger adverse excursions on average. A discretionary exit removed from the rule book is a discretionary judgment the trader will no longer apply. Those costs are paid even if the rule turns out, at twenty more trades, to have been a noise reaction. A journal that holds the rule constant until the sample clears the floor saves the trader from paying those costs against a pattern that was not there.

What to log so tomorrow's calculation works

The MFE-to-exit calculation requires four data points per trade: entry time and price, exit time and price, and a continuous record of the highest favorable price (for longs) or lowest favorable price (for shorts) the position reached between them. Anything less means the gap is reconstructed from memory, and reconstruction is the part of journaling the AI Operating Charter does not allow.

The continuous price record is the part most journals miss. Entry price and exit price are usually written into a journal as soon as the trade closes. The MFE peak is not, because the platform's order ticket reports only fills. The trader has to either pull the holding-window high and low from the chart manually or wire the journal to a synced bar feed that records the values automatically. Without that step, the journal can describe the trade's endpoints but cannot compute MFE or MAE.

The journal columns the calc depends on are: side (long or short), instrument, entry timestamp, entry price, exit timestamp, exit price, holding-window high, and holding-window low. The bar interval used to define the holding-window high and low should be small enough to capture the actual MFE. A trade held for thirty minutes on a one-minute bar feed will report a more accurate MFE than the same trade read against a five-minute feed, because the five-minute feed averages away the intra-bar excursions. The journal should record the bar interval alongside the high and low, so the same trade analyzed later carries the resolution of the underlying data.

The other column worth recording at trade time is the rule that produced the exit. A trader who tags every exit as "target," "stop," or "discretionary" at the moment the trade closes can later split the MFE-to-exit gap by exit type. The split tells the trader whether the gap is concentrated in one kind of exit or distributed across all three. A gap concentrated in discretionary exits is a different finding than a gap concentrated in target exits, and the rule change for each is different. The journal cannot make that split if the exit type was not recorded.

The minimum honest journal entry for an MFE-friendly calculation is therefore eight columns plus a one-line note for the discretionary case. Anything beyond that is useful for other analyses (setup tag, time-of-day bucket, regime tag) and does not change the MFE arithmetic. Anything less is a memory record, and a memory record is the place every behavioral edge gets eroded before the math has a chance to surface it.

Frequently asked questions

Frequently asked questions

  • q: What is the difference between maximum favorable excursion and maximum adverse excursion? a: Maximum favorable excursion is the highest unrealized profit a trade reached between entry and exit. Maximum adverse excursion is the deepest unrealized loss the same trade reached in the same window. Same time interval, opposite direction. Both are recorded per trade and converted to dollars using the contract's tick value.
  • q: Should I move my profit target after one trade with a large MFE-to-exit gap? a: No. One trade is one observation. Imperial Analytics requires at least twenty trades in the matching condition before a pattern claim is surfaced, and that floor applies to exit-rule changes drawn from MFE data. Below twenty, the gap is recorded but the rule is held constant.
  • q: Does MFE work for short trades? a: Yes. The sign flips. For a short trade, maximum favorable excursion is the lowest price the position reached after entry, and maximum adverse excursion is the highest price it reached. The arithmetic is the same once the prices are converted to dollars per contract against the entry.
  • q: Can I compute MFE from end-of-day data alone? a: Not accurately. End-of-day data reports the session's open, high, low, and close, but not the path inside the session. A trade entered mid-session and exited later in the same session needs the intraday bars between entry and exit to find the actual MFE peak. Daily data approximates the upper bound, which is usually too generous.
  • q: How small can the bar interval go before more resolution stops helping? a: The useful floor depends on the holding window. A trade held for less than five minutes needs second-level or tick data to record an honest MFE peak. A trade held for several hours is typically well served by one-minute bars. A trade held for several days can be analyzed on five-minute bars without material loss. The journal should record the bar interval used so the resolution is visible alongside the number.

Call to action

Sources

Footnotes

  1. John Sweeney, Maximum Adverse Excursion: Analyzing Price Fluctuations for Trading Management, John Wiley & Sons, 1996. 2 3

behavioral edgemaximum favorable excursionMFE MAEexit disciplinefutures