Article contents
- Evidence and scope
- Illustration
- Process
- A polarity change needs a complete history
- From a known block to a new retest candidate
- Volume distinguishes hypotheses about the break and return
- Synthetic winner and failure at the same zone
- Order choice and number of attempts
- Compare the breaker with ordinary support/resistance retests
- Common pitfalls
- Practical checklist
- Frequently asked questions
- Research sources
Evidence and scope
The original implementation describes polarity changes and explicitly identifies backpainted historical labels. The proposed trading rules have no independently verified performance record.
Practical workflow
- Start with a known blockRetain its zone and publication timestamp.
- Observe invalidationRequire a close beyond the far boundary and buffer.
- Create a breakerUse a new ID linked to the original parent.
- Evaluate the first retestApply the selected rejection and entry rule.
- Exit or cancelKeep the predetermined stop, target and lifetime.
A polarity change needs a complete history
A bearish order block was previously monitored as resistance. A clear close above it invalidates that old resistance hypothesis. A bullish breaker asks a new question: will the first later return hold the zone from above? A failed bullish block creates the corresponding bearish hypothesis below the zone.
LuxAlgo describes breaker polarity and warns that Historical Polarity Changes labels are backpainted [1]. An attractive historical label is therefore not sufficient proof of a signal available at that moment. Platform timing documentation helps distinguish display location from information availability [2].
The breaker does not demonstrate that earlier sellers must now buy at the zone. That narrative can motivate a hypothesis, but OHLCV records price, activity and time rather than participant identity. Creating a new zone state must never erase the loss of the original block trade.
From a known block to a new retest candidate
Start with a previously published bearish block[a,b]. Freeze A=ATR14 from before the break and buffer=max(2 ticks,0.10A). Once the close of bar t is received and C[t]>b+buffer, mark the original block INVALIDATED and create a bullish breaker at the same coordinates with parent_ob_id. The new candidate is eligible for entry from t+1. The buffer and a sample 20-bar TTL are research choices.
Require evidence that price traded fully above the zone after the break before assessing a return. A retest intersects the zone, with low≤b+buffer and high≥a, then closes above b+buffer within at most three bars. A first-touch version consumes the opportunity at that initial approach; it cannot call a prettier fourth return the first touch. Cancel if a close falls below a−buffer before confirmation.
One variant requires accompanying BOS, MSS or displacement; another requires only the block invalidation. Register these separately to measure the structure filter. If break and apparent retest occur inside the same creation candle, OHLC lacks the sequence needed for a post-publication entry. The close-based version does not trade inside that candle.
Store a new event ID while retaining the original block boundaries and failure timestamp. A single mutable object whose direction flips from bearish to bullish can otherwise make reports show only the successful final interpretation. Event lineage is part of the research design, not just bookkeeping.
EXPIRED, INVALIDATED and CONSUMED are terminal for that breaker. Canceling an order is insufficient if the detector can reconsider the same zone on a later bar; a late reclaim cannot revive a failed candidate. Record fills that occurred while an order was live before applying the state transition at the close.
on_close(t):
process_existing_order_events_until_close(t)
for br in active_bullish_breakers_eligible_before_bar(t):
if expired(br):
br.state = EXPIRED; cancel_future_orders(br); continue
if C[t] < br.low-br.buffer:
br.state = INVALIDATED; cancel_future_orders(br); continue
if first_retest_confirmed(br,t):
signal_for_next_quote_once(br); br.state = CONSUMED
A = ATR14[t-1]
if not finite_positive(A): return
buffer = max(2*tick,0.10*A)
for ob in active_bearish_OBs_published_before_bar(t):
if C[t] > ob.high+buffer:
invalidate_once(ob,at=t)
create_breaker_once(parent=ob.id,known_at=received_close_time(t),
eligible=t+1,buffer=buffer,expiry=t+20)
# Terminal breakers cannot revive; a failed parent creates at most one child.
Volume distinguishes hypotheses about the break and return
Measure RVOL at the break separately from volume during an equal-duration retest. A high-volume break followed by a quiet return may fit a declining-selling-pressure hypothesis, but may also reflect a normal midday slowdown. Use same-time baselines and never use the completed day’s volume in a morning decision.
OB, breaker and BOS can belong to one price sequence. Do not award independent risk allocations merely because the event has several names. An event family can share one fixed budget across related entries. CVD is an additional feature only when its trade classification is reliable; candle color does not reconstruct delta.
Retests with heavy volume should also remain in the sample. A strong response after possible absorption can involve substantial activity, which conflicts with a strict dry-up condition. Test those mechanisms as separate branches rather than changing the explanation after a winner is visible.
Synthetic winner and failure at the same zone
A bearish block[100,102] is already known. With reference ATR=2 and tick=0.05, the buffer is 0.20. A close at 102.50 creates the bullish breaker. Price later reaches 104, returns to a low of 101.80 and closes 102.40. Buying at the next executable quote 102.45, with stop 99.80 and target 107.75, gives risk 2.65 and reward 5.30, or 2R before costs.
If the next known structural target is only 104.50, that wide protection may leave inadequate reward. Reject according to a rule selected in advance. Do not move the stop up to 101.80 after learning it was the successful retest low unless the original entry model explicitly used that already observed low.
In a failure path, the first return closes 99.70. The confirmation version never enters and cancels. A limit already resting at 102 may have filled and then exited at 99.75, losing 2.25. Any earlier short entered from the original bearish block retains its own result. Reporting only the later breaker winner would misrepresent the complete sequence.
Order choice and number of attempts
Choose either confirmation followed by the next quote, or a limit at a predetermined boundary or midpoint before the touch. A candle that visits the zone and closes favorably does not authorize the best possible limit price while unfavorable limit fills are omitted. Fill and protection behavior must match the venue [3].
Expiry, a break beyond the far edge or a predeclared opposing structure condition can cancel a waiting candidate. For an open position, a hard stop and a close-based exit are different actions. Waiting for a close does not prevent an already active protective stop from filling.
A proposed baseline allows one attempt per parent block and one position per event family. If re-entry is permitted, treat it as a new trade and retain cumulative costs. Choose the target as a known opposing swing or a fixed R multiple before the future path is observed.
Testing a tighter local stop is useful, but it changes the hypothesis being traded. It may improve nominal reward/risk while increasing stop frequency and the fraction of risk consumed by the spread. Compare actual net outcomes, not only the distance between entry and target on the winning chart.
Compare the breaker with ordinary support/resistance retests
A useful control is breakout-retest at a level without an order-block history, matched by zone width, age, break strength and entry distance. If the breaker does not improve outcomes after matching, its useful element may be the retest rather than the origin of the block.
Report the complete denominator: original blocks, invalidations, later retests, confirmations and fills. Preserve zones removed from the final chart. Prefix replay must establish that historical polarity labels never entered the decision process before they were known.
Split chronologically and keep every descendant of one parent in the same validation fold. Evaluate nearby TTLs, buffers, first-touch rules and cost assumptions. A single successful post-event chart does not estimate the win probability of the full state machine, especially when the parent block first generated a loss.
Common pitfalls
Deleting the original losing trade
A later breaker winner does not cancel the preceding block loss.
Entering at the historical anchor
A zone drawn into the past was not necessarily tradable there.
Several names multiply one risk
BOS, breaker and retest can describe one underlying event.
Checklist before using this method
Check each item after verifying it on your data. Progress is saved in this browser; it does not certify a profitable strategy.
Frequently asked questions
Should every invalidated block be traded as a breaker?
No. Invalidation creates a candidate; absent retest, expiry or another invalidation can prevent any entry.
Must there be a prior liquidity sweep?
Not in this polarity-based baseline. Requiring a sweep creates an additional version that needs its own test.
Research sources
Each source supports the definition or evidence described beside it. The pseudocode, synthetic examples and proposed parameters require separate validation.
- Order Blocks & Breaker BlocksLuxAlgo. Read the original description and historical-label backpainting warning; no verified track record. Checked: .
- RepaintingTradingView. Consulted information timing and display behavior. Checked: .
- Futures Order TypesCME Group. Consulted order mechanics to distinguish confirmation from fills. Checked: .
Related methods
Risk note
This content supports education and research design, not financial advice. Backtest is historical simulation, does not guarantee future performance and does not place real trades. Methods in this library are not automatically features available in the app. See methodology and learning center.
Validate rules before risking real capital
Check app support, data and individual simulated trades; advanced detectors may require a separate implementation.
Download Backtest on the App Store