GomerAI MultiStrat Networked EA BETA1 – Users Manual
Version: 1.23
Date: December 31, 2025
Status: Production Flagship – MT5 Marketplace Release
Table of Contents
- Pillar 1: LPE (Liquidity & Participation Gate)
- Pillar 2: LWSWING (Market Structure & Direction)
- Pillar 3: TPB (Timing & Price Mechanics)
- Pillar 4: KRSE (Stretch & Mean Reversion)
- Pillar 5: REGIME (Pressure & Regime Router)
- Trade Settings
- Exit Management
- Trade Health Monitor
- Position & Risk Management
Overview
The GomerAI MultiStrat Networked EA BETA1 is an advanced algorithmic trading system that uses a 5-Pillar Hierarchical Signal Engine to identify and execute high-probability trades. This EA combines multiple trading strategies (TPB and KRSE) with intelligent regime detection and market structure analysis.
Key Features
- 5-Pillar Signal Architecture: LPE → REGIME → LWSWING → TPB/KRSE
- Intelligent Regime Routing: Automatically switches between TPB (trending) and KRSE (quiet) strategies
- Trade Health Monitor: Exits failing trades early to reduce tail losses
- EA-Side Trailing Stop Loss: Protects profits without server dependency
- Network Integration: Connects to GomerAI cloud for monitoring and updates
What Makes MultiStrat Different
Unlike traditional EAs that use a single strategy, MultiStrat:
- Adapts to market conditions (trending vs. quiet)
- Validates entry conditions across 5 independent pillars
- Monitors trade health continuously and exits when the thesis fails
- Protects profits with intelligent trailing stop loss
Architecture
Hierarchical Authority Model
┌─────────────────────────────────────┐
│ Pillar 1: LPE (Entry Gate) │ ← Must Pass (Liquidity OK?)
├─────────────────────────────────────┤
│ Pillar 2: REGIME (Router) │ ← Routes to TPB or KRSE
├─────────────────────────────────────┤
│ Pillar 3: LWSWING (Structure) │ ← Confirms bias (Bullish/Bearish)
├─────────────────────────────────────┤
│ Pillar 4a: TPB (Trending) │ ← Active when REGIME = TRENDING
│ Pillar 4b: KRSE (Quiet) │ ← Active when REGIME = QUIET
└─────────────────────────────────────┘
Signal Flow
- LPE Gate: Checks if market conditions are suitable (spread, volume, tick flow)
- REGIME: Determines if market is QUIET, TRENDING, or EXTREME
- LWSWING: Analyzes market structure (bullish, bearish, or neutral)
- TPB or KRSE: Generates entry signal based on regime
- Entry Validation: All pillars must agree for trade to execute
User Input Parameters
Note: Parameters common to all GomerAI EAs (e.g., AlgoTrading toggle, magic number, lot size) are documented in the EA Template Users Manual. This manual covers MultiStrat-specific parameters only.
Pillar 1: LPE (Liquidity & Participation Gate)
The LPE (Liquidity, Participation, and Entry) pillar ensures the market has sufficient liquidity and participation before allowing entries. It prevents trading during illiquid or erratic market conditions.
InpLPE_SpreadLookback
Default: 20
Range: 1-200
Number of bars to analyze for spread calculation.
- Higher values (50-100): Smoother average, less sensitive to spread spikes
- Lower values (10-20): More reactive to recent spread changes
- Use case: Increase during volatile sessions to avoid false rejections
InpLPE_SpreadMaxRatio
Default: 2.0
Range: 0.2-20.0
Maximum allowed spread as a ratio of the average spread.
- 2.0 = Current spread must be ≤ 2x average spread
- Higher values (3.0-5.0): More lenient, allows wider spreads
- Lower values (1.2-1.5): Stricter, only trades during tight spreads
- Use case: Set to 3.0+ for exotic pairs, 1.5-2.0 for majors
InpLPE_VolumeLookback
Default: 20
Range: 1-200
Number of bars to analyze for volume calculation.
- Similar to SpreadLookback
- Higher values: Smoother volume baseline
- Use case: Match to SpreadLookback for consistency
InpLPE_VolumeMinRatio
Default: 0.5
Range: 0.05-5.0
Minimum required volume as a ratio of the average volume.
- 0.5 = Current volume must be ≥ 50% of average
- Higher values (0.8-1.0): Requires strong participation
- Lower values (0.3-0.5): Allows entries during quieter periods
- Use case: Increase to 0.8+ to avoid low-liquidity entries
InpLPE_TickFlowWindow
Default: 100
Range: 1-1000
Number of recent ticks to analyze for bid/ask flow balance.
- 100 ticks ≈ 1-5 minutes of data (depends on pair)
- Higher values (200-500): Smoother imbalance detection
- Lower values (50-100): More sensitive to recent flow
- Use case: Increase during news events to filter out spikes
InpLPE_ImbalanceThreshold
Default: 0.6
Range: 0.06-6.0
Maximum allowed bid/ask imbalance ratio.
- 0.6 = Rejects if >60% of ticks are on one side
- Higher values (0.7-0.8): More lenient (allows stronger trends)
- Lower values (0.5-0.55): Stricter (requires balanced flow)
- Use case: Set to 0.7+ for trending strategies, 0.5-0.6 for mean reversion
InpLPE_GMTOffset
Default: 0
Range: 0-10
GMT offset for broker timezone adjustment.
- 0 = Use broker server time as-is
- Adjust if broker time differs from GMT
- Use case: Set to your broker’s GMT offset (e.g., 2 for GMT+2)
Pillar 2: LWSWING (Market Structure & Direction)
LWSWING (Laguerre Wave Swing) analyzes market structure using swing highs and lows to determine bias (bullish, bearish, or neutral).
InpLWSWING_Enabled
Default: true
Enable or disable LWSWING pillar.
- true: LWSWING bias is required for entries
- false: Bypasses LWSWING (not recommended for MultiStrat)
- Use case: Should always be true for production use
InpLWSWING_LookbackBars
Default: 100
Range: 1-1000
Number of bars to analyze for swing detection.
- 100 bars = ~8 hours on M5, ~25 hours on M15
- Higher values (200-500): Detects larger swings (swing trading)
- Lower values (50-100): Detects smaller swings (scalping)
- Use case: Match to your timeframe and trading style
InpLWSWING_SwingStrength
Default: 3
Range: 1-30
Minimum number of bars on each side of a swing point.
- 3 = Swing high/low must have 3 bars before and after
- Higher values (5-10): Detects only major swings
- Lower values (2-3): More sensitive, detects minor swings
- Use case: Increase for higher timeframes (M30+), decrease for scalping
InpLWSWING_AllowNeutral
Default: true
Allow entries when LWSWING bias is neutral.
- true: Can trade when structure is unclear
- false: Only trades when bias is clearly bullish or bearish
- Use case: Set false for directional strategies, true for range trading
InpLWSWING_RequireIntermediate
Default: false
Require intermediate swing confirmation before bias change.
- false: Faster bias changes (more responsive)
- true: Waits for structure confirmation (less whipsaw)
- Use case: Set true in choppy markets to reduce false signals
Pillar 3: TPB (Timing & Price Mechanics)
TPB (Trendline Pullback & Bounce) is the trending strategy. Active when REGIME detects a trending market. Looks for pullbacks to EMA with stochastic confirmation.
InpTPB_EMAPeriod
Default: 50
Range: 1-500
Period for the trendline EMA.
- 50 = EMA(50) used as dynamic support/resistance
- Higher values (100-200): Slower EMA, major trend
- Lower values (20-50): Faster EMA, short-term trend
- Use case: 50 for M15, 100-200 for H1+
InpTPB_StochKPeriod
Default: 5
Range: 1-50
Stochastic %K period.
- 5 = Fast stochastic
- Higher values (14-21): Slower, less sensitive
- Lower values (3-5): Faster, more signals
- Use case: Keep at 5 for scalping, 14 for swing trading
InpTPB_StochDPeriod
Default: 3
Range: 1-30
Stochastic %D (signal line) period.
- 3 = Smooths %K over 3 bars
- Use case: Keep at 3 for responsiveness
InpTPB_StochSlowing
Default: 3
Range: 1-30
Stochastic slowing factor.
- 3 = Additional smoothing
- Use case: Match to %D period
InpTPB_StochOverbought
Default: 80.0
Range: 8.0-800.0
Stochastic overbought threshold.
- 80 = Overbought when stochastic > 80
- Higher values (85-90): Stricter (fewer sell signals)
- Lower values (70-75): More lenient (more sell signals)
- Use case: 80 is standard, adjust based on pair volatility
InpTPB_StochOversold
Default: 20.0
Range: 2.0-200.0
Stochastic oversold threshold.
- 20 = Oversold when stochastic < 20
- Higher values (25-30): More lenient (more buy signals)
- Lower values (10-15): Stricter (fewer buy signals)
- Use case: 20 is standard
InpTPB_PullbackPercent
Default: 0.5
Range: 0.05-5.0
Required pullback distance to EMA as % of ATR.
- 0.5 = Price must be within 50% of ATR distance from EMA
- Higher values (0.7-1.0): Allows deeper pullbacks
- Lower values (0.3-0.5): Requires price to be very close to EMA
- Use case: Increase for volatile pairs
InpTPB_SLATRMult
Default: 1.5
Range: 0.15-15.0
Stop loss as multiple of ATR.
- 1.5 = SL is 1.5 x ATR
- Higher values (2.0-3.0): Wider SL (less stopouts)
- Lower values (1.0-1.5): Tighter SL (more risk control)
- Use case: Increase for volatile pairs, decrease for tight ranges
InpTPB_TPATRMult
Default: 4.0
Range: 0.4-40.0
Take profit as multiple of ATR.
- 4.0 = TP is 4 x ATR
- Creates ~1:2.5 risk/reward ratio with SL=1.5
- Higher values (5.0-8.0): Larger profit targets
- Use case: Adjust based on desired R:R ratio
Pillar 4: KRSE (Stretch & Mean Reversion)
KRSE (Keltner Range Stretch Entry) is the mean reversion strategy. Active when REGIME detects a quiet market. Looks for price to overextend beyond bands, then revert.
InpKRSE_Enable
Default: true
Enable or disable KRSE strategy.
- true: KRSE active during QUIET regime
- false: Disables KRSE (TPB only)
- Use case: Keep true for full MultiStrat functionality
InpKRSE_UseBollingerStretch
Default: true
Use Bollinger Bands for stretch detection.
- true: BB used as primary stretch indicator
- false: Disables BB (uses ATR only)
- Use case: Keep true for best results
InpKRSE_BBPeriod
Default: 20
Range: 1-200
Bollinger Bands period.
- 20 = Standard BB(20)
- Use case: Keep at 20 for consistency with industry standards
InpKRSE_BBDev
Default: 2.0
Range: 0.2-20.0
Bollinger Bands standard deviation.
- 2.0 = ±2 standard deviations
- Higher values (2.5-3.0): Wider bands (fewer signals)
- Lower values (1.5-2.0): Tighter bands (more signals)
- Use case: 2.0 is standard
InpKRSE_UseATRStretch
Default: true
Use ATR-based stretch detection.
- true: ATR used as secondary stretch indicator
- false: Disables ATR stretch
- Use case: Keep true for added confirmation
InpKRSE_ATRPeriod
Default: 14
Range: 1-140
ATR period for stretch calculation.
- 14 = Standard ATR(14)
- Use case: Keep at 14
InpKRSE_ATRStretchMult
Default: 1.5
Range: 0.15-15.0
ATR multiplier for stretch detection.
- 1.5 = Price must be >1.5 x ATR from EMA
- Higher values (2.0-3.0): Requires extreme stretches
- Lower values (1.0-1.5): More sensitive
- Use case: Adjust based on pair volatility
InpKRSE_EMAPeriod
Default: 50
Range: 1-500
EMA period for mean reversion baseline.
- 50 = Price reverts toward EMA(50)
- Use case: Match to timeframe (50 for M15, 100 for H1)
InpKRSE_ATRMinPoints
Default: 50.0
Range: 5.0-500.0
Minimum ATR in points for entry.
- 50 points = 5 pips on 5-digit broker
- Prevents entries when volatility is too low
- Use case: Increase for more volatile pairs
InpKRSE_UseATRRelativeFloor
Default: true
Use ATR moving average as relative floor.
- true: Requires ATR > threshold relative to ATR MA
- false: Uses absolute ATR minimum only
- Use case: Keep true for adaptive volatility filtering
InpKRSE_ATRMAPeriod
Default: 20
Range: 1-200
Period for ATR moving average.
- 20 = ATR compared to its 20-period MA
- Use case: Keep at 20
InpKRSE_ATRMinToATRMA
Default: 0.8
Range: 0.08-8.0
Minimum ATR as ratio of ATR MA.
- 0.8 = ATR must be ≥ 80% of its MA
- Prevents entries when volatility is declining
- Use case: Increase to 1.0+ to require expanding volatility
InpKRSE_GapATRMult
Default: 0.5
Range: 0.05-5.0
Maximum gap from prior bar as ATR multiple.
- 0.5 = Gap must be < 50% of ATR
- Filters out large price gaps
- Use case: Keep at 0.5
InpKRSE_CloseATRMult
Default: 0.5
Range: 0.05-5.0
Minimum close movement from prior bar as ATR multiple.
- 0.5 = Close must move ≥ 50% of ATR
- Ensures meaningful price action
- Use case: Keep at 0.5
InpKRSE_PriorBarIndex
Default: 1
Range: 1-10
Which bar to use for prior bar comparison.
- 1 = Compare to bar[1] (previous bar)
- Use case: Keep at 1
InpKRSE_RequireNewExtreme
Default: true
Require price to make a new extreme beyond stretch.
- true: Price must exceed prior high/low
- false: Any stretch qualifies
- Use case: Keep true to ensure genuine overextension
InpKRSE_UseADXGate
Default: true
Use ADX to filter out trending markets.
- true: Blocks KRSE entries when ADX is high
- false: Ignores ADX (not recommended)
- Use case: Keep true to avoid mean reversion in trends
InpKRSE_ADXPeriod
Default: 14
Range: 1-140
ADX period for trend strength.
- 14 = Standard ADX(14)
- Use case: Keep at 14
InpKRSE_ADXMaxForReversal
Default: 30.0
Range: 3.0-300.0
Maximum ADX for mean reversion entry.
- 30 = Blocks KRSE when ADX > 30
- Higher values (35-40): Allows KRSE in moderate trends
- Lower values (20-25): Only allows KRSE in very quiet markets
- Use case: 30 is balanced
InpKRSE_UseEMASlopeGate
Default: true
Use EMA slope to filter out trending markets.
- true: Blocks KRSE when EMA slope is steep
- false: Ignores EMA slope
- Use case: Keep true
InpKRSE_EMASlopePeriod
Default: 50
Range: 1-500
EMA period for slope calculation.
- 50 = Uses EMA(50) slope
- Use case: Match to main EMA period
InpKRSE_EMASlopeMaxATR
Default: 0.3
Range: 0.03-3.0
Maximum EMA slope as ATR multiple.
- 0.3 = EMA slope must be < 30% of ATR
- Blocks KRSE when EMA is trending
- Use case: Keep at 0.3
InpKRSE_AllowLong
Default: true
Allow KRSE long entries.
- Use case: Disable if you only want short mean reversion
InpKRSE_AllowShort
Default: true
Allow KRSE short entries.
- Use case: Disable if you only want long mean reversion
InpKRSE_OnePositionMode
Default: true
Limit to one KRSE position at a time.
- true: Only one KRSE trade open
- false: Allows multiple KRSE positions
- Use case: Keep true to avoid over-exposure
InpKRSE_MinBarsBetweenTrades
Default: 5
Range: 1-50
Minimum bars between KRSE entries.
- 5 = Wait 5 bars before next KRSE entry
- Prevents rapid-fire entries
- Use case: Increase to 10-20 in choppy markets
InpKRSE_SLATRMult
Default: 2.0
Range: 0.2-20.0
Stop loss as ATR multiple.
- 2.0 = SL is 2 x ATR
- Wider than TPB due to mean reversion nature
- Use case: Adjust based on volatility
InpKRSE_UseStageATarget
Default: true
Use staged profit taking.
- true: Closes partial position at first target
- false: All-or-nothing exit
- Use case: Keep true for better R:R management
InpKRSE_StageAR
Default: 2.0
Range: 0.2-20.0
Stage A target as R multiple.
- 2.0 = First target at 2R (2 x SL)
- Use case: Keep at 2.0 for 1:2 R:R on partial
InpKRSE_PartialClosePct
Default: 50.0
Range: 5.0-500.0
Percentage of position to close at Stage A.
- 50 = Close 50% at first target
- Use case: 50% is balanced
InpKRSE_UseATRTrail
Default: true
Use ATR-based trailing stop.
- true: Trails SL based on ATR
- false: Static SL after Stage A
- Use case: Keep true for profit protection
InpKRSE_ATRTrailMult
Default: 1.5
Range: 0.15-15.0
ATR multiplier for trailing distance.
- 1.5 = Trail SL at 1.5 x ATR
- Use case: Keep at 1.5
InpKRSE_UseSwingTrail
Default: false
Use swing-based trailing stop.
- true: Trails SL at swing lows/highs
- false: Uses ATR trail only
- Use case: Keep false (ATR trail is more reliable)
InpKRSE_SwingTrailLookback
Default: 10
Range: 1-100
Lookback bars for swing trail.
- 10 = Looks back 10 bars for swing point
- Use case: N/A if UseSwingTrail is false
InpKRSE_UseOppositeSignalExit
Default: true
Exit KRSE position on opposite signal.
- true: Closes LONG on SHORT signal (and vice versa)
- false: Waits for SL/TP
- Use case: Keep true for active management
InpKRSE_MinProfitToExitATRMult
Default: 1.0
Range: 0.1-10.0
Minimum profit before opposite signal exit.
- 1.0 = Must be +1 ATR in profit
- Prevents premature exits on noise
- Use case: Keep at 1.0
Pillar 5: REGIME (Pressure & Regime Router)
REGIME determines the market condition (QUIET, TRENDING, EXTREME) and routes to the appropriate strategy (KRSE for QUIET, TPB for TRENDING, blocks entries for EXTREME).
InpREGIME_ADXPeriod
Default: 14
Range: 1-140
ADX period for trend strength.
- 14 = Standard ADX(14)
- Use case: Keep at 14
InpREGIME_ADXTrendingMin
Default: 25.0
Range: 2.5-250.0
Minimum ADX for TRENDING regime.
- 25 = ADX > 25 triggers TRENDING (activates TPB)
- Higher values (30-35): Requires stronger trends
- Lower values (20-25): More sensitive to trends
- Use case: 25 is standard
InpREGIME_ADXExtremeMin
Default: 40.0
Range: 4.0-400.0
Minimum ADX for EXTREME regime.
- 40 = ADX > 40 triggers EXTREME (blocks all entries)
- Higher values (45-50): Allows trading in strong trends
- Lower values (35-40): More conservative (blocks sooner)
- Use case: 40 is balanced
InpREGIME_ATRPeriod
Default: 20
Range: 1-200
ATR period for volatility measurement.
- 20 = ATR(20) used for regime detection
- Use case: Keep at 20
InpREGIME_BBPeriod
Default: 20
Range: 1-200
Bollinger Bands period for regime.
- 20 = BB(20) used for squeeze detection
- Use case: Keep at 20
InpREGIME_BBDeviation
Default: 2.0
Range: 0.2-20.0
Bollinger Bands standard deviation.
- 2.0 = ±2 standard deviations
- Use case: Keep at 2.0
InpREGIME_StdDevPeriod
Default: 20
Range: 1-200
Standard deviation period for volatility.
- 20 = Uses 20-bar standard deviation
- Use case: Keep at 20
InpREGIME_KeltnerEMAPeriod
Default: 20
Range: 1-200
Keltner Channel EMA period.
- 20 = KC based on EMA(20)
- Use case: Keep at 20
InpREGIME_KeltnerATRMult
Default: 1.5
Range: 0.15-15.0
Keltner Channel ATR multiplier.
- 1.5 = KC bands at ±1.5 ATR from EMA
- Use case: Keep at 1.5
InpREGIME_SqueezeRatioMax
Default: 0.5
Range: 0.05-5.0
Maximum BB/KC ratio for squeeze detection.
- 0.5 = BB width must be < 50% of KC width
- Lower values = Tighter squeeze required
- Use case: Keep at 0.5
InpREGIME_SurgeThreshold
Default: 1.5
Range: 0.15-15.0
ATR surge threshold for volatility expansion.
- 1.5 = Current ATR must be > 1.5x recent average
- Detects volatility breakouts
- Use case: Keep at 1.5
Trade Settings
InpSL
Default: 1000
Range: 100-1000
Stop loss in points (not pips).
- 1000 points = 100 pips on 5-digit broker
- This is a FALLBACK SL (strategies use ATR-based SLs)
- Use case: Set high enough to allow strategy SLs to work
InpTP
Default: 300
Range: 300-3000
Take profit in points (not pips).
- 300 points = 30 pips on 5-digit broker
- This is a FALLBACK TP (strategies use ATR-based TPs)
- Use case: Set as safety net for runaway winners
InpSlippage
Default: 10
Range: 1-100
Maximum allowed slippage in points.
- 10 points = 1 pip on 5-digit broker
- Use case: Increase during high volatility or news
InpLotSize
Default: 0.01
Range: 0.001-0.1
Fixed lot size per trade.
- 0.01 = 0.01 lots (1,000 units, ~$0.10/pip)
- Use case: Start small, increase after validation
Exit Management
EnableTrailingStop
Default: true
Enable EA-side trailing stop loss.
- true: TSL protects profits
- false: Static SL only (not recommended)
- Use case: Keep true for profit protection
TSL_ActivationPoints
Default: 50.0
Range: 5.0-500.0
Profit in points before TSL activates.
- 50 points = 5 pips on 5-digit broker
- Higher values (100-150): TSL activates later (more room)
- Lower values (30-50): TSL activates sooner (tighter)
- Use case: 50 is balanced for M15 scalping
TSL_TrailPercent
Default: 30.0
Range: 3.0-300.0
Percentage of profit to protect with TSL.
- 30 = Trails at 30% of profit (protects 70%)
- Higher values (50-70): Looser trail (more room)
- Lower values (20-30): Tighter trail (more protection)
- Use case: 30 allows winners to run while protecting gains
EnableExitOnOppositeSignal
Default: true
Close position when opposite signal fires.
- true: Exits LONG on SHORT signal (and vice versa)
- false: Waits for SL/TP
- Use case: Keep true for active management
Trade Health Monitor
The Trade Health Monitor is v1.23’s flagship feature. It continuously evaluates whether the trade thesis is still valid and exits early when it fails, reducing tail losses.
EnableTradeHealthMonitor
Default: true
Enable continuous trade thesis validation.
- true: Health Monitor active
- false: Relies on SL/TP only
- Use case: Keep true to reduce tail losses
MinBarsBeforeHealthExit
Default: 1
Range: 1-10
Minimum bars open before health exit allowed.
- 1 = Can exit after 1 bar (15 min on M15)
- Higher values (3-5): Gives trade more time
- Lower values (1-2): More aggressive exits
- Use case: 1 is optimal (validated in backtests)
HealthScoreWarningThreshold
Default: 40
Range: 1-400
Score below this triggers WARNING state.
- 40 = Warning when score drops below 40
- Informational only (no action taken)
- Use case: Keep at 40 for monitoring
HealthScoreDefendThreshold
Default: 15
Range: 1-150
Score below this triggers DEFEND state.
- 15 = Defend mode when score drops below 15
- Blocks new entries while position is unhealthy
- Use case: Keep at 15
HealthScoreExitThreshold
Default: 15
Range: 1-150
Score below this triggers EXIT state.
- 15 = Exit consideration when score drops below 15
- Must also pass guardrails
- Use case: 15 is optimal (validated in backtests)
HealthExitMaxDDPercent
Default: 0.15
Range: 0.015-1.5
Minimum drawdown % of SL before health exit.
- 0.15 = Must be down 15% of SL distance
- For 10-pip SL: Must be down 1.5 pips
- Lower values (0.10-0.15): Earlier exits
- Higher values (0.20-0.35): Later exits
- Use case: 0.15 is optimal (validated in backtests)
HealthExitLossOnly
Default: true
Only health-exit losing positions.
- true: Winners managed by TSL/TP
- false: Can exit winners early (not recommended)
- Use case: Keep true
RequireMultiEvidence
Default: false
Require 2+ pillars to reverse before exit.
- false: Single pillar reversal can trigger exit
- true: Requires multiple pillars (more conservative)
- Use case: Keep false (validated in backtests – single pillar reversals are significant)
Position & Risk Management
MaxOpenPositions
Default: 1
Range: 1-10
Maximum open positions.
- 1 = Single position mode (recommended)
- >1 = Multi-position mode
- Use case: Keep at 1 to avoid over-exposure
MinimumBarsBetweenTrades
Default: 1
Range: 1-10
Minimum bars between trade entries.
- 1 = Can enter every bar
- Higher values (3-5): Reduces trade frequency
- Use case: 1 is optimal for signal-based entries
NumSignalsToBuy
Default: 2
Range: 1-20
Minimum TS signals required to trigger buy.
- 2 = Requires 2 consecutive buy signals
- Higher values (3-5): More confirmation
- Lower values (1-2): More responsive
- Use case: 2 is balanced
NumSignalsToSell
Default: 2
Range: 1-20
Minimum TS signals required to trigger sell.
- 2 = Requires 2 consecutive sell signals
- Use case: Match to NumSignalsToBuy
Trade Health Monitor Guide
How It Works
The Trade Health Monitor assigns a health score (0-100) to each open position based on:
- Pillar Drift: Are the pillars still aligned with the trade?
- LPE gate closed: -15 pts
- REGIME flipped to EXTREME: -10 pts
- LWSWING bias reversed: -20 pts (CRITICAL)
- Entry engine reversed: -15 pts
- Drawdown Severity: How much is the trade down?
- >75% of SL: -25 pts
- >50% of SL: -15 pts
- >25% of SL: -10 pts
- Time Decay: Is the trade taking too long?
- Scalp >8 bars: -5 pts
- Swing >40 bars: -5 pts
- Adverse Momentum: Is volatility expanding against us?
- ATR expansion while in DD: -10 pts
- Price acceleration against: -5 pts
Health States
| Score | State | Action |
|---|---|---|
| 80-100 | HEALTHY | Normal monitoring |
| 40-79 | WARNING | Watch closely |
| 15-39 | DEFEND | Block new entries |
| 5-14 | EXIT | Consider exit (if guardrails pass) |
| <5 | EMERGENCY | Immediate exit consideration |
Guardrails (Prevent Premature Exits)
- Minimum Hold Time: Must be open ≥ MinBarsBeforeHealthExit
- Multi-Evidence: If enabled, needs 2+ pillar reversals
- Loss-Only: Only exits losers (winners use TSL)
- DD Threshold: Must be in ≥ HealthExitMaxDDPercent drawdown
- State Progression: Must reach EXIT or EMERGENCY state
All guardrails must pass for exit to execute.
Expected Impact
- Exit at -1.5 to -3 pips instead of -10 pip SL hits
- Win:Loss ratio improves to 1:2 or better (from 1:3)
- Drawdown reduces by 70%+ (from 37% to <10%)
- Same winners (TSL still manages profitable positions)
- Smaller losers (Health Monitor cuts losses early)
Best Practices
Optimal Settings by Timeframe
M15 (Scalping)
InpLWSWING_LookbackBars: 100InpLWSWING_SwingStrength: 3InpTPB_EMAPeriod: 50InpKRSE_EMAPeriod: 50TSL_ActivationPoints: 50 (5 pips)
M30-H1 (Intraday)
InpLWSWING_LookbackBars: 200InpLWSWING_SwingStrength: 5InpTPB_EMAPeriod: 100InpKRSE_EMAPeriod: 100TSL_ActivationPoints: 100 (10 pips)
H4+ (Swing)
InpLWSWING_LookbackBars: 500InpLWSWING_SwingStrength: 10InpTPB_EMAPeriod: 200InpKRSE_EMAPeriod: 200TSL_ActivationPoints: 200 (20 pips)
Pair-Specific Adjustments
Major Pairs (EUR/USD, GBP/USD, USD/JPY)
- Keep default settings
InpLPE_SpreadMaxRatio: 1.5-2.0
Minor Pairs (AUD/NZD, EUR/CHF)
InpLPE_SpreadMaxRatio: 2.5-3.0InpLPE_VolumeMinRatio: 0.4
Exotic Pairs (USD/TRY, EUR/ZAR)
InpLPE_SpreadMaxRatio: 4.0-5.0InpKRSE_ATRMinPoints: 100-200- Increase all ATR multipliers by 50%
Risk Management
- Start Small: Begin with 0.01 lots
- Validate First: Run in demo for 2-4 weeks
- Monitor Health Exits: Check logs for early exit performance
- Adjust SL/TP: Match to your pair’s volatility
- Respect Drawdown: Don’t increase lot size during DD
Troubleshooting
EA Not Taking Trades
Check:
InpAlgoTradingis true (in EA Template inputs)- LPE gate is passing (check Experts log for “LPE: GATE CLOSED”)
ScheduleEnabledallows current time- Margin is sufficient (
InpMinimumFreeMarginPercent) MinimumBarsBetweenTradesnot blocking
Solutions:
- Widen
InpLPE_SpreadMaxRatioto 3.0+ - Lower
InpLPE_VolumeMinRatioto 0.4 - Increase
InpLPE_ImbalanceThresholdto 0.7
Too Many Losing Trades
Check:
- Health Monitor is enabled (
EnableTradeHealthMonitor = true) - Guardrails aren’t too strict:
RequireMultiEvidence = falseHealthExitMaxDDPercent = 0.15MinBarsBeforeHealthExit = 1
- Regime detection is working (check logs)
Solutions:
- Review backtest to validate settings
- Consider increasing
InpREGIME_ADXTrendingMinto 30 - Tighten entry filters (increase swing strength)
Health Monitor Not Exiting
Check Logs For:
- “🚫 [G1] Health exit blocked: Min hold time not met”
- “🚫 [G2] Health exit blocked: Multi-evidence not confirmed”
- “🚫 [G4] Health exit blocked: DD too small”
Solutions:
- Lower
MinBarsBeforeHealthExitto 1 - Set
RequireMultiEvidence = false - Lower
HealthExitMaxDDPercentto 0.10
TSL Not Activating
Check:
EnableTrailingStop = true- Position is in profit ≥
TSL_ActivationPoints - Check logs for “[TSL]” messages
Solutions:
- Lower
TSL_ActivationPointsto 30 - Verify
InpTPisn’t being hit first
Compilation Errors
Ensure:
- Using MetaEditor (not Notepad)
- All
.mqhfiles are inInclude/directory - File encoding is UTF-8
- No syntax errors (check line numbers in error messages)
Version History
v1.23 (December 31, 2025) – Current
- Trade Health Monitor fully functional
- User-optimized default settings
- MT5 Marketplace release
- Replaces v1.09 in circulation
Key Changes from v1.09:
- Added Trade Health Monitor (intelligent exits)
- Enhanced 5-Pillar signal engine
- Improved regime detection
- Better TSL management
- Cloud integration (DEV-001 registration)
- AITL membership widget
Support
Documentation:
- EA Template Manual (on website)
- This manual (MultiStrat-specific)
VERSION_TRACKING.md(version history)
Contact:
- Email: support@gomerai.com
- Website: https://gomerai.com
END OF MULTISTRAT USERS MANUAL