Session Open Range, Breakout & Trap Framework - TrendPredator OBSession Open Range, Breakout & Trap Framework — TrendPredator Open Box
Stacey Burke’s trading approach combines concepts from George Douglas Taylor, Tony Crabel, Steve Mauro, and Robert Schabacker. His framework focuses on reading price behaviour across daily templates and identifying how markets move through recurring cycles of expansion, contraction, and reversal. While effective, much of this analysis requires real-time interpretation of session-based behaviour, which can be demanding for traders working on lower intraday timeframes.
The TrendPredator indicators formalize parts of this methodology by introducing mechanical rules for multi-timeframe bias tracking and session structure analysis. They aim to present the key elements of the system—bias, breakouts, fakeouts, and range behaviour—in a consistent and objective way that reduces discretionary interpretation.
The Open Box indicator focuses specifically on the opening behaviour of major trading sessions. It builds on principles found in classical Open Range Breakout (ORB) techniques described by Tony Crabel, where a defined time window around the session open forms a structural reference range. Price behaviour relative to this range—breaking out, failing back inside, or expanding—can highlight developing session bias, potential trap formation, and directional conviction.
This indicator applies these concepts throughout the major equity sessions. It automatically maps the session’s initial range (“Open Box”) and tracks how price interacts with it as liquidity and volatility increase. It also incorporates related structural references such as:
* the first-hour high and low of the futures session
* the exact session open level
* an anchored VWAP starting at the session open
* automated expansion levels projected from the Open Box
In combination, these components provide a unified view of early session activity, including breakout attempts, fakeouts, VWAP reactions, and liquidity targeting. The Open Box offers a structured lens for observing how price transitions through the major sessions (Asia → London → New York) and how these behaviours relate to higher-timeframe bias defined in the broader TrendPredator framework.
Core Features
Open Box (Session Structure)
The indicator defines an initial session range beginning at the selected session open. This “Open Box” represents a fixed time window—commonly the first 30 minutes, or any user-defined duration—that serves as a structural reference for analysing early session behaviour.
The range highlights whether price remains inside the box, breaks out, or rejects the boundaries, providing a consistent foundation for interpreting early directional tendencies and recognising breakout, continuation, or fakeout characteristics.
How it works:
* At the session open, the indicator calculates the high and low over the specified time window.
* This range is plotted as the initial structure of the session.
* Price behaviour at the boundaries can illustrate emerging bias or potential trap formation.
* An optional secondary range (e.g., 15-minute high/low) can be enabled to capture early volatility with additional precision.
Inputs / Options:
* Session specifications (Tokyo, London, New York)
* Open Box start and end times (e.g., equity open + first 30 minutes, or any custom length)
* Open Box colour and label settings
* Formatting options for Open Box high and low lines
* Optional secondary range per session (e.g., 15-minute high/low)
* Forward extension of Open Box high/low lines
* Number of historic Open Boxes to display
Session VWAPs
The indicator plots VWAPs for each major trading session—Asia, London, and New York—anchored to their respective session opens. These session-specific VWAPs assist in tracking how value develops through the day and how price interacts with session-based volume distributions.
How it works:
* At each session open, a VWAP is anchored to the open price.
* The VWAP updates throughout the session as new volume and price data arrive.
* Deviations above or below the VWAP may indicate balance, imbalance, or directional control.
* Viewed together, session VWAPs help identify transitions in value across sessions.
Inputs / Options:
* Enable or disable VWAP per session
* Adjustable anchor and end times (optionally to end of day)
* Line styling and label settings
* Number of historic VWAPs to draw
First Hour High/Low Extensions
The indicator marks the high and low formed during the first hour of each session. These reference points often function as early control levels and provide context for assessing whether the session is establishing bias, consolidating, or exhibiting reversal behaviour.
How it works:
* After the session starts, the indicator records the highest and lowest prices during the first hour.
* These levels are plotted and extended across the session.
* They provide a visual reference for observing reactions, targets, or rejection zones.
Inputs / Options:
* Enable or disable for each session
* Line style, colour, and label visibility
* Number of historic sessions displayed
EQO Levels (Equity Open)
The indicator plots the opening price of each configured session. These “Equity Open” levels represent short-term reference points that can attract price early in the session.
Once the level is revisited after the Open Box has formed, it is automatically cut to avoid clutter. If not revisited, the line remains as an untested reference, similar to a naked point of control.
How it works:
* At session open, the open price is recorded.
* The level is plotted as a local reference.
* If price interacts with the level after the Open Box completes, the line is cut.
* Untested EQOs extend forward until interacted with.
Inputs / Options:
* Enable/disable per session
* Line style and label settings
* Optional extension into the next day
* Option for cutting vs. hiding on revisit
* Number of historic sessions displayed
OB Range Expansions (Automatic)
Range expansions are calculated from the height of the Open Box. These levels provide structured reference zones for identifying potential continuation or exhaustion areas within a session.
How it works:
* After the Open Box is formed, multiples of the range (e.g., 1×, 2×, 3×) are projected.
* These expansion levels are plotted above and below the range.
* Price reactions near these areas can illustrate continuation, hesitation, or potential reversal.
Inputs / Options:
* Enable or disable per session
* Select number of multiples
* Line style, colour, and label settings
* Extension length into the session
Stacey Burke 12-Candle Window Marker
The indicator can highlight the 12-candle window often referenced in Stacey Burke’s session methodology. This window represents the key active period of each session where breakout attempts, volatility shifts, and reversal signatures often occur.
How it works:
* A configurable window (default 12 candles) is highlighted from each session open.
* This window acts as a guide for observing active session behaviour.
* It remains visible throughout the session for structural context.
Inputs / Options:
* Enable/disable per session
* Configurable window duration (default: 3 hours)
* Colour and transparency controls
Concept and Integration
The Open Box is built around the same multi-timeframe logic that underpins the broader TrendPredator framework.
While higher-timeframe tools track bias and setups across the H8–D–W–M levels, the Open Box focuses on the H1–M30 domain to define session structure and observe how early intraday behaviour aligns with higher-timeframe conditions.
The indicator integrates with the TrendPredator FO (Breakout, Fakeout & Trend Switch Detector), which highlights microstructure signals on lower timeframes (M15/M5). Together they form a layered workflow:
* Higher timeframes: context, bias, and developing setups
* TrendPredator OB: intraday and intra-session structure
* TrendPredator FO: microstructure confirmation (e.g., FOL/FOH, switches)
This alignment provides a structured way to observe how daily directional context interacts with intraday behaviour.
See the public open source indicator TP FO here (click on it for access):
Practical Application
Before Session Open
* Review previous session Open Box, Open level, and VWAPs
* Assess how higher-timeframe bias aligns with potential intraday continuation or reversal
* Note untested EQO levels or VWAPs that may function as liquidity attractors
During Session Open
* Observe behaviour around the first-hour high/low and higher-timeframe reference levels
* Monitor how the M15 and 30-minute ranges close
* Track reactions relative to the session open level and the session VWAP
After the Open Box completes
* Assess price interaction with Open Box boundaries and first-hour levels
* Use microstructure signals (e.g., FOH/FOL, switches) for potential confirmation
* Refer to expansion levels as reference zones for management or target setting
After Session
* Review how price behaved relative to the Open Box, EQO levels, VWAPs, and expansion zones
* Analyse breakout attempts, fakeouts, and whether intraday structure aligned with the broader daily move
Example Workflow and Trade
1. Higher-timeframe analysis signals a Daily Fakeout Low Continuation (bullish context).
2. The New York session forms an Open Box; price breaks above and holds above the first-hour high.
3. A Fakeout Low + Switch Bar appears on M5 (via FO), after retesting the session VWAP triggering the entry.
4. 1x expansion level serves as reference targets for take profit.
Relation to the TrendPredator Ecosystem
The Open Box is part of the TrendPredator Indicator Family, designed to apply multi-timeframe logic consistently across:
* higher-timeframe context and setups
* intraday and session structure (OB)
* microstructure confirmation (FO)
Together, these modules offer a unified structure for analysing how daily and intraday cycles interact.
Disclaimer
This indicator is for educational purposes only and does not guarantee profits.
It does not provide buy or sell signals but highlights structural and behavioural areas for analysis.
Users are solely responsible for their trading decisions and outcomes.
תבניות גרפים
لbsm15// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
// © LuxAlgo
//@version=5
indicator("لbsm15", overlay = true, max_lines_count = 500, max_boxes_count = 500, max_bars_back = 3000)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
liqGrp = 'Liquidity Detection'
liqLen = input.int (7, title = 'Detection Length', minval = 3, maxval = 13, inline = 'LIQ', group = liqGrp)
liqMar = 10 / input.float (6.9, 'Margin', minval = 4, maxval = 9, step = 0.1, inline = 'LIQ', group = liqGrp)
liqBuy = input.bool (true, 'Buyside Liquidity Zones, Margin', inline = 'Buyside', group = liqGrp)
marBuy = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Buyside', group = liqGrp)
cLIQ_B = input.color (color.new(#4caf50, 0), '', inline = 'Buyside', group = liqGrp)
liqSel = input.bool (true, 'Sellside Liquidity Zones, Margin', inline = 'Sellside', group = liqGrp)
marSel = input.float(2.3, '', minval = 1.5, maxval = 10, step = .1, inline = 'Sellside', group = liqGrp)
cLIQ_S = input.color (color.new(#f23645, 0), '', inline = 'Sellside', group = liqGrp)
lqVoid = input.bool (false, 'Liquidity Voids, Bullish', inline = 'void', group = liqGrp)
cLQV_B = input.color (color.new(#4caf50, 0), '', inline = 'void', group = liqGrp)
cLQV_S = input.color (color.new(#f23645, 0), 'Bearish', inline = 'void', group = liqGrp)
lqText = input.bool (false, 'Label', inline = 'void', group = liqGrp)
mode = input.string('Present', title = 'Mode', options = , inline = 'MOD', group = liqGrp)
visLiq = input.int (3, ' # Visible Levels', minval = 1, maxval = 50, inline = 'MOD', group = liqGrp)
//-----------------------------------------------------------------------------}
//General Calculations
//-----------------------------------------------------------------------------{
maxSize = 50
atr = ta.atr(10)
atr200 = ta.atr(200)
per = mode == 'Present' ? last_bar_index - bar_index <= 500 : true
//-----------------------------------------------------------------------------}
//User Defined Types
//-----------------------------------------------------------------------------{
// @type used to store pivot high/low data
//
// @field d (array) The array where the trend direction is to be maintained
// @field x (array) The array where the bar index value of pivot high/low is to be maintained
// @field y (array) The array where the price value of pivot high/low is to be maintained
type ZZ
int d
int x
float y
// @type bar properties with their values
//
// @field o (float) open price of the bar
// @field h (float) high price of the bar
// @field l (float) low price of the bar
// @field c (float) close price of the bar
// @field i (int) index of the bar
type bar
float o = open
float h = high
float l = low
float c = close
int i = bar_index
// @type liquidity object definition
//
// @field bx (box) box maitaing the liquity level margin extreme levels
// @field bxz (box) box maitaing the liquity zone margin extreme levels
// @field bxt (box) box maitaing the labels
// @field brZ (bool) mainains broken zone status
// @field brL (bool) mainains broken level status
// @field ln (line) maitaing the liquity level line
// @field lne (line) maitaing the liquity extended level line
type liq
box bx
box bxz
box bxt
bool brZ
bool brL
line ln
line lne
//-----------------------------------------------------------------------------}
//Variables
//-----------------------------------------------------------------------------{
var ZZ aZZ = ZZ.new(
array.new (maxSize, 0),
array.new (maxSize, 0),
array.new (maxSize, na)
)
bar b = bar.new()
var liq b_liq_B = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var liq b_liq_S = array.new (1, liq.new(box(na), box(na), box(na), false, false, line(na), line(na)))
var b_liq_V = array.new_box()
var int dir = na, var int x1 = na, var float y1 = na, var int x2 = na, var float y2 = na
//-----------------------------------------------------------------------------}
//Functions/methods
//-----------------------------------------------------------------------------{
// @function maintains arrays
// it prepends a `value` to the arrays and removes their oldest element at last position
// @param aZZ (UDT, array, array>) The UDT obejct of arrays
// @param _d (array) The array where the trend direction is maintained
// @param _x (array) The array where the bar index value of pivot high/low is maintained
// @param _y (array) The array where the price value of pivot high/low is maintained
//
// @returns none
method in_out(ZZ aZZ, int _d, int _x, float _y) =>
aZZ.d.unshift(_d), aZZ.x.unshift(_x), aZZ.y.unshift(_y), aZZ.d.pop(), aZZ.x.pop(), aZZ.y.pop()
// @function (build-in) sets the maximum number of bars that is available for historical reference
max_bars_back(time, 1000)
//-----------------------------------------------------------------------------}
//Calculations
//-----------------------------------------------------------------------------{
x2 := b.i - 1
ph = ta.pivothigh(liqLen, 1)
pl = ta.pivotlow (liqLen, 1)
if ph
dir := aZZ.d.get(0)
x1 := aZZ.x.get(0)
y1 := aZZ.y.get(0)
y2 := nz(b.h )
if dir < 1
aZZ.in_out(1, x2, y2)
else
if dir == 1 and ph > y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == 1
if aZZ.y.get(i) > ph + (atr / liqMar)
break
else
if aZZ.y.get(i) > ph - (atr / liqMar) and aZZ.y.get(i) < ph + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_B.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_B.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor = color(na), border_color = color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Buyside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_bottom, text_color = color.new(cLIQ_B, 25), bgcolor = color(na), border_color = color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_B, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_B, 0), style = line.style_dotted))
)
alert('buyside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_B.size() > visLiq
getLast = b_liq_B.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
if pl
dir := aZZ.d.get (0)
x1 := aZZ.x.get (0)
y1 := aZZ.y.get (0)
y2 := nz(b.l )
if dir > -1
aZZ.in_out(-1, x2, y2)
else
if dir == -1 and pl < y1
aZZ.x.set(0, x2), aZZ.y.set(0, y2)
if per
count = 0
st_P = 0.
st_B = 0
minP = 0.
maxP = 10e6
for i = 0 to maxSize - 1
if aZZ.d.get(i) == -1
if aZZ.y.get(i) < pl - (atr / liqMar)
break
else
if aZZ.y.get(i) > pl - (atr / liqMar) and aZZ.y.get(i) < pl + (atr / liqMar)
count += 1
st_B := aZZ.x.get(i)
st_P := aZZ.y.get(i)
if aZZ.y.get(i) > minP
minP := aZZ.y.get(i)
if aZZ.y.get(i) < maxP
maxP := aZZ.y.get(i)
if count > 2
getB = b_liq_S.get(0)
if st_B == getB.bx.get_left()
getB.bx.set_top(math.avg(minP, maxP) + (atr / liqMar))
getB.bx.set_rightbottom(b.i + 10, math.avg(minP, maxP) - (atr / liqMar))
else
b_liq_S.unshift(
liq.new(
box.new(st_B, math.avg(minP, maxP) + (atr / liqMar), b.i + 10, math.avg(minP, maxP) - (atr / liqMar), bgcolor=color(na), border_color=color(na)),
box.new(na, na, na, na, bgcolor=color(na), border_color=color(na)),
box.new(st_B, st_P, b.i + 10, st_P, text = 'Sellside liquidity', text_size = size.tiny, text_halign = text.align_left, text_valign = text.align_top, text_color = color.new(cLIQ_S, 25), bgcolor=color(na), border_color=color(na)),
false,
false,
line.new(st_B , st_P, b.i - 1, st_P, color = color.new(cLIQ_S, 0)),
line.new(b.i - 1, st_P, na , st_P, color = color.new(cLIQ_S, 0), style = line.style_dotted))
)
alert('sellside liquidity level detected/updated for ' + syminfo.ticker)
if b_liq_S.size() > visLiq
getLast = b_liq_S.pop()
getLast.bx.delete()
getLast.bxz.delete()
getLast.bxt.delete()
getLast.ln.delete()
getLast.lne.delete()
for i = 0 to b_liq_B.size() - 1
x = b_liq_B.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.h > x.bx.get_top()
x.brL := true
x.brZ := true
alert('buyside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, math.min(x.ln.get_y1() + marBuy * (atr), b.h))
x.bxz.set_rightbottom(b.i + 1, x.ln.get_y1())
x.bxz.set_bgcolor(color.new(cLIQ_B, liqBuy ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marBuy * (atr) and b.h < x.ln.get_y1() + marBuy * (atr)
x.bxz.set_right(b.i + 1)
x.bxz.set_top(math.max(b.h, x.bxz.get_top()))
if liqBuy
x.lne.set_x2(b.i + 1)
else
x.brZ := false
for i = 0 to b_liq_S.size() - 1
x = b_liq_S.get(i)
if not x.brL
x.lne.set_x2(b.i)
if b.l < x.bx.get_bottom()
x.brL := true
x.brZ := true
alert('sellside liquidity level breached for ' + syminfo.ticker)
x.bxz.set_lefttop(b.i - 1, x.ln.get_y1())
x.bxz.set_rightbottom(b.i + 1, math.max(x.ln.get_y1() - marSel * (atr), b.l))
x.bxz.set_bgcolor(color.new(cLIQ_S, liqSel ? 73 : 100))
else if x.brZ
if b.l > x.ln.get_y1() - marSel * (atr) and b.h < x.ln.get_y1() + marSel * (atr)
x.bxz.set_rightbottom(b.i + 1, math.min(b.l, x.bxz.get_bottom()))
if liqSel
x.lne.set_x2(b.i + 1)
else
x.brZ := false
if lqVoid and per
bull = b.l - b.h > atr200 and b.l > b.h and b.c > b.h
bear = b.l - b.h > atr200 and b.h < b.l and b.c < b.l
if bull
l = 13
if bull
st = math.abs(b.l - b.l ) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.l + i * st, b.i, b.l + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
st = math.abs(b.l - b.h ) / l
for i = 0 to l - 1
if lqText and i == 0
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_bottom, text_color = na, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_B, 90) ))
if bear
l = 13
if bear
st = math.abs(b.h - b.h) / l
for i = 0 to l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
st = math.abs(b.l - b.h) / l
for i = 0 to l - 1
if lqText and i == l - 1
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, text = 'Liquidity Void ', text_size = size.tiny, text_halign = text.align_right, text_valign = text.align_top, text_color = na, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
else
array.push(b_liq_V, box.new(b.i - 2, b.h + i * st, b.i, b.h + (i + 1) * st, border_color = na, bgcolor = color.new(cLQV_S, 90) ))
if b_liq_V.size() > 0
qt = b_liq_V.size()
for bn = qt - 1 to 0
if bn < b_liq_V.size()
cb = b_liq_V.get(bn)
ba = math.avg(cb.get_bottom(), cb.get_top())
if math.sign(b.c - ba) != math.sign(b.c - ba) or math.sign(b.c - ba) != math.sign(b.l - ba) or math.sign(b.c - ba) != math.sign(b.h - ba)
b_liq_V.remove(bn)
else
cb.set_right(b.i + 1)
if b.i - cb.get_left() > 21
cb.set_text_color(color.new(color.gray, 25))
//-----------------------------------------------------------------------------}
SuperTrend Zone Rejection [STRZ] CONCEPT -
This indicator identifies trend-continuation setups by combining the Super Trend with dynamic Average True Range (ATR) value zones. It highlights specific price action behaviour's—specifically wick rejections and momentum closes—that occur during pullbacks into the trend baseline.
HOW IT WORKS -
The script operates on three logic gates:
>> Trend Filter: Uses a standard Super Trend (Factor 3, Period 10 default) to define market direction.
>> Dynamic Zones: Projects a volatility-based zone (default 2.0x ATR) above or below the Super Trend line to define a valid pullback area.
>> Signal Detection: Identifies specific candle geometries occurring within these zones.
>> Rejection: Candles with significant wicks testing the zone support/resistance.
>> Momentum: Candles that open within the zone and close in the upper/lower quartile of their range.
FEATURES -
>> Dynamic Channel: Visualizes the active buy/sell zone using a continuous, non-repainting box.
>> Volatile Filtering: Filters out low-volatility candles (doji's/noise) based on minimum ATR size.
>> Visuals: Color-coded trend visualization with distinct signal markers for qualified entries.
SETTINGS -
>> Super Trend: Adjustable Factor and ATR Period.
>> Zone Multiplier: Controls the width of the pullback zone relative to ATR.
>> Visuals: Customizable colours for zones and signals to fit light/dark themes.
Highlight Running 30m CandleThis script highlight 30 minute running candle.
mostly used for crypto trading
TheStrat Failed 2 + 2 Continuation FTFC AlignmentTheStrat “Failed 2 + FTFC Alignment” spots a specific reversal/continuation pattern and layers on higher-timeframe confirmation so newer traders can focus on clean, high-probability setups.
WHAT IT LOOKS FOR
- A Failed 2 bar (price breaks the prior high/low but closes back through its open).
• Failed 2D (bullish): price takes out the previous low but finishes green.
• Failed 2U (bearish): price takes out the previous high but finishes red.
- The very next bar must be a true “2” continuation in the opposite direction (2U after a Failed 2D or 2D after a Failed 2U). This is the classic “2-2 reversal/continuation” from TheStrat playbook.
WHY IT MATTERS
When a failed 2 immediately resolves into a clean 2, it signals that buyers or sellers have seized control. These moves often become momentum pushes, especially if the broader timeframes agree.
HIGHER-TIMEFRAME FILTER
- Checks Monthly, Weekly, and 3-Day opens in real time.
- Bull signals only pass when all three are above their opens (full timeframe continuity up).
- Bear signals only pass when all three are below their opens (full timeframe continuity down).
WHAT YOU GET
- Optional labels that mark Failed 2 bars and the confirmed 2-2 signals.
- A compact “FTFC” icon on the exact bar where the continuation qualifies.
- Toggleable intrabar and bar-close alerts (select “Any alert() function call” for real-time alerts).
- A mini panel showing Monthly/Weekly/3-Day arrows so you can verify FTFC at a glance.
- Settings to require the continuation candle to be the same color as the failed bar for extra confirmation.
HOW TO USE
1. Add the script to your chart and confirm the panel arrows are aligned when icons appear.
2. Turn on the bar-close alert conditions for confirmed signals, or enable intrabar alerts for early warnings.
3. Combine the signal with your entry/stop rules (e.g., trigger on break of the signal bar and use the prior swing for risk).
This script serves as training wheels for traders learning TheStrat by automatically filtering for high-quality Failed-2 → 2 reversals that align across multiple timeframes.
Dynamic Support and Resistance with Trend LinesMain Purpose
The indicator identifies and visualizes dynamic support and resistance levels using multiple strategies, plus it includes trend analysis and trading signals.
Key Components:
1. Two Support/Resistance Strategies:
Strategy A: Matrix Climax
Identifies the top 10 (configurable) most significant support and resistance levels
Uses a "matrix" calculation method to find price levels where the market has historically reacted
Shows these as horizontal lines or zones on the chart
Strategy B: Volume Extremes
Finds support/resistance levels based on volume analysis
Looks for areas where extreme volume occurred, which often become key price levels
2. Two Trend Line Systems:
Trend Line 1: Pivot Span
Draws trend lines connecting pivot high and pivot low points
Uses configurable pivot parameters (left: 5, right: 5 bars)
Creates a channel showing the trend direction
Styled in pink/purple with dashed lines
Trend Line 2: 5-Point Channel
Creates a channel based on 5 pivot points
Provides another perspective on trend direction
Solid lines in pink/purple
3. Trading Signals:
Buy Signal: Triggers when Fast EMA (9-period) crosses above Slow EMA (21-period)
Sell Signal: Triggers when Fast EMA crosses below Slow EMA
Displays visual shapes (labels) on the chart
Includes alert conditions you can set up in TradingView
4. Visual Features:
Dashboard: Shows key information in a table (top-right by default)
Visual Matrix Map: Displays a heat map of support/resistance zones
Color themes: Dark Mode or Light Mode
Timezone adjustment: For accurate time display
5. Customization Options:
Universal lookback length (100 bars default)
Projection bars (26 bars forward)
Adjustable transparency for different elements
Multiple calculation methods available
Fully customizable colors and line styles
What Traders Use This For:
Entry/Exit Points: The EMA crossovers provide clear buy/sell signals
Risk Management: Support/resistance levels help set stop-losses and take-profit targets
Trend Confirmation: Multiple trend lines confirm trend direction
Key Price Levels: Identifies where price is likely to react (bounce or break through)
The indicator is quite feature-rich and combines technical analysis elements (pivots, EMAs, volume, support/resistance) into one comprehensive tool for trading decisions.
Avengers Ultimate V5 (Watch Profit)"Designed as a trend-following system, this strategy integrates the core principles of legends like Mark Minervini, Stan Weinstein, William O'Neil, and Jesse Livermore. It has been fine-tuned for the Korean market and provides distinct entry and exit protocols for different market scenarios."
Gould 10Y + 4Y patternDescription:
Overview This indicator is a comprehensive tool for macro-market analysis, designed to visualize historical market cycles on your chart. It combines Edson Gould’s famous Decennial Pattern with a Customizable 4-Year Cycle (e.g., 2002 base) to help traders identify long-term trends, potential market bottoms, and strong bullish years.
This tool is ideal for long-term investors and analysts looking for cyclical confluence on monthly or yearly timeframes (e.g., SPX, NDX).
Key Concepts
Edson Gould’s Decennial Pattern (10-Year Cycle)
Based on the theory that the stock market follows a psychological cycle determined by the last digit of the year.
5 (Strongest Bull): Historically the strongest performance years.
7 (Panic/Crash): Years often associated with market panic or crashes.
2 (Bottom/Buy): Years that often mark major lows.
Custom 4-Year Cycle (Target Year Strategy)
Identify recurring 4-year opportunities based on a user-defined base year.
Default Setting (Base 2002): Highlights years like 2002, 2006, 2010, 2014, 2018, 2022... which have historically been significant market bottoms or excellent buying opportunities.
When a "Target Year" arrives, the indicator highlights the background and displays a distinct Green "Target Year" Label.
Features
Real-time Dashboard: A table in the top-right corner displays the current year's status for both the 10-Year and 4-Year cycles, including a countdown to the next target year.
Dynamic Labels: Automatically marks every year on the chart with its Decennial status (e.g., "Strong Bull (5)", "Panic (7)").
Visual Highlighting:
Target Years: Distinct green background and labels for easy identification of the 4-year cycle.
Significant Decennial Years: Special small markers for years ending in 5 and 7.
Fully Customizable: You can change the base year for the 4-year cycle, toggle the dashboard, and adjust colors via the settings menu.
How to Use
Apply this indicator to high-timeframe charts (Weekly or Monthly) of major indices like S&P 500 or Nasdaq.
Look for confluence between the 10-Year Pattern (e.g., Year 6 - Bullish) and the 4-Year Cycle (Target Year) to confirm long-term bias.
Disclaimer This tool is for educational and research purposes only based on historical cycle theories. Past performance is not indicative of future results. Always manage your risk.
Distance Dashboard (50DMA / 52W High / 20DMA)Distance Dashboard – Summary
The Distance Dashboard indicator provides a quick snapshot of where price is positioned relative to three key reference points:
Distance of current HIGH from the 50-day moving average (50DMA)
Helps gauge how extended price is above or below medium-term trend support.
Distance of current LOW from the 52-week HIGH
Shows how far price has pulled back from long-term highs.
Distance of current HIGH from the 20-day moving average (20DMA)
Measures short-term extension and potential overbought/overextended behaviour.
The indicator displays these values in a clean, movable table directly on the price chart.
It does not affect chart scaling and is designed for quick visual assessment of trend extension and relative strength.
EMA 50 → EMA 200 Hunt TestThis script helps you test the theory below
When price breaks below the EMA 50…
it often goes hunting for the EMA 200.
This pattern repeats across:
• Any asset
• Any timeframe
Is this really true?
So this is what this script does
when price close below ema 50, how many times it goes down further and close below ema 200.
after price close below ema 50, on any of further days if it closes above ema 50 without closing below 200 ema, then it goes invalid and we calculate this count, how many sych occurences happens
after price close below ema 50, on any of further days if it doesn close above ema 50 and closed below 200 ema, we consider its valid and count this occurences
we need to compare both in table
EMA 12-26-100 Momentum Strategy# Triple EMA Multi-Signal Momentum Strategy
## 📊 Overview
**Triple EMA Multi-Signal** is a comprehensive trend-following momentum strategy designed specifically for cryptocurrency markets. It combines multiple technical indicators and signal types to identify high-probability trading opportunities while maintaining strict risk management protocols.
The strategy excels in trending markets and uses adaptive position sizing with trailing stops to maximize profits during strong trends while protecting capital during choppy conditions.
## 🎯 Core Algorithm
### Triple EMA System
The strategy employs a three-layer EMA system to identify trend direction and strength:
- **Fast EMA (12)**: Quick response to price changes
- **Slow EMA (26)**: Confirmation of trend direction
- **Trend EMA (100)**: Overall market bias filter
Trades are only taken when all three EMAs align in the same direction, ensuring we trade with the dominant trend.
### Multi-Signal Confirmation (8 Signal Types)
The strategy requires at least 1-2 confirmed signals from multiple independent sources before entering a position:
1. **EMA Crossover** - Fast EMA crossing Slow EMA (primary signal)
2. **MACD Cross** - MACD line crossing signal line (momentum confirmation)
3. **RSI Reversal** - RSI bouncing from oversold/overbought zones
4. **Price Action** - Strong bullish/bearish candles (>60% of range)
5. **Volume Spike** - Above-average volume confirmation
6. **Breakout** - Price breaking 20-period high/low with volume
7. **Pullback to EMA** - Trend continuation after healthy retracement
8. **Bollinger Bounce** - Price bouncing from BB bands
This multi-signal approach significantly reduces false signals and improves win rate.
## 💰 Risk Management
### Position Sizing
- Default: 20-25% of equity per trade
- Adjustable based on risk tolerance
- Smaller positions recommended for leveraged trading
### Stop Loss & Take Profit
- **Stop Loss**: 2.0% (tight control of risk)
- **Take Profit**: 5.5% (2.75:1 reward-to-risk ratio)
- Both levels are fixed at entry to avoid emotional decisions
### Trailing Stop System
- Activates after 1.8% profit
- Trails at 1.3% below current price
- Locks in profits during extended trends
- Automatically adjusts as price moves in your favor
### Maximum Hold Time
- 36-48 hours maximum (configurable)
- Designed to minimize funding rate costs on futures
- Forces position closure to avoid excessive exposure
- Helps maintain capital velocity
## 📈 Key Features
### Trend Filters
- **ADX Filter**: Ensures sufficient trend strength (threshold: 20)
- **EMA Alignment**: All three EMAs must confirm trend direction
- **RSI Boundaries**: Avoids extreme overbought/oversold entries
### Volume Analysis
- Volume must exceed 20-period moving average
- Configurable multiplier (default: 1.0x)
- Helps identify institutional participation
### Automatic Exit Conditions
1. Take Profit target reached
2. Stop Loss triggered
3. Trailing stop activated
4. Trend reversal (EMA cross in opposite direction)
5. Maximum hold time exceeded
## 🎮 Recommended Settings
### For Spot Trading (Conservative)
```
Position Size: 15-20%
Stop Loss: 2.5%
Take Profit: 6.0%
Max Hold: 72 hours
Leverage: 1x
```
### For Futures 3-5x Leverage (Balanced)
```
Position Size: 12-15%
Stop Loss: 2.0%
Take Profit: 5.5%
Max Hold: 36 hours
Trailing: Active
```
### For Aggressive Trading 5-10x (High Risk)
```
Position Size: 8-12%
Stop Loss: 1.5%
Take Profit: 4.5%
Max Hold: 24 hours
ADX Filter: Disabled
```
## 📊 Performance Metrics
### Backtested Results (BTC/USDT 1H, 2 years)
- **Total Return**: ~19% (spot) / ~75% (5x leverage)*
- **Total Trades**: 240-300
- **Win Rate**: 49-52%
- **Profit Factor**: 1.25-1.50
- **Max Drawdown**: ~18-22%
- **Average Trade**: 0.5-3 days
*Leverage results exclude funding rates and real-world slippage
### Optimal Timeframes
- **1 Hour**: Best for active trading (recommended)
- **4 Hour**: More stable, fewer signals
- **15 Min**: High frequency (requires monitoring)
### Best Performing Assets
- BTC/USDT (most tested)
- ETH/USDT
- Major altcoins with good liquidity
- Not recommended for low-cap or illiquid pairs
## ⚙️ How to Use
1. **Add to Chart**: Apply strategy to 1H BTC/USDT chart
2. **Adjust Settings**: Configure risk parameters based on your preference
3. **Review Signals**: Green = Long, Red = Short, labels show signal count
4. **Monitor Performance**: Check strategy tester for detailed statistics
5. **Optimize**: Use strategy optimization to find best parameters for your market
## 🎨 Visual Indicators
The strategy provides clear visual feedback:
- **EMA Lines**: Blue (Fast), Red (Slow), Orange (Trend)
- **BUY/SELL Labels**: Show entry points with signal count
- **Stop/Target Lines**: Red (SL), Green (TP) displayed during active trades
- **Background Color**: Light green (long), light red (short) when in position
- **Info Panel**: Shows current trend, RSI, ADX, and volume status
## ⚠️ Important Notes
### Risk Disclaimer
- This strategy is for educational purposes only
- Past performance does not guarantee future results
- Cryptocurrency trading involves substantial risk
- Only trade with capital you can afford to lose
- Always use proper position sizing and risk management
### Limitations
- Performs poorly in sideways/choppy markets
- Requires sufficient liquidity for best execution
- Backtests do not include:
- Real-world slippage (especially during volatility)
- Funding rates (for perpetual futures)
- Exchange downtime or connection issues
- Emotional trading decisions
### For Futures Trading
If using this strategy on futures with leverage:
- Reduce position size proportionally to leverage
- Account for funding rates (~0.01% per 8h)
- Set max hold time to minimize funding costs
- Use lower leverage (3-5x max recommended)
- Monitor liquidation price carefully
## 🔧 Customization
All parameters are fully customizable:
- EMA periods (fast/slow/trend)
- MACD settings (12/26/9)
- RSI levels (30/70)
- Stop Loss / Take Profit percentages
- Trailing stop activation and offset
- Volume multiplier
- ADX threshold
- Maximum hold time
## 📚 Strategy Logic
The strategy follows this decision tree:
```
1. Check Trend Direction (EMA alignment)
↓
2. Scan for Entry Signals (8 types)
↓
3. Confirm with Filters (ADX, Volume, RSI)
↓
4. Enter Position with Fixed SL/TP
↓
5. Monitor for Exit Conditions:
- TP Hit → Close with profit
- SL Hit → Close with loss
- Trailing Active → Follow price
- Trend Reversal → Close position
- Max Time → Force close
```
## 🎓 Best Practices
1. **Start Conservative**: Use smaller position sizes initially
2. **Track Performance**: Monitor actual vs backtested results
3. **Optimize Regularly**: Market conditions change, adapt parameters
4. **Combine with Analysis**: Don't rely solely on automated signals
5. **Manage Emotions**: Stick to the system, avoid manual overrides
6. **Paper Trade First**: Test on demo before risking real capital
## 📞 Support & Updates
This strategy is actively maintained and updated based on:
- Market condition changes
- User feedback and suggestions
- Performance optimization
- Bug fixes and improvements
## 🏆 Conclusion
Triple EMA Multi-Signal Strategy offers a robust, systematic approach to cryptocurrency trading by combining trend following, momentum indicators, and strict risk management. Its multi-signal confirmation system helps filter false signals while the trailing stop mechanism captures extended trends.
The strategy is suitable for both manual traders looking for high-probability setups and algorithmic traders seeking a proven systematic approach.
**Remember**: No strategy wins 100% of the time. Success comes from consistent application, proper risk management, and continuous adaptation to changing market conditions.
---
*Version: 1.0*
*Last Updated: November 2025*
*Tested on: BTC/USDT, ETH/USDT (1H, 4H timeframes)*
*Recommended Capital: $5,000+ for optimal position sizing*
A+ Setup Strategy Trendline Features Added:
1. Automatic Trendline Detection
Support Trendline (green) - Connects swing lows
Resistance Trendline (red) - Connects swing highs
Uses pivot points to identify key swing levels
Validates trendlines by counting touches (minimum 3 touches required)
2. Trendline Settings
Show Trendlines - Toggle on/off
Lookback Period - How far back to look for pivots (default: 50 bars)
Min Touches - How many touches needed for valid trendline (default: 3)
3. Trendline Break Detection
Bullish Break - Price breaks above support trendline (marked with small green circle)
Bearish Break - Price breaks below resistance trendline (marked with small red circle)
Generates signals when breaks occur
4. Enhanced A+ Setups
Now includes ULTRA setups - the absolute best trades:
ULTRA BUY Setup (Aqua label):
Bullish FVG + BOS + Volume Spike + Uptrend
PLUS: Support trendline break OR near key support
PLUS: Trendline breakout confirmation
ULTRA SELL Setup (Fuchsia label):
Bearish FVG + BOS + Volume Spike + Downtrend
PLUS: Resistance trendline break OR near key resistance
PLUS: Trendline breakdown confirmation
5. Confluence Integration
The strategy now considers price near trendlines as additional confluence, similar to how it uses daily S/R levels.
6. Additional Alerts
Support Trendline Break
Resistance Trendline Break
ULTRA BUY/SELL Setup alerts
This gives you multiple tiers of signal quality:
Standard A+ Setup - All conditions met
ULTRA A+ Setup - All conditions + trendline break (highest probability)
The trendlines will help you identify major trend reversals and breakouts for even better entry timing!
HD Trades📊 ICT Confluence Toolkit (FVG, OB, SMT)
This All-in-One indicator is designed for Smart Money Concepts (SMC) traders, providing visual confirmation and signaling for three critical Inner Circle Trader (ICT) tools directly on your chart: Fair Value Gaps (FVG), Order Blocks (OB), and Smart Money Technique (SMT) Divergence.
It eliminates the need to load multiple indicators, streamlining your analysis for high-probability setups.
🔑 Key Features
1. Fair Value Gaps (FVG)
Automatic Detection: Instantly highlights bullish (buy-side) and bearish (sell-side) imbalances using the standard three-candle pattern.
Real-Time Mitigation: Gaps are drawn until price trades into the FVG zone, at which point the indicator automatically "mitigates" and removes the box, ensuring your chart stays clean.
2. Order Blocks (OB)
Impulse-Based Logic: Identifies valid Order Blocks (the last opposing candle) confirmed by a strong, structure-breaking impulse move, quantified using an Average True Range (ATR) multiplier for dynamic sensitivity.
Mitigation Tracking: Bullish OBs are tracked until broken below the low, and Bearish OBs until broken above the high, distinguishing between active supply/demand zones.
3. SMT Divergence (Smart Money Technique)
Multi-Asset Comparison: Utilizes the Pine Script request.security() function to compare the swing structure of the current chart against a correlated asset (e.g., EURUSD vs. GBPUSD, or ES vs. NQ).
Signal Labels: Plots clear 🐂 SMT (Bullish) or 🐻 SMT (Bearish) labels directly on the chart when a divergence in market extremes is detected, signaling a potential reversal or continuation based on internal market weakness.
⚙️ Customization
All three components are toggleable and feature customizable colors and lookback periods, allowing you to fine-tune the indicator to your specific trading strategy and preferred timeframes.
Crucial Setup: For SMT Divergence to function, you must enter a correlated symbol (e.g., NQ1!, ES1!, or a related Forex pair) in the indicator settings.
J&A Sessions & NewsProject J&A: Session Ranges is a precision-engineered tool designed for professional traders who operate based on Time & Price. Unlike standard session indicators that clutter the chart with background colors, this tool focuses on Dynamic Price Ranges to help you visualize the Highs, Lows, and liquidity pools of each session.
It is pre-configured for Frankfurt Time (Europe/Berlin) but is fully customizable for any global location.
Key Features
1. Dynamic Session Ranges (The Boxes) Instead of vertical stripes, this indicator draws Boxes that encapsulate the entire price action of a session.
Real-Time Tracking: The box automatically expands to capture the Highest High and Lowest Low of the current session.
Visual Clarity: Instantly see the trading range of Asia, London, and New York to identify breakouts or range-bound conditions.
2. The "Lunch Break" Logic (Unique Feature) Institutional volume often dies down during lunch hours. This indicator allows you to Split the Session to account for these breaks.
Enabled: The script draws two separate boxes (Morning Session vs. Afternoon Session), allowing you to see fresh ranges after the lunch accumulation.
Disabled: The script draws one continuous box for the full session.
3. Manual High-Impact News Scheduler Never get caught on the wrong side of a spike. Since TradingView scripts cannot access live calendars, this tool includes a Manual Scheduler for risk management.
Input: Simply input the time of high-impact events (e.g., CPI, NFP) from ForexFactory into the settings.
Visual: A dashed line appears on the chart at the exact news time.
Audio Alert: The system triggers an alarm 10 minutes before the event, giving you time to manage positions or exit trades.
Default Configuration (Frankfurt Time)
Asian Session: 01:00 - 10:00 (Lunch disabled)
London Session: 09:00 - 17:30 (Lunch: 12:00-13:00)
New York Session: 14:00 - 22:00 (Lunch: 18:00-19:00)
How to Use
Setup: Apply the indicator. The default timezone is Europe/Berlin. If you live elsewhere, simply change the "Your Timezone" setting to your local time (e.g., America/New_York), and the boxes will align automatically.
Daily Routine: Check the economic calendar in the morning. If there is a "Red Folder" event at 14:30, open the indicator settings and enter 14:30 into the News Scheduler.
Trade: Use the Session Highs and Lows as liquidity targets or breakout levels.
Settings & Customization
Timezone: Full support for major global trading hubs.
Colors: Customize the Box fill and Border colors for every session.
Labels: Rename sessions (e.g., "Tokyo" instead of "Asia") via the settings menu.
CSP Institutional Filter PRO This indicator evaluates whether a ticker qualifies for a high-probability Cash-Secured Put (CSP) based on an institutional options-selling framework. It checks RSI, momentum, support levels, ATR-based risk, IVR, DTE, and earnings timing to determine if the setup meets either the Standard CSP Module (30–45 DTE) or the Pre-Earnings CSP Module (7–21 days before earnings). The script visually marks valid setups, highlights risk zones, and provides an on-chart diagnostic summary.
BTC Dashboard D / 4H / 1H (simple)//@version=5
indicator("BTC Dashboard D / 4H / 1H (simple)", overlay = true)
// ---------- Réglages ----------
rsiLen = 14
emaLen50 = 50
emaLen200 = 200
// Petite fonction pour formater les nombres
f_fmt(float v) =>
str.tostring(v, format.mintick)
// ---------- TIMEFRAMES ----------
tfD = "D"
tf4H = "240"
tf1H = "60"
// ---------- DAILY ----------
closeD = request.security(syminfo.tickerid, tfD, close)
ema50D = request.security(syminfo.tickerid, tfD, ta.ema(close, emaLen50))
ema200D = request.security(syminfo.tickerid, tfD, ta.ema(close, emaLen200))
rsiD = request.security(syminfo.tickerid, tfD, ta.rsi(close, rsiLen))
// ---------- 4H ----------
close4H = request.security(syminfo.tickerid, tf4H, close)
ema504H = request.security(syminfo.tickerid, tf4H, ta.ema(close, emaLen50))
ema2004H = request.security(syminfo.tickerid, tf4H, ta.ema(close, emaLen200))
rsi4H = request.security(syminfo.tickerid, tf4H, ta.rsi(close, rsiLen))
// ---------- 1H ----------
close1H = request.security(syminfo.tickerid, tf1H, close)
ema501H = request.security(syminfo.tickerid, tf1H, ta.ema(close, emaLen50))
ema2001H = request.security(syminfo.tickerid, tf1H, ta.ema(close, emaLen200))
rsi1H = request.security(syminfo.tickerid, tf1H, ta.rsi(close, rsiLen))
// ---------- TABLE ----------
var table t = table.new(position.top_right, 4, 4, border_width = 1)
if barstate.islast
// Ligne d’en-tête
table.cell(t, 0, 0, "TF", text_color = color.white, bgcolor = color.new(color.black, 0))
table.cell(t, 0, 1, "Close", text_color = color.white, bgcolor = color.new(color.black, 0))
table.cell(t, 0, 2, "EMA50 / EMA200", text_color = color.white, bgcolor = color.new(color.black, 0))
table.cell(t, 0, 3, "RSI", text_color = color.white, bgcolor = color.new(color.black, 0))
// ----- DAILY -----
rowD = 1
table.cell(t, rowD, 0, "D", text_color = color.yellow, bgcolor = color.new(color.blue, 70))
table.cell(t, rowD, 1, f_fmt(closeD))
table.cell(t, rowD, 2, "50: " + f_fmt(ema50D) + " 200: " + f_fmt(ema200D))
table.cell(t, rowD, 3, f_fmt(rsiD))
// ----- 4H -----
row4 = 2
table.cell(t, row4, 0, "4H", text_color = color.white, bgcolor = color.new(color.teal, 70))
table.cell(t, row4, 1, f_fmt(close4H))
table.cell(t, row4, 2, "50: " + f_fmt(ema504H) + " 200: " + f_fmt(ema2004H))
table.cell(t, row4, 3, f_fmt(rsi4H))
// ----- 1H -----
row1 = 3
table.cell(t, row1, 0, "1H", text_color = color.white, bgcolor = color.new(color.green, 70))
table.cell(t, row1, 1, f_fmt(close1H))
table.cell(t, row1, 2, "50: " + f_fmt(ema501H) + " 200: " + f_fmt(ema2001H))
table.cell(t, row1, 3, f_fmt(rsi1H))
PIVOT AND ICHIMOKU BACKGROUND BY PRANOJIT DEYIt shows pivot bias in relation to day open line and it also shows ichimoku bullish trend background. good for option buyers to understand market bias.
MA 9/21/50/100/200//@version=5
indicator("MA 9/21/50/100/200", overlay=true)
ma9 = ta.sma(close, 9)
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)
plot(ma9, color=color.new(color.yellow, 0), title="MA 9")
plot(ma21, color=color.new(color.orange, 0), title="MA 21")
plot(ma50, color=color.new(color.blue, 0), title="MA 50")
plot(ma100, color=color.new(color.green, 0), title="MA 100")
plot(ma200, color=color.new(color.red, 0), title="MA 200")
ATR Trailing Stop (Long or Short Selectable)The ATR Trailing Stop (Long or Short Selectable) will start calculating on a set date that you specify. This is great because you want to trail the price from the breakout day or even after exceeding specific price level (can be your breakeven level or even to capture more of the upside after the price target is met).
Entry price: If you act at the close of the day, you can leave this value as 0 and it will take the close of the day for the initial protective stop-loss calculation. You can choose to add a value such as the pattern boundary and in that case it will subtract the initial protective stop-loss from the pattern boundary and not the close of the day. If you use a scaling in tactic during the day (buying in tranches intraday as the breakout takes place) and your average purchase price is different than the close of the day, you can also plug that number in to calculate the initial protective stop-loss.
This is a modified version as many followers asked for ATR trailing for short setups. Now you can select the Long/Short trade setup from the drop down menu.
ATR period: You can select the ATR period. It can be 10 day, 14 day or 30 day or any ATR period of your choice.
ATR Multiplier for Stop-loss: This is the multiplier that you want to trail the price with. From the highest level price reached it will trail the price with a 3 x ATR () distance. The higher the number, the wider the trailing stop-loss. A multiplier of 1 will trail the price so close that and adverse movement can result in triggering the stop-loss.
Custom Value for First day Trailing Stop: This is my favorite part. For aggressive risk management, your initial protective stop can be smaller than what the ATR Trailing Stop will use in its calculation after entry day. In this case you can take 1xATR () or even with FX and Futures you can apply 0.5xATR() as the first day to calculate initial protective stop. The protective stop turns into a trailing stop after the first day.
Pin Bar Highlighter//@version=5
indicator("Pin Bar Highlighter", overlay=true)
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
bullPin = (lowerWick >= body * 2) and (close > open)
bearPin = (upperWick >= body * 2) and (close < open)
bullColor = color.rgb(10, 20, 80)
bearColor = color.rgb(255, 20, 150)
barcolor(bullPin ? bullColor : bearPin ? bearColor : na)






















