Otomatik Trend ÇizgileriOtomatik Trend Çizgileri çizen bu indikatörle zahmetsizce trendleri görebilirisiniz
Графические паттерны
Otomatik Destek ve Direnç (Pivot)Otomatik Destek ve Dirençleri gösteren bu indikatörler kolayca destek ve dirençleri görebilirsiniz.
Trader Dogout
“Trader Dogout — Official team template.
Combines EMA20, EMA200, and optimized volume for a clear read of trend, momentum, and decision zones.
Designed for traders who operate with precision, simplicity, and zero distractions.
Perfect for both day trading and swing trading.”
FVG – (auto close + age) GR V1.0FVG – Fair Value Gaps (auto close + age counter)
Short Description
Automatically detects Fair Value Gaps (FVGs) on the current timeframe, keeps them open until price fully fills the gap or a maximum bar age is reached, and shows how many candles have passed since each FVG was created.
Full Description
This indicator automatically finds and visualizes Fair Value Gaps (FVGs) using the classic 3-candle ICT logic on any timeframe.
It works on whatever timeframe you apply it to (M1, M5, H1, H4, etc.) and adapts to the current chart.
FVG detection logic
The script uses a 3-candle pattern:
Bullish FVG
Condition:
low > high
Gap zone:
Lower boundary: high
Upper boundary: low
Bearish FVG
Condition:
high < low
Gap zone:
Lower boundary: high
Upper boundary: low
Each detected FVG is drawn as a colored box (green for bullish, red for bearish in this version, but you can adjust colors in the inputs).
Auto-close rules
An FVG remains on the chart until one of the following happens:
Full fill / mitigation
A bullish FVG closes when any candle’s low goes down to or below the lower boundary of the gap.
A bearish FVG closes when any candle’s high goes up to or above the upper boundary of the gap.
Maximum bar age reached
Each FVG has a maximum lifetime measured in candles.
When the number of candles since its creation reaches the configured maximum (default: 200 bars), the FVG is automatically removed even if it has not been fully filled.
This keeps the chart cleaner and prevents very old gaps from cluttering the view.
Age counter (labels inside the boxes)
Inside every FVG box there is a small label that:
Shows how many bars have passed since the FVG was created.
Moves together with the right edge of the box and stays vertically centered in the gap.
This makes it easy to distinguish fresh gaps from older ones and prioritize which zones you want to pay attention to.
Inputs
FVG color – Main fill color for all FVG boxes.
Show bullish FVGs – Turn bullish gaps on/off.
Show bearish FVGs – Turn bearish gaps on/off.
Max bar age – Maximum number of candles an FVG is allowed to stay on the chart before it is removed.
Usage
Works on any symbol and any timeframe.
Can be combined with your own ICT / SMC concepts, order blocks, session ranges, market structure, etc.
You can also choose to only display bullish or only bearish FVGs depending on your directional bias.
Disclaimer
This script is for educational and informational purposes only and is not financial advice. Always do your own research and use proper risk management when trading.
SMC BOS/CHoCH + Auto Fib (5m/any TF) durane//@version=6
indicator('SMC BOS/CHoCH + Auto Fib (5m/any TF)', overlay = true, max_lines_count = 200, max_labels_count = 200)
// --------- Inputs ----------
left = input.int(3, 'Pivot Left', minval = 1)
right = input.int(3, 'Pivot Right', minval = 1)
minSwingSize = input.float(0.0, 'Min swing size (price units, 0 = disabled)', step = 0.1)
fib_levels = input.string('0.0,0.236,0.382,0.5,0.618,0.786,1.0', 'Fibonacci levels (comma separated)')
show_labels = input.bool(true, 'Show BOS/CHoCH labels')
lookbackHighLow = input.int(200, 'Lookback for structure (bars)')
// Parse fib levels
strs = str.split(fib_levels, ',')
var array fibs = array.new_float()
if barstate.isfirst
for s in strs
array.push(fibs, str.tonumber(str.trim(s)))
// --------- Find pivot highs / lows ----------
pHigh = ta.pivothigh(high, left, right)
pLow = ta.pivotlow(low, left, right)
// store last confirmed swings
var float lastSwingHighPrice = na
var int lastSwingHighBar = na
var float lastSwingLowPrice = na
var int lastSwingLowBar = na
if not na(pHigh)
// check min size
if minSwingSize == 0 or pHigh - nz(lastSwingLowPrice, pHigh) >= minSwingSize
lastSwingHighPrice := pHigh
lastSwingHighBar := bar_index - right
lastSwingHighBar
if not na(pLow)
if minSwingSize == 0 or nz(lastSwingHighPrice, pLow) - pLow >= minSwingSize
lastSwingLowPrice := pLow
lastSwingLowBar := bar_index - right
lastSwingLowBar
// --------- Detect BOS & CHoCH (simple robust logic) ----------
var int lastBOSdir = 0 // 1 = bullish BOS (price broke above), -1 = bearish BOS
var int lastBOSbar = na
var float lastBOSprice = na
// Look for price closes beyond last structural swings within lookback
// Bullish BOS: close > recent swing high
condBullBOS = not na(lastSwingHighPrice) and close > lastSwingHighPrice and bar_index - lastSwingHighBar <= lookbackHighLow
// Bearish BOS: close < recent swing low
condBearBOS = not na(lastSwingLowPrice) and close < lastSwingLowPrice and bar_index - lastSwingLowBar <= lookbackHighLow
bosTriggered = false
chochTriggered = false
if condBullBOS
bosTriggered := true
if lastBOSdir != 1
// if previous BOS direction was -1, this is CHoCH (change of character)
chochTriggered := lastBOSdir == -1
chochTriggered
lastBOSdir := 1
lastBOSbar := bar_index
lastBOSprice := close
lastBOSprice
if condBearBOS
bosTriggered := true
if lastBOSdir != -1
chochTriggered := lastBOSdir == 1
chochTriggered
lastBOSdir := -1
lastBOSbar := bar_index
lastBOSprice := close
lastBOSprice
// --------- Plot labels for BOS / CHoCH ----------
if bosTriggered and show_labels
if chochTriggered
label.new(bar_index, high, text = lastBOSdir == 1 ? 'CHoCH ↑' : 'CHoCH ↓', style = label.style_label_up, color = color.new(color.orange, 0), textcolor = color.white, yloc = yloc.abovebar)
else
label.new(bar_index, high, text = lastBOSdir == 1 ? 'BOS ↑' : 'BOS ↓', style = label.style_label_left, color = lastBOSdir == 1 ? color.green : color.red, textcolor = color.white, yloc = yloc.abovebar)
// --------- Auto Fibonacci drawing ----------
var array fib_lines = array.new_line()
var array fib_labels = array.new_label()
var int lastFibId = na
// Function to clear previous fibs
f_clear() =>
if array.size(fib_lines) > 0
for i = 0 to array.size(fib_lines) - 1
line.delete(array.get(fib_lines, i))
if array.size(fib_labels) > 0
for i = 0 to array.size(fib_labels) - 1
label.delete(array.get(fib_labels, i))
array.clear(fib_lines)
array.clear(fib_labels)
// Decide anchors for fib: if lastBOSdir==1 (bullish) anchor from lastSwingLow -> lastSwingHigh
// if lastBOSdir==-1 (bearish) anchor from lastSwingHigh -> lastSwingLow
if lastBOSdir == 1 and not na(lastSwingLowPrice) and not na(lastSwingHighPrice)
// bullish fib: low -> high
startPrice = lastSwingLowPrice
endPrice = lastSwingHighPrice
// draw
f_clear()
for i = 0 to array.size(fibs) - 1 by 1
lvl = array.get(fibs, i)
priceLevel = startPrice + (endPrice - startPrice) * lvl
ln = line.new(x1 = lastSwingLowBar, y1 = priceLevel, x2 = bar_index, y2 = priceLevel, xloc = xloc.bar_index, extend = extend.right, color = color.new(color.green, 60), width = 1, style = line.style_solid)
array.push(fib_lines, ln)
lab = label.new(bar_index, priceLevel, text = str.tostring(lvl * 100, '#.0') + '%', style = label.style_label_right, color = color.new(color.green, 80), textcolor = color.white, yloc = yloc.price)
array.push(fib_labels, lab)
if lastBOSdir == -1 and not na(lastSwingHighPrice) and not na(lastSwingLowPrice)
// bearish fib: high -> low
startPrice = lastSwingHighPrice
endPrice = lastSwingLowPrice
f_clear()
for i = 0 to array.size(fibs) - 1 by 1
lvl = array.get(fibs, i)
priceLevel = startPrice + (endPrice - startPrice) * lvl
ln = line.new(x1 = lastSwingHighBar, y1 = priceLevel, x2 = bar_index, y2 = priceLevel, xloc = xloc.bar_index, extend = extend.right, color = color.new(color.red, 60), width = 1, style = line.style_solid)
array.push(fib_lines, ln)
lab = label.new(bar_index, priceLevel, text = str.tostring(lvl * 100, '#.0') + '%', style = label.style_label_right, color = color.new(color.red, 80), textcolor = color.white, yloc = yloc.price)
array.push(fib_labels, lab)
// --------- Optional: plot lastSwing points ----------
plotshape(not na(lastSwingHighPrice) ? lastSwingHighPrice : na, title = 'LastSwingHigh', location = location.absolute, style = shape.triangledown, size = size.tiny, color = color.red, offset = 0)
plotshape(not na(lastSwingLowPrice) ? lastSwingLowPrice : na, title = 'LastSwingLow', location = location.absolute, style = shape.triangleup, size = size.tiny, color = color.green, offset = 0)
// --------- Alerts ----------
alertcondition(bosTriggered and lastBOSdir == 1, title = 'Bullish BOS', message = 'Bullish BOS detected on {{ticker}} @ {{close}}')
alertcondition(bosTriggered and lastBOSdir == -1, title = 'Bearish BOS', message = 'Bearish BOS detected on {{ticker}} @ {{close}}')
alertcondition(chochTriggered, title = 'CHoCH Detected', message = 'CHoCH detected on {{ticker}} @ {{close}}')
// End
Volume Z-Score// This indicator calculates the Z-Score of trading volume to identify
// statistically significant volume spikes. It uses a dynamic percentile-based
// threshold to highlight extreme volume events.
//
// How it works:
// - Z-Score measures how many standard deviations the current volume is from the mean
// - The threshold line represents the top 1% (99th percentile) of historical Z-Score values
// - When volume Z-Score exceeds the threshold, the line turns red
//
// Use cases:
// - Spot unusual institutional activity or large block trades
// - Identify potential breakout or breakdown points with volume confirmation
// - Filter out noise by focusing only on statistically extreme volume events
//
// Parameters:
// - Period Length: Lookback period for calculating mean and standard deviation
// - Percentile Threshold: Defines the extreme volume cutoff (default 99 = top 1%)
// ===================================
My script// @version=5 indicator("Custom LuxAlgo-Style Levels", overlay=true, max_lines_count=500)
// --- Trend Detection (EMA Based) fastEMA = ta.ema(close, 9) slowEMA = ta.ema(close, 21) trendUp = fastEMA > slowEMA trendDown = fastEMA < slowEMA
plot(fastEMA, title="Fast EMA", color=color.new(color.blue, 0)) plot(slowEMA, title="Slow EMA", color=color.new(color.orange, 0))
// --- Buy / Sell Signals buySignal = trendUp and ta.crossover(fastEMA, slowEMA) sellSignal = trendDown and ta.crossunder(fastEMA, slowEMA)
plotshape(buySignal, title="Buy", style=shape.labelup, color=color.new(color.green,0), size=size.small, text="BUY") plotshape(sellSignal, title="Sell", style=shape.labeldown, color=color.new(color.red,0), size=size.small, text="SELL")
// --- Auto Support & Resistance length = 20 sup = ta.lowest(length) res = ta.highest(length)
plot(sup, title="Support", color=color.new(color.green,70), linewidth=2) plot(res, title="Resistance", color=color.new(color.red,70), linewidth=2)
// --- Market Structure (Simple Swing High/Low) sh = ta.highest(high, 5) == high sl = ta.lowest(low, 5) == low
plotshape(sh, title="Swing High", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny) plotshape(sl, title="Swing Low", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny)
// --- Alerts alertcondition(buySignal, "Buy Signal", "Trend Buy Signal Detected") alertcondition(sellSignal, "Sell Signal", "Trend Sell Signal Detected")
Daily vs Intraday Candle Match Strategy고죠 훈의 차트공부방
Gojo Hoon’s Trading Room
전일 종가 대비 현재 일봉 방향과 시간봉 방향이 일치할 때 진입
Trade when current daily direction (vs. previous close) matches the hourly/15-minute candle direction.
Kill Zone Strategy - Exact Match고죠 훈의 차트공부방
Gojo Hoon’s Trading Room
Kill Zone 시간대 방향성과 일중 추세의 상관관계
The 9–10 AM Kill Zone candle on the KOSPI chart determines the day’s long or short trading direction.
Smoothed Log RSIMain purpose is to identify the regime change from trend to ranging/choppy environment.
For example if the logRSI turns green , there's good chances the downtrend will be less aggressive.
If the logRSI turns red , there's good chances we don't continue to pump aggressively.
Basically high risk of longing or shorting the asset once it turns green/red.
tdxh short/ This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © ChartPrime & User Customized
// 抗插针版:引入实体止损逻辑,专治影线扫损
//@version=5
indicator("SR空单指标 (抗插针版)", shorttitle="SR Anti-Wick", overlay=true, max_boxes_count=500, max_labels_count=500)
辰锋// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © chenfwng88888
//@version=6
indicator("辰锋", shorttitle="辰锋", overlay=true)
// 关键EMA均线组
plot(ta.ema(close, 12), title="13", color=color.rgb(230, 202, 58), linewidth=1) // 黄色
plot(ta.ema(close, 24), title="24", color=color.rgb(208, 35, 208), linewidth=1) // 粉色
plot(ta.ema(close, 36), title="38", color=color.rgb(129, 169, 238), linewidth=1) // 墨绿
plot(ta.ema(close, 52), title="52", color=color.rgb(39, 208, 226), linewidth=1) // 蓝绿色
plot(ta.ema(close, 104), title="104", color=color.rgb(222, 109, 57), linewidth=1) // 棕色
// Vegas Channel (added EMAs)
ema144 = ta.ema(close, 144)
ema169 = ta.ema(close, 169)
plot(ema144, title="EMA 144", color=color.new(#e3ebf7, 0), linewidth=1)
plot(ema169, title="EMA 169", color=color.new(#e7e7f5, 0), linewidth=1)
// Fill between EMA 144 and EMA 169 with light blue background
fill(plot1 = plot(ema144, display=display.none),
plot2 = plot(ema169, display=display.none),
color = color.new(#deeff4, 70), title = "144-169 Area")
// Colored candles based on volume and price movement
isUp = close > open
isDown = close < open
highVolume = volume > ta.sma(volume, 50) * 3 // 50-period average + 50% threshold
// Define colors
bullishColor = color.new(#a5f1a5, 0) // Light green
bearishColor = color.new(#f2b661, 0) // Orange
// Plot candles
barcolor(isUp and highVolume ? bullishColor : isDown and highVolume ? bearishColor : na)
Swing High-Low Line ConnectorSwing High-Low Line Connector is a simple and intuitive tool that automatically detects swing highs and swing lows using fractal-style pivot logic and connects them with clean, continuous lines. This indicator helps traders visualize market structure, trend shifts, and swing-based support/resistance levels at a glance.
The script identifies each confirmed swing point based on a user-defined lookback window (left/right bars). When a new swing is confirmed, the indicator updates the previous leg or creates a new one, effectively drawing the classic “zigzag-style” connections used in discretionary trading and price-action analysis.
A dynamic tail extension is included to show the most recent swing extending toward the current price. By default, the tail follows a ZigZag-style logic—extending upward after a swing low and downward after a swing high—but users can also anchor it to Close, High, Low, or HL2.
Features
Automatic detection of swing highs and swing lows
Clean line connections between swings (similar to discretionary market-structure mapping)
Proper consolidation handling: weaker highs/lows are ignored
Optional ZigZag-style dynamic tail extension
Fully customizable lookback window, line color, and line width
Works on any market and timeframe
Use Cases
Identifying market structure (HH, HL, LH, LL)
Visualizing trend transitions
Spotting breakout levels and swing-based support/resistance
Aiding discretionary swing trading, trend following, or pattern recognition
This indicator keeps the logic simple and visual—ideal for traders who prefer clean chart structure without unnecessary noise.
HTF Hollow Candle overlayoverlays HTF candle ontop of price so you can watch m1 chart filling up an h4 bar
coinjin 정·역배열 대시보드 (Progress+Events)This script analyzes trend alignment using the 5 / 20 / 60 / 112 / 224 / 448 / 896 SMAs,
providing highly precise detection of bullish and bearish stack conditions,
and identifies 12 advanced trend-reversal signals through a multi-timeframe dashboard.
이 스크립트는 5 / 20 / 60 / 112 / 224 / 448 / 896 SMA 기준으로
정배열·역배열 상태를 매우 정교하게 분석하고,
12가지 고급 추세 전환 시그널을 자동 탐지하는 멀티타임프레임 대시보드입니다.
Tokyo & London Pre-Market Boxes (Local Time)//@version=5
indicator("Daily 10am & 6pm Lines", overlay=true)
var line line10 = na
var line line18 = na
// Convert 10:00 and 18:00 into timestamps for today
t10 = timestamp(year, month, dayofmonth, 10, 0)
t18 = timestamp(year, month, dayofmonth, 18, 0)
// When the bar’s time crosses 10:00, draw a vertical line
if (time >= t10 and time < t10)
line10 := line.new(x1 = t10, y1 = low, x2 = t10, y2 = high, color=color.blue, width = 1)
// When the bar’s time crosses 18:00 (6pm), draw another line
if (time >= t18 and time < t18)
line18 := line.new(x1 = t18, y1 = low, x2 = t18, y2 = high, color=color.red, width = 1)
Simple MA Crossover w/ SLTPPicture two cheetahs on a racetrack made of price candles. One cheetah is fast and twitchy (the short-term EMA). The other is chill, lumbering, and takes its sweet time (the long-term EMA). When the twitchy cheetah sprints ahead and crosses above the chill one → “BUY, YOU MAGNIFICENT DEGEN!” When the twitchy one gets tired, slows down, and gets lapped from above → “SELL before this turns into a horror movie!”
That, my friend, is the EMA crossover strategy in its purest, most dramatic form.
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")
Steff- OBX- DTA OBX – US Open 15-Minute Zone Indicator
This indicator highlights the first 15 minutes of the U.S. stock market opening, also known as the OBX (Opening Balance Extension).
It is designed specifically for Nasdaq and S&P 500, which open at 09:30 New York time — corresponding to 15:30 Danish time.
What this indicator does:
• Marks the price range from 09:30–09:45 (U.S. time) as a zone on your chart
• Automatically adjusts to your local timezone, so the zone always aligns with Danish time
• Extends the zone to the right so you can track how price interacts with OBX throughout the day
• Draws all historical OBX zones so you can analyze previous reactions
• Rebuilds zones automatically when switching timeframes
• Detects breakouts from the zone
• Tracks balancing time only after a real breakout occurs
• Can automatically remove a zone if price spends a continuous amount of time inside it after the breakout (you set the minutes yourself)
• Allows full customization of OBX start time, duration, and behavior
• Individual zones can be manually deleted without being redrawn by the indicator
Why the OBX matters:
The OBX represents one of the most influential time windows in intraday trading because it reflects:
• The first injection of liquidity after the U.S. market opens
• Institutional positioning and algorithmic adjustments
• Early volatility and directional bias
• Common zones for reversals, breakouts, or mean reversion
• Key high-probability reaction levels used by professional traders
This indicator gives you a clear visual representation of when the market reacts to the U.S. open and how price interacts with the opening range throughout the session.
Turtle System 1 (20/10) + N-Stop + MTF Table V7.2🐢 Description: Turtle System 1 (20/10) IndicatorThis indicator implements the original trading signals of the Turtle Trading System 1 based on the classic Donchian Channels. It incorporates a historically correct, volatility-based Trailing Stop (N-Stop) and a Multi-Timeframe (MTF) status dashboard. The script is written in Pine Script v6, optimized for performance and reliability.📊 Core Logic and ParametersThe system is a pure trend-following model, utilizing the more widely known, conservative parameters of the Turtle System 1:FunctionParameterValueDescriptionEntry$\text{Donchian Breakout}$$\mathbf{20}$Buy/Sell upon breaking the 20-day High/Low.Exit (Turtle)$\text{Donchian Breakout}$$\mathbf{10}$Close the position upon breaking the 10-day Low/High.Volatility$\mathbf{N}$ (ATR Period)$\mathbf{20}$Calculation of market volatility using the Average True Range (ATR).Stop-LossMultiplier$\mathbf{2.0} BER:SETS the initial and Trailing Stop at $\mathbf{2N}$.🛠️ Key Technical Features1. Original Turtle Trailing Stop (Section 4)The stop-loss mechanism is implemented with the historically accurate Turtle Trailing Logic. The stop is not aggressively tied to the current candle's low/high, which often causes premature exits. Instead, the stop only trails in the direction of the trend, maximizing the previous stop price against the new calculated $\text{Close} \pm 2N$:$$\text{New Trailing Stop} = \text{max}(\text{Previous Stop}, \text{Close} \pm (2 \times N))$$2. Reliable Multi-Timeframe (MTF) Status (Section 6)The indicator features a robust MTF status table.Purpose: It calculates and persistently stores the Turtle System 1 status (LONG=1, SHORT=-1, FLAT=0) for various timeframes (1H, 4H, 8H, 1D, and 1W).Method: It uses global var int variables combined with request.security(), ensuring the status is accurately maintained and updated across different bars and timeframes, providing a reliable higher-timeframe context.3. VisualizationsChannels: The 20-period (Entry) and 10-period (Exit) Donchian Channels are plotted.Stop Line: The dynamic $\mathbf{2N}$ Trailing Stop is visible as a distinct line.Signals: plotshape markers indicate Entry and Exit.MTF Table: A clean, color-coded status summary is displayed in the upper right corner.
Turtle System 2 (55/20) + N-Stop + MTF Table V7.2🐢 Description: Turtle System 2 (55/20) IndicatorThis indicator implements the trading signals of the Turtle Trading System 2 based on the classic Donchian Channels, supplemented by a historically correct, volatility-based Trailing Stop (N-Stop) and a Multi-Timeframe (MTF) status overview. The script was developed in Pine Script v6 and is optimized for performance and robustness.📊 Core Logic and ParametersThe indicator is based on the rule-based trend-following system developed by Richard Dennis and William Eckhardt, utilizing the more aggressive Entry/Exit parameters of System 2:FunctionParameterValueDescriptionEntry$\text{Donchian Breakout}$$\mathbf{55}$Buy/Sell upon breaking the 55-day High/Low.Exit (Turtle)$\text{Donchian Breakout}$$\mathbf{20}$Close the position upon breaking the 20-day Low/High.Volatility$\mathbf{N}$ (ATR Period)$\mathbf{20}$Calculation of market volatility using the Average True Range (ATR).Stop-LossMultiplier$\mathbf{2.0} BER:SETS the initial and Trailing Stop at $\mathbf{2N}$.🛠️ Technical Implementation1. Correct Trailing Stop (Section 4)In contrast to many flawed implementations, the Trailing Stop is implemented here according to the Original Turtle Logic. The stop price (current_stop_price) is not aggressively tied to the current low or high. Instead, at the close of each bar, it is only trailed in the direction of the trade (math.max for long positions) based on the formula:$$\text{New Trailing Stop} = \text{max}(\text{Previous Stop}, \text{Close} \pm (2 \times N))$$This ensures the stop is only adjusted upon sustained positive movement and is not prematurely triggered by short-term, deep price shadows.2. Reliable Multi-Timeframe (MTF) Logic (Section 6)The MTF section utilizes global var int variables (mtf_status_1h, mtf_status_D, etc.) in conjunction with the request.security() function.Purpose: Calculates and persistently stores the current Turtle System 2 status (LONG=1, SHORT=-1, FLAT=0) for the timeframes 1H, 4H, 8H, 1D, and 1W.Advantage: By persistently storing the status using the var variables, the critical error of single-update status is eliminated. The states shown in the table are reliable and accurately reflect the Turtle System's position status on the respective timeframes.3. Visual ComponentsDonchian Channels: The entry (55-period) and exit (20-period) channels are drawn with color highlighting.N-Stop Line: The dynamically calculated Trailing Stop ($\mathbf{2N}$) is displayed as a magenta line.Visual Signals: plotshape markers indicate Entry and Exit points.MTF Table: A compact status summary with color coding (Green/Red/Gray) for the higher timeframes is displayed in the upper right corner.






















