ForexBestRobots.comCompare EAs →
EN

Momentum indicators · Strategy

RSI Hidden Divergence Forex Strategy: Confirmed Pivots and First Break

A reproducible Forex continuation model with RSI 14, EMA 50, confirmed price pivots, a frozen first-break window and explicit Bid/Ask risk rules.

An original RSI hidden-divergence continuation model: confirmed price pivots, a fixed clock and quote-side risk. Fictional examples only.
An original RSI hidden-divergence continuation model: confirmed price pivots, a fixed clock and quote-side risk. Fictional examples only.

A higher price low with a lower RSI reading can describe a pullback within an uptrend. It does not authorize a trade at the low. This original model waits for confirmed price pivots, preserves the trend test and permits one later closing break followed by one quote assessment.

1. Define continuation before looking for a pattern

For BUY, hidden divergence here means a higher Bid low with a lower RSI reading at the same two price-pivot bars. SELL requires a lower Bid high with a higher sampled RSI. These are continuation geometries; our separate classical-divergence strategy studies the opposite price/RSI relationship for reversal.

RSI and EMA both transform price. Their agreement is not independent evidence or a proven advantage. The thresholds below define one original research specification. Every price history and quote example is fictional; an eligible plan does not mean an order was placed or a profit measured.

2. Fix the feed, calculations and available history

Use EURUSD H1 Bid OHLC, 1 pip=0.0001, RSI(14,Close) with Wilder smoothing and EMA(50,Close). Seed average gains and loss magnitudes from the first fourteen close changes; then use A(k)=(13×A(k−1)+x(k))/14 and RSI=100×G/(G+L). If both averages are zero, this reference displays fifty but rejects that sample for pattern selection.

Seed EMA with the first fifty closes and continue with EMA(k)=(2×Close(k)+49×EMA(k−1))/51. With zero-based indices it first exists at k49; a five-bar slope first exists at k54. Missing bars, stale data or unavailable required values reject the affected decision. Seeds and broker feeds can differ; do not assume exact platform parity.

3. Recognize strict pivots only after both right-hand bars

A low at P must be strictly below the lows of P−2, P−1, P+1, P+2; a high must be strictly above all four highs. Ties fail. P becomes observable only after the close of C=P+2 and arrival of the required data. A plotted mark at P is not a decision available at P.

Keep the chronological record of both pivot types. P2 is the newest confirmed pivot of its type and P1 is the immediately preceding one of that type. Never skip an intervening pivot to manufacture divergence. Read RSI on P1 and P2 themselves; these samples need not be separate oscillator pivots.

Actual fictional bars k70–k74. The strict low at k72 becomes knowable after k74 closes and its data arrive. RSI is sampled at k72, not shifted onto its later confirmation bar.
Actual fictional bars k70–k74. The strict low at k72 becomes knowable after k74 closes and its data arrive. RSI is sampled at k72, not shifted onto its later confirmation bar. On small screens, scroll the chart horizontally to keep labels readable.

4. Form an adjacent hidden-divergence pair

Require 5≤P2−P1≤20 bars inclusive. BUY needs Low(P2)>Low(P1) and RSI(P2)<RSI(P1). SELL needs High(P2)<High(P1) and RSI(P2)>RSI(P1). Price or RSI equality rejects the pair; there is no separate oversold, overbought or midpoint crossing requirement.

In the constructed BUY case, P1 is k60 with low 1.10500 and RSI 64.582976; P2 is k72 with low 1.10560 and RSI 48.048257. These rounded readings illustrate the relationship; all rule comparisons use unrounded values. The pair is known only at k74.

The constructed BUY history and its calculated EMA 50 and RSI 14. P1/P2 mark price-pivot bars; C marks later recognition. Price lows rise while the same-bar RSI samples fall.
The constructed BUY history and its calculated EMA 50 and RSI 14. P1/P2 mark price-pivot bars; C marks later recognition. Price lows rise while the same-bar RSI samples fall. On small screens, scroll the chart horizontally to keep labels readable.

5. Pass the trend gate at three fixed observations

At each of P1−1, P2−1, C, BUY requires Close(t)>EMA50(t) AND EMA50(t)>EMA50(t−5). SELL requires both strict inequalities reversed. All three observations must pass using their own historical values. These checkpoints are part of our model, not a universal definition of trend.

A failed pair stays rejected even if EMA later improves. Neither a better RSI reading nor a newer favorable quote repairs its original gates. Evaluate a later newly confirmed adjacent pair as a separate episode; retain the failed one in the research log.

6. Freeze the break level and the three-bar window

At confirmation C, BUY freezes B=max High(P2…C)+1 pip; SELL freezes B=min Low(P2…C)−1 pip, including both endpoints. Only C+1, C+2, C+3 may trigger. C itself cannot trigger this rule. Freeze the level and deadline; do not move them with a later candle.

For the BUY example, C is k74, whose close boundary is 2026-10-22 03:00 UTC. The largest high from P2 through C is 1.10660, so B=1.10670. The final permitted trigger is k77. An absent break expires at that close; a later break cannot reopen this pair.

The level is drawn from C onward because only then is it frozen. k75 supplies the first closing break. The quote is a separate assumption after its boundary; no future OHLC or executed order is invented.
The level is drawn from C onward because only then is it frozen. k75 supplies the first closing break. The quote is a separate assumption after its boundary; no future OHLC or executed order is invented. On small screens, scroll the chart horizontally to keep labels readable.

7. Cancel conservatively before testing the break

On a waiting bar, BUY cancels if Low(t)≤Low(P2); SELL cancels if High(t)≥High(P2). A failed current closed-bar trend gate also cancels. Process these conditions before any price trigger on the same bar: OHLC does not reveal which intrabar event happened first.

A newly confirmed same-side price pivot supersedes a pending pair before that bar can trigger it. Evaluate only the new adjacent pair; if valid, its own trigger window starts on the following bar. Otherwise remain idle. An opposite-side pivot alone does not reset the pending pair. Missing required data cancels rather than extending the clock.

Independent histories show a structural touch cancelling the apparent break and a three-bar window expiring before a later break. Cancellation on a shared OHLC bar has priority; later movement does not repair either episode.
Independent histories show a structural touch cancelling the apparent break and a three-bar window expiring before a later break. Cancellation on a shared OHLC bar has priority; later movement does not repair either episode. On small screens, scroll the chart horizontally to keep labels readable.

8. Consume one fresh closing break

BUY triggers only on Close(t−1)≤B AND Close(t)>B; SELL uses Close(t−1)≥B AND Close(t)<B. Equality waits; a wick or a continued outside state is not a fresh closed crossing. The first valid event T consumes the episode regardless of quote acceptance or order outcome.

Assess only the first available quote in the immediately following H1 bar, with ready closed-bar data, no later than 60 seconds after the scheduled T-close boundary. If that first quote fails, do not wait for a nicer one. A late or missing first quote ends the episode. Close-boundary time is not proof that data or an executable price already existed.

9. Check the first quote on the correct price side

Require positive prices, Ask≥Bid and spread ≤2.0 pips. At the quote, BUY needs Bid_entry>B; SELL needs Ask_entry<B. Limit adverse displacement to Ask_entry−CloseBid(T)≤2 pips for BUY and CloseBid(T)−Bid_entry≤2 pips for SELL. A favorable displacement still needs every other gate.

After the stop calculation below, require 6≤R≤25 pips. Check the instrument contract, tradable volume, margin, market permission and broker stop-distance constraints before one market request. Rejection consumes the episode. A requote, error or uncertain response permits reconciliation, never an automatic second entry request.

First assumed BUY and SELL quotes pass the numerical gates. In the separate rejection case the first Bid is below the BUY break; a later qualifying quote is ignored. No quote is an observed broker execution.
First assumed BUY and SELL quotes pass the numerical gates. In the separate rejection case the first Bid is below the BUY break; a later qualifying quote is ignored. No quote is an observed broker execution. On small screens, scroll the chart horizontally to keep labels readable.

10. Freeze exits using actual entry sides

BUY enters at Ask, sets SL_Bid=Low(P2)−1 pip, R=(Ask_entry−SL_Bid)/pip and TP_Bid=Ask_entry+2R×pip. SELL enters at Bid, freezes entry spread s_entry=Ask_entry−Bid_entry, then sets SL_Ask=High(P2)+1 pip+s_entry, R=(SL_Ask−Bid_entry)/pip and TP_Ask=Bid_entry−2R×pip.

Freeze these absolute prices at the assessed quote before the request; later fill slippage does not move them. No trailing, averaging or partial exit. Exit at the first protection execution; otherwise request a full market exit after twelve H1 bars including the entry bar have completed. Entry bar E therefore has time-exit boundary Close(E+11). Execution waits for a tradable quote. The SELL spread translation is fixed at entry; later spread changes can trigger its Ask stop at another Bid level.

11. Size for costs and round volume down

Use planned risk budget 0.5% of equity. For the examples only, equity is $10,000, budget $50, pip value $10 per pip per lot, round-turn commission $7 per lot and volume step 0.01 lot. Allow adverse entry and exit slippage of 0.4+0.6=1 pip in total; financing is assumed zero here.

Estimated loss per lot is (R+1)×10+7; potential reward after these costs is (2R−1)×10−7. Round floor((50/loss_per_lot)/0.01)×0.01 down, then apply broker minimum/maximum volume and margin checks. Reject if minimum volume exceeds budget. Quoted sides already include spread; do not subtract it twice. Planned risk is not a guaranteed loss cap.

The independent BUY and SELL plans use actual entry/protection sides, a one-pip total adverse allowance and declared commission. Volume is rounded down; the next step would exceed the fifty-dollar budget.
The independent BUY and SELL plans use actual entry/protection sides, a one-pip total adverse allowance and declared commission. Volume is rounded down; the next step would exceed the fifty-dollar budget. On small screens, scroll the chart horizontally to keep labels readable.

12. Reproduce the BUY clock and quote plan

The original history starts with bar zero opening at 2026-10-19 00:00 UTC; all later bars are contiguous H1 bars. T is k75, Bid close 1.10690, with close boundary 2026-10-22 04:00 UTC. The assumed first quote and data arrival are at 04:00:10 UTC: Bid 1.10680, Ask 1.10696. It is not an entry back at P2 or exactly at the nominal boundary.

The spread is 1.6 pips, adverse displacement 0.6 pip, stop 1.10550, risk R=14.6 pips and target 1.10988. Loss and potential reward per lot are $163 / $275. Volume 0.30 lot plans $48.90 loss; the next step would plan $50.53. If still open, the time-exit boundary is 2026-10-22 16:00 UTC. No subsequent market path or fill is asserted.

13. Mirror SELL and retain the Ask protection

The independent SELL history reflects all BUY Bid prices around 1.10500, exchanging highs and lows. P1/P2 highs are 1.10500 / 1.10440; RSI readings are 35.417024 / 51.951743. The frozen break is 1.10330, and T closes at 1.10310. The same confirmation, window and time rules apply.

Assume first Bid/Ask 1.10304 / 1.10320. Entry spread is 1.6 pips; the fixed Ask stop is 1.10466, so R=16.2 pips and Ask target 1.09980. Estimated loss/reward per lot are $179 / $307. Volume 0.27 lot plans $48.33; the next step plans $50.12. A nominal twice-risk target is not twice-risk reward after costs.

All Bid OHLC prices are reflected, with highs and lows exchanged. The displayed EMA and RSI are recalculated. Ask entry-spread translation belongs to the separate SELL stop plan; it is not a reconstructed Ask price history.
All Bid OHLC prices are reflected, with highs and lows exchanged. The displayed EMA and RSI are recalculated. Ask entry-spread translation belongs to the separate SELL stop plan; it is not a reconstructed Ask price history. On small screens, scroll the chart horizontally to keep labels readable.

14. Keep failed histories and consumed opportunities

The CSV includes a price-equality case, an RSI case that does not decline, and a structure-touch case whose trigger bar also closes above B. They fail their stated gates; a pleasing later candle cannot repair them. Another history expires at k77 without a break; the close above B at k78 remains too late.

In the quote-rejection history, the first assumed Bid/Ask at 04:00:10 UTC is 1.10660 / 1.10676. Its Bid is below the BUY break, so reject even though spread is acceptable. A later quote at 04:00:30 UTC, 1.10680 / 1.10696, is ignored. The rule chooses the first quote, not the first quote that eventually passes.

The equality case fails the strict higher-low condition. The other case has a higher price low but its sampled RSI does not fall. Both are evaluated only once the later price pivot is confirmed.
The equality case fails the strict higher-low condition. The other case has a higher price low but its sampled RSI does not fall. Both are evaluated only once the later price pivot is confirmed. On small screens, scroll the chart horizontally to keep labels readable.

15. Download the complete causal calculation

The first CSV contains seven separate fictional OHLC histories, their complete warm-up, RSI/EMA values and pivot-recognition flags only on the confirmation rows. The second records state transitions and assumed quote plans. The table below excerpts the valid BUY history; blank earlier indicator cells mean unavailable history, not zero.

At C, when its bar is MT4 shift one, P2 is shift three: iRSI(NULL,PERIOD_H1,14,PRICE_CLOSE,3). The current closed EMA uses iMA(NULL,PERIOD_H1,50,0,MODE_EMA,PRICE_CLOSE,1); its five-bar predecessor is shift six. Freeze pivot timestamps and values: P2’s shift changes on later bars. Shift zero is forming, and MT4 bar timestamps name openings, not our labeled close boundaries.

Download seven fictional H1 OHLC histories with RSI 14, EMA 50 and causal pivot recognition (CSV)

Download decision transitions and assumed quote plans (CSV)

IndexUTC close boundaryBid lowBid highBid closeRSI 14EMA 50
602026-10-21 13:00:00 UTC1.105001.105501.1052064.5829761.103516
622026-10-21 15:00:00 UTC1.105401.106101.1060075.2981221.103689
712026-10-22 00:00:00 UTC1.106101.106801.1062052.4191761.104773
722026-10-22 01:00:00 UTC1.105601.106301.1058048.0482571.104813
732026-10-22 02:00:00 UTC1.105701.106201.1061051.3263581.104864
742026-10-22 03:00:00 UTC1.106001.106601.1065055.3700001.104928
752026-10-22 04:00:00 UTC1.106401.107001.1069059.0350191.105005

16. Validate the state machine before performance claims

Use at most one position per instrument and never arm new episodes while a position or uncertain request is active. Continue recording pivots; when flat again, only a later newly confirmed pair can arm. If conflicting candidates qualify simultaneously, skip both. A cancelled or expired episode cannot rearm on that same bar; a newly superseding pivot is the explicit exception described above.

Test causal prefixes, ties, missing data, window endpoints, first-quote rejection and both protection sides. Bid OHLC alone cannot reconstruct Ask execution or order two touched exits; mark such cases ambiguous and obtain ticks. Research needs broker history, realistic costs, rejected signals and out-of-sample tests. These constructed histories establish reproducibility of the stated rules, not a win rate or a reason to trade real money.

Frequently asked questions

How does hidden divergence differ from classical divergence?

This model pairs a higher price low with lower sampled RSI for BUY, and a lower price high with higher RSI for SELL. Classical reversal divergence uses the opposite relationship. Neither relationship proves that the next move will continue or reverse.

Can I enter when the second low first appears?

No. Two complete bars to its right must first confirm the price pivot. Trend and pair gates then permit a later closing-break window, followed by one quote assessment. A retrospective pivot mark is not an early signal.

Must RSI itself form two independent pivots?

No. This specification samples RSI on the two confirmed price-pivot bars. Searching nearby oscillator extrema changes the model and the time at which its evidence becomes available.

Can a better quote revive a rejected episode?

No. The first quote is assessed once. A later acceptable spread, restored trend or repeated price break cannot revive that pair. A later newly confirmed adjacent pair must qualify independently.

Does a target at twice R give a net two-to-one return?

No. The target describes gross price geometry. Commission, slippage, financing and actual fills alter the net reward and realized loss; neither target execution nor the planned risk cap is guaranteed.

Are these rules or settings backtested?

No. The OHLC histories and quotes are original teaching constructions. They verify arithmetic and chronology only. RSI periods, EMA length, pivot spacing, buffers and deadlines remain unvalidated research choices.

Sources and research notes

Primary sources support RSI and EMA definitions, positive/negative reversal geometry, platform indexing and order-price constraints. Our precise pairing convention, EMA checkpoints, break level, timers, thresholds, quote gates, exits and synthetic fixtures are original research rules; the sources do not validate their trading performance.

Educational strategy hypothesis. Seven constructed histories and assumed quotes; no executed orders, broker backtest, measured edge or guaranteed outcome.