A narrow daily candle describes a completed range, not the direction of the next move. This research model separates the seven-day selection from a single later daily signal window and from the position’s holding clock. The worked example includes rejected paths, a subsequent quote, cost-aware sizing and an actual-fill ledger.
1. Separate a narrow-day observation from a trading rule
NR7 compares one completed daily high-low range with six earlier completed ranges. It does not predict direction or ensure that expansion follows. This article defines a testable Forex swing extension with a later H4 close and a separate multi-session exit. Its thresholds are fixed teaching assumptions, not optimised recommendations for a real account.
An Inside Bar tests containment, while a Bollinger squeeze measures band compression. Neither is required here. NR7 is also different from ranking ATR. A narrow candle can still lead to a false break, a losing fill or no eligible trade; no historical edge is asserted.
2. Freeze the symbol, calendar and account assumptions
Assume EUR/USD, an EUR 100000 contract, a USD account, point and tick 0.00001, and 1 pip = 0.0001: USD 10 per pip per lot. In this fictional summer calendar, D1 runs from 21:00 to 21:00 UTC; H4 starts at 21:00, 01:00, 05:00, 09:00, 13:00 and 17:00. These are declared dataset conventions, not universal MT4 settings.
Use the daily-candle protocol to verify historical offsets and session identities. Require seven complete 24-hour trading sessions; a weekend closure is not a missing trading session. Reject a selection window containing an expected missing or shortened session. Do not synthesize a Sunday mini-bar or fill a gap with future data. The next interval’s session schedule must be known in advance. It must start immediately at the reference boundary and last 24 hours; a weekend or early closure there rejects the reference instead of rolling it forward.
| Parameter group | Fixed assumption | Interpretation |
|---|---|---|
| Instrument and account | EUR/USD · USD | One configured symbol and account currency |
| Contract and units | 100000 EUR · 0.00001 · 0.0001 · USD 10 | Contract, point/tick, pip and value per lot |
| Declared calendar | D1: 21:00 UTC · H4: 21/01/05/09/13/17 | Complete sessions with historical offsets verified |
| Selection | 7 D1 · 6 D1 · 20–80 pip | Strict high-low comparison; no tied minimum |
| Opening eligibility | [L, H] · 10.0 pip · 60 s | Opening inside the reference, maximum gap, activation deadline |
| Signal window | 1 D1 · 5 H4 | Next interval only; endpoint close excluded |
| Break confirmation | 2.0 pip · 20.0 pip | Strict buffer and maximum edge extension |
| Quote gates | 60 s · 0–2 s · 1.5 pip · 3.0 pip | Expiry, quote elapsed time, spread and drift |
| Protection and reward | 2.0 pip · 20–120 pip · 2.0R · 1.5 | Opposite-edge buffer, price risk, target, net-ratio minimum |
| Risk and lot step | 0.5% · 0.01 lot | Equity budget and rounding down |
| Planned costs | 0.6 + 1.0 + 2.0 pip | Commission, combined adverse fills, holding allowance |
| Holding limits | 2 D1 · 20:45 UTC | Subsequent boundaries or Friday cutoff, whichever is first |
| Opportunity limits | 1 · 1 · 1 | Opportunity per reference, model position, entry request |
3. Select the narrowest of seven completed ranges
For each of the seven sessions calculate W = H − L in integer ticks. D0 qualifies only if its width is strictly smaller than each of D−1 through D−6. Equal minima do not qualify in this model. MT4 index 0 is forming; selection uses completed data, not its provisional daily high or low. Require D0 width of 20–80 pips inclusive.
The range excludes a gap from the previous close. True Range can include that gap, so substituting ATR changes the test; the ATR guide explains the distinction. Keep all seven valid observations and their original timestamps. The NR7 label is not an inside-day requirement and does not by itself authorise an entry.
4. Fix the reference and reject an unsuitable opening gap
When D0 ends at 2026-08-11 21:00 UTC, freeze H = 1.10500, L = 1.10100 and width 40 pips. Its close is 1.10400. The next D1 opening Bid 1.10410 is inside [L, H], with an absolute gap of 1.0 pip. Require the recorded opening Bid inside that inclusive range and an absolute gap from the reference close ≤ 10.0 pips.
Suppose the complete reference and opening data are valid at 21:00:04. Arm only strictly before 21:01:00; late or unverifiable data reject this reference. An opening outside the range is rejected even if it later returns. Reference identities and levels remain fixed. A later narrow day cannot replace the active reference or rescue a rejected one.
5. Check the full fictional daily input sequence
The table contains invented Bid OHLC, not downloaded historical evidence. Its seven widths are 70, 65, 60, 55, 50, 45 and 40 pips. D0 is strictly smallest. Its high 1.10500 exceeds D−1 high 1.10450, so this NR7 is deliberately not an Inside Bar. The earlier session closes include Friday and the following Monday, without inserting a weekend candle.
D−6 through D0 are chronological session labels, not MT4 shift indexes. Each listed ending time has a full 24-hour session beginning on its declared prior trading evening. If any required input is missing, not final or invalid, do not compute a convenient minimum from fewer bars. A later correction cannot create an earlier entry in the audit record.
| Session | D1 ending UTC | Open | High | Low | Close | Width, pips | Meaning |
|---|---|---|---|---|---|---|---|
| D−6 | 2026-08-03 21:00 | 1.10050 | 1.10600 | 1.09900 | 1.10400 | 70 | Earlier complete session |
| D−5 | 2026-08-04 21:00 | 1.10400 | 1.10650 | 1.10000 | 1.10200 | 65 | Earlier complete session |
| D−4 | 2026-08-05 21:00 | 1.10200 | 1.10600 | 1.10000 | 1.10300 | 60 | Earlier complete session |
| D−3 | 2026-08-06 21:00 | 1.10300 | 1.10600 | 1.10050 | 1.10400 | 55 | Earlier complete session |
| D−2 | 2026-08-07 21:00 | 1.10400 | 1.10550 | 1.10050 | 1.10350 | 50 | Earlier complete session |
| D−1 | 2026-08-10 21:00 | 1.10360 | 1.10450 | 1.10000 | 1.10300 | 45 | Earlier complete session |
| D0 | 2026-08-11 21:00 | 1.10300 | 1.10500 | 1.10100 | 1.10400 | 40 | Selected strict NR7; not an Inside Bar |
6. Define one later daily signal window and one opportunity
The signal window is 2026-08-11 21:00 to 2026-08-12 21:00 UTC. Eligible completed H4 closes are 2026-08-12 01:00, 05:00, 09:00, 13:00 and 17:00: five closes strictly before the daily endpoint. The H4 close at 21:00 is outside the entry window. No eligible event means expiry, not an extension into another day.
Use one opportunity and at most one entry request per reference, with at most one model position. At reference validation, an open model position or unresolved order blocks activation for that reference; do not wait for it to clear mid-window. Consume the first strict closing event before later quote/account rejections. Consecutive NR7 days can be evaluated only after the previous window has ended and exposure is resolved. The swing guide explains the distinct holding clock.
7. Cancel a two-sided move without guessing its order
Set upper threshold U = H + 2.0 pips = 1.10520 and lower threshold D = L − 2.0 pips = 1.10080. From the window opening through entry, track strict Bid excursions above U and below D, including wicks. If both occur before entry, reject the reference. A single H4 bar spanning both thresholds is rejected even if its close appears attractive; OHLC cannot establish a favourable intrabar sequence.
Check every completed window bar. After the last close, require observed Bid ticks or valid running high/low coverage through the first entry quote; unknown coverage means rejection. Forming data may cancel a setup but cannot confirm a closed-bar entry. This is a pre-entry rule; after an actual fill, keep the real position and apply its fixed protection and exit lifecycle instead of deleting a trade retrospectively.
8. Use the first strict closing break, with an extension limit
BUY requires completed Bid close C > 1.10520; SELL requires C < 1.10080. The first H4 has high 1.10520, low 1.10350 and close 1.10520: equality does not trigger. The second has high 1.10560, low 1.10480 and close 1.10540 at 2026-08-12 05:00 UTC: the first strict break, 4 pips above H. Both lows stay above D. Earlier one-sided wicks are not entry signals, but remain relevant to two-sided cancellation.
Reject a first strict closing break more than 20.0 pips beyond its frozen range edge; do not replace it with a later close. Permit signal timestamps only Monday through Thursday in UTC. A first break outside those days consumes the opportunity. A rejected first event cannot switch direction later. Each eligible close has a 60-second quote deadline, and entry must still be before the daily window ends.
9. Evaluate the first subsequent quote once
Suppose the signal history becomes valid at 05:00:04 and the first later quote at 05:00:05 is Bid 1.10550 / Ask 1.10560. BUY uses Ask. Spread is 1.0 pip and absolute drift from C is 2.0 pips. Require spread ≤ 1.5 pips, drift ≤ 3.0 pips, quote elapsed time 0–2 seconds by a verified clock, and t < 05:01:00. Equality at expiry fails. Bid must still be above U for BUY, below D for SELL.
Assume valid running Bid low 1.10540 and high 1.10550 through that quote. Apply all filters to it, without shopping for another. Check cancellation history, tick rounding, minimum/step, margin, permissions, stop distances and available account risk. MODE_STOPLEVEL zero does not guarantee acceptance. A rejected request does not earn another entry. Persist the reference and order state across restarts; reconcile an uncertain account response before further action rather than blindly resending.
10. Size from the fixed opposite edge and planned costs
For BUY freeze E = 1.10560 and S = L − 2.0 pips = 1.10080: 48 pips of price risk, within the allowed 20–120. Add round-trip commission 0.6 pip, combined adverse-fill allowance 1.0 pip (0.5 entry and 0.5 exit) and holding-cost allowance 2.0 pips. Total 48 + 0.6 + 1.0 + 2.0 = 51.6 pips, USD 516 per lot. Do not add spread again.
Equity USD 8000 and risk budget 0.5% give USD 40. Raw volume 40 / 516 ≈ 0.077519 lot; minimum and step 0.01 give 0.07 lot after rounding down, planning USD 36.12 loss. Skip if minimum, margin or existing exposure prevents the plan. Use contract-specific funding estimates; if the 2.0-pip allowance cannot reasonably cover the specified hold, skip. Gaps, rate changes and failed exits can still exceed reserves. This is not a loss cap.
11. Fix the target and check the actual entry
Set T = E + 2 × 48 pips = 1.11520 before requesting entry. Keep S/T fixed: no trailing, break-even move, partial close, averaging or opposite hedge. Gross target distance is 96 pips; planned net reward after 0.6 + 1.0 + 2.0 pips is 92.4 pips. The ratio 92.4 / 51.6 ≈ 1.791 exceeds the minimum 1.5; a price target of 2.0R is not net 2.0R.
After a fill, adverse entry slippage above 0.5 pip fails the model. Recheck actual distance, account budget and net ratio using the actual entry and only the remaining 0.5-pip exit allowance, commission and funding, without moving S/T. A violating fill or unverified protection requires a real emergency-close state, not removal from the results or another entry. The 1-2-3 reversal strategy is a separate pivot model, not an extra filter here.
12. Reconcile a fictional closed BUY without duplicate charges
Assume 0.07 lot actually fills at Ask 1.10560 and exits at Bid 1.11520 on 2026-08-13 at 10:00 UTC. The 96-pip price gain is USD 67.20. Actual round-trip commission −USD 0.42 and total booked swap −USD 0.84 leave 67.20 − 0.42 − 0.84 = USD 65.94. These hypothetical fills and charges are not performance evidence.
Spread is already present in the Ask-to-Bid fills. Unused slippage and holding reserves are not additional booked fees. OrderProfit excludes swap and commission, so reconcile signed actual components once. The swap and rollover guide explains why actual contract calendars, rates and charged days govern the ledger, not a universal daily or Wednesday multiplier.
| Booked item | USD | Treatment |
|---|---|---|
| Actual fill-to-fill price gain | +67.20 | 96 pips at 0.07 lot |
| Round-trip commission | −0.42 | Actual signed charge |
| Booked swap | −0.84 | Actual cumulative funding, counted once |
| Realised net result | +65.94 | 67.20 − 0.42 − 0.84 |
| Unused planning reserves | 0.00 | No additional booked charge |
13. Keep the signal clock separate from the exit clock
Once filled, exit on the first of stop, target, the second subsequent D1 boundary after actual entry, or the Friday cutoff. Entry 2026-08-12 05:00:05 gives boundaries 2026-08-12 21:00 and 2026-08-13 21:00 UTC. The second is before Friday 2026-08-14 20:45 UTC. If a holding deadline instead falls at Friday 21:00, the 20:45 cutoff wins. An announced earlier weekly close moves that cutoff to 15 minutes before it.
The signal window ending does not automatically close a filled position; the separately fixed holding rules do. A time condition requests the first tradable quote at or after its deadline, without guaranteeing a fill at that timestamp. If closure is unconfirmed, preserve the close-due state and use controlled, reconciled exit handling until flat is verified. Block new entries. A restart or new day does not erase holding time, actual exposure or a failed weekend exit.
14. Mirror SELL with the correct execution side
In an independent alternative, use the same frozen H = 1.10500 and L = 1.10100, but C = 1.10060 < 1.10080. The first subsequent quote Bid 1.10040 / Ask 1.10050 has spread 1.0 pip and drift 2.0 pips. SELL enters at Bid 1.10040. This is a separate possible history, not permission to enter both directions from the same reference.
Freeze S = H + 2.0 pips = 1.10520 and T = 1.10040 − 2 × 48 pips = 1.09080. Price risk is 48 pips and target distance 96. Apply the same calendar, two-sided checks, costs, sizing and holding rules. Selection and pre-entry excursions use Bid, while SELL exits and stop/target fills use Ask. Keep the account ledger consistent with those actual price sides.
15. Test rejected references as well as executed trades
Reconstruct seven valid daily sessions, strict ties, tick-based range widths, the recorded opening gap and the exact next-day window in chronological order. Test missing/short sessions, late activation, equal closes, two-sided bars, excessive first breaks, late quotes, failed orders and close-due positions. Do not fill at a historical close that only produced a decision after that close became available.
For a held bar touching both stop and target, use sufficient quote history or explicitly label a conservative unresolved-path rule; do not choose the profitable order. Include actual or stated financing, commission, adverse fills, time changes and restarts. The MT4 backtesting guide supplies general checks. Keep development, untouched later testing and forward observation separate; a small positive sample does not establish viability.
16. Use a reproducible selection, entry and exit checklist
Verify complete daily inputs, strict NR7, width bounds, original H/L, opening gap, data availability and account state. Then verify the five scheduled closes, cumulative two-sided history, first strict break, extension, weekday, first later quote, fixed expiry, volume and protection. During the position, track actual costs and the earliest exit independently of later chart annotations.
Record every skipped reference and real execution. Changing the tie rule, clock, confirmation or cost assumptions creates a new version that needs new validation. The objective is a traceable model, not a claim that a narrow day is safe or profitable. No statistics are invented, and nothing demonstrates that a commercial EA on this site implements the model or would achieve the illustrative result.
Frequently asked questions
Does an equal smallest range qualify as NR7 here?
No. D0 must be strictly narrower than each of the six earlier complete sessions. A tied minimum fails this model, even if another published NR7 convention accepts ties. All seven observations must be valid.
Must an NR7 candle be an Inside Bar?
No. The example has D0 high 1.10500 above D−1 high 1.10450 while its 40-pip range is the narrowest. Containment, ATR ranking and band compression are separate tests.
Does a close exactly at the breakout threshold trigger entry?
No. BUY needs C > 1.10520. The first equal close does not trigger; 1.10540 is the first strict break. If that first event fails a later filter, it cannot be replaced within the window.
What if both sides break before entry?
Reject the reference, including a bar that crosses both buffered thresholds. A favourable close does not establish the intrabar order. After a real fill, manage the actual position; do not retroactively cancel it from the record.
Why is the illustrated volume 0.07 lot?
USD 40 divided by USD 516 planned loss per lot is about 0.077519 lot. Rounding down to the 0.01 step gives 0.07 lot and USD 36.12 planned loss. This is a budgeting assumption, not guaranteed maximum loss.
Does the one-day signal window mean closing at that day’s end?
No. It limits new signals. A filled position follows its separately defined stop, target, second subsequent D1 boundary and Friday rule. The example’s boundaries are 2026-08-12 21:00 and 2026-08-13 21:00 UTC. Unconfirmed closure remains real exposure.
Sources and educational notes
StockCharts documents the general narrow-range concept associated with Toby Crabel; MetaQuotes documents market-order price and protection constraints. The tie rule, Forex clock, H4 confirmation, quote gates and multi-day holding lifecycle below are an original educational research extension, not a reproduction of Crabel’s results. Every date, candle, quote, cost and result is fictional. No historical profitability, backtest, guaranteed fill or commercial-EA implementation is established.
Educational research model. Prices, candles, calendars, settings and results are fictional. Forex involves risk. No backtest, guaranteed execution, maximum loss or future performance is established.