A SAR dot changing sides, an ADX reading above a threshold and an accepted stop modification are three different events. Confusing them can turn an old rejected flip into a late entry or make a chart imply protection that did not yet exist. This guide defines one reproducible teaching reference, follows three fictional H1 histories and separates indicator observations from executable stop management.
1. Give SAR, ADX and the actual stop different jobs
Parabolic SAR is a price-based state and reference level. ADX summarizes directional-movement imbalance after smoothing; it does not label an uptrend or downtrend. +DI and −DI are separate lines. Neither an indicator dot nor a plotted stop candidate proves that a broker accepted a protective order.
Our BUY-side observation combines a fresh upward SAR flip with a same-bar ADX threshold. There is no DI-direction gate and no rising-ADX requirement. Trailing is studied separately after a hypothetical position exists. This guide is a research building block, not a complete entry-and-exit strategy or evidence of a trading advantage.
2. Declare the implementation before comparing numbers
Use fictional EURUSD Bid H1 OHLC, 1 pip=0.00010, SAR step=0.02, maximum=0.20 and a Wilder-style ADX14 reference defined below. Index k names a completed bar. The data timestamp is its close, not its opening time. Our finite-history initialization is explicit; earlier terminal history can change later values.
In MT4, record the symbol, feed, timeframe, history start and actual indicator implementation. iSAR accepts step, maximum and shift; iADX exposes MODE_MAIN, MODE_PLUSDI, MODE_MINUSDI plus an applied-price argument. Do not assume that native iADX, a Wilder-style custom indicator and another platform agree because all display 14. Export and compare actual completed outputs before substituting one for this reference.
| Measure | Declared reference | Role or limit |
|---|---|---|
| SAR | Step 0.02 / max 0.20; explicit down seed | State and completed flip, not an accepted stop |
| ADX14 | Wilder-style R14; ADX seed at k27 | Nondirectional strength; not native parity |
| Q | Fresh up flip AND ADX≥25 | No DI or rising-ADX gate |
| Trailing | Completed reference; accepted updates only | One-way protection; no automatic reversal |
3. Make SAR initialization, clamps and touch rules reproducible
At k1, seed down state d=−1, S=max(H0,H1), EP=min(L0,L1) and AF=0.02; k0 has no SAR. For each k≥2, project T=S_prev+AF_prev(EP_prev−S_prev). In an up state, clamp T to the minimum of T and the two previous lows. In a down state, clamp it to the maximum of T and the two previous highs. All references use completed information only.
In an up state, L(k)≤T flips down: set S=max(EP_prev,H(k)), EP=L(k), AF=0.02. In a down state, H(k)≥T flips up: set S=min(EP_prev,L(k)), EP=H(k), AF=0.02. Touch equality flips. Otherwise S=T; update EP to a new strict high or low and increase AF by 0.02, capped at 0.20, only on that new extreme. Process one transition from the incoming state; an outside bar does not imply a known intrabar order.
4. Define directional movement and zero cases explicitly
For k≥1, let U=H(k)−H(k−1) and V=L(k−1)−L(k). Set +DM=U only if U>V and U>0; set −DM=V only if V>U and V>0. Otherwise the respective value is zero; a positive U=V tie gives zero to both. Define TR=max(H−L,|H−C_prev|,|L−C_prev|). These operations use highs and lows, not a crossover of closing prices.
For each raw series x, seed R14(x,k14)=mean(x1…x14), then use R14(x,k)=[13R14(x,k−1)+x(k)]/14. Define +DI=100R14(+DM)/R14(TR) and −DI=100R14(−DM)/R14(TR). If smoothed TR is zero, set both DI values to zero. Missing required data remains unavailable and prevents qualification; it is not the zero-range case.
5. Keep ADX strength separate from direction and slope
Define DX=100|+DI−(−DI)|/(+DI+−DI), with DX=0 when the denominator is zero. Seed ADX(k27)=mean(DX14…DX27); later ADX(k)=[13ADX(k−1)+DX(k)]/14. DI and DX first exist at k14, ADX at k27. This declared Wilder-style reference uses smoothed movement divided by smoothed TR; smoothing barwise DI percentages first is a different calculation.
The absolute difference removes direction: mirroring highs and lows swaps the two DI lines while leaving this ADX unchanged. Rising ADX can accompany falling prices. A high but falling ADX can also satisfy a level-only gate. Requiring ADX to rise, requiring +DI>−DI, or changing smoothing creates another model; none should be added silently after viewing an appealing example.
6. Distinguish a fresh completed flip from an existing state
Define the upward event F(k)=[d(k−1)=−1 AND d(k)=+1]. Our observation is Q(k)=F(k) AND [ADX(k)≥25], available from k27 when all inputs exist. Exactly 25 passes. The threshold is illustrative, not optimized. A SAR state remaining up does not generate fresh flips on later candles.
In the current MT4 series, read the last completed bar at shift=1 and its predecessor at shift=2; shift=0 is forming. Evaluate each completed timestamp once. The internal direction state above defines our flip, including equality, rather than guessing from rounded dots near a close. If data or restart state is uncertain, rebuild the chronology before acting.
7. Reject weak flips without giving them a later entry time
The level gate is evaluated on the flip bar itself. If F=1 but ADX<25, record a rejection and consume that event. A later ADX crossing of 25 with F=0 cannot change the old Q or supply a new flip. A delayed application must not relabel the current bullish state as a fresh transition.
This guide has no waiting window for ADX and no automatic reversal order. A future model could explicitly study confirmation within a finite window, but that would be a separate hypothesis. Keep indicator rejection, order rejection and an unknown request status separate: they occur at different stages and require different evidence.
8. Rebuild three separate fictional H1 histories
All histories begin at 2026-08-03 00:00 UTC with close 1.10000. Subsequent close changes, in pips, are: trend +2×30,−3×14,+4×15; range (+3,+3,−3,−3)×15; weak (+3,+3,−3,−3)×11,−2×3,+3×18. Open equals the previous close, with k0 open equal to close; high is one pip above max(open,close), low one pip below min(open,close).
The histories contain 60,61,66 rows, 187 in total. They are separate fabricated cases, with a shared prefix in range and weak, not independent statistical trade samples. CSV includes OHLC, SAR state, EP, AF, directional movement, smoothed inputs, DI, DX, ADX, F and Q. Exact rational comparisons define the reference; rounded display values do not decide events.
Download all three fictional OHLC histories and calculations
9. Read a qualified flip without inventing DI agreement
In the trend case, an upward flip occurs at k47, 2026-08-04 23:00 UTC. SAR resets to 1.10170 and ADX is 50.4166, so Q=1. ADX has fallen from 53.3582 at k46; the gate requires a level, not a rise. No trade fill or profit is attached to this observation.
At k47, +DI is 24.0052 and −DI 30.6617. The observation still qualifies because DI direction is not part of Q. This disagreement is useful: a completed SAR transition and smoothed directional movement need not turn together. A +DI>−DI filter would reject this case and must be assessed as an explicit additional rule.
| Case / bar | SAR | d | ADX | +DI | −DI | F | Q |
|---|---|---|---|---|---|---|---|
| Trend case · k47 | 1.10170 | 1 | 50.4166 | 24.0052 | 30.6617 | 1 | 1 |
| Range case · k30 | 1.09990 | 1 | 11.8206 | 18.1490 | 13.9320 | 1 | 0 |
| Range case · k34 | 1.09990 | 1 | 10.6361 | 17.7789 | 14.0533 | 1 | 0 |
| Weak flip case · k50 | 1.09930 | 1 | 11.3413 | 19.6875 | 17.5465 | 1 | 0 |
| Weak flip case · k58 | 1.10071 | 1 | 25.6767 | 38.0414 | 9.5577 | 0 | 0 |
10. Show sideways whipsaws as well as a clean trend
In the range case, the up flips at k30 and k34 have ADX 11.8206 and 10.6361; both are rejected. Down flips at k28, k32 and k36 interrupt the repeated rises. Shared price and ADX axes show the entire sequence, including the less attractive intervening candles.
The threshold removes these particular synthetic observations. That does not establish that ADX always detects a range, prevents whipsaws or improves net results. Smoothing can retain old strength after a regime changes, and filtering can remove later winners. Report the complete candidate calendar rather than selecting examples where the filter looks helpful.
11. Do not revive a rejected flip when ADX later rises
In the weak case, the upward flip at k50, 2026-08-05 02:00 UTC, has ADX 11.3413; Q=0. SAR then stays up. At k58, 2026-08-05 10:00 UTC, ADX reaches 25.6767, but F=0 and Q remains zero. Eight later bars cannot transform the earlier rejected event into an entry.
The chart marks the weak flip and later strength separately. The later close is 1.10270, versus 1.10030 at the flip, but neither is an entry price here. A state-based rule could study the later bar; it must carry its own name, decision time, quote and validation instead of borrowing the original flip.
12. Activate a trailing candidate only after accepted modification
Consider a separate fictional BUY already protected at S_old=1.10100. At 10:00:00 UTC, a completed-bar reference gives SAR=1.10206. An illustrative two-point buffer on a 0.00001 tick gives candidate S_new=1.10204. The request is sent at 10:00:01. A quote at 10:00:02 has Bid 1.10180; the old stop still governs.
At 10:00:03, Bid has recovered to 1.10310 and the modification is confirmed accepted. Only subsequent eligible quotes use the new stop. Bid 1.10170 at 10:00:04 then crosses it; an assumed fill 1.10160 is worse than the stop by 4.4 pips. In the separate rejected-modification branch, the old 1.10100 remains active and that same 1.10170 quote has not reached it. Never apply the new stop retrospectively to the earlier 1.10180 quote.
13. Keep stops one-way and reconcile uncertain requests
For a BUY, submit a candidate only if it is above the accepted old stop, below current Bid and valid on the broker’s price grid and stop/freeze constraints. Round a BUY stop down to the permitted tick before checking it. A lower candidate does not loosen protection. If SAR flips above price, do not copy that wrong-side level into a BUY stop; an exit-on-opposite-flip policy needs a separate explicit definition.
A failed modification leaves the previously accepted stop in force. A timeout can be uncertain: inspect actual broker state before declaring success, resending or calculating exits. Record candidate time, send time, accepted time and active level. After reconnection, rebuild indicator state and reconcile the real position. A plotted line is not evidence that the old stop changed, and a protective stop cannot guarantee its fill price through a gap.
14. Size from executable quote sides and full planned costs
In a separate BUY geometry example, fix Bid stop 1.10170 and Bid target 1.10600. Normal Bid/Ask is 1.10300 / 1.10312, wider 1.10300 / 1.10330. Gross stop distances from Ask are 14.2 and 16.0 pips. Add commission 0.8 pip and total adverse-execution reserve 1.0 pip: planned loss distances become 16.0 and 17.8 pips; net target room is 27.0 and 25.2 pips.
Assume USD equity 10000, risk budget 0.6%=60 USD, standard contract 100000 EUR, pip value 10 USD/lot and lot step 0.01. Rounding down yields 0.37 lots and planned risk 59.20 USD, versus 0.33 lots and 58.74 USD. Ask entry and Bid exits already represent the spread; do not add it twice. Check actual tick value, account-currency conversion, margin, swaps and broker constraints; the reserve is not a maximum possible loss.
| Quote | Bid / Ask | Stop (pip) | Loss + costs | Net target | Lots | Risk USD |
|---|---|---|---|---|---|---|
| Normal | 1.10300 / 1.10312 | 14.2 | 16.0 | 27.0 | 0.37 | 59.20 |
| Wider | 1.10300 / 1.10330 | 16.0 | 17.8 | 25.2 | 0.33 | 58.74 |
15. Compare entry filtering and trailing as separate experiments
First compare every fresh F observation with Q on the same calendar, using identical complete execution, exit, cost and risk rules. Then, on an identical accepted-entry set, compare fixed-stop and one-way SAR-trailing policies. Changing both the entry filter and the exit policy together obscures which change explains a result.
Preserve actual quote chronology, spreads, modification failures, uncertain requests and gaps. BUY exits use Bid; SELL stop and exit rules require an explicit Ask-side convention rather than blindly reusing a Bid-chart line. Reserve later data, retain all tried periods and thresholds, and assess net expectancy, drawdown and sample uncertainty. Three fabricated paths cannot establish profitability.
16. Complete the specification before turning it into a strategy
Record the data and close clock, finite SAR seed, EP/AF updates, two-bar clamp, equality rules, ADX smoothing and zero cases. Define a fresh event, its same-bar gate and what rejection consumes. For actual trades add order expiry, initial protection, costs, sizing, position limits, accepted trailing updates and complete exits. Another reader should reproduce decisions without selecting convenient candles.
This is the third guide in the three-pair cluster; the next materials specify the three separate strategies. The existing SAR continuation strategy uses EMA100, an ATR buffer, a bounded counter-phase and fixed exits; it is a different model. Here the focus is the interaction of SAR, ADX and stop activation. Clear rules improve reproducibility; their agreement alone does not establish a market edge.
Frequently asked questions
Does rising ADX mean prices are rising?
No. ADX measures smoothed directional-movement imbalance without a direction sign. Its rise can accompany a falling market. +DI and −DI are separate lines.
Does the same ADX14 label guarantee matching MT4 values?
No. Smoothing, seeds, data history and implementation can differ. This guide declares a finite Wilder-style reference; compare exported native outputs before substituting them.
Does a later ADX reading above 25 revive a weak SAR flip?
No. This observation evaluates ADX on the completed flip bar. Without another fresh flip, later strength leaves the rejected event unchanged.
Must ADX be rising and +DI be above −DI here?
No. The illustrative Q gate requires a fresh upward SAR flip and ADX at least 25. A slope or DI-direction filter would be a different model.
Is a newly calculated SAR trailing stop already active?
No. The previously accepted stop governs until a modification is confirmed accepted. Do not apply a later accepted level to earlier quotes.
Can a SAR stop or an ADX filter guarantee a bounded loss?
No. Qualification does not establish profitability, and stops can fill worse through gaps or slippage. Planned costs and reserves are assumptions, not loss guarantees.
Sources and educational notes
Official MetaQuotes references document iSAR, iADX and OrderModify; the ADX Wilder reference explains smoothed directional movement. The precise finite seeds, tie handling, SAR recurrence, three fictional histories, qualification gate and quote timelines below are our declared teaching specifications. They do not assert equality with native MT4 output or describe any commercial EA. Reconstruct unrounded values from the downloadable OHLC; CSV decimals are display approximations.
- MQL4 Reference: iSAR
- MQL4 Reference: iADX
- MetaTrader 4 Help: Parabolic SAR
- MetaQuotes: ADX Wilder smoothing reference
- MQL4 Reference: OrderModify
Educational content. All histories, quotes and fills are fictional. Forex trading involves risk. Indicator qualification and protective stops cannot guarantee profit or cap actual loss.