청산맵[by좐주노]//@version=5
indicator("청산맵 "
, overlay = true
, max_lines_count = 500
, max_labels_count = 500
, max_boxes_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input(14, '청산기간 기준 ')
area = input.string('꼬리기준', '측정 범위', options = )
intraPrecision = input(false, 'Intrabar Precision', inline = 'intrabar')
intrabarTf = input.timeframe('1', '' , inline = 'intrabar')
filterOptions = input.string('Count', 'Filter Areas By', options = , inline = 'filter')
filterValue = input.float(0, '' , inline = 'filter')
//Style
showTop = input(true, 'Swing High' , inline = 'top', group = 'Style')
topCss = input(color.red, '' , inline = 'top', group = 'Style')
topAreaCss = input(color.new(color.red, 50), 'Area', inline = 'top', group = 'Style')
showBtm = input(true, 'Swing Low' , inline = 'btm', group = 'Style')
btmCss = input(color.teal, '' , inline = 'btm', group = 'Style')
btmAreaCss = input(color.new(color.teal, 50), 'Area', inline = 'btm', group = 'Style')
labelSize = input.string('Tiny', 'Labels Size', options = , group = 'Style')
//-----------------------------------------------------------------------------}
//Functions
//-----------------------------------------------------------------------------{
n = bar_index
get_data()=>
= request.security_lower_tf(syminfo.tickerid, intrabarTf, get_data())
get_counts(condition, top, btm)=>
var count = 0
var vol = 0.
if condition
count := 0
vol := 0.
else
if intraPrecision
if n > length
if array.size(v ) > 0
for in v
vol += array.get(l , index) < top and array.get(h , index) > btm ? element : 0
else
vol += low < top and high > btm ? volume : 0
count += low < top and high > btm ? 1 : 0
set_label(count, vol, x, y, css, lbl_style)=>
var label lbl = na
var label_size = switch labelSize
'Tiny' => size.tiny
'Small' => size.small
'Normal' => size.normal
target = switch filterOptions
'Count' => count
'Volume' => vol
if ta.crossover(target, filterValue)
lbl := label.new(x, y, str.tostring(vol, format.volume)
, style = lbl_style
, size = label_size
, color = #00000000
, textcolor = css)
if target > filterValue
label.set_text(lbl, str.tostring(vol, format.volume))
set_level(condition, crossed, value, count, vol, css)=>
var line lvl = na
target = switch filterOptions
'Count' => count
'Volume' => vol
if condition
if target < filterValue
line.delete(lvl )
else if not crossed
line.set_x2(lvl, n - length)
lvl := line.new(n - length, value, n, value
, color = na)
if not crossed
line.set_x2(lvl, n+3)
if crossed and not crossed
line.set_x2(lvl, n)
line.set_style(lvl, line.style_dashed)
if target > filterValue
line.set_color(lvl, css)
set_zone(condition, x, top, btm, count, vol, css)=>
var box bx = na
target = switch filterOptions
'Count' => count
'Volume' => vol
if ta.crossover(target, filterValue)
bx := box.new(x, top, x + count, btm
, border_color = na
, bgcolor = css)
if target > filterValue
box.set_right(bx, x + count)
//-----------------------------------------------------------------------------}
//Global variables
//-----------------------------------------------------------------------------{
//Pivot high
var float ph_top = na
var float ph_btm = na
var bool ph_crossed = na
var ph_x1 = 0
var box ph_bx = box.new(na,na,na,na
, bgcolor = color.new(topAreaCss, 80)
, border_color = na)
//Pivot low
var float pl_top = na
var float pl_btm = na
var bool pl_crossed = na
var pl_x1 = 0
var box pl_bx = box.new(na,na,na,na
, bgcolor = color.new(btmAreaCss, 80)
, border_color = na)
//-----------------------------------------------------------------------------}
//Display pivot high levels/blocks
//-----------------------------------------------------------------------------{
ph = ta.pivothigh(length, length)
//Get ph counts
= get_counts(ph, ph_top, ph_btm)
//Set ph area and level
if ph and showTop
ph_top := high
ph_btm := switch area
'Wick Extremity' => math.max(close , open )
'Full Range' => low
ph_x1 := n - length
ph_crossed := false
box.set_lefttop(ph_bx, ph_x1, ph_top)
box.set_rightbottom(ph_bx, ph_x1, ph_btm)
else
ph_crossed := close > ph_top ? true : ph_crossed
if ph_crossed
box.set_right(ph_bx, ph_x1)
else
box.set_right(ph_bx, n+3)
if showTop
//Set ph zone
set_zone(ph, ph_x1, ph_top, ph_btm, ph_count, ph_vol, topAreaCss)
//Set ph level
set_level(ph, ph_crossed, ph_top, ph_count, ph_vol, topCss)
//Set ph label
set_label(ph_count, ph_vol, ph_x1, ph_top, topCss, label.style_label_down)
//-----------------------------------------------------------------------------}
//Display pivot low levels/blocks
//-----------------------------------------------------------------------------{
pl = ta.pivotlow(length, length)
//Get pl counts
= get_counts(pl, pl_top, pl_btm)
//Set pl area and level
if pl and showBtm
pl_top := switch area
'Wick Extremity' => math.min(close , open )
'Full Range' => high
pl_btm := low
pl_x1 := n - length
pl_crossed := false
box.set_lefttop(pl_bx, pl_x1, pl_top)
box.set_rightbottom(pl_bx, pl_x1, pl_btm)
else
pl_crossed := close < pl_btm ? true : pl_crossed
if pl_crossed
box.set_right(pl_bx, pl_x1)
else
box.set_right(pl_bx, n+3)
if showBtm
//Set pl zone
set_zone(pl, pl_x1, pl_top, pl_btm, pl_count, pl_vol, btmAreaCss)
//Set pl level
set_level(pl, pl_crossed, pl_btm, pl_count, pl_vol, btmCss)
//Set pl labels
set_label(pl_count, pl_vol, pl_x1, pl_btm, btmCss, label.style_label_up)
//-----------------------------------------------------------------------------}
Corak carta
Pre-Market ORB Break and Retest - Institutional═══════════════════════════════════
PRE-MARKET ORB BREAK AND RETEST - INSTITUTIONAL
═══════════════════════════════════
Free professional Pre-Market Opening Range Breakout indicator from QuantCrawler - your AI-powered futures trading analysis platform.
Built as a free resource for the trading community. Support us at quantcrawler.com and on YouTube @AutomateWithAaron.
═══════════════════════════════════
📊 HOW IT WORKS
1. Captures the 8:00-8:15 AM ET pre-market range where institutional investors position
2. Draws OR High, OR Low, and Midpoint levels on your chart
3. Waits for market open at 9:30 AM EST before detecting breakouts
4. Fires LONG/SHORT entry signals when price retests the OR midpoint after breakout
═══════════════════════════════════
✓ FEATURES
- Runs on 1m or 5m charts - captures 15m pre-market range automatically
- Zone marked at 8:15 AM, trades trigger after 9:30 AM market open
- Universal - works on futures, forex, stocks, and crypto
- Customizable sessions - NY, London, Asia, or any custom timeframe
- Adjustable breakout distance to match your instrument
- Clean visual signals - only shows actionable entries
- Session end time stops monitoring after market close
═══════════════════════════════════
⚙️ SETTINGS
- Breakout Distance (Points): Distance outside OR zone to confirm breakout
- Timezone: Select your trading session
- Opening Range Time: Pre-market positioning window (default 8:00-8:15)
- Session End Time: When to stop monitoring (default 16:00)
═══════════════════════════════════
🎯 IDEAL FOR
Day traders who defend institutional positioning levels. The 8:00-8:15 AM range captures where smart money positions before retail market open, giving you an edge on key support/resistance zones.
═══════════════════════════════════
🚀 WANT MORE?
This indicator pairs perfectly with QuantCrawler's AI-powered chart analysis:
- Multi-timeframe futures analysis (15m/5m/1m scalping, 4H/1H/30m intraday, 1D/4H/1H swing)
- Precision entry points, stop losses, and profit targets
- Confidence scoring for every setup
- Covers futures, forex, and crypto markets
Visit quantcrawler.com to see how AI can level up your trading.
═══════════════════════════════════
⚠️ DISCLAIMER
This indicator is for educational purposes only. Past performance does not guarantee future results. Always use proper risk management and never risk more than you can afford to lose.
═══════════════════════════════════
Built with ❤️ by Aaron at QuantCrawler
quantcrawler.com | AI-Powered Futures Trading Analysis
Pre-Market ORB Break and Retest - Institutional═══════════════════════════════════
PRE-MARKET ORB BREAK AND RETEST - INSTITUTIONAL
═══════════════════════════════════
Free professional Pre-Market Opening Range Breakout indicator from QuantCrawler - your AI-powered futures trading analysis platform.
Built as a free resource for the trading community. Support us at quantcrawler.com and on YouTube @AutomateWithAaron.
═══════════════════════════════════
📊 HOW IT WORKS
1. Captures the 8:00-8:15 AM ET pre-market range where institutional investors position
2. Draws OR High, OR Low, and Midpoint levels on your chart
3. Waits for market open at 9:30 AM EST before detecting breakouts
4. Fires LONG/SHORT entry signals when price retests the OR midpoint after breakout
═══════════════════════════════════
✓ FEATURES
- Runs on 1m or 5m charts - captures 15m pre-market range automatically
- Zone marked at 8:15 AM, trades trigger after 9:30 AM market open
- Universal - works on futures, forex, stocks, and crypto
- Customizable sessions - NY, London, Asia, or any custom timeframe
- Adjustable breakout distance to match your instrument
- Clean visual signals - only shows actionable entries
- Session end time stops monitoring after market close
═══════════════════════════════════
⚙️ SETTINGS
- Breakout Distance (Points): Distance outside OR zone to confirm breakout
- Timezone: Select your trading session
- Opening Range Time: Pre-market positioning window (default 8:00-8:15)
- Session End Time: When to stop monitoring (default 16:00)
═══════════════════════════════════
🎯 IDEAL FOR
Day traders who defend institutional positioning levels. The 8:00-8:15 AM range captures where smart money positions before retail market open, giving you an edge on key support/resistance zones.
═══════════════════════════════════
🚀 WANT MORE?
This indicator pairs perfectly with QuantCrawler's AI-powered chart analysis:
- Multi-timeframe futures analysis (15m/5m/1m scalping, 4H/1H/30m intraday, 1D/4H/1H swing)
- Precision entry points, stop losses, and profit targets
- Confidence scoring for every setup
- Covers futures, forex, and crypto markets
Visit quantcrawler.com to see how AI can level up your trading.
═══════════════════════════════════
⚠️ DISCLAIMER
This indicator is for educational purposes only. Past performance does not guarantee future results. Always use proper risk management and never risk more than you can afford to lose.
═══════════════════════════════════
Built with ❤️ by Aaron at QuantCrawler
quantcrawler.com | AI-Powered Futures Trading Analysis
15m ORB BREAK AND RETEST - MIDPOINT═══════════════════════════════════
15m ORB BREAK AND RETEST - MIDPOINT
═══════════════════════════════════
Free professional 15-minute Opening Range Breakout indicator from QuantCrawler - your AI-powered futures trading analysis platform.
Built as a free resource for the trading community. Support us at quantcrawler.com and on YouTube @AutomateWithAaron.
═══════════════════════════════════
📊 HOW IT WORKS
1. Captures the 15-minute Opening Range (default: 9:30-9:45 AM ET)
2. Draws OR High, OR Low, and Midpoint levels on your chart
3. Detects breakouts when price closes beyond the OR zone + your specified distance
4. Fires LONG/SHORT entry signals when price retests the OR midpoint after breakout
═══════════════════════════════════
✓ FEATURES
- Runs on 1m or 5m charts - captures 15m opening range automatically
- Universal - works on futures, forex, stocks, and crypto
- Customizable sessions - NY, London, Asia, or any custom timeframe
- Adjustable breakout distance to match your instrument
- Clean visual signals - only shows actionable entries
- Session end time stops monitoring after market close
═══════════════════════════════════
⚙️ SETTINGS
- Breakout Distance (Points): Distance outside OR zone to confirm breakout
- Timezone: Select your trading session
- Opening Range Time: First 15 minutes to capture (default 9:30-9:45)
- Session End Time: When to stop monitoring (default 16:00)
═══════════════════════════════════
🎯 IDEAL FOR
Day traders and swing traders who prefer wider opening ranges for reduced noise. The 15-minute OR provides more stable support/resistance levels compared to 5m setups.
═══════════════════════════════════
🚀 WANT MORE?
This indicator pairs perfectly with QuantCrawler's AI-powered chart analysis:
- Multi-timeframe futures analysis (15m/5m/1m scalping, 4H/1H/30m intraday, 1D/4H/1H swing)
- Precision entry points, stop losses, and profit targets
- Confidence scoring for every setup
- Covers futures, forex, and crypto markets
Visit quantcrawler.com to see how AI can level up your trading.
═══════════════════════════════════
⚠️ DISCLAIMER
This indicator is for educational purposes only. Past performance does not guarantee future results. Always use proper risk management and never risk more than you can afford to lose.
═══════════════════════════════════
Built with ❤️ by Aaron and QuantCrawler
quantcrawler.com | AI-Powered Futures Trading Analysis
8FigRenko – Precision FVG Zones8FigRenko – Pure FVG Zones is a clean, reliable Fair Value Gap tool designed for traders who want accurate FVG zones only from the chart timeframe — without repainting, without higher-timeframe complications, and without messy borders.
This script is built for traders who want simple, precise, and visually clean imbalance zones that work the way FVGs should work:
🔥 Features
✔ Chart-timeframe FVGs only
No request.security, no multi-TF artifacts, no lagging or repainting.
The script reads exactly what your chart shows and never mixes timeframes.
✔ Wick-based or Body-based detection
Use classic ICT wick gaps, or switch to body-only gaps with one click.
✔ Minimum FVG size (points)
Filters out noise by requiring a minimum point distance (default: 5 points).
Great for futures and fast intraday charts.
✔ Clean, seamless boxes (no borders)
The FVG zones are rendered with borderless boxes, matching the modern style shown in institutional imbalance tools.
✔ Proper “end-to-end” FVG drawing
Each gap box starts from the origin of the imbalance and extends forward automatically.
✔ Auto-disrespect removal
FVGs are automatically deleted when price invalidates the zone:
Bullish FVG removed if close < FVG low
Bearish FVG removed if close > FVG high
No clutter. No manual cleanup.
✔ Extend zones forever or to the current bar
Choose if your FVGs run across the full future chart or just up to the latest candle.
✔ Optional: show only most recent FVG
Great for scalping or IFV (Immediate Fair Value) strategies.
9/21 EMA Trend TOP rIGHT CORNER INDICATORCrossover indicator for the 9 & 21 EMA. Buy Sell for cross up or down respectively. Daily, weekly and Monthly trend.
Change in State of Delivery CISD [AlgoAlpha]🟠 OVERVIEW
This script tracks how price “changes delivery” after failed attempts to push in one direction. It builds swing levels from pivots, watches for those levels to be wicked, and then checks if price delivers cleanly in the opposite direction. When the pattern meets the script’s tolerance rules, it marks a Change in State of Delivery (CISD). These CISD levels are drawn as origin lines and are used to spot shifts in intent, failed pushes, and continuation attempts. A CISD becomes stronger when it forms after opposing liquidity is swept within a defined lookback.
🟠 CONCEPTS
The script first defines structure using swing highs/lows. These levels act as potential liquidity points. When price wicks through a swing, the script registers a mitigation event. After this, it looks for a reversal-style candle sequence: a failed push, followed by a counter-move strong enough to pass a tolerance ratio. This ratio compares how far price expanded away from the failed attempt versus the counter-move that followed. If the ratio is high enough, this becomes a CISD. The idea is simple: liquidity interaction sets context , and the tolerance logic identifies actual intent . CISD levels and sweep markers combine these two ideas into a clean map of where delivery flipped.
🟠 FEATURES
Liquidity tracking: marks swing highs/lows and updates them until expiry
Liquidity sweep confirmation when CISD aligns with recent mitigations
Alert conditions for all key events: mitigations, CISDs, and strong CISDs
🟠 USAGE
Setup : Add the script to your chart. Use it on any timeframe where swing behavior matters. Set the Swing Period for how wide a pivot must be. Set Noise Filter to control how strict the CISD detection is. Liquidity Lookback defines how recent a wick must be to confirm a sweep.
Read the chart : Origin lines mark where the CISD began. A green line signals bullish intent; a red line signals bearish intent. ▲ and ▼ shapes show CISDs that form after liquidity is swept, these mark strong signals for potential entry. Swing dots show recent swing highs/lows. Candle colors follow the latest CISD trend.
Settings that matter : Increasing Swing Period produces fewer but stronger swings. Raising Noise Filter requires cleaner counter-moves and reduces false CISDs. Liquidity Lookback controls how strict the sweep confirmation is. Expiry Bars decides how long swing levels remain active.
Systemic Net Liquidity (Macro Fuel for Crypto & Stocks)This indicator tracks Systemic Net Liquidity, the single most important macro factor for determining the long-term trend of risk assets like Bitcoin (BTC) and major indices (S&P 500). It measures the amount of actual cash available in the financial system to chase speculative assets, distinguishing between money that is circulating and money that is locked up at the Federal Reserve.
Mechanism (What It Measures)
The script uses direct data from the FRED (Federal Reserve Economic Data) to calculate the true state of market funding:
\text{Net Liquidity} = \text{Fed Assets (WALCL)} - \text{Treasury General Account (TGA)} - \text{Reverse Repo (RRP)}
1. Fed Assets (WALCL): The total balance sheet of the Fed (The overall supply of money).
2. Treasury General Account (TGA): Funds the US Treasury collects via bond issuance. When the TGA rises, liquidity is actively drained from the banking system (A major bearish pressure).
3. Overnight Reverse Repo (RRP): Cash parked by banks and money market funds at the Fed, effectively frozen and not contributing to market activity.
How to Interpret Signals
Treat the Net Liquidity line as the market's "Fuel Gauge":
📈 BULLISH SIGNAL (Liquidity Injection): When the Net Liquidity line is rising, money is flowing back into the system, signalling a tailwind for risk assets.
📉 BEARISH SIGNAL (Liquidity Drain): When the line is falling (often due to high TGA balances), cash is being removed. This signals major friction and pressure on price action.
⚠️ DIVERGENCE WARNING: A strong signal is generated when Price (e.g., BTC) rises, but Net Liquidity falls. This macro divergence strongly suggests a major trend reversal or correction is imminent.
Important Notes
Data Source: Data is directly sourced from FRED and updates daily/weekly. This tool is best used for macro analysis and identifying high-level cycles, not short-term scalping.
Disclaimer: Use this indicator as a confirmation tool within your broader strategy. It is not a standalone trading signal.
Systemic Net Liquidity (Macro Fuel for Crypto & Stocks)This indicator tracks Systemic Net Liquidity, the single most important macro factor for determining the long-term trend of risk assets like Bitcoin (BTC) and major indices (S&P 500). It measures the amount of actual cash available in the financial system to chase speculative assets, distinguishing between money that is circulating and money that is locked up at the Federal Reserve.
Mechanism (What It Measures)
The script uses direct data from the FRED (Federal Reserve Economic Data) to calculate the true state of market funding:
\text{Net Liquidity} = \text{Fed Assets (WALCL)} - \text{Treasury General Account (TGA)} - \text{Reverse Repo (RRP)}
1. Fed Assets (WALCL): The total balance sheet of the Fed (The overall supply of money).
2. Treasury General Account (TGA): Funds the US Treasury collects via bond issuance. When the TGA rises, liquidity is actively drained from the banking system (A major bearish pressure).
3. Overnight Reverse Repo (RRP): Cash parked by banks and money market funds at the Fed, effectively frozen and not contributing to market activity.
How to Interpret Signals
Treat the Net Liquidity line as the market's "Fuel Gauge":
📈 BULLISH SIGNAL (Liquidity Injection): When the Net Liquidity line is rising, money is flowing back into the system, signalling a tailwind for risk assets.
📉 BEARISH SIGNAL (Liquidity Drain): When the line is falling (often due to high TGA balances), cash is being removed. This signals major friction and pressure on price action.
⚠️ DIVERGENCE WARNING: A strong signal is generated when Price (e.g., BTC) rises, but Net Liquidity falls. This macro divergence strongly suggests a major trend reversal or correction is imminent.
Important Notes
Data Source: Data is directly sourced from FRED and updates daily/weekly. This tool is best used for macro analysis and identifying high-level cycles, not short-term scalping.
Disclaimer: Use this indicator as a confirmation tool within your broader strategy. It is not a standalone trading signal.
MA Suite 10/50/150/200 + Legend (v6)ma 10 50 150 200 that i have made with chat gpt to help find moving avarage
3 Fib Strategy – Automatic Trend Fib Extension ConfluenceWhat This Script Does
✔ Auto-detects swing highs and lows
Using pivot detection, adjustable by the user.
✔ Builds 3 independent trend-based Fib extension projections
Measures:
Wave 1 → Wave 2 → Wave 3
Wave 2 → Wave 3 → Wave 4
Wave 3 → Wave 4 → Wave 5
✔ Calculates the exact fib levels:
1.0 (1:1 extension)
1.236 extension
1.382 extension
✔ Detects confluence zones
When all 3 fib measurement sets overlap at the same target:
Green label = 1:1 confluence
Orange label = 1.236–1.382 confluence
✔ Draws long dotted lines across the chart
So you can visually track confluence zones.
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)






















