Laguerre Tidewalker EA
- Experts
-
AL MOOSAWI ABDULLAH JAFFER BAQER
To trade successfully we need to go through the proven path that others had gone and reached!
Here are 17 quotes from such successful investors:
1- Limit your size in any position so that fear does not become the prevailing instinct guiding your judgment.
Joe Vidich - Versão: 3.27
- Ativações: 5
Laguerre RSI grid EA for traders who want the first order placed when an oversold or overbought stay really ends, not on a one-bar dip. One job: open a grid only when Ehlers' Laguerre RSI walks out of its low or high zone after a real stay there, with the trend behind it. Mechanism: a closed-bar Laguerre RSI zone exit, a Dwell Guard, a Range Guard and an EMA 200, then an ATR-spaced grid that banks small closures.
Tested on: EURUSD H1, $10,000, default inputs, 2025.01.01 to 2026.09.30: net +783.39, maximal equity drawdown 248.61 (2.38%), 406 trades, profit factor 3.46, no stop-out, no margin refusal. Deepest basket: 9 grid orders open at the same moment, 0.45 lots in total.
Minimum deposit, from the deepest basket: EURUSD H1: the deepest basket (0.45 lots) needed about $500 of margin at 1:100 on top of a 248.61 drawdown, so start with at least $2,000 at the default 0.01 first lot. XAUUSD D1: the deepest basket was 1 order of 0.01 lots, about $45 of margin with a 3.93 drawdown, so start with at least $500. These are floors from one test, not a safe zone; deposits below $10,000 were not run.
Try it free first: load Laguerre Tidewalker EA in the MetaTrader 5 Strategy Tester with visual mode on, default inputs, EURUSD H1. Every zone exit it accepts gets an arrow; on the live chart every exit a guard refuses is shown as a grey dot.
The trade lifecycle in four verbs. It filters the closes through four Laguerre stages into an RSI between 0 and 1, waits until that RSI has stayed in its low or high zone and then walks out with the trend behind it, opens the first level and spaces the next ones by ATR, and banks groups of orders as soon as their joint result clears the target.
Plain risk up front. This IS a grid. It adds to losing positions and uses no stop loss by default. Defaults: 0.01 first lot, additive steps of 0.01, ATR spacing with a 50 point floor, hedge cycle off, margin-level safety off. Limits stop new levels; they never force-close the book.
AN RSI THAT KNOWS WHEN A STAY IS OVER
John Ehlers built the Laguerre RSI by passing price through four Laguerre filter stages that share one setting, gamma. Instead of a long lookback, the stages themselves carry the memory, so a short, smooth RSI comes out that sits pinned at 0 or 1 during a strong push and leaves those extremes quickly once the push is spent. That makes the moment it walks out of its zone a clear, single event.
Five things to know first
- Entry: the Laguerre RSI climbs back above 0.20 (BUY) or falls back below 0.80 (SELL) on a closed bar. A 0.5 midline mode is included for earlier, more frequent entries. Accepted signals do not repaint.
- Calculated inside the EA from bar closes. No indicator file, no DLL, no web request.
- The new Dwell Guard only accepts an exit that follows a real stay in the zone, a Range Guard skips quiet boxes, and an EMA 200 filter keeps entries on the side of the main trend.
- The Dwell Guard ships switched ON at 2 bars, because in our test it cut the worst EURUSD drawdown by 97% and raised profit per unit of drawdown more than twelve times. The full on/off numbers are below, including the profit it gave up.
- No stop loss and no forced close-all. Limits stop new levels; the open book stays under management.
Start here (5 minutes)
- Attach it to EURUSD H1 and leave every input at its default.
- Set RunMode to Scan only for the first session. The panel shows each plan; no order is sent.
- Look at the arrows and grey dots on the chart: they show which past zone exits the guards would have taken or refused.
- Check your balance against the minimum-deposit line above, then press ARMED on the panel.
- Repeat the tester runs below on your own broker's data before any real money; spread, swap and commission differ between brokers. More than one chart? Give each copy its own EAMagicNumber and HedgeMagicNumber.
Reproduce our numbers
Strategy Tester, default inputs, 1 minute OHLC, leverage 1:100, 2025.01.01 to 2026.09.30, one broker's demo data. Same settings, same period, and you should land close to these:
- EURUSD H1, $10,000: net +783.39, maximal equity drawdown 248.61 (2.38%), 406 trades, profit factor 3.46, deepest basket 9 orders / 0.45 lots. No stop-out, no margin refusal.
- EURUSD H1, $1,000,000: net +783.39, maximal equity drawdown 248.61 (0.02%), 406 trades, deepest basket 9 orders / 0.45 lots. No stop-out, no margin refusal.
- XAUUSD D1, $10,000: net +17.28, maximal equity drawdown 3.93 (0.04%), 6 trades, deepest basket 1 order / 0.01 lots. No stop-out, no margin refusal.
- XAUUSD D1, $1,000,000: net +17.28, maximal equity drawdown 3.93 (0.00%), 6 trades, deepest basket 1 order / 0.01 lots. No stop-out, no margin refusal.
Read these as one past stretch, not a forecast. The deepest basket is counted from the tester's deal list (largest number of grid orders open together, and their lots). Money drawdown is the same at both deposits because lots do not grow with the balance, so it is a far bigger share of a small account. Defaults were set once by judgement on this same period, which flatters them. Six gold trades in 21 months is far too few to judge gold. Netting accounts were not verified.
The Dwell Guard: on or off, in numbers
The idea: a Laguerre RSI that touches its zone for a single bar and pops straight out says little; one that stays there for a while marks a push that has run its course. So for a BUY the RSI must have closed at or below the low level for at least InpLRDwellMin bars in a row just before the exit (for a SELL, at or above the high level). Same period, same settings, guard at 2 bars against guard off:
- EURUSD H1, $10,000: on, net +783.39, drawdown 248.61 (2.38%), 406 trades, deepest 9 orders / 0.45 lots. Off, net +2,019.24, drawdown 7,846.44 (74.28%), 587 trades, deepest 18 orders / 3.59 lots.
- XAUUSD D1, $10,000: on and off identical, net +17.28, drawdown 3.93, 6 trades, deepest 1 order / 0.01 lots.
On EURUSD the guard cut the worst drawdown by 97%, the deepest basket's lots by 87%, and raised profit per unit of drawdown from about 0.26 to about 3.15, at the cost of 61% of the profit. Without it the test came close to losing three quarters of the account at its worst point, which is why we do not ship it off. On daily gold every exit already followed a stay, so the guard changed nothing there. Setting InpLRDwellMin to 0 is possible, but read the off line above first.
Why the Laguerre RSI
A grid needs one clean starting gun, then it needs the engine to work. The Laguerre RSI is a good gun for three reasons. It is built from closes only, so it means the same on every broker. It is bounded between 0 and 1, so the 0.20 and 0.80 levels work on any symbol without retuning. And it is short and smooth at once, so the exit from a zone is one clear event on a closed bar. The honest costs: it can stay pinned at an extreme through a long one-way trend, it arrives after the turn has started, and a low gamma makes it twitchy. The guards, the trend filter and the signal gap are there for exactly that.
One cycle, step by step
- Measure. Each new bar runs the closes through the four Laguerre stages with gamma 0.5 and turns their rises and falls into an RSI from 0 to 1.
- Exit. In the default mode the RSI must climb back above 0.20 for a BUY or fall back below 0.80 for a SELL. In midline mode it must cross 0.5 instead.
- Dwell Guard. Just before the exit the RSI must have stayed in the zone for at least 2 closed bars in a row (0 switches it off).
- Range Guard. The last 20 bars must span at least 5 ATR, so tight boxes are skipped.
- Trend filter. By default the close must be on the matching side of the EMA 200. It can also fade that side, or be switched off.
- Timing. Accepted signals are kept apart by a gap of bars, and a signal may wait a few bars if the level cannot be placed at once.
- Ladder. Levels follow ATR or fixed points, with a floor, a ceiling and an optional freeze. BUY and SELL baskets can run together or alone.
- Banking. Groups of oldest and newest orders close when their joint result, after swap and commission, clears the target. If the oldest order is too heavy, a slice of it is closed instead.
- Safety checks. A closure that would reopen a level at once is blocked, each leg is confirmed in deal history, failed legs are retried, and a plan is dropped if the book changed before sending.
- Hedge cycle, optional. Off by default and not exercised in our tests. When on, it holds a balanced pair on a chosen symbol and retires it in equal slices, paid by a small surcharge on closures the grid already makes.
The panel
The panel sits on the left, so the right side and the price scale stay clear. It lists symbol, magic number, a status pill, grid mode, lot step, spacing, banked result, the book, each side's closing plan and the order table. The LAGUERRE RSI row shows gamma, the RSI of the last closed bar, its zone (LOW, MID or HIGH), whether it is rising (UP) or falling (DN), and the bars since the last zone exit. The DWELL GUARD row shows the side the RSI favours, how many bars it has stayed in the zone with OPEN, HOLD or off, the Range Guard width in ATR with its state, and the EMA side. On the live chart every zone exit of the last 150 bars is marked: a small arrow when accepted, a grey dot when a guard refused it. Buttons switch Armed / Scan only, Pause / Resume, chart marks and slicing. The Hedge Vault card docks under the main panel; with the hedge off it stays hidden. Nothing is drawn in a non-visual backtest.
Limits you control
No setting closes the book for you; limits only stop new levels.
Each order passes a free margin check with a safety buffer before it is sent.
Caps on levels per grid, orders per side and lot per order keep the ladder finite. MinMarginLevelPercent and MaxAccountRiskPercent start at off; set them for your own account.
An optional margin-level timeframe safety moves the signal and spacing to a higher timeframe as margin falls. It is off by default and was not exercised in our tests.
Copies are kept apart by symbol and magic number.
Scan only shows every decision without sending a single order.
Who this is for
Traders who want a grid that starts when an oversold or overbought stay really ends, not on the first touch; who are happy with many small closures; who prefer a calm EA that trades with the trend behind it; and who will size lots to their balance.
Who this is NOT for
- Anyone who needs a stop loss on every order. This grid has none by design.
- Anyone expecting a fixed monthly return or a fast doubling. The tested result above is modest, and it is the honest one.
- Accounts below the minimum-deposit line above. The deepest basket needs room for its margin and its drawdown at the same time.
- Small accounts running large lots unattended. A long one-way trend can hold the book open for weeks.
- Traders who want to trade every candle. The filters keep it quiet on purpose, and on daily gold it may sit idle for months.
- Traders who want the largest possible profit at any drawdown. The default favours a small drawdown; switching the Dwell Guard off trades more and, in our test, swung thirty times harder.
- Traders who want a ready-made gold system. Gold was tested only on D1 with six trades, which proves nothing either way.
- Traders who will not test first. If you skip the Strategy Tester on your own broker, this is not the right tool for you.
Common questions
Does it repaint? Accepted signals, chart marks and both panel rows use finished bars only.
Is it the classic Laguerre RSI? Yes, Ehlers' four-stage Laguerre filter with one gamma; the RSI is the sum of rises between the stages divided by the sum of rises and falls.
What does gamma do? Higher gamma (towards 0.8) gives a smoother, slower RSI and fewer exits; lower gamma (towards 0.2) a faster, noisier one. Only 0.5 was backtested here.
Zone or midline mode? Zone mode waits for an extreme to end and trades less. Midline mode reacts at 0.5 and trades more often; it was not backtested here.
Which markets were tested? EURUSD H1 and XAUUSD D1. Everything else is for you to test.
How deep did the grid go in the test? At most 9 orders open together on EURUSD, 0.45 lots in total, with the default guard. With the guard off it reached 18 orders and 3.59 lots.
How much should I start with? See the minimum-deposit line near the top: at least $2,000 for EURUSD H1 and $500 for XAUUSD D1 at the default first lot, more if you raise the lots.
What should I change first? InpLRDwellMin, then InpLRRangeMinATR, then InpLRGamma. One change at a time, and look at drawdown and basket depth next to net result.
Netting accounts? A separate margin cap exists for them, but netting behaviour is unverified.
All inputs
Grid levels
TradeMode - two grids, BUY and SELL, by default, or one direction only.
GridSpacePoints - level distance in fixed spacing mode (25).
GridSpaceMultiplier - above 1.0 widens deeper levels (1.0 = even).
MaxGridLevels - most levels in one grid (1000).
UpDirectionIsBuy - which side an up move arms.
EAMagicNumber - number on grid orders (9771420).
GridOrderComment - text on grid orders (LGTW).
OneOrderPerBar - at most one new level per bar.
Lots
InitialLotSize - volume of the first level (0.01).
LotSizingMode - additive by default, multiply as the alternative.
LotMultiplier - factor per level in multiply mode (1.25).
LotAddStep - step per level in additive mode (0.01; 0 uses the starting lot).
MaxOrderVolume - largest single order (1.0).
UseAutoLot - links the starting lot to balance (off).
AutoLotBaseBalance - balance that matches the starting lot (1000).
AutoLotAllowDecrease - lets auto lot go below the starting lot (off).
ATR spacing
GridSpacingMode - ATR by default, fixed points as the alternative.
ATRTimeframe - ATR timeframe (current chart).
ATRPeriod - ATR length (14).
ATRSpacingFactor - spacing as a multiple of ATR (1.0).
ATRBarShift - ATR bar; 1 is the last finished bar.
ATRMinSpacingPts - lowest spacing in points (50; 0 none).
ATRMaxSpacingPts - highest spacing in points (5000; 0 none).
ATRFreezeOnStart - keeps one spacing for the whole cycle (off).
Profit target
DesiredProfitPerClosure - base target in account currency (2.0).
ProfitMultiplier - final scale, 1.00 to 2.00.
ProfitTargetMode - scaled by default: bigger, deeper books aim higher.
ProfitVolumePower - how closing volume lifts the target (1.0; 0 off).
ProfitDepthBonus - extra target per additional open level (0.10).
ProfitMaxMultiple - scaled target ceiling in multiples of the base (50).
ProfitMaxReachFraction - keeps the target inside this share of one grid step (0.50).
Fragment scanner
UseMultiLegScan - checks multi-order groups before the plain pair (on).
MaxOldestLegs - most old orders in one closure (3).
MaxNewestLegs - most new orders in one closure (6).
ScanPriority - ranking of qualifying groups; largest group first by default.
NeverBankLessThanPair - a group must also beat the pair target (on).
RequireCloseVolumeExceedsTarget - newest volume must be above oldest volume (on).
MinCloseVolumeRatio - required ratio of those volumes (1.5).
Target slicing
EnableTargetSlicing - allows part-closing the oldest order (on).
FragProfitWeightPower - profit weight per closing lot (1.5).
FragMinSlicePercent - smallest slice, percent of the target order (20).
FragAllowMultiCloser - several new orders may fund one slice (on).
FragPreferFullClosure - a full closure wins when both are possible (on).
Reopen guard
ReopenGuard - blocks closures that would reopen a level at once (step based).
ReopenGuardCushion - safe distance as a share of one step (0.90).
Account protection
MinMarginLevelPercent - no new levels below this margin level (0 off).
MaxAccountRiskPercent - no new levels beyond this floating loss, percent of balance (0 off).
NetMaxMarginPercent - netting only: cap on net position margin, percent of equity (5.0).
MaxTotalOrders - absolute order cap per side (1000).
Execution and checks
RunMode - Armed or Scan only.
CloseSequence - order in which legs are sent; oldest first by default.
MaxSlippagePoints - allowed slippage (30).
MaxSpreadPoints - no trading above this spread (7500).
MinSecondsBetweenClosures - pause between closures per side (5).
CloseAttemptsPerLeg - attempts before the retry queue (3).
VerifyTimeoutSeconds - how long a stuck leg is followed (90).
DeferWhenMarketClosed - waits for the session instead of halting (on).
MarketClosedRetrySeconds - retry spacing while orders are refused (30).
AutoResumeAfterSeconds - a halt clears itself after this many seconds (300; 0 waits for you).
NoPartialRetryMinutes - partial closes tried again this many minutes after a broker refusal (15; 0 never).
AbortIfBookChanged - drops a plan if a leg changed (on).
UseFullCommission - counts commission on both sides (on).
CommissionPerLot - fallback figure (0 reads history).
CloseOrderComment - text on closing deals.
Hedge cycle
EnableHedgeCycle - main switch (off).
HedgeSymbols - comma list; repeat a symbol for more turns (XAGUSD).
HedgeSymbolRotation - how the next symbol is picked (per cycle).
HedgeMaxSymbolsInTester - rotation cap in the tester only (2; 0 none).
HedgeCycleLots - lots on each side of the pair (0.01).
HedgeSliceLots - lots retired per side each slice (0.01).
HedgeFragmentBonus - bonus over the slice cost (100).
HedgeBonusIsPercent - bonus is a percent; false means money (on).
HedgeMaxSurcharge - money cap per closure (0 none).
HedgeMaxSurchargePercent - largest rise of any closure target, percent (50).
HedgeMagicNumber - number on hedge legs, must differ from the grid (9771421).
HedgeReopenOnFinish - opens a new cycle when one ends (on).
HedgeStartRequiresTrade - first cycle waits for a grid order (on).
HedgeIntegritySeconds - leg balance check interval (5).
HedgeAutoRepair - repairs a lone leg automatically (on).
HedgeNakedAction - what to do with a lone leg; re-hedge by default.
HedgeMaxSpreadPoints - hedge spread limit (0 off).
HedgeSlippagePoints - hedge slippage allowance (30).
HedgeAttemptsPerLeg - attempts per hedge leg (3).
HedgeVerifyTimeout - follow time for a stuck hedge leg (90).
HedgeCommissionPerLot - fallback hedge commission (0 reads history).
HedgeOrderComment - text on hedge deals.
Weekly cash day
WeeklyCashDay - pauses new cycles and slices around withdrawals (off).
CashDayOfWeek - 0 Sunday, 1 Monday and so on (1).
CashCutoffHour - server hour after which no new slice fires (21).
Panel and chart
ShowPanel - panel on or off.
PanelX and PanelY - distance from the chart edge (12, 15).
PanelFontSize - base text size (9).
ShowArabic - second language line (on).
ShowChartMarks - plans and levels drawn on the chart (on).
MaxTableRows - order rows per grid (13).
PanelCorner - corner the panel is anchored to.
Entry trigger
EntryTriggerMode - the Laguerre RSI strategy by default.
SignalBarShift - 1 is the last finished bar.
SignalBarsDelay - bars between accepted signals (30; 0 every).
SignalValidBars - bars a signal stays usable (3).
SignalAllowBuy and SignalAllowSell - switch each side.
SignalReverse - turns the direction around (off).
Laguerre RSI
InpLRGamma - Laguerre gamma, 0.1 to 0.9; higher is smoother and slower (0.5).
InpLRLow - low level; a BUY needs the RSI to climb back above it (0.20).
InpLRHigh - high level; a SELL needs the RSI to fall back below it (0.80).
InpLRMode - 0 exit from the low or high zone, 1 cross of the 0.5 midline (0).
InpLRDwellMin - Dwell Guard: closed bars in a row the RSI must stay in the zone before the exit (2; 0 off; see the test above).
InpLRRangeMinATR - Range Guard: least window width in ATR (5; 0 off).
InpLRRangeBars - Range Guard: window length in bars (20).
InpLRATRPeriod - ATR length for the Range Guard (14).
InpLRTrendFilter - 1 with the EMA side, 2 against it, 0 off (1).
InpLRTrendMAPeriod - trend EMA length (200).
InpShowSignalArrows - arrow where a cycle armed (on).
InpShowLROnChart - past zone exits on the live chart, arrow or grey dot (on).
Debug
DebugMode - extra journal detail (off).
Margin timeframe safety
UseMarginTFSafety - main switch (off).
Level1MarginPct and Level1TF - at 6000 percent the work moves to M15.
Level2MarginPct and Level2TF - at 5000 percent the work moves to H1.
MarginTFHysteresisPct - recovery needed before stepping back (500).
Risk, plainly
Grid trading is risky. It adds to losing positions, uses no stop loss, and a long trend can keep the book open for a long time or, with lots too big for the balance, end in a stop-out and a heavy loss. The Laguerre RSI is built from past closes and cannot see the next bar. No profit is promised. Pick lots that survive a bad run, test on your own broker, and only risk money you can afford to lose. No DLLs or extra files are needed.
If you have run it, an honest review of how it behaved for you, good or bad, helps the next trader decide.
