Single Arrow
- Indicators
-
Ahmed Hamed Hamed Eadwan
Hello, I'm Ahmed — a trader and MQL5 developer based in the
United Arab Emirates, and the founder of R protocols.
I've been writing code since 1984 and trading the markets since 2006.
For many years, I developed trading tools for my own use, refining them
through real market experience. - Version: 1.0
- Activations: 5
SingleArrow — Standalone ZigZag + WPR Divergence Signal
One arrow per signal. Zero dependencies.
Pure price structure confirmed by Williams %R divergence.
Single one-time payment — lifetime license, all future updates included.
OVERVIEW
SingleArrow is a clean, lightweight MetaTrader 5 indicator that fuses ZigZag swing structure with Williams %R (WPR) momentum into a single, easy-to-read arrow: lime for buy-side pressure, red for sell-side pressure.
The complete ZigZag engine is compiled INSIDE the indicator — no external .ex5 files, no DLLs, nothing to install. Download, attach to any chart, and trade.
KEY FEATURES
- 100% STANDALONE — no DLLs, no external files, nothing to install
- Efficient O(n) ZigZag engine — recalculates on new bars only, VPS-friendly
- WPR DIVERGENCE FILTER — pivots confirmed by Williams %R momentum
- CONFIRM MODE — stable, backtestable signals after bar close (default)
- LIVE MODE — tick-by-tick arrows for aggressive scalpers
- SESSION PIVOT LOCK — historical signals never shift mid-session
- EA-READY BUFFERS — signals, pivots and WPR values via iCustom()
- ALL SYMBOLS & TIMEFRAMES — from M5 scalps to D1 swings
- RADAR-CLEAN CHART — one lime/red arrow per setup, zero clutter
TWO SIGNAL MODES
CONFIRM MODE (InpConfirmBars = 1, default)
Signals print after the bar closes and never move afterwards.
Recommended for backtesting, live discipline and Expert Advisors.
LIVE MODE (InpConfirmBars = 0)
Signals update tick-by-tick on the current bar for the earliest possible warning. The live arrow may update until the bar closes.
MAIN INPUTS
- InpDepth / InpDeviation / InpBackstep — ZigZag swing sensitivity
- InpWPRPeriod — Williams %R lookback (default 14)
- InpUseDivergence — Enable the divergence filter
- InpConfirmBars — 1+ = Confirm Mode, 0 = Live Mode
- InpLockPivots / InpLockAfterBars — Freeze historical pivots (session)
- InpShowDiag — On-chart diagnostics panel
Starter presets: Balanced (defaults + Divergence ON), Scalping (Depth 12), Swing (Depth 55, WPR 21). Always test presets on demo first.
RECOMMENDED USE (educational guidance, not financial advice)
- M15–H1 for intraday signals, H4–D1 for swing signals.
- Prefer arrows aligned with the higher-timeframe bias.
- Place stops beyond the signaled ZigZag pivot (structure-based).
- Risk 1–2% per trade maximum. Avoid high-impact news minutes.
- Demo-test at least 100 signals before going live.
FOR DEVELOPERS (iCustom buffers)
- Buffer 0 — Buy arrow price (0 = none)
- Buffer 1 — Sell arrow price (0 = none)
- Buffer 2 — Signal direction: +1 buy / -1 sell / 0 none
- Buffer 3 — Pivot map: +1 top / -1 bottom / 0 none
- Buffer 4 — Live WPR value
Copy-paste integration example (Confirm Mode, last closed bar):
// SingleArrow iCustom example — create handle once in OnInit int h = iCustom(_Symbol, _Period, "Market\\SingleArrow", 34, 13, 8, // Depth, Deviation, Backstep 14, 5000, 5, // WPR period, Lookback, PivotTol (reserved) false, // Use divergence filter 1, // Confirm bars (1 = no repaint) false, // Diagnostics panel 12, // Live margin (Live mode only) false, 3); // Pivot lock, Lock after N bars double sig[]; if(CopyBuffer(h, 2, 1, 1, sig) > 0) // Buffer 2 = signal direction { if(sig[0] > 0) { /* BUY signal */ } if(sig[0] < 0) { /* SELL signal */ } }
FROM THE SAME AUTHOR (separate products)
- SingleArrow MTF — multi-timeframe confluence in one window
- SingleArrow Scanner — full-market multi-pair signal dashboard
RISK NOTICE
Trading Forex/CFDs carries substantial risk and may not suit every investor. Indicators are analytical tools and do not guarantee profits. Always test on a demo account first. Past performance does not guarantee future results.
