This BUY-only research strategy gives SAR and ADX different jobs. A new bullish SAR reversal on a completed H1 candle defines direction; ADX must already meet the strength threshold on that same candle. After an acceptable first quote, SAR may propose a tighter stop, but only an actually accepted broker modification changes protection. Three fictional price histories and separate execution branches expose weak flips, late ADX recovery, rejected updates and gaps. They report no measured trading returns.
1. Define the direction, strength and trailing hypothesis
SAR supplies the reversal event and a later proposed stop; ADX supplies a nondirectional strength filter. Study whether this complete policy changes net outcomes relative to keeping the initial stop. Both indicators use the same price history, so agreement is not independent evidence of an edge. A high ADX can accompany a decline.
Study EURUSD BUY only. This differs from the EMA-filtered SAR continuation strategy and the preceding ordered MACD/Stochastic strategy. There is no EMA gate, DI-direction gate, rising-ADX requirement, SELL, averaging, pyramiding, partial close or automatic reversal. The values and hours are declared research choices; no historical optimization or profitable outcome is asserted.
2. Fix completed-bar settings, UTC and exposure state
Use completed EURUSD Bid H1 OHLC, SAR step0.02 / maximum0.20 and Wilder-style ADX14. Require at least 28 valid, consecutive completed candles. An eligible bullish flip q may close 07:00–15:00 UTC, Monday through Thursday. Seek a same-day time exit at 19:00 UTC on q’s date if still open.
Map actual broker candle intervals to UTC, including historical offset changes. Arm and send only while EURUSD has no open or pending exposure and no unresolved request. A missed evaluation, broken H1 sequence or uncertain state prevents a new entry; do not replay a past flip after reconnection. While holding, retain accepted protection if data become unavailable, suspend updates and new entries, reconcile data and still enforce the time-exit policy. Other portfolio exposure needs separate controls.
| Component | Declared setting | Role or limit |
|---|---|---|
| Parabolic SAR | Step0.02; maximum0.20; explicit bearish seed | Fresh completed bullish flip; later stop candidates |
| ADX14 | Declared Wilder-style finite seed; threshold≥25 | Strength at the flip; no rising-ADX or DI gate |
| Protection | S0=SAR(q)−1pip rounded down; target2×distance | Only accepted higher stops activate; target fixed |
| Execution | First quote; one update attempt per closed bar | Full costs; bearish-flip or19:00 UTC exit |
3. State the finite SAR and ADX reference exactly
Number candles from k0. SAR is unavailable there. At k1 seed bearish direction with SAR1=max(H0,H1), EP1=min(L0,L1) and AF1=0.02; this seed is not a reversal event. From k2 compute z=SARprev+AFprev(EPprev−SARprev). In a bullish state clamp z to the smaller of z and the prior two lows. If current L≤z, reverse bearish: SAR=max(previous EP,current H), EP=current L, AF=0.02. Otherwise SAR=z, EP=max(previous EP,current H), increasing AF by 0.02 up to 0.20 only on a strictly higher EP. In a bearish state clamp z to the larger of z and the prior two highs. If current H≥z, reverse bullish: SAR=min(previous EP,current L), EP=current H, AF=0.02. Otherwise SAR=z, EP=min(previous EP,current L), increasing AF only on a strictly lower EP. Equality triggers reversal, but an equal EP does not increase AF.
For k≥1 define u=H(k)−H(k−1), v=L(k−1)−L(k), +DM=u if u>v and u>0, otherwise0, −DM=v if v>u and v>0, otherwise0 and TR=max(H−L,|H−Cprev|,|L−Cprev|). Tied positive moves give both DM values zero. At k14 seed each smoothed DM/TR with its mean over k1…k14; then use W(k)=[13W(k−1)+raw(k)]/14. Define ±DI=100W(±DM)/W(TR) and DX=100|+DI−−DI|/(+DI+−DI), using zero for a zero denominator. First ADX at k27 is mean(DX14…DX27); later ADX(k)=[13ADX(k−1)+DX(k)]/14. Use unrounded decisions. In MT4 MODE_MAIN is ADX, MODE_PLUSDI/MODE_MINUSDI are the directional lines; declare applied price and compare actual timestamped buffers before claiming parity. Read completed shift=1 and prior shift=2, never forming shift=0.
4. Qualify only a fresh bullish flip with strength already present
A new event is direction(q−1)=−1 AND direction(q)=+1. On that completed candle require C(q)>SAR(q) and ADX(q)≥25, together with the time, data and flat-state requirements. ADX need not be rising; neither +DI>−DI nor a prior low-ADX phase is required. Q=1 means qualification, not a filled order.
If the fresh flip fails strength, price or eligibility, consume it. A later ADX rise while SAR stays bullish gives no new opportunity. A persistent bullish SAR state is not a fresh flip. A failed first quote or rejected entry also consumes that flip. Only a later independently fresh bullish reversal, with exposure and request state resolved, may qualify again. There is no automatic SELL when SAR turns bearish.
5. Make each trailing review a one-way, prospective decision
Start reviewing only on the next completed candle k≥q+1 while the position remains open. If SAR is bullish and C(k)>SAR(k), calculate U(k)=floor_tick(SAR(k)−0.00010) and propose S*=max(Saccepted,U(k)). Submit only when the proposal is at least 1 tick higher. ADX is an entry gate: a later ADX decline alone neither closes the trade nor prevents tightening. A lower or equal candidate cannot loosen the accepted stop.
For each review use only its first observed two-sided quote, with 0≤age≤2 s and send time 0≤elapsed<10 s after that close. Verify Bid>S*, actual grid, stop distance and freeze constraints. If the quote, timing or broker checks fail, or the broker explicitly rejects the modification, retain the accepted stop and wait for the next completed bar. Do not retry within the bar, queue an old candidate or lower it to satisfy broker constraints. Process existing protection and exit events first. A candidate becomes active only when the broker actually accepts it; an unknown result requires reconciliation before another update. The deadline constrains an unsent request, not an update already sent.
6. Freeze the initial Bid protection and fixed target at q
At qualification freeze S0=floor_tick(SAR(q)−0.00010) and T=floor_tick(C(q)+2[C(q)−S0]). The one-pip buffer and two-distance target are declared choices. No candle after q enters S0 or T. Later accepted SAR updates may raise the stop; T stays fixed. There is no separate break-even trigger or discretionary target extension.
The examples assume 1 pip=0.00010 and tick=point=0.00001: one pip equals ten points. floor_tick rounds downward on the actual tradeable grid. Digits alone do not establish tick size, tick value or broker permissions. A target two signal-close distances away does not guarantee a net two-to-one trade, and a tightened stop does not guarantee the requested fill price.
7. Inspect one first entry quote and account for every cost
After qualified close t inspect exactly its first observed two-sided quote. Require 0≤age≤2 s, send time 0≤elapsed<10 s, spread≤1.5 pips, Ask−C(q)≤4.0 pips, gross Ask-to-S0 distance 5–40 pips and planned net reward/loss at least 1.5. Require valid ordered prices, Bid>max(S0,SAR(q)) and Ask<T. Distance and ratio limits include equality; the price inequalities are strict.
Before sending verify attached protection, actual grid, broker stop constraints, lot limits, free margin and flat EURUSD state. The same first quote must remain fresh and usable; checks that outlast either limit consume the chance. Do not substitute a cheaper second quote or chase a requote. Explicit rejection or no timely quote also consumes the flip. Actual fill prices can differ. Seconds are a local sending deadline, not a market-order cancellation time or pending-order expiration parameter.
8. Rebuild three histories and keep execution branches separate
Each history starts with close 1.10000 at k0. Changes in pips are trend +2×30,−3×14,+4×15; weak (+3,+3,−3,−3)×11,−2×3,+3×18; range (+3,+3,−3,−3)×15. Open equals previous close, except k0 where they coincide; high is one pip above max(open,close), low one pip below min(open,close). There are 60,66,61 rows, 187 altogether.
First completed timestamps are 2026-08-03 10:00 UTC for trend/range and 2026-08-03 05:00 UTC for weak. These reuse the SAR/ADX guide’s declared fictional price shapes with strategy-specific clocks. The OHLC CSV evaluates signals assuming flat eligibility; it contains no orders or trade returns. A separate 10 events CSV gives alternative execution branches. A branches after k48, B after k49, and C describes an uncertain update after k48; their later quotes replace any unused continuation of that OHLC fixture. They must not be appended to one full tick path or treated as independent trade samples.
Download three fictional OHLC histories and signal calculations
9. Read the qualifying flip on aligned price and ADX axes
In the trend history the fresh bullish flip at q=k47 closes 2026-08-05 09:00 UTC. Bid close 1.10300 exceeds SAR 1.10170; ADX 50.4166 passes. Freeze S0=1.10160 and T=1.10580. Q=1 still needs a passing first quote and broker acceptance.
At k48, 10:00 UTC, SAR is 1.101728, giving candidate U=1.10162. At k49, 11:00 UTC, SAR 1.10179888 gives U=1.10169. ADX declines to 46.8620 and then 44.1844; that decline does not block a valid update. These are proposals computed after each close, never protection retroactively applied to the candle that just ended.
| Case / bar | Bid close | SAR | ADX | New flip | Q | Signal action |
|---|---|---|---|---|---|---|
| Trend case · k47 | 1.10300 | 1.101700000 | 50.4166 | 1 | 1 | Qualified close |
| Trend case · k48 | 1.10340 | 1.101728000 | 46.8620 | 0 | 0 | Later strength cannot revive the flip |
| Weak-flip case · k50 | 1.10030 | 1.099300000 | 11.3413 | 1 | 0 | Weak-flip case |
| Weak-flip case · k58 | 1.10270 | 1.100708033 | 25.6767 | 0 | 0 | Later strength cannot revive the flip |
| Range case · k46 | 1.10060 | 1.099900000 | 8.6663 | 1 | 0 | Weak-flip case |
10. Reject the weak flip without reviving it later
In the weak history k50 closes 2026-08-05 07:00 UTC with a fresh bullish flip. Close 1.10030 exceeds SAR 1.09930, but ADX 11.3413 is below 25. Reject this flip immediately. No waiting episode is created for ADX to recover.
At k58, 15:00 UTC, ADX reaches 25.6767, while SAR remains bullish and close is higher. The flip flag is zero, so Q stays zero. In the range history, repeated reversals also fail the strength gate once the indicators are available. Reducing position size or pointing to later trend growth cannot repair an invalid signal event.
11. Read accepted-stop timing in three alternative branches
Assume the qualifying entry was accepted with S0=1.10160. Branch A’s first quote after k48 at 10:00:00.200 UTC is 1.10161 / 1.10173. Bid is above the old stop but below proposed 1.10162: skip the update. A later assumed Bid fill at 1.10155 belongs to the old stop, not a fictitious fill at the unaccepted candidate. Branch A uses no OHLC candles after k48.
In branch B the normal k48 quote permits an attempt, but the broker explicitly rejects it; S stays at 1.10160. At k49 the new proposal 1.10169 is accepted at 11:00:00.400 UTC; only then is it active. A later assumed gap fill at 1.10165 is worse than that level. Branch B uses no OHLC candles after k49. Branch C’s k48 request times out: the active stop is uncertain to the client until reconciliation confirms 1.10162 at 10:00:00.900 UTC. No blind resend is allowed, and the reconciliation time does not invent the earlier activation time.
| Branch / UTC time | Closed bar | Proposed stop | Bid quote | Confirmed stop | State |
|---|---|---|---|---|---|
| A · 10:00:00.200000 | k48 | 1.10162 | 1.10161 | 1.10160 | Gap below the proposed stop |
| A · 10:00:00.600000 | k48 | — | 1.10155 | 1.10160 | Old accepted stop fills |
| B · 10:00:00.400000 | k48 | 1.10162 | — | 1.10160 | Broker rejects the update |
| B · 11:00:00.200000 | k49 | 1.10169 | 1.10380 | 1.10160 | Valid quote; acceptance still pending |
| B · 11:00:00.400000 | k49 | 1.10169 | — | 1.10169 | Broker accepts the update |
| B · 11:00:00.600000 | k49 | — | 1.10165 | 1.10169 | New accepted stop fills |
| C · 10:00:00.600000 | k48 | 1.10162 | — | ? | Unknown modification result |
| C · 10:00:00.900000 | k48 | 1.10162 | — | 1.10162 | Reconcile before the next action |
12. Compare alternative first quotes before choosing volume
For fixed S0/T, a first quote at 09:00:02 UTC of 1.10300 / 1.10312 has spread 1.2 pips and gross stop distance 15.2 pips. Add round-trip commission 0.6 pip and total adverse-execution reserve 1.0 pip: planned loss 16.8 pips, net target room 25.2 pips, ratio exactly 1.5. Equality passes the declared minimum, subject to broker checks; it offers no cushion for costs beyond the reserve.
An alternative first quote 1.10328 / 1.10340 passes the inclusive 4.0-pip chase cap but gives loss 19.6 pips, net target 22.4 pips and ratio 1.1429: reject at any size. With equity 10000 USD, risk 0.5%=50 USD, contract 100000 EUR, pip value 10 USD/lot and lot step 0.01, the acceptable quote allows 0.29 lots, planned risk 48.72 USD. Round down, skip below minimum and recheck margin. Count spread once through Ask entry/Bid exits; use actual tick value, account conversion and swaps, and allow that real loss may exceed the reserve.
| First quote | Bid / Ask | Stop (pip) | Loss + costs | Net target | Ratio | Decision |
|---|---|---|---|---|---|---|
| Acceptable | 1.10300 / 1.10312 | 15.2 | 16.8 | 25.2 | 1.5000 | Numeric gates pass at equality |
| Expensive | 1.10328 / 1.10340 | 18.0 | 19.6 | 22.4 | 1.1429 | Reject: insufficient net ratio |
13. Prioritize active protection, bearish reversal and the time exit
BUY protection uses Bid and the currently accepted stop; the fixed target remains T=1.10580. Ask touching T alone is insufficient. If still open when a completed bearish SAR flip appears, request closure at the first executable Bid; do not reverse to SELL. If still open at or after 19:00 UTC on q’s date, also seek closure at the first executable Bid. Exit requests do not wait for the entry spread gate or a trailing-update window.
Existing stop/target execution takes priority over a later client action. If both a bearish-flip and time-exit condition apply, reconcile and submit only one close request for remaining exposure. For example Ask1.10580 / Bid1.10568 has not reached T on Bid. A separate hypothetical candle H=1.10600 / L=1.10140 spans T and the initial stop but does not reveal which came first. Tick chronology and accepted-stop activation records are required; otherwise mark ambiguity. This candle is outside both CSV fixtures.
14. Reconcile unknown orders, protection and recovery state
Log unrounded indicators, q, frozen S0/T, every first quote, proposed stop, request identity, send time, explicit rejection, broker acceptance/effective time when known, confirmed protection and actual fills. A timeout does not prove rejection of an entry, modification or close. After an unknown modification, old protection is only the last confirmed state, not proof of the currently active stop. Reconcile broker order and position records before sending another update or declaring flat.
If a fill lacks required protection, seek controlled immediate closure and block entries until exposure is resolved. Manage residual volume after failed or partial closes. Never loosen the stop silently. If data are missing while holding, retain the last confirmed protection, suspend trailing, restore trustworthy state and keep seeking the scheduled exit; accepted server-side protection may still execute. A request sent before a deadline can finish later. On recovery after the time exit, seek closure at the first executable quote. A zero reported stop level can still permit dynamic rejection; freeze constraints may also prevent modification or closure.
15. Compare complete chronological policies, not selected trade rows
Compare this strategy with a fixed-stop variant using the same qualifying flips, first-quote gates, costs, sizing, target, bearish-flip exit and time exit, but leaving S0 unchanged. Run each variant’s own position chronology: an earlier trailing exit can change whether a later flip finds that variant flat. Do not delete losing rows from one finished trade list or assume identical later entries after the paths diverge.
Reserve later data, record all parameter trials and evaluate net expectancy, drawdown, uncertainty, turnover, missed signals, modification failures and gap losses. Trailing may reduce an individual loss or give back less profit, but it may also cut a trade before a recovery or prevent a target fill. Three fictional histories and alternative ledgers verify arithmetic and timing; they cannot establish which policy performs better.
16. Review the entire policy before testing
Check real UTC intervals, finite SAR/ADX seeds, equality conventions, fresh reversal at q and ADX strength on that same close. Confirm that consumed flips never revive, S0/T use only known information, the first quote and full costs precede sizing, and only later completed candles propose tightening. Keep proposed, rejected, accepted and uncertain stops separate; reconcile active protection before any next action.
This is the third and final strategy in the current indicator-combination cluster, following EMA/Stochastic and MACD/Stochastic. The cluster now connects indicator roles to complete research policies with explicit rejection and execution rules. None of these examples is a live-trade recommendation, a measured backtest or evidence that combining popular indicators creates a profitable edge.
Frequently asked questions
Can ADX qualify an earlier weak SAR flip later?
No. ADX must meet the threshold on the fresh bullish flip itself. A later rise while SAR remains bullish does not create a new reversal event.
Must ADX be rising or +DI exceed −DI?
Neither is required by this declared model. SAR defines direction and ADX supplies strength. Adding either extra gate would create a different strategy to test.
Does a new SAR value immediately become the active stop?
No. It is a proposal from a completed candle. The broker must actually accept the modification before it becomes active; an unknown response requires reconciliation.
What happens when Bid is already below the proposed stop?
Skip that update and retain confirmed protection. Do not invent a fill at the unaccepted level. The previously accepted stop may subsequently execute, with slippage or a gap.
Does a falling ADX stop trailing or close the position?
No. ADX is only an entry gate here. Valid completed-bar SAR candidates may still tighten; bearish SAR reversal, accepted protection and the time exit govern closure.
Do the charts or execution branches prove profitability?
No. They are fictional calculation and state fixtures. The alternative branches are not one complete tick backtest and report no measured returns or commercial EA results.
Sources and research notes
MetaQuotes documents iSAR, iADX, market-order submission, order modification and symbol constraints. The finite SAR/ADX seeds, threshold, UTC schedule, first-quote policy and trailing state machine below are our original research specification. They do not assert exact parity with native terminal buffers. Fictional OHLC calculations and alternative execution ledgers demonstrate rules, not performance or commercial EA results.
- MetaQuotes iSAR
- MetaQuotes iADX
- MetaQuotes OrderSend
- MetaQuotes OrderModify
- MetaQuotes symbol properties
Educational research specification. Histories, quotes and execution branches are fictional. Forex trading involves risk; indicators, accepted stops and planned budgets cannot guarantee profit or cap actual losses.