FVG Zones – shrink on fill (bull/bear)Detects classic 3-candle FVGs (ICT definition).
Draws zones as boxes that extend to the right.
On each bar close:
Checks overlap with the current candle.
Shrinks the zone when price wicks into it (bullish: top moves down; bearish: bottom moves up).
Deletes the zone once it’s completely filled/closed.
Inputs: bullish/bearish zone color, border color, and max number of visible FVGs.
Possible extensions:
Multi-timeframe FVGs (e.g. H1 FVGs shown on M5).
Separate limits for bullish and bearish zones.
Alerts for new FVG, partial fill, or closed FVG.
Option “Body only” (ignore wicks when detecting overlap).
Minimum FVG size filter (ticks/ATR).
Dönemler
Inicio de Semana (línea vertical completa)This indicator plots a vertical line at the start of each new trading week. The line extends across the entire chart window, making it easy to visually identify weekly boundaries.
Key features:
Full-height vertical lines marking the beginning of every week.
Customizable color, width, and style (solid, dotted, or dashed).
Works on any timeframe (daily, intraday, etc.), automatically adjusting to weekly changes.
Purpose:
This tool is designed to help traders quickly spot the start of a new trading week, improving time-based analysis and making it easier to evaluate price action, weekly cycles, and strategy performance.
Liquidity-Weighted Business Cycle (Satoshi Global Base)🌍 BTC-Affinity Global Liquidity Business Cycle (MACD Model)
This indicator models Bitcoin’s macroeconomic business cycle using a BTC-weighted global liquidity index as its foundation. It adapts a MACD-based framework to visualize expansions and contractions in fiat liquidity across major economies with high Bitcoin affinity.
🔍 What It Does:
🧠 Constructs a Global M2 Liquidity Index from the top 10 most BTC-relevant fiat currencies
(USD, EUR, JPY, GBP, INR, CNY, KRW, BRL, CAD, AUD)
— each weighted by its Bitcoin adoption score and FX-converted into USD.
📊 Applies a MACD (Moving Average Convergence Divergence) signal to the index to detect macro liquidity trends.
🟢 Plots a histogram of business cycle momentum (red = expansion, green = contraction).
🔴 Marks potential cycle peaks, useful for macro trading alignment.
⚖️ BTC Affinity-Weighted Countries:
🇺🇸 United States
🇪🇺 Eurozone
🇯🇵 Japan
🇬🇧 United Kingdom
🇮🇳 India
🇨🇳 China
🇰🇷 South Korea
🇧🇷 Brazil
🇨🇦 Canada
🇦🇺 Australia
Weights are user-adjustable to reflect evolving capital controls, regulation, and real-world BTC adoption trends.
✅ Use Cases:
Confirm macro risk-on vs risk-off regimes for BTC and crypto.
Identify ideal entry and exit zones in macro pair trades (e.g., MSTR vs MSTY).
Monitor how global monetary expansion feeds into BTC valuations.
US Liquidity-Weighted Business Cycle📈 BTC Liquidity-Weighted Business Cycle
This indicator models the Bitcoin macro cycle by comparing its logarithmic price against a log-transformed liquidity proxy (e.g., US M2 Money Supply). It helps visualize cyclical tops and bottoms by measuring the relative expansion of Bitcoin price versus fiat liquidity.
🧠 How It Works:
Transforms both BTC and M2 using natural logarithms.
Computes a liquidity ratio: log(BTC) – log(M2) (i.e., log(BTC/M2)).
Runs MACD on this ratio to extract business cycle momentum.
Plots:
🔴 Histogram bars showing cyclical growth or contraction.
🟢 Top line to track the relative price-to-liquidity trend.
🔴 Cycle peak markers to flag historical market tops.
⚙️ Inputs:
Adjustable MACD lengths
Toggle for liquidity trend line overlay
🔍 Use Cases:
Identifying macro cycle tops and bottoms
Timing long-term Bitcoin accumulation or de-risking
Confirming global liquidity's influence on BTC price movement
Note: This version currently uses US M2 (FRED:M2SL) as the liquidity base. You can easily expand it with other global M2 sources or adjust the weights.
NYC Candle Times Grid Muestra el horario de apertura de las velas en diferentes time frames.
Displays the opening hours of the candles in different time frames.
VWAP Suite v1.0.5This is the latest script by Kenny at The Nexus Discord. ONLY available to members in The Nexus, please DM Kenny to be approved for the script.
VWAP Suite gives you many different vwaps and Anchored Vwaps to choose from also being able to set your own custom ones from important timeframes. Trump pump? Yep. Major lows, Yup.
Also can email kenny@aceindicators.com for questions.
Season profile Pro++🔹 Key Parts of Volume Profile
Point of Control (POC)
The price level with the highest traded volume.
Strong magnet: price often revisits POC.
High Volume Nodes (HVN)
Areas where a lot of trading happened.
These act like support/resistance zones.
Market accepts these prices (fair value).
Low Volume Nodes (LVN)
Areas with very little trading.
Price usually moves through these zones quickly.
Act as gaps or rejection areas.
Value Area (VA)
Typically 70% of all volume traded.
Split into:
Value Area High (VAH) = upper limit of fair value.
Value Area Low (VAL) = lower limit of fair value.
Market tends to rotate inside VA, and breakouts above/below VAH/VAL are important.
🔹 Types of Volume Profiles
Fixed Range Volume Profile → analyze a custom zone (e.g., one session, swing, or OB).
Session Volume Profile → shows profile for each day/session.
Visible Range Volume Profile → calculates based on what’s visible on your chart.
🔹 How Traders Use Volume Profile
Finding Strong S/R Levels
POC = strong attraction level.
VAH & VAL = breakout or rejection zones.
Identifying Liquidity Areas
HVN = consolidation zones where institutions load up.
LVN = thin zones where price often makes fast moves.
Trend vs Balance
Wide VA = balanced market (sideways).
Narrow VA with price pushing = trending market.
Confluence with ICT Concepts
OB inside a HVN → stronger.
Liquidity grab into LVN → powerful reversal zone.
🔹 Simple Example
Imagine EURUSD has:
POC at 1.0850 (heavy volume traded here).
VAH at 1.0880.
VAL at 1.0820.
Smart Money Concepts //@deepak
//@version=5
indicator(title='Custom Also Builder - v1', shorttitle="Custom Also Builder - v1", overlay=true, max_bars_back=500)
ma(_source, _length, _type) =>
switch _type
"SMA" => ta.sma (_source, _length)
"EMA" => ta.ema (_source, _length)
"RMA" => ta.rma (_source, _length)
"WMA" => ta.wma (_source, _length)
"VWMA" => ta.vwma(_source, _length)
alarm(_osc, _message) =>
alert(syminfo.ticker + ' ' + _osc + ' : ' + _message + ', price (' + str.tostring(close, format.mintick) + ')')
//Conditional Sampling EMA Function
Cond_EMA(x, cond, n) =>
var val = array.new_float(0)
var ema_val = array.new_float(1)
if cond
array.push(val, x)
if array.size(val) > 1
array.remove(val, 0)
if na(array.get(ema_val, 0))
array.fill(ema_val, array.get(val, 0))
array.set(ema_val, 0, (array.get(val, 0) - array.get(ema_val, 0)) * (2 / (n + 1)) + array.get(ema_val, 0))
EMA = array.get(ema_val, 0)
EMA
//Conditional Sampling SMA Function
Cond_SMA(x, cond, n) =>
var vals = array.new_float(0)
if cond
array.push(vals, x)
if array.size(vals) > n
array.remove(vals, 0)
SMA = array.avg(vals)
SMA
//Standard Deviation Function
Stdev(x, n) =>
math.sqrt(Cond_SMA(math.pow(x, 2), 1, n) - math.pow(Cond_SMA(x, 1, n), 2))
//Range Size Function
rng_size(x, scale, qty, n) =>
ATR = Cond_EMA(ta.tr(true), 1, n)
AC = Cond_EMA(math.abs(x - x ), 1, n)
SD = Stdev(x, n)
rng_size = scale == 'Pips' ? qty * 0.0001 : scale == 'Points' ? qty * syminfo.pointvalue : scale == '% of Price' ? close * qty / 100 : scale == 'ATR' ? qty * ATR : scale == 'Average Change' ? qty * AC : scale == 'Standard Deviation' ? qty * SD : scale == 'Ticks' ? qty * syminfo.mintick : qty
rng_size
//Two Type Range Filter Function
rng_filt(h, l, rng_, n, type, smooth, sn, av_rf, av_n) =>
rng_smooth = Cond_EMA(rng_, 1, sn)
r = smooth ? rng_smooth : rng_
var rfilt = array.new_float(2, (h + l) / 2)
array.set(rfilt, 1, array.get(rfilt, 0))
if type == 'Type 1'
if h - r > array.get(rfilt, 1)
array.set(rfilt, 0, h - r)
if l + r < array.get(rfilt, 1)
array.set(rfilt, 0, l + r)
if type == 'Type 2'
if h >= array.get(rfilt, 1) + r
array.set(rfilt, 0, array.get(rfilt, 1) + math.floor(math.abs(h - array.get(rfilt, 1)) / r) * r)
if l <= array.get(rfilt, 1) - r
array.set(rfilt, 0, array.get(rfilt, 1) - math.floor(math.abs(l - array.get(rfilt, 1)) / r) * r)
rng_filt1 = array.get(rfilt, 0)
hi_band1 = rng_filt1 + r
lo_band1 = rng_filt1 - r
rng_filt2 = Cond_EMA(rng_filt1, rng_filt1 != rng_filt1 , av_n)
hi_band2 = Cond_EMA(hi_band1, rng_filt1 != rng_filt1 , av_n)
lo_band2 = Cond_EMA(lo_band1, rng_filt1 != rng_filt1 , av_n)
rng_filt = av_rf ? rng_filt2 : rng_filt1
hi_band = av_rf ? hi_band2 : hi_band1
lo_band = av_rf ? lo_band2 : lo_band1
ma_function(source, length, type) =>
if type == 'RMA'
ta.rma(source, length)
else if type == 'SMA'
ta.sma(source, length)
else if type == 'EMA'
ta.ema(source, length)
else if type == 'WMA'
ta.wma(source, length)
else if type == 'HMA'
if(length<2)
ta.hma(source,2)
else
ta.hma(source, length)
else
ta.vwma(source, length)
// Get Table Size
table_size(s) =>
switch s
"Auto" => size.auto
"Huge" => size.huge
"Large" => size.large
"Normal" => size.normal
"Small" => size.small
=> size.tiny
setup_group= "████████ Indicator Setup ████████"
signalexpiry = input.int(defval=3, title='Signal Expiry Candle Count',group=setup_group, inline='expiry',tooltip="Number of candles to wait for all indicators to confirm a signal. Default is 3 which means if leading indicator print the signal, it will wait for max 3 more candles for rest of the indicators to print signal, if not then this setup is invalided and will have to wait for another signal form the leading indicator.")
alternatesignal = input.bool (true, "Alternate Signal", group=setup_group, inline='alternate')
showsignal = input.bool (true, "Show Long/Short Signal", group=setup_group,inline='showsignal',tooltip="Option to turn on/off the Long/Short signal shown on the chart. by default it will print Long/ Short signal on the chart.")
showdashboard = input.bool (true, "Show Dashboard", group=setup_group,inline='dashboard')
string i_tab1Ypos = input.string('bottom', 'Dashboard Position',group=setup_group, inline='dashboard2', options= )
string i_tab1Xpos = input.string('right', '', inline='dashboard2', group=setup_group,options= )
in_dashboardtab_size = input.string(title="Dashboard Size ", defval="Normal",
options= ,
group= setup_group , inline= "dashboard3")
///////////////////////////////////////////////
///// Signal filters
/////////////////////////////////////////////
leadingindicator = input.string(title="Leading Indicator", defval="Range Filter",
options= , group='████████ Main Indicator (signal) ████████', inline='li')
confirmation_group = "████████ Confirmation Indicators (filter) ████████ "
ema_tooltip = "EMA filter for confirmation. Validates Long signal if price is above the EMA FILTER level, and validates Short signal if price is below the EMA FILTER level. Default is 200, you can change that to meet your requiremnt."
respectema = input.bool (false, "EMA Filter", group=confirmation_group, inline='respectema')
respectemaperiod = input.int(defval=200, minval=1, title='', group=confirmation_group, inline='respectema', tooltip=ema_tooltip)
ema2_tooltip = "Generates Long signal if Fast EMA cross above Slow EMA. Generates Short signal when Fast EMA cross below the Slow EMA. Default values are 50 and 200. you can change that to meet your requirement."
respect2ma = input.bool (false, "2 EMA Cross : ", group=confirmation_group, inline='2ma')
respect2maperiod_1 = input.int(defval=50, title='',group=confirmation_group, inline='2ma')
respect2maperiod_2 = input.int(defval=200, title='',group=confirmation_group, inline='2ma',tooltip=ema2_tooltip)
ema3_tooltip = "Generates Long signal if first EMA (Fastest) cross above 2nd and 3rd EMA and 2nd EMA cross above 3rd EMA. Generates Short signal if first EMA (Fastest) cross below 2nd and 3rd EMA and 2nd EMA cross below 3rd EMA . Default values are 9,21 and 55. you can change that to meet your requirement."
respect3ma = input.bool (false, "3 EMA Cross : ", group=confirmation_group, inline='3ma',tooltip=ema3_tooltip)
respect3maperiod_1 = input.int(defval=9, title='',group=confirmation_group, inline='3ma',tooltip=ema3_tooltip)
respect3maperiod_2 = input.int(defval=21, title='',group=confirmation_group, inline='3ma',tooltip=ema3_tooltip)
respect3maperiod_3 = input.int(defval=55, title='',group=confirmation_group, inline='3ma',tooltip=ema3_tooltip)
respectrf = input.bool (false, "Range Filter", group=confirmation_group, inline='rf')
rftype = input.string(title="", defval="Default", options= , group=confirmation_group, inline='rf')
respectrqk = input.bool (true, "Rational Quadratic Kernel (RQK)", group=confirmation_group, inline='rqk',tooltip="Nadaraya Watson: Rational Quadratic Kernel (RQK)")
respectst = input.bool (false, "SuperTrend", group=confirmation_group, inline='st')
respectht = input.bool (false, "Half Trend", group=confirmation_group, inline='ht')
respectdonchian = input.bool (false, "Donchian Trend Ribbon", group=confirmation_group, inline='donchian')
respectroc = input.bool (false, "Rate of Change (ROC)", group=confirmation_group, inline='roc')
respecttsi = input.bool (false, "True Strength Indicator (TSI)", group=confirmation_group, inline='tsi')
tsitooltip = "Signal Crossover: TSI crossover or greater than signal line for long, and TSI crossunder signal line for short. Zero Line Cross: TSI cross above zero line and signal line for long signal. Tsi Cross below zero and signal line for short signal."
tsitype = input.string(title="", defval="Signal Cross", options= ,tooltip=tsitooltip, group=confirmation_group, inline='tsi')
respecttdfi = input.bool (false, "Trend Direction Force Index (TDFI)", group=confirmation_group, inline='tdfi')
respectmd = input.bool (false, "McGinley Dynamic", group=confirmation_group, inline='md')
respectdpo = input.bool (false, "Detrended Price Oscillator (DPO)", group=confirmation_group, inline='dpo')
respectichi = input.bool (false, "Ichimoku Cloud", group=confirmation_group, inline='ichi')
respectsuperichi = input.bool (false, "SuperIchi", group=confirmation_group, inline='ichi',tooltip="Ichimoku Cloud Conditions: 1. Candle above cloud 2. Converstion Line above base line 3. Leading 26 bar cloud is green 4. lagging span is above the cloud")
respecttrendline_breakout = input.bool (false, "Trendline Breakout", group=confirmation_group, inline='tb')
respectrd = input.bool (false, "Range Detector", group=confirmation_group, inline='rd',tooltip="Range Detector: if used as leading indicator, it will be based on range breakout. If used as confirmation indicator, it will be used to filter entries within the active range area.")
respecthacolt = input.bool (false, "Heiken-Ashi Candlestick Oscillator", group=confirmation_group, inline='hacolt',tooltip="Vervoort LongTerm Heiken-Ashi Candlestick Oscillator: If oscilliation is above 0 line, then long signal is issued and if below zero line, short signal is issued.")
respectbx = input.bool (false, "B-Xtrender", group=confirmation_group, inline='bx')
bxtype = input.string(title="", defval="Short and Long term trend", options= , group=confirmation_group, inline='bx', tooltip = "Short term trend: ===================== For buy signal the short term trend line must turn green, and for the sell signal, the short term trend line must turn red. Short and Long term trend: ===================== For buy signal, the short term trend must change from red to green and long term trend cross above zero line, for Sell signal the short term trend must turn red and long term trend line cross down the zero line..")
respectbbpt = input.bool (false, "Bull bear Power Trend", group=confirmation_group, inline='bbpt')
bbpttype = input.string(title="", defval="Follow Trend", options= , group=confirmation_group, inline='bbpt', tooltip = "Follow Trend: ===================== Buy signal will be validated if the BBPT trend line is above 2, and Sell signal will be validated if BBPT trend line is below -2. Without Trend: ===================== Ignore the BBPT trend line.")
respectvwap = input.bool (false, "VWAP", group=confirmation_group, inline='vwap')
respectbbosc = input.bool (false, "BB Oscillator", group=confirmation_group, inline='bbosc')
bbtype = input.string(title="", defval="Entering Lower/Upper Band", options= , group=confirmation_group, inline='bbosc')
respecttm = input.bool (false, "Trend Meter", group=confirmation_group, inline='tm')
tmtype = input.string(title="", defval="3 TM and 2 TB change to same color", options= , group=confirmation_group, inline='tm')
respectce = input.bool (false, "Chandelier Exit", group=confirmation_group, inline='ce')
respectcci = input.bool (false, "CCI", group=confirmation_group, inline='cci')
respectao = input.bool (false, "Awesome Oscillator", group=confirmation_group, inline='ao')
aotype = input.string(title="", defval="Zero Line Cross", options= , group=confirmation_group, inline='ao', tooltip = "Zero Line Cross: If AO value cross the zero line up, Buy signal will be generated, and if AO value cross down the zero line, sell signal will be generated.")
respectadx = input.bool (false, "DMI (ADx)", group=confirmation_group, inline='adx')
adxtype = input.string(title="", defval="Adx & +Di -Di", options= , group=confirmation_group, inline='adx', tooltip = "Adx Only: If Adx value is above the defined level. Adx & +Di -DI : When Adx value is above the defined level and croseeover between +di and -di. Di will determine the direction of the movement. Advance: ")
respectsar = input.bool (false, "Parabolic SAR (PSAR)", group=confirmation_group, inline='sar')
respectwae = input.bool (false, "Waddah Attar Explosion", group=confirmation_group, inline='wae')
vo_tooltip = "Volatility Oscillator: ======================= If the spike line is above the upper line, buy signal is generated (or validated). If the spike line is below the lower line, sell signal is generated (or validated)."
respectvo = input.bool (false, "Volatility Oscillator", group=confirmation_group, inline='vo', tooltip = vo_tooltip)
ci_tooltip = "Choppiness index: ======================= If the index is below the defined threshold (default 61.8) then asset is considered trending and signal will be validated, if index is above 61.8 then asset is considered having sideway movement."
respectci = input.bool (false, "Choppiness Index ", group=confirmation_group, inline='ci')
ci_limit = input.float(61.8,title=" ", inline='ci',group=confirmation_group, tooltip = ci_tooltip)
respectdv = input.bool (false, "Damiani Volatility (DV)", group=confirmation_group, inline='dv')
dvtype = input.string(title="", defval="Simple", options= , group=confirmation_group, inline='dv', tooltip = "Simple Volatility is green. Threshold Volatility green and >1.1")
stochtooltip="CrossOver: ------------------ CrossOver of K and D line at any level. CrossOver in OB & OS levels: Generate buy signal if crossover happens in oversold area and crossing up oversold level. Generate sell signal on crossover in overbought area and cross down upper level. ------------------ %K above/below %D ------------------ : Generate Buy signal or validate other signal if %K is above %D and opposite for Sell Signal."
respectstochastic = input.bool (false, "Stochastic", group=confirmation_group, inline='stoch')
stochtype = input.string(title="", defval="CrossOver", options= ,tooltip=stochtooltip, group=confirmation_group, inline='stoch')
rsi_tooltip = "RSI MA Cross: ============= Generate buy signal when RSI cross up RSI MA line and sell signal when RSI cross down RSI MA line. RSI Exits OB/OS zones: ================== Generate Buy signal when RSI crosses down the overbough zone and sell signal when RSI crosses up the oversold zone. RSI Level: ========== Generate buy signal if RSI cross above the specific level and sell signal when RSI crossdown the level. +++++ You can change the setting to define the OB/OS and MidLine Levels"
respectrsi = input.bool (false, "RSI", group=confirmation_group, inline='rsi')
rsitype = input.string(title="", defval="RSI MA Cross", options= , tooltip=rsi_tooltip, group=confirmation_group, inline='rsi')
rsima_tooltip = "RSI MA Direction: ============= The buy and sell signal will respect the RSI MA direction. For buy signal, the RSI MA should be increasing or same compared to previous RSI MA. for SHORT, the RSI MA should be same or decreasing compared to last RSI MA"
respectrsima = input.bool (false, "RSI MA Direction", group=confirmation_group, inline='rsi2',tooltip=rsima_tooltip)
rsilimit_tooltip = "RSI Limit: ============= This is to allow you to set limit for the RSI value for long and short. default value for long is 40, which means if the RSI is 40 or above, only then BUY signal will be validated. for short if RSI is 60 or less, only then sell signal willbe validated."
respectrsilimit = input.bool (false, "RSI Limit : ", group=confirmation_group, inline='rsi3',tooltip=rsilimit_tooltip)
rsilimitup = input.int(40, title="Long",inline='rsi3', group=confirmation_group)
rsilimitdown = input.int(60, title="short",inline='rsi3', group=confirmation_group)
rsimalimit_tooltip = "RSI MA Limit: ============= This is to allow you to set limit for the RSI MA value for long and short. default value for long is 40, which means if the RSI MA is 40 or above, only then BUY signal will be validated. for short if RSI MA is 60 or less, only then sell signal willbe validated."
respectrsimalimit = input.bool (false, "RSI MA Limit : ", group=confirmation_group, inline='rsi4',tooltip=rsimalimit_tooltip)
rsimalimitup = input.int(40, title="Long",inline='rsi4', group=confirmation_group)
rsimalimitdown = input.int(60, title="short",inline='rsi4', group=confirmation_group)
macdtooltip="MACD Crossover: ------------------ CrossOver of MACD and the Signal line. Generates Long signal when MACD cross up Signal line and Short signal when MACD cross down Signal Line. . Zero line crossover: ------------------ Generate buy signal when MACD cross up the zero line and Sell signal when MACD cross down the zero line."
respectmacd = input.bool (false, "MACD", group=confirmation_group, inline='macd')
macdtype = input.string(title="", defval="MACD Crossover", options= ,tooltip=macdtooltip, group=confirmation_group, inline='macd')
respectssl = input.bool (false, "SSL Channel", group=confirmation_group, inline='ssl')
respectstc = input.bool (false, "Schaff Trend Cycle (STC)", group=confirmation_group, inline='stc')
respectchaikin = input.bool (false, "Chaikin Money Flow", group=confirmation_group, inline='chaikin')
respectvol = input.bool (false, "Volume", group=confirmation_group, inline='volume')
volumetype = input.string(title="", defval="volume above MA", options= , group=confirmation_group, inline='volume', tooltip = "Simple volume is comparing the up/down volme with previous candle. Volume delta will compare the delta or difference between up and down volume with previous candle. Example: up volume = 100 Down volume=-1100 Delta = -1000 Satisfy the bear flag condition if previous -ve delta is lower")
respectwolf = input.bool (false, "Wolfpack Id", group=confirmation_group, inline='wolf')
respectqqe = input.bool (false, "QQE Mod", group=confirmation_group, inline='qqe')
qqetype = input.string(title="", defval="Line", options= , group=confirmation_group, inline='qqe', tooltip = "Line: signal generated when QQE line is above or below 0. Bar: when Blue bar is above 0 or Red bar below 0 Line & Bar: Both Bar and Line to be above(bullist) or below (beari
Price action v2Core Elements of Price Action
Market Structure
Higher Highs (HH), Higher Lows (HL) → Uptrend
Lower Highs (LH), Lower Lows (LL) → Downtrend
Sideways → Consolidation
📌 Structure tells you whether buyers or sellers are in control.
Support & Resistance (S/R)
Horizontal levels where price has reacted before.
Support = buyers step in (floor).
Resistance = sellers step in (ceiling).
PA traders watch how candles react here → breakout, rejection, fakeout.
Candlestick Behavior
Pin bar / Wick rejections = rejection of price levels.
Engulfing candles = shift in momentum.
Doji / indecision = market pausing before next move.
📌 A single candle tells you the “fight” between buyers and sellers.
Order Blocks (ICT concept)
Last bullish/bearish candle before a strong move.
Represents institutional orders.
Acts like strong S/R zones.
Break of Structure (BOS) & Shift in Market Structure (SMS)
When price breaks a recent high/low, it signals continuation or reversal.
Example: HH → BOS → price retraces to OB → continues.
Liquidity
Price seeks liquidity (stop hunts, fake breakouts).
Equal highs/lows, trendline liquidity, and session highs/lows are key zones.
ICT often calls this the “Judas Swing” before real move.
Market Cycles (Wyckoff/ICT)
Accumulation → sideways, smart money entering.
Manipulation / Fake move (stop hunt).
Expansion / Distribution → strong trending move.
Reversal → cycle repeats.
🔹 Why Price Action Works
Indicators (RSI, MACD, etc.) are derived from price.
If you understand raw price → you’re ahead of lagging tools.
It helps you “read the tape” like institutions.
🔹 Example Workflow of a PA Trader
Identify trend / structure (up, down, range).
Mark key S/R levels, OBs, liquidity zones.
Wait for candle confirmation (engulfing, rejection, BOS).
Enter on retracement (FVG, OB, S/R retest).
Manage risk → Stop Loss below structure, TP at liquidity levels.
Triumm algo v2 with Signal Quality1. Core Buy/Sell Logic
Uses two EMAs (9 & 21 by default).
Buy Signal = when fast EMA crosses above slow EMA and RSI < 70 (not overbought).
Sell Signal = when fast EMA crosses below slow EMA and RSI > 30 (not oversold).
At a signal:
It sets an Entry price (current close).
It calculates 3 Take Profit (TP1, TP2, TP3) based on ATR multiples.
It sets a Stop Loss (SL) also based on ATR.
🔹 2. Signal Confidence & Potential
The script doesn’t just give a raw buy/sell, it adds “AI-inspired” grading:
Confidence (0–100%)
Based on:
EMA crossover strength (big gap = higher confidence).
RSI position (closer to 30/70 = more decisive).
Volume trend (if volume > average).
Whether you’re in an ICT Killzone (London, NY, Asia sessions).
Potential (0–100%)
Based on:
How far TP1 is from entry (relative to price).
Trend strength (fast EMA above/below slow EMA).
ATR vs average ATR (volatility score).
✅ Then it gives a Signal Quality Label:
Very Good
Good
Simple
Bad
Very Bad
This helps you filter only strong trades.
🔹 3. Dashboard
On the chart, a dashboard table shows:
Trend direction (Uptrend/Downtrend).
RSI value.
ATR value.
Current Killzone (London, NY, Asia, or OFF).
Suggested timeframe (based on volatility).
🔹 4. Fair Value Gaps (FVGs)
The script also includes FVG detection:
Finds bullish/bearish FVGs (price gaps between candles).
Can show unmitigated/mitigated levels.
Optionally plots them with boxes or dashed lines.
Keeps count of FVGs and shows stats in a dashboard.
🔹 5. CISD (Change in State of Delivery)
Another ICT concept:
Detects when market structure shifts.
Marks +CISD (bullish) or -CISD (bearish) levels with lines/labels.
Deletes or keeps old levels (configurable).
Can send alerts when CISD levels are broken.
🔹 6. AI Multi-Timeframe Trend Check
The script scans 1m, 5m, 15m, 30m:
Each TF gives a score based on EMA, RSI, and Volume.
Picks the best timeframe with strongest setup.
Displays reasoning in a mini “🧠 Triumm AI” table.
🔹 7. Range Filter (Extra Buy/Sell)
At the bottom, there’s a Range Filter system:
Smooths price with EMA-based range filter.
Generates independent Buy/Sell signals when price breaks above/below the filter.
Plots signals with arrows (“Buy” below bars, “Sell” above bars).
Can also be turned into a strategy with TP/SL.
⚡ Summary in Simple Words
This indicator is like an all-in-one trading toolkit:
📈 Entry/Exit with ATR-based TP/SL.
🎯 Confidence & Potential scoring (quality check).
🕰️ ICT Killzones & dashboard.
📊 AI Multi-timeframe trend filter.
🌀 Fair Value Gaps (ICT concept).
🔄 CISD structure shift detection.
📉 Range Filter Buy/Sell signals.
Super orderblock by triummWhat is a Volume Order Block?
An Order Block (OB) is a zone created by institutions (banks, hedge funds, smart money) where they place large orders, usually the last bullish or bearish candle before a strong impulsive move.
A Volume Order Block adds volume analysis into the detection of those zones. Instead of just drawing OBs from price structure, it confirms or filters them with volume imbalances (buyer/seller dominance).
🔹 Why Add Volume?
Regular OBs can appear frequently, and not all are strong. By adding volume metrics, you filter which OBs are truly institutional footprints.
✅ High buy volume in a bullish OB → Smart money accumulation.
✅ High sell volume in a bearish OB → Smart money distribution.
❌ Low volume OB → Weak zone, likely to fail.
🔹 Key Components of Volume Order Blocks
Last Opposite Candle
Bullish OB = last bearish candle before strong rally.
Bearish OB = last bullish candle before strong drop.
Volume Confirmation
OB is valid if its candle(s) show higher than average volume.
Sometimes measured as % of total buy vs. sell volume in that candle.
Imbalance Check
Look for volume imbalance (buyers 60%+ or sellers 60%+).
Confirms smart money dominance.
Reaction Zone
Price revisits the OB → expect reaction (rejection, mitigation, or continuation).
High-volume OBs often act as strong support/resistance
BTC Regime Phase [HY|YC|GLI]The correlation between global liquidity and INDEX:BTCUSD has attracted a lot of attention. Building on this insight, I developed an indicator that not only tracks global liquidity but also integrates the high‑yield spread and yield‑curve slope to capture credit risk and growth expectations.
Essence and Logic
At its core, the Risk‑On Composite Z‑Score converts three macro factors global liquidity momentum, the US high‑yield spread and the slope of the US yield curve into standardized Z‑scores, weights them, and tracks moving‑average crossovers. Each factor has a rationale: high‑yield spreads are powerful business‑cycle indicators and often outperform other financial variables (Gertler & Lown, 2000). Yield‑curve steepness reflects investor optimism and prompts shifts toward riskier assets global liquidity drives cross‑border flows and risk sentiment (Goldberg, 2023; Lee, 2024). Combining these measures gives a composite signal that has historically aligned well with Bitcoin’s tops and bottoms. Usable also for other crypto coins: INDEX:ETHUSD CRYPTO:SOLUSD CRYPTO:LINKUSD
Limitations and My Current Model Outlook
I want to be transparent: the three model sections are highly correlated. Currently, the high‑yield spread and yield curve data come only from the US; I may add Euro or Japanese spreads later. I’m also aware that macro dynamics are evolving. Fiscal policy and political choices could shorten bear markets and make the current sell signals less relevant. In a stagflationary world, inflation‑adjusted liquidity may swing more violently and require an asset‑inflation adjustment. Yet, the model has captured Bitcoin’s tops and bottoms almost to the week—future patterns may rhyme, not repeat.
Questions and Ideas:
Do you think this model will still be useful as fiscal and monetary regimes shift?
Should I add a stagnation modulation perhaps real yields or inflation‑adjusted liquidity—to better capture a stagflation scenario?
Are there high‑yield spreads on TV beyond the US that I should include? (Euro and Japan indices do exist.)
Would it make sense to incorporate Bitcoin halving events or a stock‑to‑flow module?
The indicator is free to use. If it brings you value, you’re welcome to follow for updates. I appreciate your support and feedback. When you are interested in the source code, feel free to contact me for more details. When you feel like supporting me with some sats, contact me and I will give you a Lightning address. I am a student and that would help a lot – but please only if you can afford it!
♡ Thanks to everyone who contributes insight on TradingView ♡
© Robinhodl21
Features: Users can enable or disable each component, adjust weights and choose a short‑tenor (1‑year or 2‑year) for the yield curve. The script automatically scales lookback windows based on the chart timeframe (daily, weekly or monthly). It offers visual plots of each Z‑score, the composite score, and smoothed moving averages, with background colours highlighting regimes and markers for entries and exits. Trade logic includes optional dip‑buy triggers when the composite falls below a threshold, Friday‑only execution on daily charts to reduce whipsaws. A trend table summarises current Z‑scores and their trends. Settings are tuned for BTC weekly data but should be adjusted for other assets or timeframes. Because some inputs (e.g., GLI weights) have limited historical data, long backtests may be less reliable when using on other Risk On Assets like NASDAQ:NDX NCDEX:COPPER
‼ Disclaimer: This indicator is for educational purposes and does not constitute investment advice. Markets involve risk; past performance is not indicative of future results. Users should not rely solely on this script for trading decisions. Always test and adapt settings to your asset, timeframe and risk tolerance. The author assumes no liability for any trading losses.
Literature:
Gertler, M., & Lown, C. S. (2000). The information in the high yield bond spread for the business cycle: Evidence and some implications. NBER Working Paper 7549.
Lee, B. (2024). Staying ahead of the yield curve. CME Group.
McCauley, R. N. (2012). Risk‑on/risk‑off, capital flows, leverage and safe assets. BIS Working Paper 382.
Goldberg, L. (2023). Global liquidity: Drivers, volatility and toolkits. Federal Reserve Bank of New York Staff Report 1064.
FRED (2025). ICE BofA Euro High Yield Index Option‑Adjusted Spread (BAMLHE00EHYIOAS). St. Louis Fed Data.
Office of Financial Research (2025). Financial Stress Index sources: High yield indices..
Tashev, T. (2025). The Bitcoin Stock‑to‑Flow Model: A comprehensive guide. Webopedia.
Daily Separator & Killzone marker (L3J)The “Daily Separator (L3J)” is a tool built for day traders who want a clean intraday structure around key U.S. market times and a professional trading-day model. It visually segments trading days, marks critical intraday timestamps (pre-market, cash open, killzone), and aligns with routines inspired by ICT concepts.
Important note: internal code comments and notes are written in French.
What the script does
Draws clear, configurable vertical lines to separate each trading day.
Supports two trading-day models:
- CME 18:00–17:00 (anchored on the Asian session, common for indices/futures)
- Calendar 00:00–23:59 (midnight-to-midnight)
Plots four key intraday rays in UTC‑4:
- 08:30 — U.S. pre-market open
- 09:30 — U.S. cash market open
- 09:50 — killzone start (per my routine)
- 10:30 — killzone end (per my routine)
Smart display logic: each day’s marker stays visible until the time is reached, then auto-hides to keep charts clean.
Object-budget control: caps the number of historical separators to preserve performance.
Day trading strengths (ICT-friendly)
Robust CME anchoring: day switches at the Asian session start in UTC‑4, which better reflects U.S. liquidity flow than calendar midnight.
Focused killzone: highlights 09:50–10:30 for impulse setups, rebalancing, and liquidity events around the open.
Clean readability: fully customizable colors, styles, and widths; markers auto-remove after their window.
Inputs (end‑user labels in French)
- Timezone: choose the time zone (default UTC‑4) for session alignment.
- Day separator:
- Day type: “CME 18:00–17:00” or “Calendrier 00:00–23:59”
- Color, style (solid, dashed, dotted), width
- Max number of visible separators (performance control)
Session (CME): Asian session window used as the anchor (default 18:00–16:00 UTC‑4)
ndependent intraday markers:
- Pre‑Market Open 08:30
- Market Open 09:30
- Killzone Open 09:50
- Killzone Close 10:30
- Each with show/hide, color, style, and width settings
Best practices
U.S. indices ( CME_MINI:ES1! , CME_MINI:NQ1! ) and U.S. equities: favor the “CME 18:00–17:00” mode for a more liquidity‑centric read.
ICT day trading: form directional bias around 09:30, execute between 09:50–10:30 as initial volatility structures.
Multi‑timeframe use: keep it on execution charts (1–5 min) and context charts (15–60 min) for time alignment.
Technical notes
Created by L3J.
Pine Script v6, overlay=true, controlled object budget.
Deterministic time calculations via Pine built‑ins.
All times are expressed in UTC‑4 to align with U.S. practice; adjust the timezone input as needed.
- Internal code comments/notes are written in French.
If this script helps you structure your sessions better, consider leaving a like and sharing it with other intraday traders.
Happy trading, everyone!
Volume Wave AnalyzerWave Buy vs Sell Volume (with Box) analyzes the buying and selling volume within a selected range of past candles. It sums volume from bullish bars (where close > open) as buy volume, bearish bars (close < open) as sell volume, and splits volume evenly for neutral (doji) bars. The indicator displays:
Buy Volume and Sell Volume totals over the chosen candle range
Delta (difference between buy and sell volumes)
Buy Percentage representing buying pressure strength
A visual box on the chart highlighting the selected candle range
This helps traders quickly assess market sentiment and volume dominance during recent price movements, supporting more informed trading decisions.
VRD Anchored VWAP Segments V2.0Distance from VWAP
Duration of segments above/below VWAP
Slope of VWAP movement
Historical averages vs current/previous segments
Intraday Level Touch Counter V2.010 customizable levels (5 positive, 5 negative)
Fixed levels OR dynamic ATR-based levels
Historical statistics with percentage probabilities
Real-time current day monitoring
Customizable table positions and sizes
Up to 500 days of historical analysis
Daily Open & ATR Levels + Monthly/Weekly VWAP V2.0ore Functions:
Customisable ATR Levels
4 adjustable ATR percentage levels (default: 25%, 50%, 75%, 100%)
Creates 8 dynamic support/resistance lines around daily open price
Fully customisable from 0% to 200% in 5% increments
Anchored VWAP
Monthly VWAP: Resets at the beginning of each month
Weekly VWAP: Resets every Monday (after Friday close)
Toggle on/off for each VWAP independently
Smart Fill Zones
Weekly Fill: Highlights when Weekly VWAP is within Level 1 ATR range
Monthly Fill: Highlights when Monthly VWAP is within Level 2 ATR range
Customisable colors and transparency for each fill zone
Key Features:
Daily open price reference line (blue)
Step-line style for clean visualisation
Individual color controls for all levels
Works on any timeframe (uses daily ATR data)
Perfect for intraday and swing trading strategies
Use Cases:
Identify key support/resistance zones based on volatility
Spot VWAP convergence with ATR levels for potential reversals
Set profit targets and stop losses using ATR multiples
Analyze price action relative to daily open and volume-weighted averages
This indicator combines volatility-based levels with volume-weighted price analysis for comprehensive market structure visualisation.
MO and Stoch GOLD H4 V1 – Kim TradingMO and Stoch GOLD H4 V1 – Kim Trading
Slogan: “Trading Is a Profession, Trading Is Life”
Market: XAUUSD (spot gold) • Timeframe: H4 (4 hours)
Entry/Exit Rules
When a B, B1★ … (buy) or S, S1★ … (sell) signal appears, first reference the prevailing trend and consider applying DCA in the direction of that trend. In addition, combine with other methods to build the most optimal setup.
Signal Confidence Tiers
B — S
B1★ — S1★
B2★ — S2★
B3★ — S3★
Enter trades only when one of the four signal types above is printed.
Author: Kim Trading • Version: V1 • Date: 2025-08-22
#XAUUSD #Gold #H4 #MO #Stoch #KimTrading
MO and Stoch GOLD H4 – Kim Trading MO and Stoch GOLD H4 V1 – Kim Trading
Slogan: “Trading Is a Profession, Trading Is Life”
Market: XAUUSD (spot gold) • Timeframe: H4 (4 hours)
Entry/Exit Rules
When a B, B1★ … (buy) or S, S1★ … (sell) signal appears, first reference the prevailing trend and consider applying DCA in the direction of that trend. In addition, combine with other methods to build the most optimal setup.
Signal Confidence Tiers
B — S
B1★ — S1★
B2★ — S2★
B3★ — S3★
Enter trades only when one of the four signal types above is printed.
Author: Kim Trading • Version: V1 • Date: 2025-08-22
#XAUUSD #Gold #H4 #MO #Stoch #KimTrading
[blackcat] L1 Dual Ehlers Bandpass FilterOVERVIEW
The Dual Ehlers Bandpass Filter combines two bandpass filters tuned to the dominant and subdominant market cycles, creating a powerful signal extraction tool. This indicator uses John Ehlers' advanced digital signal processing techniques to isolate specific frequency components from price data. By mixing the outputs of two bandpass filters, it provides a smoother, more responsive signal that captures both primary and secondary market cycles. The indicator includes divergence detection capabilities and multiple mixing methods for customizable signal extraction.
FEATURES
- Dual bandpass filtering with dominant and subdominant cycle detection
- Multiple dominant cycle calculation methods (HoDyDC, PhAcDC, DuDiDC, CycPer, BPZC)
- Flexible mixing options: weighted, sum, difference, dominant-only, or subdominant-only
- Adjustable bandwidth parameters for both filters
- Built-in divergence detection with customizable lookback periods
- Optional display of individual filter components
- Color-coded signals and alerts for bullish/bearish divergences
HOW TO USE
1. Select your preferred price source (close, high, low, etc.)
2. Choose the dominant cycle calculation method from the available options
3. Set the subdominant cycle ratio (typically 0.1-0.9 of the dominant cycle)
4. Adjust bandwidth parameters for both filters (0.1-1.0 range)
5. Select your preferred mixing method:
- Weighted: Mix based on adjustable weights
- Sum: Add both filter outputs
- Difference: Subtract subdominant from dominant
- Dominant: Show only the dominant filter
- Subdominant: Show only the subdominant filter
6. Enable divergence detection to identify potential trend reversals
7. Optionally enable individual filter plots for analysis
LIMITATIONS
- The indicator requires sufficient historical data for accurate cycle detection
- Dominant cycle calculations may vary significantly during low volatility periods
- Divergence signals are lagging indicators and should be used with confirmation
- Bandpass filters may produce false signals during choppy market conditions
- The indicator is not suitable for all trading styles and timeframes
NOTES
- The indicator uses the blackcat1402/dc_ta library for advanced cycle calculations
- Zero line crossing can indicate potential trend changes
- Positive values typically suggest bullish momentum, negative values bearish momentum
- Divergence signals appear as colored dots and labels on the chart
- Alert conditions are available for both bullish and bearish divergences
THANKS
Special thanks to John Ehlers for his pioneering work in digital signal processing for financial markets.
Ludvig Indicator PROThe Ludvig Indicator is designed to identify high-probability breakout setups by combining trend, volume, volatility, and relative strength filters. It helps you enter stocks (or ETFs/crypto) when institutional money is likely flowing in, while avoiding false breakouts and weak trends.
🔑 Core Features
Zero-Lag EMA (ZLEMA)
Faster, less lagging trend detection compared to traditional EMAs.
Used as the basis for dynamic ATR bands.
ATR Volatility Bands
Adaptive bands based on the Average True Range (ATR).
Define the zone where price must close outside to confirm trend strength.
Breakout Confirmation
Requires price to close above recent highs (lookback configurable).
Ensures signals are “true breakouts,” not just noise around moving averages.
Volume Filter (Relative Volume)
Validates breakouts with significantly higher volume than average.
Prevents low-liquidity signals from triggering.
Trend Strength (ADX)
Built-in ADX calculation ensures only strong, trending moves are considered.
Default filter: ADX ≥ 18 (configurable).
Relative Strength vs. Benchmark
Compares the asset’s momentum against a benchmark (default: SPY).
Only signals when the asset is outperforming the benchmark.
Useful for sector rotation and picking leaders instead of laggards.
Alerts & Signals
Breakout entries are marked with small green triangles.
Built-in alerts for automated notifications (TradingView alerts).
Sweep2Trade Pro [CHE]Sweep2Trade Pro \ — Liquidity Sweep → Trend → Confirmation
Sweep2Trade Pro \ helps you catch high-probability reversals or continuations that start with a liquidity sweep, align with the T3 trend, and finalize with a structure confirmation (BOS). It’s designed to reduce noise, time your entries, and keep you out of weak, chop-driven signals.
What’s a “sweep”?
A liquidity sweep happens when price briefly breaks a prior swing high/low (where many stops sit), triggers those stops, and then snaps back. This “stop-hunt” creates liquidity for bigger players and often precedes a sharp move in the opposite direction if the break fails, or fuels continuation if structure actually shifts.
What’s a BOS (Break of Structure)?
A BOS is a price action event where the market takes out a recent swing level in the trend’s direction, signaling continuation and confirming that structure has shifted (bullish BOS through a recent swing high, bearish BOS through a recent swing low).
How the indicator works (at a glance)
1. Regime Filter (T3 + R²)
T3 Moving Average: A smoother, faster-responding moving average that aims to reduce lag while filtering noise, so trend direction changes are clearer.
R² (Coefficient of Determination): Measures how “linear” the recent price path is (0→1). Higher values = stronger, cleaner trend; lower values = more chop. Used here to allow trades only when trend quality exceeds a user-set threshold.
2. Sweep Detection
Bullish sweep: price pokes below a prior swing low and closes back above it.
Bearish sweep: price pokes above a prior swing high and closes back below it.
Lookback length is configurable.
3. Sequence Lock (built-in FSM)
The script manages state in phases so you don’t jump the gun:
Phase 1: Sweep detected → wait for T3 to turn in the corresponding direction.
Phase 2: T3 direction confirmed → show “SWEEP OK” and wait for final confirmation.
Trade Signal: Only fires if confirmation arrives before a timeout.
4. Confirmation Layer
BOS via wick or close (you choose),
Strong close toward the signal (top/bottom quartile of the candle),
Optional “close above/below T3” condition.
These checks help avoid weak sweeps that immediately fade.
5. Alerts & Visuals
“SWEEP OK” markers show when the sweep + T3 direction align.
Final BUY/SELL arrows appear only when the confirmation layer passes.
Ready-made alert conditions for automation.
What you can do with it
Time reversals after sweeps: Enter when a stop-hunt fades and structure confirms.
Ride continuations: Use BOS with the T3 trend to pyramid or re-enter with structure on your side.
Filter chop: Let R² gate entries to periods with cleaner directional drift.
Automate: Use the included alerts with your platform or webhook setup.
Inputs (key settings)
Regime Filter
T3 Length / Volume Factor: Controls smoothness and responsiveness. Smaller length → faster, more sensitive; higher volume factor → smoother curve.
R² Lookback & Threshold: Length of the linear fit window and the minimum “trend quality” required. Higher thresholds mean fewer, cleaner signals.
Sweep / Sequence
Swing Lookback: How far back to define the “reference” high/low for sweeps.
Timeout: Maximum bars allowed between phases to keep signals fresh.
Restart timeout on Phase 2: Optional safety so entries don’t go stale.
Confirmation
BOS Lookback: Micro-pivot window for structure breaks.
Wick vs Close BOS: Conservative traders may prefer close.
Require close above/below T3: Tightens confirmation with trend alignment.
Practical guide (quick start)
1. Timeframe & markets: Works across majors, indices, and crypto. Start with 5m–1h intraday or 1h–4h swing; adjust R² threshold upward on noisier pairs.
2. Entry recipe (Long):
Bullish sweep of a prior low → T3 turns up → BOS/strong close.
Optional: enable “close above T3” for extra confirmation.
3. Entry recipe (Short): Mirror the above.
4. Stops: Common choices are just beyond the sweep wick (tighter) or past the BOS invalidation (safer).
5. Targets: Previous structural levels, measured move, or a T3 trail (exit when price closes back through T3).
6. Avoid low-quality contexts: If R² is very low, market is likely ranging erratically—skip or widen filters.
Tips & best practices
Context first: The same sweep means different things in a strong trend vs. flat regime; that’s why the T3+R² filter exists.
BOS choice: Wick-based BOS is earlier but noisier; close-based BOS is slower but cleaner. Tune per market.
Backtest -> Forward test: Validate settings per symbol/timeframe; then paper trade before going live.
Risk: Fixed fractional risk with asymmetric R\:R (e.g., 1:1.5–1:3) generally performs better than “all-in” discretionary sizing.
Behind the scenes (for the curious)
T3 is a multi-stage EMA construction that produces a smooth curve with reduced lag versus simple/standard EMAs.
R² is the square of correlation (0–1). Here it’s used as a moving gauge of how well price aligns to a linear path—our “trend quality” dial.
Stop-hunts / sweeps are a recognized microstructure phenomenon where clustered stops provide the liquidity that fuels the next move.
Disclaimer
No indicator guarantees profits. Sweep2Trade Pro \ is a decision aid; always combine with solid risk management and your own judgment. Backtest, forward test, and size responsibly.
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Enhance your trading precision and confidence 🚀
Happy trading
Chervolino
Custom Support & Resistance Levels (Manual Input)This indicator lets you plot your own support levels (and can be extended for resistance) directly on the chart by entering them as comma-separated values.
📌 Supports manual input for multiple price levels.
📊 Lines are extended across the chart for clear visualization.
🎨 Dynamic coloring:
Green if the current price is above the level.
Red if the current price is below the level.
🧹 Old lines are automatically cleared to avoid clutter.
This tool is ideal if you:
Prefer to mark your own key zones instead of relying only on auto-detected levels.
Want clean and simple visualization of critical price areas.
👉 Coming soon: Resistance levels input (commented in the code, can be enabled).