ForexBestRobots.comCompare EAs →
EN

Scalping indicator combination strategies · Forex strategy

Parabolic SAR and RSI M5 Forex Scalping Strategy: First Confirmed Flip and Fixed Exits

A reproducible SAR/RSI M5 scalping model: fresh reset, first flip, one confirmation close, fixed exits, first-quote costs and uncertain-response controls.

Fresh reset, confirmed SAR/RSI flip and fixed exits. Fictional M5 reference and supplied reports; no live orders.
Fresh reset, confirmed SAR/RSI flip and fixed exits. Fictional M5 reference and supplied reports; no live orders.

A SAR flip becomes a candidate only after a fresh opposite-state reset. RSI must already support the new direction at that close, and only the immediately following M5 bar may confirm it. This educational model then inspects one quote, fixes the exits and permits one entry request. Invented prices and supplied execution reports make the mechanics reproducible; they do not establish profitability.

1. Define one bounded M5 reversal hypothesis

This model tests a fresh SAR state change with RSI momentum already present, followed by one price confirmation. It complements the SAR/RSI guide and the older SAR/ADX framework through a distinct M5 reset, a finite entry process and fixed structural exits. Indicator agreement is not treated as independent probability evidence.

The rules below form an educational research specification, not a validated live system or an installable EA. Settings are hypotheses rather than proven optimal values. All examples are invented, including quotes and execution reports; none is a historical Strategy Tester result. Test the complete specification on reliable unseen data before drawing any performance conclusion.

2. Fix the contract, UTC window and account guard

Use completed EURUSD M5 Bid OHLC under the illustrative contract pip=0.0001; point=tick=0.00001; contract=EUR100,000/lot; pip_value=$10/lot for a USD account. Signal S, confirmation C and the request must fall in 09:00<=UTC<12:00. Require verified account-wide flatness: no position, pending order, other exposure or unresolved entry/close request. The broker must support the stated contract and initial attached protection.

Recheck context at S, C and the first quote. A known predeclared UTC event list blocks entry during [event−15 min,event+15 min]; this interval is an assumed rule, not a universally safe distance. Missing calendar, contract or price data blocks entry. After a data gap, hold release, verified exit or reconciled rejection, clear pending entry and require fresh reset bars whose openings occur at or after that restoration. Track and consume raw flips through holds. The fixtures explicitly assume a known empty news list.

Three fresh reset bars lead to S, one next confirmation C and the first quote. SAR and RSI share completed M5 timestamps; no later replacement is permitted.
Three fresh reset bars lead to S, one next confirmation C and the first quote. SAR and RSI share completed M5 timestamps; no later replacement is permitted. On small screens, scroll the chart horizontally to keep labels readable.

3. Use an explicit completed-bar SAR and RSI reference

Use SAR step=0.02; max=0.20; RSI14=Close. At k1, the down seed is S=max(H0,H1); EP=min(L0,L1); AF=0.02; the up seed mirrors the extremes. k0 has no SAR and the seed is not a flip. The SELL fixture starts up; the others start down. Project T=S_prev+AF_prev×(EP_prev−S_prev), clamp it against two previous lows in an up state or highs in a down state, then test an inclusive touch. Up Low<=T flips down with S=max(previous EP,current High); down High>=T flips up with S=min(previous EP,current Low). Reset EP to the new side's current extreme and AF to the step. Otherwise only a strict new extreme increments AF, capped at the maximum. Process one transition per bar.

For RSI use G=max(ΔClose,0); D=max(−ΔClose,0), seed U14=mean(G1,…,G14); V14=mean(D1,…,D14), then U(k)=[13U(k−1)+G(k)]/14; V(k)=[13V(k−1)+D(k)]/14; RSI=100U/(U+V). Declare V=0,U>0→100; U=0,V>0→0; U=V=0→50; pre-seed values are unavailable. Keep full precision. Read both indicators from the same actually completed interval after the terminal has created the next bar. At 09:02 UTC, 08:55–09:00 is completed and 09:00–09:05 is forming. Validate exported values before substituting native buffers; matching labels or settings do not prove matching implementations.

4. Arm BUY from three fresh down-state bars

Immediately before an up flip S, require S−3,S−2,S−1: SAR_state=down AND RSI<=45. All three bars must follow the previous raw flip and any later verified-flat or data/hold restoration boundary. A reset is maintained only while the immediately preceding three bars qualify. The first opposite flip consumes that reset before its gates are checked; it cannot wait for a more favourable RSI later.

BUY S requires a fresh down-to-up transition, RSI(S)>=52; Close(S)>Open(S); 3<=r/pip<=12, with r defined by the frozen stop below. In the main example, S=k64 / 09:00 UTC; Close=1.30228; RSI=60.606061. The preceding reset closes are 08:45 / 08:50 / 08:55. A failed condition rejects that S permanently. Equality at the reset or momentum threshold is allowed; this does not make a continuing SAR state a fresh flip.

The main BUY resets in three down-state bars and flips with RSI already above the declared floor. Only the next completed bar confirms beyond S high.
The main BUY resets in three down-state bars and flips with RSI already above the declared floor. Only the next completed bar confirms beyond S high. On small screens, scroll the chart horizontally to keep labels readable.
UTC timeRoleStateRSI14Close
08:45 UTCThree fresh reset barsSAR ↓0.0000001.30156
08:50 UTCThree fresh reset barsSAR ↓0.0000001.30152
08:55 UTCThree fresh reset barsSAR ↓0.0000001.30148
09:00 UTCSSAR ↑60.6060611.30228
09:05 UTCCSAR ↑63.5775861.30238

5. Specify SELL as its own complete rule

For SELL, immediately preceding fresh bars require S−3,S−2,S−1: SAR_state=up AND RSI>=55. Consume the first up-to-down flip and require RSI(S)<=48; Close(S)<Open(S); 3<=r/pip<=12. Use exactly the next C: it remains in the down state, has a bearish body and closes below S's Bid low by 0<Low(S)−Close(C)<=2 pip.

The first quote must still have Ask below that low. SELL enters against Bid and closes against Ask. Its frozen stop and target below are chosen Ask trigger prices calculated from Bid reference geometry; they are not reconstructed Ask OHLC or proof of a stop above the historical Ask high. The mirror has S Close=1.29772; RSI=39.393939; C Close=1.29762. No automatic reversal, averaging or additional position is allowed.

6. Use exactly the next M5 confirmation close

For BUY, only C=S+1 may confirm: SAR remains up, Close(C)>Open(C) and 0<Close(C)−High(S)<=2 pip. The main C is k65 / 09:05; Close=1.30238; High(S)=1.30233; break=0.5 pip. This is a close beyond the entire S range, not a wick-only touch. The SELL conditions are the explicit mirror above.

A missing scheduled interval, reversed SAR, wrong body, equality at the breakout boundary or excessive extension cancels the candidate. Do not replace C with a later bar. A clock boundary alone is insufficient: confirm that C is actually closed on the first received new-bar quote. If that first pair cannot establish valid completed data, discard the event and rebuild a fresh reset rather than waiting for a convenient later pair.

7. Freeze protection and target at S

For BUY set S_bid=Low(S)−0.5 pip; r=Close(S)−S_bid; T_raw=Close(S)+2.5r. For SELL set S_ask=High(S)+0.5 pip; r=S_ask−Close(S); T_raw=Close(S)−2.5r. Round the target toward S's close to the valid tick: down for BUY, up for SELL. Freeze both absolute trigger prices before C and the entry quote. The structural r is not the eventual fill-to-stop risk.

The main BUY has S_bid=1.30138; r=9 pip; T_bid=1.30453; SELL has S_ask=1.29862; r=9 pip; T_ask=1.29547. The later independent S73 demonstrates rounding: Close=1.30194; r=9.1 pip; T_raw=1.304215→T_bid=1.30421. A later entry never reanchors the target or widens the stop. Fixed exits are retained after a fill; the time cap is defined separately below.

BUY uses fixed Bid trigger prices and SELL fixed Ask trigger prices, both chosen from S Bid geometry. The SELL panel is not an Ask candle reconstruction.
BUY uses fixed Bid trigger prices and SELL fixed Ask trigger prices, both chosen from S Bid geometry. The SELL panel is not an Ask candle reconstruction. On small screens, scroll the chart horizontally to keep labels readable.
Signal SCloseStopTargetStructural r, pips
BUY / S641.302281.301381.304539.0 pip
SELL / S641.297721.298621.295479.0 pip
BUY / S731.301941.301031.304219.1 pip

8. Keep the rejected flip separate from a new reset

In the weak-flip fixture, S64 / 09:00; RSI=3.703704 fails the BUY momentum gate. At k66 / 09:10; RSI=59.341168 the up state is still the same event. That later reading creates no C or quote permission. A raw down flip at k69 is unarmed for SELL and also consumes its own event.

Three fresh down reset bars k70–k72 / 09:30–09:40 then precede a distinct up flip S73 / 09:45; RSI=53.369288. Its own C74 confirms at 09:50. This new candidate reaches one request, which the supplied report definitively rejects. It is a separate reset and event, not a retry of rejected S64. Its order rejection cannot be relabelled as an executed trade.

Weak S64 stays rejected when RSI improves. Fresh opposite reset bars produce independent S73 and its own C74; the later server rejection is a separate event.
Weak S64 stays rejected when RSI improves. Fresh opposite reset bars produce independent S73 and its own C74; the later server rejection is a separate event. On small screens, scroll the chart horizontally to keep labels readable.

9. Price only the first post-confirmation quote

Consume the first received pair after C's scheduled close, with arrival<=C_close+2.000 s; 0<=quote_age<=500 ms; 0<=spread<=0.8 pip. BUY must retain Bid>High(S); SELL must retain Ask<Low(S). Check tick alignment, current broker distance and volume rules, known context and support for both initial exits. Unknown rules mean no request. A reported zero stop level does not guarantee unrestricted protection; the server can still reject it.

Use F_plan=Ask+0.2 pip for BUY; F_plan=Bid−0.2 pip for SELL. Remaining cost is c=0.3 exit reserve+0.6 linear round-trip commission=0.9 pip; entry reserve is already in F_plan. BUY uses L=(F_plan−S_bid)/pip+c; W=(T_bid−F_plan)/pip−c; SELL uses L=(S_ask−F_plan)/pip+c; W=(F_plan−T_ask)/pip−c. Require L>0; W>0; W/L>=1.50. Spread is represented by proper quote sides and is not charged again. No other fees or financing are assumed.

ObservationQuoteLoss, pipsNet target, pipsNet W/LPlan lots
BUY1.30238 / 1.3024411.719.81.69230770.21
SELL1.29756 / 1.2976211.719.81.69230770.21
BUY1.30256 / 1.3026213.518.01.3333333—
BUY / Later diagnostic1.30237 / 1.3024311.619.91.7155172—
BUY1.30213 / 1.3021912.719.11.50393700.19

10. Cancel a failed confirmation without replacing it

In the failed-C fixture, S qualifies but the first confirmation has C65 Close=1.30230<=S64 High=1.30233. It is rejected at that close. The next bar reaches k66 Close=1.30240, but it is outside the permitted confirmation slot. There is no request and no later-C substitution.

Continue the raw SAR detector after rejection. A genuine future candidate needs the full fresh opposite-state reset and another first flip. If a reversed C also creates a raw flip, record it separately and apply the same reset rules; do not interpret the failed candidate as permission to reverse a position. Entry holds and the account guard remain independent requirements.

The first C fails to close beyond S high. A later attractive close is outside the confirmation slot and creates no request.
The first C fails to close beyond S high. A later attractive close is outside the confirmation slot and creates no request. On small screens, scroll the chart horizontally to keep labels readable.

11. Keep a bad or late first quote consumed

The accepted BUY's first pair is Bid/Ask=1.30238/1.30244; F_plan=1.30246, giving L=11.7; W=19.8; W/L=1.6923077. A separate fixture first receives 1.30256/1.30262; F_plan=1.30264. With the same frozen exits it gives L=13.5; W=18.0; W/L=1.3333333 and is rejected despite a 0.6 pip spread.

Its later pair 1.30237/1.30243 would give L=11.6; W=19.9; W/L=1.7155172, but the event is already consumed: no eligible volume and no request. In the expiry fixture the first quote arrives at 09:05:02.120, after the inclusive deadline 09:05:02.000. It also produces no request. Better subsequent prices do not restart either event.

The first quote fails net room despite acceptable spread. A better later ratio is diagnostic only; an expired first quote also cannot be replaced.
The first quote fails net room despite acceptable spread. A better later ratio is diagnostic only; an expired first quote also cannot be replaced. On small screens, scroll the chart horizontally to keep labels readable.

12. Size the request and check SELL on Ask

The illustrative account uses equity=$10,000; risk_fraction=0.25%; budget=$25; lot_min=lot_step=0.01; lot_max=1.00. Use lots=floor_step(25/(L×10),0.01) and reject any incompatible broker volume constraint. The accepted main plans use 0.21 lot; planned_loss=$24.57; planned_net_target=$41.58. The bad first quote's diagnostic 0.18 lot is not eligible; lowering volume cannot repair its linear net ratio. None of these planned losses is a guaranteed cap.

The SELL first pair is Bid/Ask=1.29756/1.29762; F_plan=1.29754, with the same main L and W. Its supplied entry fill is 1.29755. Later a fictional pair Bid/Ask=1.29856/1.29862 reaches the fixed Ask stop while Bid remains below it. The supplied exit report is Ask fill=1.29864. Do not infer an Ask execution from a Bid candle or draw an unobserved Ask candle path.

Supplied SELL quotes reach the fixed Ask stop while Bid remains below it. The separate execution report gives the fill; no Bid candle is presented as Ask execution.
Supplied SELL quotes reach the fixed Ask stop while Bid remains below it. The separate execution report gives the fill; no Bid candle is presented as Ask execution. On small screens, scroll the chart horizontally to keep labels readable.

13. Hold fixed exits with one fixed time cap

Keep the accepted stop and target unchanged. There is no SAR trailing, break-even adjustment, partial exit or automatic reversal on a later opposite flip. The fixed holding deadline is D=min(C_close+30 min,12:00 UTC). If protection has not closed the position, request closure once on the first available reliable proper-side quote at or after D. Accepted protection remains active while a close response is pending.

Process supplied paired quotes in chronological order: BUY stop/target use Bid; SELL use Ask. For one quote, test the protective levels before a time exit. A gap may pass a level, so the eventual reported fill can differ from the trigger. No quote at the deadline does not prove flatness. With missing data or an uncertain close response, retain the exposure guard and reconcile the account; never invent a boundary fill or a zero result.

14. Reconcile rejection, uncertain entry and protection

Permit one entry request per event, with a planning reserve of 0.2 pip=2 points in this contract; a terminal slippage argument is not a universal fill guarantee. A definite rejection plus verified flatness consumes the event and starts a fresh-reset requirement. In the new-S73 fixture, the supplied server reply rejects stops despite the client reporting a zero stop level. There is no retry and no fill.

Distinguish entry_deadline=C_close+2 s from ack_timeout=request_time+2 s. A timeout does not cancel a possibly accepted request. The unknown-response fixture makes one request, keeps its state unresolved and leaves fill and P&L blank even if prices later reach the reference target. Reconcile positions and order history before any new request. Unsupported initial protection blocks entry; an unexpected unprotected fill permits one emergency close on a reliable quote, followed by reconciliation if that response is uncertain. Do not widen the frozen exits to force acceptance.

A request, a protected fill, a definite rejection and an unresolved response are distinct. Supplied cash outcomes illustrate mechanics and do not measure profitability.
A request, a protected fill, a definite rejection and an unresolved response are distinct. Supplied cash outcomes illustrate mechanics and do not measure profitability. On small screens, scroll the chart horizontally to keep labels readable.

15. Reproduce the supplied observations and reports

The files contain 768 closed Bid bars; 11 raw flips; 3,080 quote updates; 5 simulated entry requests; 3 supplied fills; 0 live orders. Each independent fixture has 96 bars. Its explicitly assumed piecewise-constant quote path visits Open, then Low/High, then High/Low, then Close at declared offsets. Ask equals Bid plus the assumed spread in these invented updates. This path is a construction, not a method for recovering historical intrabar order or Ask prices from OHLC.

Recompute indicators, fresh resets, event consumption, C, first-quote costs, lots and proper-side exits independently. The supplied net outcomes are BUY target +$42.42; SELL stop −$24.15; time exit −$2.94, after the stated commission and supplied fills. They are constructed cash arithmetic, not measured strategy performance; no win rate or expectancy is inferred. Rejected and unresolved rows have no filled volume or P&L. A next-forming-bar quote confirms the final completed interval without adding a fictitious completed bar.

Download fictional M5 inputs (CSV)

Download all raw flips and candidate states (CSV)

Download fictional quotes and execution reports (CSV)

StatusEntry requestsReported fillReported exitFictional net P&L, USD
CLOSED_TARGET11.302451.30453+42.42 USD
CLOSED_STOP11.297551.29864-24.15 USD
CLOSED_TIME11.302451.30237-2.94 USD
SERVER_REJECTED1———
REQUEST_UNCERTAIN1———

16. Test every raw flip on a common chronological calendar

Freeze the reference, resets, gates, deadlines, exits, costs and event list before unseen research. Retain every raw flip, including unarmed, weak, blocked, failed-C, bad-quote, expired and unresolved observations. Compare variants on the same raw SAR event calendar when testing RSI's added value. Changing SAR itself can change that calendar and must be reported separately.

Use reliable paired quotes and execution evidence; keep unknown outcomes unknown. Compare market regimes, news holds, coverage, delay, request rejection and net outcomes under the same account constraints. Stress gaps, fee schedules, broker limits and missing data. Three supplied closed outcomes cannot establish an edge. The specification makes one bounded hypothesis testable; it does not establish that the strategy is suitable for live deployment.

Frequently asked questions

Can later RSI agreement revive a weak first SAR flip?

No. The first flip consumes its reset before the RSI gate. A later favourable reading in the same SAR state creates no new event. A new candidate needs three fresh qualifying opposite-state bars and another first flip.

Can a later M5 bar replace a failed confirmation?

No. Only the immediately following completed bar is C. A later breakout cannot be substituted, even if it looks cleaner. Missing or invalid completed data cancels the event and requires a fresh reset.

Can I wait for a better quote after the first one fails?

No. The first received pair consumes quote permission, including rejection for age, spread, price level, net room or deadline. A later diagnostic ratio may improve without creating eligible volume or another request.

Is a SAR dot the protective stop for this strategy?

No. The fixed trigger levels come from S's range and the declared buffer, with a target rounded toward the anchor. Later SAR dots do not modify them. The separate time cap still requires an actual closure report.

Does an entry timeout mean that the order was rejected?

No. A submitted request can be unresolved even after entry permission expires. Keep new entry blocked, reconcile positions and order history, and do not assume a fill, a rejection or a zero P&L from a missing response.

Do the example outcomes prove profitable scalping?

No. These are invented quote paths and supplied execution reports with no live orders. The amounts verify price-side and cost arithmetic only. They are not historical backtests, measured expectancy or evidence of optimal settings.

Sources and research notes

Official MQL4 references describe indicator arguments, current Bid/Ask entry prices and order protection. The finite SAR/RSI calculation below is a declared reference, consistent with the companion guide, not native-terminal parity. Thresholds, timing, quote paths, fees and supplied execution reports are teaching assumptions. No trading API is called.

Educational strategy specification. Invented quotes and supplied execution reports; no live orders, historical backtest or measured profitability.