⚠️ BETA TESTING ENVIRONMENT - You are accessing a beta version of GomerAI. Features may be unstable or incomplete.
📧
🌟 BETA TESTERS NEEDED! Help us test our Beta EA. Sign up to our email list and send us a note with "Beta Tester" in the subject field.
Join Now

GomerAI MultiStrat Networked EA BETA1 – Users Manual

Version: 1.23
Date: December 31, 2025
Status: Production Flagship – MT5 Marketplace Release


Table of Contents

  1. Overview
  2. Architecture
  3. User Input Parameters
  1. Trade Health Monitor Guide
  2. Best Practices
  3. Troubleshooting

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:

  1. Adapts to market conditions (trending vs. quiet)
  2. Validates entry conditions across 5 independent pillars
  3. Monitors trade health continuously and exits when the thesis fails
  4. 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

  1. LPE Gate: Checks if market conditions are suitable (spread, volume, tick flow)
  2. REGIME: Determines if market is QUIET, TRENDING, or EXTREME
  3. LWSWING: Analyzes market structure (bullish, bearish, or neutral)
  4. TPB or KRSE: Generates entry signal based on regime
  5. 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:

  1. 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
  1. Drawdown Severity: How much is the trade down?
  • >75% of SL: -25 pts
  • >50% of SL: -15 pts
  • >25% of SL: -10 pts
  1. Time Decay: Is the trade taking too long?
  • Scalp >8 bars: -5 pts
  • Swing >40 bars: -5 pts
  1. Adverse Momentum: Is volatility expanding against us?
  • ATR expansion while in DD: -10 pts
  • Price acceleration against: -5 pts

Health States

ScoreStateAction
80-100HEALTHYNormal monitoring
40-79WARNINGWatch closely
15-39DEFENDBlock new entries
5-14EXITConsider exit (if guardrails pass)
<5EMERGENCYImmediate exit consideration

Guardrails (Prevent Premature Exits)

  1. Minimum Hold Time: Must be open ≥ MinBarsBeforeHealthExit
  2. Multi-Evidence: If enabled, needs 2+ pillar reversals
  3. Loss-Only: Only exits losers (winners use TSL)
  4. DD Threshold: Must be in ≥ HealthExitMaxDDPercent drawdown
  5. 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: 100
  • InpLWSWING_SwingStrength: 3
  • InpTPB_EMAPeriod: 50
  • InpKRSE_EMAPeriod: 50
  • TSL_ActivationPoints: 50 (5 pips)

M30-H1 (Intraday)

  • InpLWSWING_LookbackBars: 200
  • InpLWSWING_SwingStrength: 5
  • InpTPB_EMAPeriod: 100
  • InpKRSE_EMAPeriod: 100
  • TSL_ActivationPoints: 100 (10 pips)

H4+ (Swing)

  • InpLWSWING_LookbackBars: 500
  • InpLWSWING_SwingStrength: 10
  • InpTPB_EMAPeriod: 200
  • InpKRSE_EMAPeriod: 200
  • TSL_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.0
  • InpLPE_VolumeMinRatio: 0.4

Exotic Pairs (USD/TRY, EUR/ZAR)

  • InpLPE_SpreadMaxRatio: 4.0-5.0
  • InpKRSE_ATRMinPoints: 100-200
  • Increase all ATR multipliers by 50%

Risk Management

  1. Start Small: Begin with 0.01 lots
  2. Validate First: Run in demo for 2-4 weeks
  3. Monitor Health Exits: Check logs for early exit performance
  4. Adjust SL/TP: Match to your pair’s volatility
  5. Respect Drawdown: Don’t increase lot size during DD

Troubleshooting

EA Not Taking Trades

Check:

  1. InpAlgoTrading is true (in EA Template inputs)
  2. LPE gate is passing (check Experts log for “LPE: GATE CLOSED”)
  3. ScheduleEnabled allows current time
  4. Margin is sufficient (InpMinimumFreeMarginPercent)
  5. MinimumBarsBetweenTrades not blocking

Solutions:

  • Widen InpLPE_SpreadMaxRatio to 3.0+
  • Lower InpLPE_VolumeMinRatio to 0.4
  • Increase InpLPE_ImbalanceThreshold to 0.7

Too Many Losing Trades

Check:

  1. Health Monitor is enabled (EnableTradeHealthMonitor = true)
  2. Guardrails aren’t too strict:
  • RequireMultiEvidence = false
  • HealthExitMaxDDPercent = 0.15
  • MinBarsBeforeHealthExit = 1
  1. Regime detection is working (check logs)

Solutions:

  • Review backtest to validate settings
  • Consider increasing InpREGIME_ADXTrendingMin to 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 MinBarsBeforeHealthExit to 1
  • Set RequireMultiEvidence = false
  • Lower HealthExitMaxDDPercent to 0.10

TSL Not Activating

Check:

  1. EnableTrailingStop = true
  2. Position is in profit ≥ TSL_ActivationPoints
  3. Check logs for “[TSL]” messages

Solutions:

  • Lower TSL_ActivationPoints to 30
  • Verify InpTP isn’t being hit first

Compilation Errors

Ensure:

  • Using MetaEditor (not Notepad)
  • All .mqh files are in Include/ 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

GomerAI Chat
GomerAI Production active. How can I help?