Levels from NY Open and SettlementThis indicator draws a line from the high and low of the 30 second candle at 14:59:30CT, and extends the lines for 24 hours.
It draws another high low from the 8:30CT 30 second opening candle and extends them for the full 24 to the next NY open, plus another 6.5 hours until the next settlement time at 14:59:30CT.
This gives a very long liquidity box starting from the 30 second candle of the NY open, and a shorter liquidity box starting from the 30 second candle of settlement time.
Penunjuk dan strategi
TWAP (Double, 14:59:30CT & 08:30CT)These two TWAPs are set at CME settlement time and NY Open. I don't use the deviations but it does have 5 SD.
TRK19121. Add the Script to TradingView
• Copy the Pine Script code I gave you.
• In TradingView, open the Pine Editor (bottom of the screen).
• Paste the code and click Add to Chart.
2. What You’ll See
• On your chart, Fibonacci retracement levels will be drawn automatically between the highest and lowest points in the last lookback bars (default = 100).
• Bollinger Bands (20-period SMA with ±2 standard deviations) will also appear.
• On the top-right corner, a table will show all Fibonacci levels (0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%) with their exact price values.
• All text in the table is black for clarity.
3. How It Updates
• Every new candle, the script recalculates the highest and lowest points in the lookback window.
• The Fibonacci levels and the table update automatically.
• You don’t need to manually redraw fibo lines — the script does it for you.
4. How to Interpret
• Fibonacci levels act as potential support/resistance zones.
• Bollinger Bands show volatility and overbought/oversold conditions.
• If price is near a Fibonacci level and touches the Bollinger upper/lower band, that’s a strong signal area.
• Example:
• Price near 61.8% fibo + lower band → possible bounce (long).
• Price near 38.2% fibo + upper band → possible rejection (short).
5. Customization
• You can change the value (default 100 bars) to adjust how far back the script finds the high/low.
• You can change Bollinger settings (, ) to fit your trading style.
• The table always shows the current fibo levels clearly, so you don’t need to measure them manually.
Fibo + Bollinger + Fibo Tablosu1. Add the Script to TradingView
• Copy the Pine Script code I gave you.
• In TradingView, open the Pine Editor (bottom of the screen).
• Paste the code and click Add to Chart.
2. What You’ll See
• On your chart, Fibonacci retracement levels will be drawn automatically between the highest and lowest points in the last lookback bars (default = 100).
• Bollinger Bands (20-period SMA with ±2 standard deviations) will also appear.
• On the top-right corner, a table will show all Fibonacci levels (0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%) with their exact price values.
• All text in the table is black for clarity.
3. How It Updates
• Every new candle, the script recalculates the highest and lowest points in the lookback window.
• The Fibonacci levels and the table update automatically.
• You don’t need to manually redraw fibo lines — the script does it for you.
4. How to Interpret
• Fibonacci levels act as potential support/resistance zones.
• Bollinger Bands show volatility and overbought/oversold conditions.
• If price is near a Fibonacci level and touches the Bollinger upper/lower band, that’s a strong signal area.
• Example:
• Price near 61.8% fibo + lower band → possible bounce (long).
• Price near 38.2% fibo + upper band → possible rejection (short).
5. Customization
• You can change the value (default 100 bars) to adjust how far back the script finds the high/low.
• You can change Bollinger settings (, ) to fit your trading style.
• The table always shows the current fibo levels clearly, so you don’t need to measure them manually.
Percent Change Histogram + MACandle Percent Move Columns with Optional Moving Average
Description:
This indicator calculates the percentage move of each candle over a specified number of bars and displays it as upward-facing columns, regardless of the candle direction. Each column is color-coded based on the candle’s direction—green for bullish, red for bearish. An optional moving average can be overlaid on the percentage values to help visualize trends and smooth out volatility.
Features:
Shows each candle’s percentage move as a column facing upward.
Columns are colored according to candle direction.
Adjustable input for the number of bars used in calculation.
Optional moving average overlay that can be added or removed.
Helps quickly assess volatility and trend strength in percentage terms.
Use Case:
Ideal for traders who want a clear visual representation of individual candle movements in percentage terms, making it easier to spot trends, pullbacks, and volatility patterns across different timeframes.
Opening Range + Prev/Pre/Post Market Hi/Lo
Tracks each day’s regular-session high/low and their bar_index.
On a new day, stores those as “prev day” values.
Draws the prev-day lines anchored at the actual high/low bars from yesterday, then extends them across today (and beyond).
4x Stochastic Combo - %K only4x Stochastic Combo in one indicator.
Default parameters: (9, 3, 3), (14, 3, 3), (40, 4, 4), (60, 10, 10)
Only %K is shown.
Possibility to set alerts "all above 80" or "all below 20".
How to use:
Look for divergence after getting an alert for good quality signals. Connect the stochastic signals with multi-timeframe analysis.
RSL Screener Column//@version=5
indicator("RSL Screener Column", shorttitle="RSL", overlay=false)
sma26 = ta.sma(close, 26)
rsl = close / sma26
plot(rsl)
Average Candle SizeI created this indicator because I couldn't find a simple tool that calculates just the average candle size without additional complexity. Built for traders who want a straightforward volatility measure they can fully understand. How it works:
1. Calculate high-low for each candle
2. Sum all results
3. Divide by the total number of candles
Simple math to get the average candle size of the period specified in Length.
Stage 2 Trend Signals (10/21/50/200) *Trend-following indicator designed to focus on **strong Stage 2 uptrends**, not bottom-fishing or chop.
* Plots **10 EMA, 21 EMA, 50 SMA, and 200 SMA** as core moving averages.
* Uses a **trend filter** so buy signals only occur when:
* Price is above the **50 SMA** (and optionally above the **200 SMA**), and
* The **50 SMA is above the 200 SMA**, reflecting classic Stage 2 alignment.
* Prints a **green “BUY” label** when the **10 EMA crosses above the 21 EMA** within this bullish environment, signaling momentum turning up in an established uptrend.
* Prints a **red “SELL” label** when the **10 EMA crosses below the 21 EMA** or when price is in a bearish context and closes below the 21 EMA, prompting risk reduction as trend/momentum weaken.
* Light **green background shading** highlights periods where the bullish Stage 2 conditions are active (“trend-on” zones).
* Works on **any timeframe**; commonly used on:
* **Weekly charts** for big-picture trend confirmation.
* **Daily charts** for swing entries, exits, and active trade management.
Stoch RSI Buy/Sell Signals with AlertsThis color code helps a novice know when to buy and when to sell
What Each Section Does
Header: //@version=5 tells TradingView which Pine Script version to use.
Indicator setup: indicator("Stoch RSI Buy/Sell Signals with Alerts", overlay=false) names your script and sets it to plot in a separate panel.
Inputs: Adjustable parameters for RSI length, Stoch length, and smoothing. You can tweak these in the settings panel.
Calculations: Builds RSI, then Stoch RSI, then smooths into %K and %D lines.
Signals: Defines buy (green) and sell (red) conditions based on crossovers and thresholds.
Color logic: Dynamically changes the %K line color (green/red/gray).
Plots: Draws %K (colored) and %D (blue) lines.
Background shading: Adds light green/red shading when signals fire for easy visual scanning.
Alerts: Pops up TradingView alerts when buy/sell conditions trigger, so you don’t miss them.
✅ Publishing Notes
Paste this into a new blank Pine Script editor starting at line 1.
Save and add it to your chart.
You’ll see the %K line flip colors, background shading, and alerts firing when conditions are met.
GEOtheGEMIt looks for when the fast EMA crosses above the slow one, and the trend is up. If RSI is above fifty—and volume jumps—it draws a green arrow and tells you buy. It trails the stop so you don't get shaken out. And if price drops below the two-hundred, it won't short you in a rally. That's it. Nothing fancy. Just: is it going up? Yes? Get in. No? Stay out.
Momentum Permission + Pivot Entry (v1.4 CLEAN ENTRY)//@version=5
indicator("Momentum Permission + Pivot Entry (v1.4 CLEAN ENTRY)", overlay=true)
// ─────────── INPUTS ───────────
pivotLookback = input.int(3, "Pivot Lookback")
smaLen = input.int(50, "SMA Length")
relVolTh = input.float(1.3, "RelVol Threshold")
// ─────────── TREND + MOMENTUM — BASICS ───────────
vwapLine = ta.vwap
smaLine = ta.sma(close, smaLen)
relVol = volume / ta.sma(volume, 10)
pivotLow = ta.lowest(low, pivotLookback) == low
trendUp = close > smaLine
aboveVWAP = close > vwapLine
greenCandle = close > open
// ─────────── PERMISSION (Context Only) ───────────
permitSignal = trendUp and (relVol > relVolTh)
// ─────────── ENTRY LOGIC — ONE CLEAN SIGNAL ───────────
rawEntry = permitSignal and aboveVWAP and pivotLow and greenCandle
// Anti-spam: only first signal in a move
entrySignal = rawEntry and not rawEntry
// ─────────── VISUAL SHAPES (Clean) ───────────
plotshape(permitSignal, style=shape.triangleup, color=color.lime, size=size.tiny, location=location.bottom, text="PERMIT")
plotshape(entrySignal, style=shape.triangleup, color=color.aqua, size=size.small, text="ENTRY")
// ─────────── TREND VISUALS ───────────
plot(vwapLine, "VWAP", color=color.blue, linewidth=2)
plot(smaLine, "SMA50", color=color.orange, linewidth=2)
One-Time 50 SMA Trend Start//@version=5
indicator("One-Time 50 SMA Trend Start", overlay=true)
// ─── Inputs ──────────────────────────────────────────────
smaLength = input.int(50, "SMA Length")
// ─── Calculations ────────────────────────────────────────
sma50 = ta.sma(close, smaLength)
crossUp = ta.crossover(close, sma50)
// Track whether we've already fired today
var bool alerted = false
// Reset alert for new session
if ta.change(time("D"))
alerted := false
// Trigger one signal only
signal = crossUp and not alerted
if signal
alerted := true
// ─── Plots ───────────────────────────────────────────────
plot(sma50, color=color.orange, linewidth=2, title="50 SMA")
plotshape(
signal,
title="First Cross Above",
style=shape.triangleup,
color=color.new(color.green, 0),
size=size.large,
location=location.belowbar,
text="Trend"
)
bcon's bemas (5,8,13,21)simple ribbin i use for scalps. the 5 8 13 and 21 ema. like to see them lined up when i see a cross thats my sign to take profit
Interest Rate ExpectationsThis indicator shows how much rate cuts or hikes are currently priced into SOFR futures. You choose two SOFR contracts and the script converts each contract price into basis points relative to the current effective fed funds rate. This gives you a very clear view of how policy expectations shift over time.
You can switch between using a fixed EFFR value or pulling the live EFFR ticker. Colours for each line and label are fully adjustable. The script also includes an optional grid for the plus or minus 25, 50 and 75 basis point levels so the chart does not zoom out too far.
Labels appear at the end of both lines and display how many basis points of cuts or hikes are priced for each contract. A small reference box is added on the chart to remind you what each quarterly code represents. For example H is March and Z is December.
The background shading highlights changes in the timing of cuts. Green shading means the market is pushing cuts further out in time. Red shading means cuts are being pulled closer. This gives a simple and visual way to track how the curve reprices near term versus long term policy expectations.
This tool is useful for anyone tracking fed path repricing, front end volatility, macro catalysts or cross asset rate sensitivity.
Custom ORB (Adjust Time, Color, + Alerts)Set Opening Range Break Out for whatever time range you choose for current day only. 15 min, 30 min etc. You can add alerts on ORB High Low and change color of Lines.
KING Super Trend Hull (Multi MA)super trende ortalamalar eklendi. alexander ma degisken ortalama gibi..
SPX EMAs - Bala//@version=5
indicator("SPX EMAs", overlay = true)
// Inputs
ema8 = ta.ema(close, 8)
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
// Plot EMAs
plot(ema8, "EMA 8", color=color.new(color.green, 0), linewidth=2)
plot(ema21, "EMA 21", color=color.new(color.orange, 0), linewidth=2)
plot(ema50, "EMA 50", color=color.new(color.blue, 0), linewidth=2)
plot(ema200,"EMA 200",color=color.new(color.red, 0), linewidth=2)
PRO Trade Manager//@version=5
indicator("PRO Trade Manager", shorttitle="PRO Trade Manager", overlay=false)
// ============================================================================
// INPUTS
//This code and all related materials are the exclusive property of Trade Confident LLC. Any reproduction, distribution, modification, or unauthorized use of this code, in whole or in part, is strictly prohibited without the express written consent of Trade Confident LLC. Violations may result in civil and/or criminal penalties to the fullest extent of the law.
// © Trade Confident LLC. All rights reserved.
// ============================================================================
// Moving Average Settings
maLength = input.int(15, "Signal Strength", minval=1, tooltip="Length of the moving average to measure deviation from (lower = more sensitive)")
maType = "SMA" // Fixed to SMA, no longer user-selectable
// Deviation Settings
deviationLength = input.int(20, "Deviation Period", minval=1, tooltip="Lookback period for standard deviation calculation")
// Signal Frequency dropdown - controls both upper and lower thresholds
signalFrequency = input.string("More/Good Accuracy", "Signal Frequency", options= ,
tooltip="Normal/Highest Accuracy = ±2.0 StdDev | More/Good Accuracy = ±1.5 StdDev | Most/Moderate Accuracy = ±1.0 StdDev")
// Set thresholds based on selected frequency
upperThreshold = signalFrequency == "Most/Moderate Accuracy" ? 1.0 : signalFrequency == "More/Good Accuracy" ? 1.5 : 2.0
lowerThreshold = signalFrequency == "Most/Moderate Accuracy" ? -1.0 : signalFrequency == "More/Good Accuracy" ? -1.5 : -2.0
// Continuation Signal Settings
atrMultiplier = input.float(2.0, "TP/DCA Market Breakout Detection", minval=0, step=0.5, tooltip="Number of ATR moves required to trigger continuation signals (Set to 0 to disable)")
// Visual Settings
showMA = false // MA display removed from settings
showSignals = input.bool(true, "Show Alert Signals", tooltip="Show visual signals when price is overextended")
// ============================================================================
// CALCULATIONS
// ============================================================================
// Calculate Moving Average based on type
ma = switch maType
"SMA" => ta.sma(close, maLength)
"EMA" => ta.ema(close, maLength)
"WMA" => ta.wma(close, maLength)
"VWMA" => ta.vwma(close, maLength)
=> ta.sma(close, maLength)
// Calculate deviation from MA
deviation = close - ma
// Calculate standard deviation
stdDev = ta.stdev(close, deviationLength)
// Calculate number of standard deviations away from MA
deviationScore = stdDev != 0 ? deviation / stdDev : 0
// Smooth the deviation score slightly for cleaner signals
smoothedDeviation = ta.ema(deviationScore, 3)
// ============================================================================
// SIGNALS
// ============================================================================
// Overextended conditions
overextendedHigh = smoothedDeviation >= upperThreshold
overextendedLow = smoothedDeviation <= lowerThreshold
// Signal triggers (crossing into overextended territory)
bullishSignal = ta.crossunder(smoothedDeviation, lowerThreshold)
bearishSignal = ta.crossover(smoothedDeviation, upperThreshold)
// Track if we're in bright histogram zones
isBrightGreen = smoothedDeviation <= lowerThreshold
isBrightRed = smoothedDeviation >= upperThreshold
// Track if we were in bright zone on previous bar
wasBrightGreen = smoothedDeviation <= lowerThreshold
wasBrightRed = smoothedDeviation >= upperThreshold
// Detect oscillator turning up after bright green (buy signal)
// Trigger if we were in bright green and oscillator turns up, even if no longer bright green
oscillatorTurningUp = smoothedDeviation > smoothedDeviation
buySignal = barstate.isconfirmed and wasBrightGreen and oscillatorTurningUp and smoothedDeviation <= smoothedDeviation
// Detect oscillator turning down after bright red (sell signal)
// Trigger if we were in bright red and oscillator turns down, even if no longer bright red
oscillatorTurningDown = smoothedDeviation < smoothedDeviation
sellSignal = barstate.isconfirmed and wasBrightRed and oscillatorTurningDown and smoothedDeviation >= smoothedDeviation
// ============================================================================
// ATR-BASED CONTINUATION SIGNALS
// ============================================================================
// Calculate ATR for distance measurement
atrLength = 14
atr = ta.atr(atrLength)
// Track price levels when ANY sell or buy signal occurs (original or continuation)
var float lastSellPrice = na
var float lastBuyPrice = na
// Initialize tracking on original signals
if sellSignal
lastSellPrice := close
if buySignal
lastBuyPrice := close
// Continuation Sell Signal: Price moved up by ATR multiplier from last red dot
// Disabled when atrMultiplier is set to 0
continuationSell = atrMultiplier > 0 and barstate.isconfirmed and not na(lastSellPrice) and close >= lastSellPrice + (atrMultiplier * atr)
// Continuation Buy Signal: Price moved down by ATR multiplier from last green dot
// Disabled when atrMultiplier is set to 0
continuationBuy = atrMultiplier > 0 and barstate.isconfirmed and not na(lastBuyPrice) and close <= lastBuyPrice - (atrMultiplier * atr)
// Update reference prices when continuation signals trigger (reset the 3 ATR counter)
if continuationSell
lastSellPrice := close
if continuationBuy
lastBuyPrice := close
// Combine original and continuation signals for plotting
allBuySignals = buySignal or continuationBuy
allSellSignals = sellSignal or continuationSell
// Track if a signal occurred to keep it visible on dashboard
// Signals trigger at barstate.isconfirmed (bar close)
var bool showBuyOnDashboard = false
var bool showSellOnDashboard = false
// Update dashboard flags immediately when signals occur
if allBuySignals
showBuyOnDashboard := true
showSellOnDashboard := false
else if allSellSignals
showSellOnDashboard := true
showBuyOnDashboard := false
else if barstate.isconfirmed
// Reset flags on bar close if no new signal
showBuyOnDashboard := false
showSellOnDashboard := false
// ============================================================================
// PLOTTING
// ============================================================================
// Professional color scheme
var color colorBullish = #00C853 // Professional green
var color colorBearish = #FF1744 // Professional red
var color colorNeutral = #2962FF // Professional blue
var color colorGrid = #363A45 // Dark gray for lines
var color colorBackground = #1E222D // Chart background
// Dynamic line color based on value
lineColor = smoothedDeviation > upperThreshold ? colorBearish :
smoothedDeviation < lowerThreshold ? colorBullish :
smoothedDeviation > 0 ? color.new(colorBearish, 50) :
color.new(colorBullish, 50)
// Plot the deviation oscillator with dynamic coloring
plot(smoothedDeviation, "Deviation Score", color=lineColor, linewidth=2)
// Plot zero line
hline(0, "Zero Line", color=color.new(colorGrid, 0), linestyle=hline.style_solid, linewidth=1)
// Subtle fill for overextended zones (without visible threshold lines)
upperLine = hline(upperThreshold, "Upper Threshold", color=color.new(color.gray, 100), linestyle=hline.style_dashed, linewidth=1)
lowerLine = hline(lowerThreshold, "Lower Threshold", color=color.new(color.gray, 100), linestyle=hline.style_dashed, linewidth=1)
fill(upperLine, hline(3), color=color.new(colorBearish, 95), title="Overextended High Zone")
fill(lowerLine, hline(-3), color=color.new(colorBullish, 95), title="Overextended Low Zone")
// Histogram style visualization (optional alternative)
histogramColor = smoothedDeviation >= upperThreshold ? color.new(colorBearish, 20) :
smoothedDeviation <= lowerThreshold ? color.new(colorBullish, 20) :
smoothedDeviation > 0 ? color.new(colorBearish, 80) :
color.new(colorBullish, 80)
plot(smoothedDeviation, "Histogram", color=histogramColor, style=plot.style_histogram, linewidth=3)
// ============================================================================
// BUY/SELL SIGNAL MARKERS
// ============================================================================
// Plot buy signals at -3.5 level (includes both initial and extended signals)
plot(allBuySignals ? -3.5 : na, title="Buy Signal", style=plot.style_circles,
color=color.new(colorBullish, 0), linewidth=4)
// Plot sell signals at 3.5 level (includes both initial and extended signals)
plot(allSellSignals ? 3.5 : na, title="Sell Signal", style=plot.style_circles,
color=color.new(colorBearish, 0), linewidth=4)
// ============================================================================
// ALERTS - SIMPLIFIED TO ONLY TWO ALERTS
// ============================================================================
// Alert 1: Long Entry/Short TP - fires on ANY green dot (original or continuation)
alertcondition(allBuySignals, "Long Entry/Short TP", "Long Entry/Short TP")
// Alert 2: Long TP/Short Entry - fires on ANY red dot (original or continuation)
alertcondition(allSellSignals, "Long TP/Short Entry", "Long TP/Short Entry")
// ============================================================================
// DATA DISPLAY
// ============================================================================
// Create a professional table for current readings
var color tableBgColor = #1a2332 // Dark blue background
var table infoTable = table.new(position.middle_right, 2, 2, border_width=1,
border_color=color.new(#2962FF, 30),
frame_width=1,
frame_color=color.new(#2962FF, 30))
if barstate.islast
// Determine status
statusText = overextendedHigh ? "OVEREXTENDED ↓" :
overextendedLow ? "OVEREXTENDED ↑" :
smoothedDeviation > 0 ? "Buyers In Control" : "Sellers In Control"
statusColor = overextendedHigh ? color.new(colorBearish, 0) :
overextendedLow ? color.new(colorBullish, 0) :
color.white
// Background color for status cell
statusBgColor = color.new(tableBgColor, 0)
// Status Row
table.cell(infoTable, 0, 0, "Status",
bgcolor=color.new(tableBgColor, 0),
text_color=color.white,
text_size=size.normal)
table.cell(infoTable, 1, 0, statusText,
bgcolor=statusBgColor,
text_color=statusColor,
text_size=size.normal)
// Signal Row - always show
table.cell(infoTable, 0, 1, "Signal",
bgcolor=color.new(tableBgColor, 0),
text_color=color.white,
text_size=size.normal)
// Show signal if flags are set (will stay visible during the bar)
if showBuyOnDashboard or showSellOnDashboard
// Green dot (buy signal) = "Long Entry/Short TP" with arrow up, white text on green background
// Red dot (sell signal) = "Long TP/Short Entry" with arrow down, white text on red background
signalText = showBuyOnDashboard ? "↑ Long Entry/Short TP" : "↓ Long TP/Short Entry"
signalColor = showBuyOnDashboard ? color.new(colorBullish, 0) : color.new(colorBearish, 0)
table.cell(infoTable, 1, 1, signalText,
bgcolor=signalColor,
text_color=color.white,
text_size=size.normal)
else
table.cell(infoTable, 1, 1, "Watching...",
bgcolor=color.new(tableBgColor, 0),
text_color=color.new(color.white, 60),
text_size=size.normal)
Interactive Compound Interest ProjectorThis indicator is an interactive tool designed for long-term investors and analysts who want to compare an asset's performance against a theoretical compound interest growth curve.
Unlike static tools, this script utilizes the Interactive Anchor feature. This allows you to click on any specific point on the chart (e.g., a market bottom, a specific entry date, or a previous all-time high) to serve as the starting point ("Principal") for the projection.
How to use
Add the indicator to your chart.
Important: Because confirm=true is enabled, the script will wait for you to click on the chart. Click on the specific candle you want to use as the "Start Date".
The Yellow Line will appear starting from that candle.
Open the indicator settings to adjust:
Annual Interest Rate: (Default 6.0%).
Project until Year: (Default 2050).
Use this to visualize if an asset is "beating" a standard benchmark (like a 10% S&P500 average or a 4% risk-free rate) from a specific moment in time.
Disclaimer: This tool is for educational and comparative analysis purposes only and does not guarantee future results.
UM VIX30-rolling/VIX Ratio oscillatorSUMMARY
A forward-looking volatility tool that often signals VIX spikes and market reversals before they happen. MA direction flips spotlight the moment volatility pressure shifts.
DESCRIPTION
This indicator compares spot VIX to a synthetic 30-day constant-maturity volatility estimate (“VIX30”) built from VX1 and VX2 futures. The VIX30/VIX Ratio reveals short-term volatility pressure and regime shifts that traditional VX1/VX2 roll-yield alone often misses.
VIX30 is constructed using true calendar-day interpolation between VX1 and VX2, with VX1% and VX2% showing the real-time weights behind the 30-day volatility anchor. The table displays the volatility regime, the VX1/VX2 weights, spot-term roll yield (VIX30/VIX), and futures-term roll yield (VX2/VX1), giving a complete, front-of-the-curve perspective on volatility dynamics.
Use this to spot early vol expansions, collapsing contango, and regime transitions that influence VXX, UVXY, SVIX, VX options, and VIX futures.
⸻
HOW IT WORKS
The script calculates the exact calendar days to expiration for the front two VIX futures. It then applies linear interpolation to blend VX1 and VX2 into a 30-day constant-maturity synthetic volatility measure (“VIX30”). Comparing VIX30 to spot VIX produces the VIX30/VIX Ratio, which highlights short-term volatility pressure and regime direction. A full term-structure table summarizes regime, VX1%/VX2% weights, and both spot-term and futures-term roll yields.
⸻
DEFAULT SETTINGS
VX1! and VX2! are used by default for front-month and second-month futures. These may be manually overridden if TradingView rolls contracts early. The default timeframe is 30 minutes, and the VIX30/VIX Ratio uses a 21-period EMA for regime smoothing. The historical threshold is set to 1.08, reflecting the long-run average relationship between VIX30 and VIX. All settings are user-configurable.
⸻
SUGGESTED USES
• Identify early volatility expansions before they appear in VX1/VX2 roll yield.
• Confirm contango/backwardation shifts with front-of-curve context.
• Time long/short volatility trades in VXX, UVXY, SVIX, and VX options.
• Monitor regime transitions (Low → Cautionary → High) to anticipate trend inflections.
• Combine with price action, NW trends, or MA color-flip systems for higher-confidence entries.
• MA red → green flips may signal opportunities to short volatility or increase equity exposure.
• MA green → red flips may signal opportunities to go long volatility, reduce equity exposure, or even take short-equity positions.
⸻
ALERTS
Alerts trigger when the ratio crosses above or below the historical threshold or when the moving-average slope flips direction. A green flip signals rising volatility pressure; a red flip signals fading or collapsing volatility. These can be used to automate long/short volatility bias shifts or trade-entry notifications.
⸻
FURTHER HINTS
• Increasing orange/red in the table suggests an emerging higher-volatility environment.
• SVIX (inverse volatility ETF) can trend strongly when volatility decays; on a 6h chart, MA green flips often align with attractive short-volatility opportunities.
• For long-volatility trades, consider shrinking to a 30-minute chart and watching for MA green → red flips as early entry cues.
• Experiment with different timeframes and smoothing lengths to match your trading style.
• Higher VIX30/VIX and VX2/VX1 roll yields generally imply faster decay in VXX, UVXY, and UVIX — or stronger upside momentum in SVIX.
QFT MTF Range DetectorQFT MTF Range Detector — QuantumFlowTrader
Description:
The QFT MTF Range Detector is a multi-timeframe (MTF) tool designed to identify consolidation zones or ranging conditions across multiple intraday timeframes — from 1 minute up to 4 hours. This indicator is optimized for high-frequency trading environments such as scalping and day trading.
How it works:
For each selected timeframe, the indicator evaluates five key technical conditions:
- Low ADX (less than 17) – suggesting weak trend strength.
- Range width within a specific normalized threshold.
- Normalized ATR (volatility filter) in a defined range.
- RSI near the neutral zone (40–60) with low volatility.
- Price proximity to the mid-range (consolidation center).
Each condition contributes a score. If at least 3 out of 5 conditions are met, that timeframe is considered to be in a range (consolidation).
Visual output:
A compact table is displayed on the chart showing all selected timeframes:
Black box = Timeframe is in a range (consolidation).
Purple box = Not in a range (likely trending or volatile).
Timeframes are labeled (e.g., "4H", "15M") for clarity.
Customization:
Choose display corner (top/bottom, left/right).
Enable or disable table borders.
Set custom colors for range and non-range signals.
Use case:
Traders can quickly assess which timeframes are in a range, helping them:
Avoid choppy markets,
Time entries and exits better,
Confirm multi-timeframe alignment.
Note: This is not a buy/sell signal indicator. It is a market condition filter to enhance decision-making.






















