October 7th, 2025
This is the fist version with updates to be released within the month. Many thanks for your support and I hope that this EA opens doors and becomes highly profitable for you. Cheers!!
What the Hummingbird Probabilities Mapping EA is....
A nature inspired EA that utilizes combinations of the following trend patterns and projects a probability mapping with greater than 70% accuracy based on real-time analysis.
EMA Trend
MACD
RSI
VWAP Spread
Burst
Squeeze
Volatility (ATRp)
-> Nature-inspired, probabilistic fusion of multi-indicator features into a single "state" output
-> States: hover (neutral), dart (long bias), backstep (short bias), perch (risk-off)
The Hummingbird EA blends several classic technical features into a single probabilistic “intent” read on the market—long, short, neutral, or risk-off—then trades only when a new bar closes. It’s designed to be:
Non-repainting for trades (decisions occur on closed bars).
Robust (attaches even when markets are closed or history is thin, and keeps showing a status HUD).
Readable (probabilities are displayed as whole-number percentages).
The high-level loop (every tick or timer “tick”)
Collect recent bars with CopyRates(...) into rates[] . This avoids direct use of Close[]/Time[] and works reliably for EAs.
Detect the latest closed bar ( rates[1] ). The EA always evaluates the market from this bar so the HUD updates constantly, even if a new bar hasn’t formed yet.
Build features from standard indicators (EMA/RSI/ATR/Bollinger/MACD), microstructure signals (burst, squeeze), and a session VWAP with daily resets.
Fuse features → scores → probabilities via a temperature-scaled softmax: you get pLong , pNeut , pShort (0–100% on the HUD).
State machine sets one of four “hummingbird” states:
dart → long bias
backstep → short bias
hover → neutral
perch → risk-off (volatility extreme)
Trade only on a new closed bar (to avoid mid-bar churn). If there’s no new bar, you still see live probabilities and status on the HUD.
Inputs you can tune
Core lengths: EMA short/long, RSI length, ATR length, Bollinger length/dev, ADX length, “burst” window.
Feature weights: W_EMA , W_MACD , W_RSI , W_VWAP , W_BURST , W_SQZ , W_VOL . These scale each component’s influence.
Decision shaping: SoftmaxTemp (how “sharp” probabilities are), ProbLongThresh , ProbShortThresh , CooldownBars .
Volatility regime: ATRZLen (window for ATR% z-score) and ATRZThresh (threshold for triggering risk-off “perch”).
Risk: Lots , and ATR-based ATRmultSL / ATRmultTP .
Indicators & features (how they’re built)
EMA short/long trend: Trend score uses the normalized difference (EMA_short – EMA_long) / avg(EMA_short, EMA_long) .
MACD momentum: Uses MACD_main – MACD_signal (the classic histogram) as a momentum proxy.
RSI balance: ((RSI – 50) / 50) to center RSI around 0.
Bollinger width & position: Width (upper–lower) normalized by the middle band; position within the band can be used for context; width contributes to the squeeze calculation.
ATR & ATR%: ATR / close gives scale-free volatility. The EA also computes an ATR% z-score over ATRZLen prior bars to identify volatility extremes.
“Perch” (risk-off): Triggered when the ATR% z-score exceeds ATRZThresh . In this state the EA closes any open position and stands down.
Session VWAP: Rebuilt each day using typical price (H+L+C)/3 times volume, divided by cumulative volume; vwapSpread = (close – VWAP)/close gauges stretched conditions relative to fair value.
Burst (micro-impulse): Sum of 1-bar returns over the last InpBurstLen bars; a quick way to capture short-horizon pressure.
Squeeze: ATR% / BollingerWidth —high when volatility is large relative to the price’s envelope width.
From features → probabilities
Each feature is multiplied by its weight and combined into three raw scores:
rawLong accentuates trend + momentum + favorable spread + burst + (inverse) squeeze and penalizes volatility extremes.
rawShort mirrors rawLong in sign (favoring the bearish perspective).
rawHover is a small constant prior (keeps neutral viable when evidence is thin).
These raw scores go through a softmax (with SoftmaxTemp ) to produce:
Decision logic (state machine)
If perch (volatility extreme): immediately risk-off (close any position, take no new trades).
Otherwise, if not in cooldown:
If pLong ≥ ProbLongThresh and pLong > pShort → dart (long).
Else if pShort ≥ ProbShortThresh and pShort > pLong → backstep (short).
Else → hover (neutral).
Cooldown: After a dart or backstep, the EA waits CooldownBars bars before allowing a new decisive trade, to reduce whipsaw.
Trade execution & risk
When trades fire: Only once per new closed bar (the bar time advances). This keeps execution deterministic and non-repainting.
Netting behavior: If an opposite position exists when a new signal hits, the EA closes it and flips.
Stops/targets: Both are ATR-based, scaled by ATRmultSL and ATRmultTP . This adapts risk to volatility.
“Perch” close: If risk-off triggers, any open position is closed immediately.
HUD (what you see on the chart)
Status line: Shows whether indicators/history are ready (e.g., “Waiting for indicators”, “Ready”, “No history”).
State: One of hover/dart/backstep/perch. Also shows (bar: new|hold) to indicate whether the current evaluation coincides with a newly closed bar ( new ) or the last closed one ( hold ).
Probabilities: pLong / pNeut / pShort as whole-number percentages.
Context: atrpZ (volatility regime) and vwapSpread (stretch vs VWAP).
The HUD updates continuously (using the latest closed bar), even if markets are closed or ticks are slow; a 1-second timer can also drive updates.
Resilience & attachment behavior
Will attach even when markets are closed: If indicators can’t be created immediately or history is thin, the EA doesn’t abort. It displays status until things are ready, then automatically begins evaluating and (on new bars) trading.
History guard: If there aren’t enough bars to compute the ATR z-score window plus features, it shows a friendly status and waits.
Self-recovery: As soon as data/indicators become available, the HUD flips to “Ready” and the algorithm runs.
Practical notes
Use the Strategy Tester (Visual) to verify behavior outside market hours.
Symbols with exotic sessions: The daily VWAP reset uses calendar days. If your instrument trades on unusual sessions, you may want to customize the reset logic.
Volume type: tick_volume is used (typical for MT5). On some brokers/symbols this is a proxy for real volume.
Tuning: Markets differ. You’ll likely want to adjust the weights, probability thresholds, cooldown, and ATR z-score settings for your symbol/timeframe.
In short, the EA takes a “hummingbird” approach—fast, decisive, and conservative under stress—by converting a basket of familiar signals into clear, probabilistic calls, acting only at bar closes, and stepping aside in turbulent regimes.
If for any reason you do not like the purchased program, you can request a refund within 30 days from the date of purchase. You can also make an exchange for any other product at an equal cost or by paying the difference.
Simply send a request for refund or exchange with your order number by email: support@fx-market.pro.
Refund requests received more than 30 days after purchase will be rejected.