EXT Exit Management
Entries get the glory, exits get the money
Learning Objectives
- •Understand why exit management is more important than entry selection
- •Learn fixed vs adaptive exit strategies and when to use each
- •See how regime-aware exits adapt to market conditions
- •Compare exit strategies on the same set of trades to isolate the impact
Explain Like I'm 5
Most people obsess over entries — when to buy, when to sell. But the real money is in how you manage the trade after you're in it. A mediocre entry with a great exit strategy will outperform a great entry with a bad exit strategy almost every time. The entry gets you in the door. The exit determines your paycheck.
Think of It This Way
Entries are like choosing which highway to take. Exits are like knowing when to get off. You can pick the perfect highway, but if you miss your exit or get off too early, the trip is a failure. The best drivers (traders) know their exits before they even merge onto the highway.
1Fixed Exits: Simple but Inflexible
2Adaptive Exits: Reading the Trade
Fixed vs Trailing Stop Exit: Profit Capture on a Winning Trade
3Regime-Aware Exit Rules
Optimal Profit Giveback by Market Regime
4ML-Based Exit Models
5The Exit Strategy Comparison Framework
Exit Strategy Comparison (Same 1,000 Entries)
Key Formulas
Trailing Stop Level
Trailing stop ratchets up as price moves in your favor. P_t is current price, k is a multiplier (typically 1.5-2.5), ATR_t is current average true range. Stop never moves down — only up (for longs).
MFE Capture Ratio
What fraction of the maximum favorable excursion did you actually capture? 0.70 means you caught 70% of the max possible profit. Higher is better but 100% is unrealistic — you'd need to exit at the exact peak.
Hands-On Code
Regime-Aware Exit Manager
import numpy as np
class AdaptiveExitManager:
"""L3 exit manager that adapts to market regime."""
# Regime-specific exit profiles
PROFILES = {
'trending': {'trail_mult': 2.5, 'giveback': 0.35, 'time_limit': 48},
'mean_reverting': {'trail_mult': 1.5, 'giveback': 0.20, 'time_limit': 24},
'random': {'trail_mult': 1.0, 'giveback': 0.15, 'time_limit': 12},
}
def evaluate(self, trade, current_bar, regime='trending'):
"""Decide whether to hold or exit."""
profile = self.PROFILES.get(regime, self.PROFILES['random'])
# Time-based exit
bars_held = current_bar - trade['entry_bar']
if bars_held > profile['time_limit'] and trade['current_r'] < 0.5:
return {'exit': True, 'reason': 'Time limit with minimal profit'}
# Giveback exit — protect profits
if trade['mfe_r'] > 1.0:
giveback = (trade['mfe_r'] - trade['current_r']) / trade['mfe_r']
if giveback > profile['giveback']:
return {'exit': True, 'reason': f'Giveback {giveback:.0%} > {profile["giveback"]:.0%}'}
# Trailing stop (ATR-based)
trail_level = trade['highest_price'] - profile['trail_mult'] * trade['atr']
if trade['current_price'] < trail_level:
return {'exit': True, 'reason': 'Trailing stop hit'}
return {'exit': False, 'reason': 'Hold'}The exit profile changes based on regime. In trends: wide trails, tolerate giveback, let it run. In chop: tight trails, take profits fast, time exits aggressively. The regime detection feeds directly into exit behavior.
Knowledge Check
Q1.In a strongly trending market, should your trailing stop be tighter or wider?
Assignment
Take a set of backtest trades with known entry times and prices. Apply three different exit strategies (fixed SL/TP, basic trailing, and regime-aware). Compare total R, profit factor, and MFE capture ratio. Write up which strategy performed best and why.