Equity Protection EAs: Your Account's Last Line of Defense
The Logic of the Global Shield: What is an Equity Protector?
Most Expert Advisors (EAs) manage their own trades individually. While this is fine for a single bot, if you are running a portfolio of 5-10 different algorithms, you need an Equity Protection EA (also known as a 'Risk Manager' or 'Disaster Script'). Its job is to monitor the entire account balance and protect you from a 'Black Swan' event where multiple EAs might fail simultaneously.
An equity protector is a purely defensive tool. It doesn't open any trades. Instead, it constantly watches your AccountEquity() against your AccountBalance(). If your total open drawdown exceeds a certain percentage (e.g., 20%), the EA immediately closes ALL open trades and disables all other EAs. It is your account's 'Emergency Brake'.
The Danger of Correlation: Why you need a Global SL
Often, a trader thinks their portfolio is diversified, but a sudden move in the USD (due to a surprise interest rate hike) can cause 5 different EAs to go into a drawdown at the same time. This is called Correlation Risk. Individually, each EA might only be in a 5% drawdown—which is within their normal limit.
However, at the Account Level, you are now in a 25% drawdown. This can trigger a margin call or a total account wipeout. An equity protector doesn't care about individual trade logic; it only cares about the total 'Value at Risk' (VaR) of your capital. By closing everything at 20%, you ensure that you survive to trade another day with 80% of your principal intact.
Equity Protection Checklist
Primary: Set a global drawdown limit (e.g., 20% of balance)
Constraint: Automatically disable 'AutoTrading' upon limit hit
Threshold: Monitor AccountEquity() with every single price tick
Market State: Use a daily profit target to lock in gains
Verified: Test the 'CloseAll' function on a demo account
Target: Never lose more than your pre-defined 'Risk Unit' globally
Coding the Filter: The AccountEquity() Check
In MQL4/MQL5, coding an equity protector is straightforward. You create an input variable called MaxDrawdownPercent. Inside the OnTick() loop, the EA calculates the current drawdown: double currentDD = (1 - (AccountEquity() / AccountBalance())) * 100;. If currentDD >= MaxDrawdownPercent, the EA calls a CloseAllPositions() function.
For maximum safety, a professional global protector should also Disable 'AutoTrading' in the MT4 terminal. This ensures that the other EAs don't immediately try to 'Re-open' their positions as soon as the global protector closes them. This is the difference between a simple script and a robust institutional-grade risk engine.
Strategy: Equity Trailing and Daily Profit Limits
Beyond simple drawdown protection, most global scripts also include a Daily Profit Target. For example, if you reach a 5% profit for the day, the EA closes all trades and stops trading until the next day. This prevents 'Revenge trading' or 'Greed' from turning a winning day into a losing one. It forces you to 'Bank your wins' and protects your account from the natural volatility of the market sessions.