Candles by Day, Time, Month + StatsThis Pine Script allows you to filter and display candles based on:
📅 Specific days of the week
🕒 Custom intraday time ranges (e.g., 9:15 to 10:30)
📆 Selected months
📊 Shows stats for each filtered block:
🔼 Range (High – Low)
📏 Average candle body size
⚙️ Key Features:
✅ Filter by day, time, and month
🎛 Toggle to show/hide the stats label
🟩 Candles are drawn only for selected conditions
📍 Stats label is positioned above session high (adjustable)
⚠️ Important Setup Instructions:
✅ 1. Use it on a blank chart
To avoid overlaying with default candles:
Open the chart of your preferred symbol
Click on the chart type (top toolbar: "Candles", "Bars", etc.)
Select "Blank" from the dropdown (this will hide all native candles)
Apply this indicator
This ensures only the filtered candles from the script are visible.
Adjust for your local timezone
This script uses a hardcoded timezone: "Asia/Kolkata"
If you are in a different timezone, change it to your own (e.g. "America/New_York", "Europe/London", etc.) in all instances of:
time(timeframe.period, "Asia/Kolkata")
timestamp("Asia/Kolkata", ...)
Use Cases:
Opening range behavior on specific weekdays/months
Detecting market anomalies during exact windows
Building visual logs of preferred trade hours
Penunjuk dan strategi
TVI-3 Z-Score: MA + VWAP + BB Composite🔧 Overview:
It combines:
Z-score of price relative to the 200-period simple moving average (MA)
Z-score of price relative to the 200-period VWAP (volume-weighted average price)
Z-score of Bollinger Band width
The result is an average of these three Z-scores, plotted as a composite indicator for identifying overvalued and undervalued conditions.
Nến Tô Màu Theo Volume / MA(21)Condition
Point color
Volume ≥ 3× MA(24)
Violet
Volume ≥ 1.5× MA(24)
Red
Volume < 1.5× MA(24) & bullish
White
Volume < 1.5× MA(24) & bearish
Black
Stochastic Money Flow IndexThe Stochastic Money Flow Index (or Stochastic MFI ), is a variation of the classic Stochastic RSI that uses the Money Flow Index (MFI) rather than the Relative Strength Index (RSI) in its calculation.
While the RSI focuses solely on price momentum, the MFI is a volume-weighted indicator, meaning it incorporates both price and volume data.
The Stochastic MFI is intended to provide a more precise and sensitive reading of the MFI by measuring the level of the MFI relative to its range over a specific period.
Settings
Stochastic Settings
%K Length : The number of periods used to calculate the Stochastic. (Default: 14)
%K Smoothing : The SMA length used to 'smooth' the %K line. (Default: 3)
%D Smoothing : The SMA length used to 'smooth' the %D line. (Default: 1)
Money Flow Index Settings
MFI Length : The number of periods used to calculate the Money Flow Index. (Default: 14)
MFI Source : The source used to calculate the Money Flow Index. (Default: close)
Additional Settings
Show Overbought/Oversold Gradients? : Toggle the display of overbought/oversold gradients. (Default: true)
Bollinger Bands ±2σ & ±3σBollinger Band 2 & 3 standard deviation, clubbed together, so that you can take trade on BKP & BKT.
// This Pine Script plots Bollinger Bands with both ±2σ and ±3σ levels for enhanced volatility analysis.
// Users can customize the moving average type, length, and standard deviation multipliers directly in the settings.
// The indicator overlays a shaded ±2σ region and semi-transparent ±3σ bands to highlight extreme price movements.
Momentum SNR VIP [3 TP + Max 50 Pip SL]//@version=6
indicator("Momentum SNR VIP ", overlay=true)
// === Settings ===
pip = input.float(0.0001, "Pip Size", step=0.0001)
sl_pip = 50 * pip
tp1_pip = 40 * pip
tp2_pip = 70 * pip
tp3_pip = 100 * pip
lookback = input.int(20, "Lookback for S/R", minval=5)
// === SNR ===
pivotHigh = ta.pivothigh(high, lookback, lookback)
pivotLow = ta.pivotlow(low, lookback, lookback)
supportZone = not na(pivotLow)
resistanceZone = not na(pivotHigh)
plotshape(supportZone, title="Support", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.tiny)
plotshape(resistanceZone, title="Resistance", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
// === Price Action ===
bullishEngulfing = close < open and close > open and close > open and open <= close
bearishEngulfing = close > open and close < open and close < open and open >= close
bullishPinBar = close < open and (low - math.min(open, close)) > 1.5 * math.abs(close - open)
bearishPinBar = close > open and (high - math.max(open, close)) > 1.5 * math.abs(close - open)
buySignal = supportZone and (bullishEngulfing or bullishPinBar)
sellSignal = resistanceZone and (bearishEngulfing or bearishPinBar)
// === SL & TP ===
rawBuySL = low - 10 * pip
buySL = math.max(close - sl_pip, rawBuySL)
buyTP1 = close + tp1_pip
buyTP2 = close + tp2_pip
buyTP3 = close + tp3_pip
rawSellSL = high + 10 * pip
sellSL = math.min(close + sl_pip, rawSellSL)
sellTP1 = close - tp1_pip
sellTP2 = close - tp2_pip
sellTP3 = close - tp3_pip
// === Plot Lines ===
plot(buySignal ? buySL : na, title="Buy SL", color=color.red, style=plot.style_line, linewidth=1)
plot(buySignal ? buyTP1 : na, title="Buy TP1", color=color.green, style=plot.style_line, linewidth=1)
plot(buySignal ? buyTP2 : na, title="Buy TP2", color=color.green, style=plot.style_line, linewidth=1)
plot(buySignal ? buyTP3 : na, title="Buy TP3", color=color.green, style=plot.style_line, linewidth=1)
plot(sellSignal ? sellSL : na, title="Sell SL", color=color.red, style=plot.style_line, linewidth=1)
plot(sellSignal ? sellTP1 : na, title="Sell TP1", color=color.green, style=plot.style_line, linewidth=1)
plot(sellSignal ? sellTP2 : na, title="Sell TP2", color=color.green, style=plot.style_line, linewidth=1)
plot(sellSignal ? sellTP3 : na, title="Sell TP3", color=color.green, style=plot.style_line, linewidth=1)
// === Floating Labels on Right Side ===
if buySignal
label.new(x=bar_index + 50, y=buySL, text="SL", style=label.style_label_right, color=color.red, textcolor=color.white)
label.new(x=bar_index + 50, y=buyTP1, text="TP1", style=label.style_label_right, color=color.green, textcolor=color.white)
label.new(x=bar_index + 50, y=buyTP2, text="TP2", style=label.style_label_right, color=color.green, textcolor=color.white)
label.new(x=bar_index + 50, y=buyTP3, text="TP3", style=label.style_label_right, color=color.green, textcolor=color.white)
if sellSignal
label.new(x=bar_index + 50, y=sellSL, text="SL", style=label.style_label_right, color=color.red, textcolor=color.white)
label.new(x=bar_index + 50, y=sellTP1, text="TP1", style=label.style_label_right, color=color.green, textcolor=color.white)
label.new(x=bar_index + 50, y=sellTP2, text="TP2", style=label.style_label_right, color=color.green, textcolor=color.white)
label.new(x=bar_index + 50, y=sellTP3, text="TP3", style=label.style_label_right, color=color.green, textcolor=color.white)
// === Signal Markers ===
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === Alerts ===
alertcondition(buySignal, title="Buy Alert", message="🟢 BUY at Support Zone + Price Action")
alertcondition(sellSignal, title="Sell Alert", message="🟡 SELL at Resistance Zone + Price Action")
Momentum SNR VIP [3 TP + Max 50 Pip SL]//@version=6
indicator("Momentum SNR VIP ", overlay=true)
// === Settings ===
pip = input.float(0.0001, "Pip Size", step=0.0001)
sl_pip = 50 * pip
tp1_pip = 40 * pip
tp2_pip = 70 * pip
tp3_pip = 100 * pip
lookback = input.int(20, "Lookback for S/R", minval=5)
// === SNR ===
pivotHigh = ta.pivothigh(high, lookback, lookback)
pivotLow = ta.pivotlow(low, lookback, lookback)
supportZone = not na(pivotLow)
resistanceZone = not na(pivotHigh)
plotshape(supportZone, title="Support", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.tiny)
plotshape(resistanceZone, title="Resistance", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
// === Price Action ===
bullishEngulfing = close < open and close > open and close > open and open <= close
bearishEngulfing = close > open and close < open and close < open and open >= close
bullishPinBar = close < open and (low - math.min(open, close)) > 1.5 * math.abs(close - open)
bearishPinBar = close > open and (high - math.max(open, close)) > 1.5 * math.abs(close - open)
buySignal = supportZone and (bullishEngulfing or bullishPinBar)
sellSignal = resistanceZone and (bearishEngulfing or bearishPinBar)
// === SL & TP ===
rawBuySL = low - 10 * pip
buySL = math.max(close - sl_pip, rawBuySL)
buyTP1 = close + tp1_pip
buyTP2 = close + tp2_pip
buyTP3 = close + tp3_pip
rawSellSL = high + 10 * pip
sellSL = math.min(close + sl_pip, rawSellSL)
sellTP1 = close - tp1_pip
sellTP2 = close - tp2_pip
sellTP3 = close - tp3_pip
// === Plot Buy/Sell Signal
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === Plot SL & TP lines
plot(buySignal ? buySL : na, title="Buy SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP1 : na, title="Buy TP1", color=color.green, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP2 : na, title="Buy TP2", color=color.green, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP3 : na, title="Buy TP3", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellSL : na, title="Sell SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP1 : na, title="Sell TP1", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP2 : na, title="Sell TP2", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP3 : na, title="Sell TP3", color=color.green, style=plot.style_linebr, linewidth=1)
// === Labels
if buySignal
label.new(x=bar_index, y=buySL, text="SL : " + str.tostring(buySL, "#.0000"), style=label.style_label_down, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=buyTP1, text="TP1 : " + str.tostring(buyTP1, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=buyTP2, text="TP2 : " + str.tostring(buyTP2, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=buyTP3, text="TP3 : " + str.tostring(buyTP3, "#.0000"), style=label.style_label_up, color=color.green, textcolor=color.white)
if sellSignal
label.new(x=bar_index, y=sellSL, text="SL : " + str.tostring(sellSL, "#.0000"), style=label.style_label_up, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=sellTP1, text="TP1 : " + str.tostring(sellTP1, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=sellTP2, text="TP2 : " + str.tostring(sellTP2, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
label.new(x=bar_index, y=sellTP3, text="TP3 : " + str.tostring(sellTP3, "#.0000"), style=label.style_label_down, color=color.green, textcolor=color.white)
// === Alerts
alertcondition(buySignal, title="Buy Alert", message="🟢 BUY at Support Zone + Price Action")
alertcondition(sellSignal, title="Sell Alert", message="🟡 SELL at Resistance Zone + Price Action")
VDN2 - SuperTrend + ADX + Stochastic StrategySuperTrend + ADX + Stochastic
Overview:
A trend-following and momentum-confirmation strategy using SuperTrend, ADX (>20 filter), and Stochastic oscillator. Optimized for Gold (XAUUSD) on the 10-minute chart.
Backtest Highlights (Last 1 Week):
Win Rate: 83.3% (5 out of 6 trades)
Net Profit: +56.35 USD (1 contract size)
Avg Trade Duration: ~58 bars (~9.6 hours)
Max Drawdown: 16.65 USD
Avg Win: 9.24 USD, Avg Loss: 0.82 USD
Largest Single Profit: 23.28 USD
Profit Factor: ~11.27
Core Logic:
Enter Long when:
* SuperTrend is bullish
* ADX > 20
* Stochastic %K > %D and %K < 80
Enter Short when:
* SuperTrend is bearish
* ADX > 20
* Stochastic %K < %D and %K > 20
No fixed TP/SL. Positions closed on signal reversal.
Momentum SNR VIP (Step 2)//@version=6
indicator("Momentum SNR VIP (Step 2)", overlay=true)
// === Inputs ===
lookback = input.int(20, "Lookback for S/R", minval=5)
rr_ratio = input.float(2.0, "Risk-Reward Ratio", minval=0.5, step=0.1)
plot(close, color=color.orange)
GX Credit Spread SignalThe GX Credit Spread Signal is an advanced indicator designed for traders who trade options strategies on the SPX index, especially using vertical credit spreads. It combines traditional technical analysis with volatility and option pricing concepts to provide relevant signals and projections on the chart.
Main features:
Trend analysis: Uses opening gap, position relative to VWAP and simple moving average (SMA 50) to indicate bullish or bearish bias right after the first 15-minute candle.
Safe range projection: Calculates a range based on the ATR (Average True Range) multiplied by a safety factor, suggesting potential strikes for credit spreads.
Quantitative estimates:
Calculates the estimated delta of options via the Black-Scholes formula approximation.
Estimated probability of expiring out of the money (OTM).
Chart visualizations: Displays projected ATR lines, previous day's levels (high, low, close) and an informative panel with strikes, delta, OTM probability, ATR and VWAP data.
Configurable alerts: Notifications for detected bullish or bearish bias, helping the trader to identify opportunities quickly.
This indicator is ideal for those who day trade with SPX options, facilitating decision-making by combining technical analysis, volatility and option probabilities in one place.
SuperTrend + ADX + Stochastic Stratejisi SuperTrend + ADX + Stochastic
Overview:
A trend-following and momentum-confirmation strategy using SuperTrend, ADX (>20 filter), and Stochastic oscillator. Optimized for Gold (XAUUSD) on the 10-minute chart.
Backtest Highlights (Last 1 Week):
Win Rate: 83.3% (5 out of 6 trades)
Net Profit: +56.35 USD (1 contract size)
Avg Trade Duration: ~58 bars (~9.6 hours)
Max Drawdown: 16.65 USD
Avg Win: 9.24 USD, Avg Loss: 0.82 USD
Largest Single Profit: 23.28 USD
Profit Factor: ~11.27
Core Logic:
Enter Long when:
* SuperTrend is bullish
* ADX > 20
* Stochastic %K > %D and %K < 80
Enter Short when:
* SuperTrend is bearish
* ADX > 20
* Stochastic %K < %D and %K > 20
No fixed TP/SL.
Positions closed on signal reversal.
LinearRegfressionL'indicatore fornisce una semplice regressione lineare dei valori High, Low, Open, Close
My script//@version=5
indicator("MA + OI + Volume Breakout", overlay=true)
// === MA Parameters ===
ma_type = input.string("EMA", title="MA Type", options= )
ma(src, len, type) =>
type == "SMA" ? ta.sma(src, len) :
type == "EMA" ? ta.ema(src, len) :
ta.wma(src, len)
ma5 = ma(close, 5, ma_type)
ma21 = ma(close, 21, ma_type)
ma50 = ma(close, 50, ma_type)
ma100 = ma(close, 100, ma_type)
plot(ma5, "5-day MA", color=color.yellow, linewidth=2)
plot(ma21, "21-day MA", color=color.orange, linewidth=2)
plot(ma50, "50-day MA", color=color.fuchsia, linewidth=2)
plot(ma100, "100-day MA", color=color.blue, linewidth=2)
// === Trend Signal ===
bullish_trend = ma5 > ma21 and ma21 > ma50 and ma50 > ma100
bearish_trend = ma5 < ma21 and ma21 < ma50 and ma50 < ma100
bgcolor(bullish_trend ? color.new(color.green, 85) : bearish_trend ? color.new(color.red, 85) : na)
// === Volume Breakout ===
vol_avg = ta.sma(volume, 20)
vol_breakout = volume > 1.5 * vol_avg
plotshape(vol_breakout, title="Volume Breakout", location=location.belowbar, style=shape.circle, color=color.aqua, size=size.tiny)
// === Open Interest Overlay (assumes OI data via external input or future integration) ===
// Placeholder: simulate OI input (replace with `request.security(syminfo.tickerid, ..., ...)` if available)
oi = input.float(na, title="Open Interest (external feed)")
oi_avg = ta.sma(oi, 20)
oi_breakout = oi > 1.2 * oi_avg
plotshape(not na(oi) and oi_breakout, title="OI Spike", location=location.belowbar, style=shape.diamond, color=color.purple, size=size.tiny)
plot(oi, title="Open Interest", color=color.gray, display=display.none) // Optional: hidden line for alerts
// === Composite Signal ===
strong_long = bullish_trend and vol_breakout and oi_breakout
plotshape(strong_long, title="Strong Long Signal", location=location.belowbar, style=shape.labelup, text="LONG", size=size.small, color=color.lime)
// === Screener Logic ===
// Use `strong_long` as your filter condition in a screener or dashboard output
Normalized Reserve Risk (Proxy Z-Score)normalised version of the reserve risk indicator on btc magazine because the btc magazine one is poo .
Previous 10 Weekly Highs/Lows z s s bsf bsfd sfdv svdvvdsfvsdvsddvbadvvf zfvdzcxvdsfzv dfcvfdcxvsfdzvzdsfcx
VWAP SlopePositive (green) bars mean today’s (or this interval’s) VWAP is higher than the prior one → volume‐weighted average price is drifting up → bullish flow.
Negative (red) bars mean VWAP is lower than before → volume is skewed to sellers → bearish flow.
Bar height shows how much VWAP has shifted, so taller bars = stronger conviction.
Why it’s useful:
It gives you a real-time read on whether institutions are consistently buying at higher prices or selling at lower prices.
Use it as a bias filter: for shorts you want to see red bars (VWAP down-slope) at your entry, and for longs green bars (VWAP up-slope).
Because it updates tick-by-tick (or per bar), you get a live snapshot of volume-weighted momentum on top of your price‐action and oscillator signals.
Previous 10 Weekly Highs/Lowsvbcsvbabvdvbnsvnsiavonvbdobvasvbjsdavbdsoajvbdjaovbajv bajv adsjkv jksdv jkav kjsdf
Momentum SNR VIP [INDICATOR ONLY]//@version=6
indicator("Momentum SNR VIP ", overlay=true)
// === Inputs ===
lookback = input.int(20, "Lookback for S/R", minval=5)
rr_ratio = input.float(2.0, "Risk-Reward Ratio", minval=0.5, step=0.1)
// === SNR Detection ===
pivotHigh = ta.pivothigh(high, lookback, lookback)
pivotLow = ta.pivotlow(low, lookback, lookback)
supportZone = not na(pivotLow)
resistanceZone = not na(pivotHigh)
plotshape(supportZone, title="Support", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.tiny)
plotshape(resistanceZone, title="Resistance", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
// === Price Action ===
bullishEngulfing = close < open and close > open and close > open and open <= close
bearishEngulfing = close > open and close < open and close < open and open >= close
bullishPinBar = close < open and (low - math.min(open, close)) > 1.5 * math.abs(close - open)
bearishPinBar = close > open and (high - math.max(open, close)) > 1.5 * math.abs(close - open)
buySignal = supportZone and (bullishEngulfing or bullishPinBar)
sellSignal = resistanceZone and (bearishEngulfing or bearishPinBar)
// === SL & TP ===
buySL = low - 10
buyTP = close + (close - buySL) * rr_ratio
sellSL = high + 10
sellTP = close - (sellSL - close) * rr_ratio
// === Plot Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
plot(buySignal ? buySL : na, title="Buy SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(buySignal ? buyTP : na, title="Buy TP", color=color.green, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellSL : na, title="Sell SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(sellSignal ? sellTP : na, title="Sell TP", color=color.green, style=plot.style_linebr, linewidth=1)
// === Labels (Fixed)
if buySignal
label.new(x=bar_index, y=buySL, text="SL : " + str.tostring(buySL, "#.00"), style=label.style_label_down, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=buyTP, text="TP 1 : " + str.tostring(buyTP, "#.00"), style=label.style_label_up, color=color.green, textcolor=color.white)
if sellSignal
label.new(x=bar_index, y=sellSL, text="SL : " + str.tostring(sellSL, "#.00"), style=label.style_label_up, color=color.red, textcolor=color.white)
label.new(x=bar_index, y=sellTP, text="TP 1 : " + str.tostring(sellTP, "#.00"), style=label.style_label_down, color=color.green, textcolor=color.white)
// === Alerts
alertcondition(buySignal, title="Buy Alert", message="🟢 BUY at Support Zone + Price Action")
alertcondition(sellSignal, title="Sell Alert", message="🟡 SELL at Resistance Zone + Price Action")
VDN1 - T3 Tilson + IFT + ATRThis strategy combines three powerful indicators to create a high-quality and low-noise trading system:
🔹 T3 Tilson: Serves as the main trend indicator. It reacts smoothly to market direction changes while reducing noise.
🔹 Inverse Fisher Transform of RSI: A momentum filter that sharpens the signal precision. Only trades in the direction of positive or negative momentum.
🔹 ATR Filter: Avoids entries during low volatility (sideways) periods. Ensures the market is active enough before executing trades.
Core Logic:
* Long Entry: T3 Tilson rising + IFT(RSI) > 0 + ATR > threshold
* Short Entry: T3 Tilson falling + IFT(RSI) < 0 + ATR > threshold
* All trades use a fixed size of 1 unit for consistent risk evaluation.
Performance Notes:
* Works exceptionally well on index futures (e.g., NAS100, US30, GER40)
* Shows low drawdown and high profit factor (PF > 3) on those assets
* Also performs decently on XAUUSD, even with only \~32% win rate — thanks to favorable risk/reward
* BTC and ETH may require modified versions due to higher volatility and whipsaws
This is a master version — clean, unoptimized, and stable.
Use this as a core engine to build and test enhanced versions (e.g., with TP/SL, dynamic filters, etc.)
Happy testing and trading!