Video: Read Price Action Like a Pro in 30 Minutes
Creator: IPDATrader
Original Video: Watch the original video
Difficulty: Advanced
The Big Idea
A candle is an observation inside a larger decision. IPDATrader combines market state, meaningful levels, a daily range reference, and Fibonacci confluence. The useful lesson is to explain why an area matters before deciding what a candle there permits you to do. A role flip remains a hypothesis until price responds, and even a convincing response can fail.
Start With the Job of Each Observation
The source asks whether price is advancing, declining, or moving sideways. That state gives a candle context: a large bearish candle after an extended advance asks a different question from the same candle during a sustained decline. State describes the current chart; it does not reveal how long the phase will last.
Next comes a level left by earlier turning points. The presenter then adds daily ATR boundaries and selected retracement ratios. These inputs perform different jobs: state describes behavior, the level identifies location, and the other references refine a hypothesis about that location. None independently supplies a complete entry, invalidation, or exit.
| Layer | Useful question | A conclusion to avoid |
|---|---|---|
| State | Which side has recently made and retained progress? | The current phase must continue. |
| Level | Where did prior responses occur? | Every visible swing is equally meaningful. |
| Daily range reference | Is this location near an unusually extended area under a defined formula? | The day cannot move any farther. |
| Fibonacci | Does a consistently anchored ratio overlap the area? | Several related price calculations multiply into a known success rate. |
| Reaction | What has price actually done at the planned area? | A completed response guarantees the next move. |
A Level Is an Area With a History
The creator allows turning points near one another rather than requiring perfectly identical highs or lows. He assesses the number of reactions, their sharpness and persistence, and time spent reacting around the area. That is a richer definition than drawing a line through one convenient candle.
To make the judgment reviewable, write a price band, the observation window, and which reactions were counted. If a response is called sharp, record its distance and how quickly it occurred. If it is called sustained, record how long price remained away. Those measurements are original research definitions; the source does not prescribe universal cutoffs.
More reactions can make an area more visible, but visibility does not establish that enough unexecuted orders remain to hold it. Orders can be added, canceled, or executed between visits. The source favors repeatedly demonstrated levels; that is a testable selection preference, not proof that every additional touch strengthens support.
Separate a Break From a Role Flip
A close through an old high makes a possible resistance-to-support change worth investigating. It does not complete that change by itself. A later return from above provides a different observation: whether price can hold near the area and respond upward. Reverse the direction for a former support area being tested as resistance.
The video’s rounded retests include some depth and unevenness. An exact touch of a line is not essential to that discretionary reading. A mechanical baseline needs a declared tolerance, however, or a reviewer can keep enlarging the zone until each historical example fits.
A failed role flip is informative too. If a completed return closes decisively back through the area, preserve that invalidation. Do not move the line to the next wick and continue treating the original hypothesis as untouched. Also keep breaks that never return; they explain what a retest requirement excludes.
ATR Measures Historical Movement, Not a Daily Speed Limit
The source prefers a twenty-day ATR input and describes projected upper and lower daily areas as leading references. A reference can be available before a session without predicting the session’s final extremes. ATR is calculated from historical true ranges; it is not evidence that an expansion day must stop at the average.
True range considers the largest of the high-to-low distance and the distances from the previous close to the current high or low. The resulting ATR is a smoothed historical range measure. Its reset time, data feed, smoothing, and projection anchor matter when turning that measurement into chart levels.
The transcript names a particular daily-ATR tool but does not provide its complete band formula. We cannot reproduce that proprietary display exactly from the spoken input length alone. Our indicator instead uses a clearly labeled original construction: previous daily close plus or minus half the previous completed daily ATR(20). This creates a band whose total width is one prior ATR; it is not claimed to be the creator’s formula.
A daily band is a scenario reference
Assume a fictional prior daily close of 100 and completed daily ATR of 4. These are our illustrative values.
| Step | Observation or calculation | Meaning |
|---|---|---|
| Original upper reference | 100 + 0.5 × 4 = 102 | A location to compare with prior structure. |
| Original lower reference | 100 − 0.5 × 4 = 98 | A second location, not a guaranteed low. |
| Possible session movement | From 100 down to 96 | A two-ATR displacement from the close is possible; 98 is not a floor. |
| Level at 98.10 | Near the lower projection | The overlap motivates a question about response, not automatic buying. |
The presenter explicitly acknowledges news-driven days moving beyond an ordinary range. His broader description of forex as mean reverting should also be treated as a working hypothesis for selected markets and conditions, not a universal property that rules out sustained trends. A scheduled event is not the only possible source of unusual movement.
Confluence Helps Organize a Decision; It Does Not Calibrate It
The source uses approximately 38, 50, and 61–62 percent retracement references from a chosen swing low to swing high. Exact anchors and ratio conventions still matter. For an upward move from 96 to 104, a 50% retracement is 100; a 61.8% retracement is 99.056. A nearby old high could make that area worth investigating without proving a probability.
A swing level, a retracement of that same move, and a volatility calculation derived from the same price history can be related evidence. Calling them three reasons does not mean their probabilities can be multiplied or that the combined setup is three times as reliable. Test their incremental contribution on matched observations.
The source also describes sweeping the opposite side of a range before a forceful break and retest. That sequence can be measured on candles. The claim that the entire order book has been cleared or all sellers are trapped cannot be established from those candles. A chart records executed prices; it does not reveal every participant’s remaining position or intention.
Choose the Entry Policy Before Looking at the Bounce
The presenter permits either entering at the area or waiting for convincing price action. These are different policies. A resting order can fill before a later candle proves rejection; a confirmation entry waits for information but may pay a worse price or never trigger.
The same level can offer different economics
These fictional long-side proposals use stop 97.50 and target 101.50, omitting costs and execution gaps.
| Step | Observation or calculation | Meaning |
|---|---|---|
| Area entry at 98.50 | Risk 1.00; reward 3.00 | Nominal target space 3R, but no rejection is yet confirmed. |
| Later confirmation fill at 99.50 | Risk 2.00; reward 2.00 | Only 1R remains to the same objective. |
| A $100 planned budget | 100 units versus 50 units | Size must change if the money budget is held constant. |
| No return to the area | The first order might remain unfilled | Do not count an attractive unexecuted idea as a trade. |
What the Companion Indicator Operationalizes
The code keeps the latest confirmed swing high and low, using three bars on each side by default. A pivot becomes usable after confirmation, never at its original turning bar. A close through a known pivot freezes a candidate role-flip level and an ATR-based tolerance. A separate later candle must touch that area and close in the breakout direction with the matching body color.
One candidate is tracked at a time. Its reference stays frozen while later pivots update only background context. A close beyond the adverse tolerance or a thirty-bar deadline retires it. A qualifying response consumes it, and another candidate cannot replace it on the same retirement bar. These choices alter which observations are included and are our definitions.
The optional daily-band filter is off by default. If enabled, a bullish level must sit near or below the lower original daily reference, while a bearish level must sit near or above the upper reference. The daily values use the last completed daily candle, as described in TradingView’s higher-timeframe timing documentation (paid link). Their delay is intentional. The script does not also require the source’s sweep, level-strength history, Fibonacci overlap, or a manually judged market phase.
Pine Script Indicator
View Pine Script Indicator Code
//@version=6
// Guide: https://candlechasers.com/price-action-role-flip-atr-context/
// Original educational indicator. No orders or performance simulation.
indicator("CC Role Flip and Daily ATR Context", overlay=true)
strength = input.int(3, "Confirmed pivot bars", minval=1, maxval=10)
life = input.int(30, "Retest deadline / chart bars", minval=1)
near = input.float(0.25, "Retest tolerance / prior ATR", minval=0)
useDaily = input.bool(false, "Require original daily-band proximity")
width = input.float(0.5, "Prior daily ATR around prior daily close", minval=0.1)
[dclose, datr] = request.security(syminfo.tickerid, "1D", [close[1], ta.atr(20)[1]], lookahead=barmerge.lookahead_on)
valid = chart.is_standard and timeframe.in_seconds() < timeframe.in_seconds("1D")
u = dclose + datr * width
l = dclose - datr * width
a = ta.atr(14)
ph = ta.pivothigh(high, strength, strength)
pl = ta.pivotlow(low, strength, strength)
var float knownH = na
var float knownL = na
var int direction = 0
var int born = na
var float level = na
var float tol = na
bool buy = false
bool sell = false
if valid and barstate.isconfirmed
bool occupied = direction != 0
if occupied
if bar_index - born > life or (direction == 1 and close < level - tol) or (direction == -1 and close > level + tol)
direction := 0
else if bar_index > born
bool touch = low <= level + tol and high >= level - tol
buy := direction == 1 and touch and close > level and close > open and (not useDaily or level <= l + tol)
sell := direction == -1 and touch and close < level and close < open and (not useDaily or level >= u - tol)
if buy or sell
direction := 0
if not occupied
if not na(knownH) and close > knownH and close[1] <= knownH
direction := 1
level := knownH
born := bar_index
tol := a[1] * near
else if not na(knownL) and close < knownL and close[1] >= knownL
direction := -1
level := knownL
born := bar_index
tol := a[1] * near
// New pivots become usable only AFTER this bar's event checks.
if not na(ph)
knownH := ph
if not na(pl)
knownL := pl
plot(knownH, "Confirmed swing high context", color=color.new(color.red, 65), style=plot.style_stepline)
plot(knownL, "Confirmed swing low context", color=color.new(color.teal, 65), style=plot.style_stepline)
plot(valid ? u : na, "Original prior-close + half prior daily ATR", color=color.orange)
plot(valid ? l : na, "Original prior-close - half prior daily ATR", color=color.orange)
plot(direction != 0 ? level : na, "Frozen role-flip candidate", color=color.blue, linewidth=2, style=plot.style_linebr)
plotshape(buy, "Completed bullish retest response", shape.triangleup, location.belowbar, color.aqua)
plotshape(sell, "Completed bearish retest response", shape.triangledown, location.abovebar, color.orange)
alertcondition(buy or sell, "Role-flip response", "CC: completed later response at frozen role-flip candidate. Not a fill or profitability claim.")
var table panel = table.new(position.top_right, 1, 2, bgcolor=color.new(color.black, 10))
if barstate.islast
table.cell(panel, 0, 0, not valid ? "Use STANDARD intraday candles" : direction == 0 ? "Waiting for completed swing break" : "Frozen level: waiting for later response", text_color=color.white)
table.cell(panel, 0, 1, "Original daily-band formula | ATR filter " + (useDaily ? "ON" : "OFF") + " | no fib or order-book model", text_color=color.white, text_size=size.small)
What This Indicator Shows
The overlay displays confirmed swing references and the original daily-band construction on standard intraday candles. A frozen line and status panel show the active role-flip candidate. Triangles identify completed later responses, not touch entries or filled orders. Reference plots remain useful while no marker qualifies. The optional daily proximity test is an added experiment, not a clone of the named source tool.
What This Indicator Does Not Show
It does not recover the original ATR tool’s undisclosed formula, score reaction history, infer an emptied order book, identify institutional intent, or calculate Fibonacci confluence. The baseline has no independent trend-state filter, position sizing, protective orders, or target management. It is not a profitability test. Prior confirmed daily values and delayed pivots intentionally omit information unavailable at the decision time.
Setup and Validation
Paste the complete code into TradingView’s Pine Editor, save it, and add it to the chart. Use the chart type, timeframe, and context described above, then inspect the status panel and reference plots before expecting a marker. Use Once Per Bar Close for the supplied alert conditions and recreate alerts after changing code or settings. No alert submits an order.
Validation status: Statically reviewed for completed-bar timing, source-versus-proxy distinctions, future-data use, state behavior, reference replacement and expiry, and visible output. This code has not been compiled or chart-tested in TradingView here. No historical performance or live-execution results are claimed. Use replay to check the described behavior and report any compiler or runtime message exactly.
Practice: Build the Location Before Revealing the Reaction
On a hidden historical segment, mark one prior area, its width, and the observations that made it important. Record the time when the level and any daily reference became known. Choose area-entry or confirmation-entry policy and save the invalidation and objective. Reveal subsequent bars one at a time, preserving no-return cases, failed responses, and differences between the proposed entry and an actual available fill.
Research and Comparison Lab
These are original proposed experiments, not results established by the source. Change one main feature at a time, retain failures and missing opportunities, and reserve later observations for evaluation rather than repeatedly selecting rules from the same outcomes.
Does the daily reference add value?
Compare the same role-flip candidates with the optional band filter off and on. Keep pivots, tolerance, response, management, dates, and costs fixed. Measure excluded candidates, available reward, and subsequent excursions. If it helps only in one selected period, do not call that universal mean reversion.
How much does tolerance change classification?
Compare 0.1, 0.25, and 0.5 prior ATR around the same frozen levels. Keep the response rule unchanged. Record whether wider areas admit deeper failed returns as well as extra successful responses.
Does an extra Fibonacci overlap add information?
Predeclare one anchor rule and ratio set, then compare matched candidates with and without that overlap. Keep the range reference and entry policy unchanged. Include opportunities rejected by the added condition and evaluate later observations.
Check Your Understanding
Can equal-looking candles have different context? Yes. State and location change the question they pose.
Is a pivot known at its turning candle? Not with a confirmed-pivot rule; later bars are required.
Does ATR prevent another large move? No. It measures historical movement.
Is our daily-band formula the named source tool? No. It is a transparent original approximation.
Can three price-derived references be treated as independent probabilities? No. Their contribution must be investigated rather than assumed.
Final Takeaway
The source connects location with response instead of treating candle shape as a complete decision. Make the level, timing, range formula, and entry policy explicit, then ask whether each added condition changes outcomes after realistic execution.
Risk Disclosure
This material is educational and is not personalized financial, investment, or trading advice. Trading can cause substantial losses. Source-reported results, hypothetical examples, and probability illustrations do not establish future performance. Calculations depend on their assumptions and omit costs unless stated. Commissions, spread, slippage, gaps, leverage, liquidity, borrowing, financing, and changing market conditions can materially affect outcomes. Indicators do not simulate broker execution or establish profitability. Short exposure can involve losses beyond the initial sale value. Evaluate any approach with appropriate data, realistic costs, and explicit risk limits before considering live use.
This is an independent educational companion and is not affiliated with, sponsored by, endorsed by, or authorized by the source creator, channel, or TradingView.