Strategies
Faithful port of geraked NWERSIASF v1.4 (Nadaraya-Watson Envelope + RSI(5) + ATR-SL-Finder reversal, 1.1x martingale grid up to 20 levels, 50% trailing stop), 3-symbol basket on OKX USDT swaps, 2H, long-short
Outcome: Abandoned
NWERSIASFGridBasketOkx
Outcome Summary
This hypothesis set out to translate Geraked's NWERSIASF v1.4 expert advisor onto a 3-symbol OKX USDT-swap basket on 2H bars, keeping every default input. That included the no-stop 1.1x martingale grid of up to 20 levels. The developer produced partial strategy code with incremental NWE, RSI and ATR-SL-Finder indicators. After 2 iterations, the coding stage hit three timeouts and the run was abandoned as 'coding_stuck_3_timeouts'. No backtest, optimization or review stage was reached, so the strategy's edge was never measured.
Hypothesis
coding_stuck_3_timeouts
Implementation
Stratmill translation of Geraked's MIT-licensed NWERSIASF v1.4 on 2H OKX USDT swaps (BCH primary, ADA, ATOM). Per symbol: a causal Nadaraya-Watson envelope (bandwidth 8, 3x MAE, 500-bar window), MT5 RSI(5) and ATR SL Finder (SMA-14 TR x0.75). BUY when bar t-1's low pierced the lower band, bar t is bullish, close is in the lower half of the envelope and RSI[t-1] < 30. SELL mirrors this. BUY is checked first. Entry is at market. Size = 1.2% of balance / pd, where pd = |close - ASF stop|. A single leg is protected only by a 50%-of-pd trailing stop floored at breakeven: a venue stop-market that ratchets each bar. A resting limit adds 1.1x the largest leg at firstEntry -/+ n*pd, with the source's re-anchoring rule, up to 20 legs. Once a symbol has 2+ legs, one reduce-only basket take-profit sits where the basket PnL equals first_qty*pd + fees. There is no stop loss. Gates: margin level < 4000% blocks new entries while anything is open, one basket per symbol, and a 4-bar cooldown after a close.
Iteration History
sandbox_timeout: Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit on a ~20000-bar window (1666 days of BCHUSDT.OKX-2-HOUR-LAST-EXTERNAL). This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).
Outcome Summary
Line-for-line ports of complex EAs can time out at the coding stage. This one combined a 500-bar kernel envelope, per-symbol martingale grid baskets, resting limit/stop orders and a cross-symbol margin gate. Splitting such a port into a smaller core first, for example the signal and single-leg trail without the grid, may get it to a backtest.
The run was abandoned in the coding stage with reason 'coding_stuck_3_timeouts' after 2 iterations. It never reached verification, backtesting, analyst review or risk review.
A faithful port of Geraked's MIT-licensed NWERSIASF v1.4 MQL5 expert advisor. It trades 2H mean-reversion entries on a Nadaraya-Watson envelope pierce plus an RSI(5) extreme plus a reversal candle, with a 1.1x martingale grid of up to 20 legs and no stop loss, and a 50% trailing stop on single legs. The basket is BCHUSDT, ADAUSDT and ATOMUSDT OKX USDT swaps.
No performance data exists. The backtest report is empty and no optimization was run, so there are no return, Sharpe or trade-count figures.
Analysis
NWERSIASF
Backtest and paper results are hypothetical. Trading involves risk of loss.