The EA Specification Problem: Why Your Brief Costs More Than Your Strategy

The EA Specification Problem: Why Your Brief Costs More Than Your Strategy

17 July 2026, 21:57
Boris Armenteros
0
17

The Pattern That Costs You Money

Most EA project overruns come from revision cycles, not from complex strategy logic. After 14+ years of building EAs, I have found that specification quality predicts project cost more reliably than strategy complexity.

Here is a real pattern. A client writes: "Entry when price crosses the level." I build crossover detection — price was below the level on the previous tick, now it is above it. The client meant something different: "When price touches the level for the first time." Crossover requires the price to be on the opposite side first. A first-touch entry fires the moment price reaches the level from any direction.

That four-word ambiguity took three revision rounds to resolve. The developer was not wrong. The specification was.

Three Patterns of Bad Specifications

Bad specifications share three failure modes: missing edge cases, ambiguous trigger language, and unstated assumptions about execution behavior.

"Use a martingale system." The entire specification. No lot progression formula. No maximum drawdown limit. No stop condition. Does the lot double after every loss? Triple? Reset after a win or after reaching a target? What happens when margin runs out? Every unanswered question is a revision cycle.

"Close all trades when profit reaches target." Per-trade or per-basket? Floating profit or realized? If the EA has five positions open and combined floating profit reaches $100, does it close all five? Or each individually? Different code paths, different exit behaviors, different P&L outcomes.

"Same as my other EA but for gold." This assumes gold and forex pairs behave identically inside MetaTrader. They do not. XAUUSD uses different tick metrics than major forex pairs. If you have ever calculated position size on EURUSD and tried to reuse the formula on gold without adjustment, you have seen the problem:

// Position sizing that works on EURUSD but breaks on XAUUSD
double tickSize  = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);

// On EURUSD: tickSize=0.00001, tickValue≈$0.10 (for 0.01 lot)
// On XAUUSD: tickSize=0.01,    tickValue≈$0.01 (for 0.01 lot)
// Same formula, completely different lot sizes

double riskAmount = AccountInfoDouble(ACCOUNT_BALANCE) * 0.02;
double slDistance  = MathAbs(entryPrice - stopLoss);
double lotSize    = riskAmount / (slDistance / tickSize * tickValue);

printf("%s: tickSize=%.5f tickValue=%.2f lotSize=%.2f",
       __FUNCTION__, tickSize, tickValue, lotSize);

The formula itself is correct. But SYMBOL_TRADE_TICK_SIZE  and SYMBOL_TRADE_TICK_VALUE  differ per instrument, so "same but for gold" is not a small change. It often requires reworking the entire risk management module.

The Walk-Through Scenario

A step-by-step scenario with specific prices eliminates more ambiguity than pages of general description. It forces you to think through your strategy concretely and exposes assumptions you did not realize you were making.

Compare these two specifications:

Vague: "EA should trail the stop loss."

Clear: "Price at 1.10500. Buy signal. EA opens buy at market, 0.10 lots. SL at 1.10200 (30 pips). TP at 1.11100 (60 pips). If price moves to 1.10800 (30 pips profit), move SL to 1.10500 (breakeven). After that, trail SL 20 pips behind for every 10-pip move up."

The clear version can be coded in hours. The vague version starts a clarification thread that adds days.

Seven Questions That Prevent Scope Explosions

Over hundreds of EA projects, I have found that seven questions answered upfront cover roughly 90% of revision-causing ambiguities:

  1. Entry conditions — exact trigger with a walk-through scenario
  2. Exit conditions — SL, TP, trailing, time-based, signal-based
  3. Position sizing — formula with a numerical example
  4. Multiple positions — limit and behavior when limit is reached
  5. Symbol scope — which instruments and any per-symbol differences
  6. Timeframe dependencies — single or multi-timeframe data handling
  7. Error recovery — behavior on order failure (retry, alert, stop)

You do not need to be technical to answer them. Write in plain language. Use specific numbers.

The Cost Difference

Projects with walk-through scenarios average 0-1 revision rounds. Vague specifications average 3-4 rounds. At typical developer rates of $50–100 per hour, that gap is $500–$1,500 for the same end product. Thirty minutes writing a clear specification saves weeks and hundreds of dollars.