VixTrixVixTrix - Because markets move in both directions.
VixTrix was born from a fundamental limitation in traditional volatility indicators: they only measure downside panic, completely missing the greed-driven extremes that form market tops.
How It Works:
Dual-Component Analysis:
vixBear = Panic selling intensity (distance from recent highs)
vixBull = FOMO buying intensity (distance from recent lows)
Oscillator = vixBear - vixBull = Net fear/greed imbalance
When the oscillator is positive, fear dominates (potential bottom forming). When negative, greed dominates (potential top forming).
Professional-Grade Filtering:
The magic happens with the symmetric RMS (Root Mean Square) bands. Unlike fixed percentage bands or standard deviation, RMS:
Creates mathematically symmetric positive/negative thresholds
Naturally adapts to changing volatility regimes
Provides statistical significance to extremes
VixTrix also adds selectable MA smoothing for the RMS calculation:
WMA (default): Balanced – middle-ground approach
VWMA: Volume-weighted – filters low-volume noise
EMA: Responsive – catches quick reversals
SMA: Stable – for swing trading
HMA: Fast and smooth – ideal for day trading
Signals require triple confirmation:
Statistical Extreme: Oscillator beyond RMS band
Price Action Confirmation: Correct candle color (bullish for bottoms, bearish for tops)
Momentum Continuation: Oscillator still moving toward extreme (exhaustion)
This multi-filter approach reduces premature entries and false signals while maintaining early positioning at potential reversal points.
Why This Matters for Your Trading:
In bull markets, traditional fear indicators sit near zero, giving no warning of impending tops.
VixTrix identifies when greed becomes excessive – when FOMO buying reaches statistical extremes that often precede corrections.
In range-bound markets, VixTrix excels at identifying overreactions in both directions, providing high-probability mean reversion opportunities.
During crashes, it captures the panic selling with the same precision as VixFix, but with better timing through its momentum confirmation.
VixTrix spots continuations through:
"No Signal" = Healthy Trend – Oscillator stays between RMS bands (no exhaustion)
Failed Extremes – Touches band but no triple confirmation = trend likely continues
Hidden Divergence – Price makes higher low while oscillator makes shallower low = uptrend continues
Controlled Emotions – Oscillator negative but not extreme in uptrends (greed present but not excessive)
Key Insight: When VixTrix doesn't give a signal during a pullback, institutions aren't panicking – they're just pausing before resuming the trend.
Green columns = Bullish exhaustion (potential bottoms)
Red columns = Bearish exhaustion (potential tops)
Golden RMS bands = Dynamic thresholds adapting to current volatility
Background highlights = Active signal conditions
The Result: A professional-grade oscillator that works in all market conditions – trending up, trending down, or ranging – by measuring the complete emotional spectrum driving price action.
Penunjuk dan strategi
CRUX-3 Macro Regime Index"CRUX-3 Macro Regime Index"
Description:
CRUX-3 Macro Regime Index is a higher-timeframe macro indicator designed to evaluate how crypto markets are performing relative to traditional equities. It compares Bitcoin, Ethereum, and the broader altcoin market (TOTAL3) against the S&P 500 using Z-score normalization to highlight periods of relative outperformance or underperformance.
The indicator incorporates liquidity-based regime detection using Bitcoin dominance and stablecoin dominance to classify market environments as Risk-On, BTC-Led, or Risk-Off. Background shading visually highlights these regimes, helping users identify broader macro conditions rather than short-term trade signals.
CRUX-3 is intended for macro context, regime awareness, and allocation bias decisions, not for precise trade entries or timing.
How to Use:
Weekly timeframe recommended for best results
Rising Z-scores indicate crypto outperforming equities
ETH/SPX typically acts as an early rotation signal
TOTAL3/SPX confirms broader altcoin participation
Regime shading reflects liquidity conditions, not price forecasts
Regime Definitions:
Risk-On: BTC dominance and stablecoin dominance declining
BTC-Led: BTC dominance strong while stablecoin dominance eases
Risk-Off: BTC dominance and stablecoin dominance rising
Notes:
Forward regime bands are statistical reference guides based on historical behavior
This indicator does not predict future prices or market direction
Best used alongside price charts and other macro tools
Disclaimer:
This indicator is for educational and informational purposes only. It does not constitute financial advice, investment advice, or trading recommendations.
Recommended Settings:
Timeframe: Weekly (1W)
Z-Score Lookback: 52
Forward Regime Bands: Enabled
Al Brooks - Bar CountIndicator Purpose:
This indicator displays bar counts on the chart to help traders identify important time nodes and cycle transitions
Features smart session filtering with automatic futures/stock detection and appropriate trading session counting
Core Features:
Smart asset detection: Auto-detect futures and stocks
Session filter toggle: Choose all-day or session-specific counting
Auto timezone handling: Chicago time for futures, NY time for stocks
Flexible display control: Customizable display frequency and label size
Session Settings:
8:30-15:15 (CT) / Futures mode: Chicago time 8:30-15:15 (CT)
9:30-16:00 (ET) / Stock mode: New York time 9:30-16:00 (ET)
All-day mode: Count from first bar of the day
Timeframe Correspondence:
Multiples of 3: Correspond to 15-minute chart update cycles
Multiples of 12: Correspond to 1-hour chart update cycles
18: Key nodes, important time turning points
new takesi_2Step_Screener_MOU_KAKU_FIXED4 (Visible)//@version=5
indicator("MNO_2Step_Screener_MOU_KAKU_FIXED4 (Visible)", overlay=true, max_labels_count=500)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)")
emaMLen = input.int(13, "EMA Mid (13)")
emaLLen = input.int(26, "EMA Long (26)")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volLookback = input.int(5, "Volume MA days", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (Breakout/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Pullback route: valid bars after break", minval=1)
// --- Breakout route (押し目なし初動ブレイク) ---
useBreakoutRoute = input.bool(true, "Enable MOU Breakout Route (no pullback)")
breakConfirmPct = input.float(0.3, "Break confirm: close > R*(1+%)", step=0.1)
bigBodyLookback = input.int(20, "Break candle body MA length", minval=5)
bigBodyMult = input.float(1.2, "Break candle: body >= MA*mult", step=0.1)
requireCloseNearHigh = input.bool(true, "Break candle: close near high")
closeNearHighPct = input.float(25.0, "Close near high threshold (% of range)", step=1.0)
allowMACDAboveZeroInstead = input.bool(true, "Breakout route: allow MACD GC above zero instead")
// 表示
showEMA = input.bool(true, "Plot EMAs")
showMou = input.bool(true, "Show MOU label")
showKaku = input.bool(true, "Show KAKU label")
// ★ここを改善:デバッグ表はデフォルトON
showDebugTbl = input.bool(true, "Show debug table (last bar)")
// ★稼働確認ラベル(最終足に必ず出す)
showStatusLbl = input.bool(true, "Show status label (last bar always)")
locChoice = input.string("Below Bar", "Label location", options= )
lblLoc = locChoice == "Below Bar" ? location.belowbar : location.abovebar
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2days = close > emaL and close > emaL
// 勝率維持の土台(緩めない)
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2days
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdBreakOK = allowMACDAboveZeroInstead ? (macdMouOK or macdGCAboveZero) : macdMouOK
// =========================
// Volume
// =========================
volMA = ta.sma(volume, volLookback)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf =
close > open and close < open and
close >= open and open <= close
bigBull =
close > open and
open < emaM and close > emaS and
(body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Breakout route (押し目なし初動ブレイク)
// =========================
breakConfirm = close > res * (1.0 + breakConfirmPct / 100.0)
bullBreak = close > open
bodyMA = ta.sma(body, bigBodyLookback)
bigBodyOK = bodyMA > 0 ? (body >= bodyMA * bigBodyMult) : false
rng = math.max(high - low, syminfo.mintick)
closeNearHighOK = not requireCloseNearHigh ? true : ((high - close) / rng * 100.0 <= closeNearHighPct)
mou_breakout =
useBreakoutRoute and
baseTrendOK and
breakConfirm and
bullBreak and
bigBodyOK and
closeNearHighOK and
volumeStrongOK and
macdBreakOK
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou = mou_pullback or mou_breakout
// =========================
// KAKU (Strict): 8条件 + 最終三点
// =========================
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2days
cond4 = macdGCAboveZero
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8_strict = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdGCAboveZero and volumeStrongOK
kaku = all8_strict and final3
// =========================
// Display (猛 / 猛B / 確)
// =========================
showKakuNow = showKaku and kaku
showMouPull = showMou and mou_pullback and not kaku
showMouBrk = showMou and mou_breakout and not kaku
plotshape(showMouPull, title="MOU_PULLBACK", style=shape.labelup, text="猛",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showMouBrk, title="MOU_BREAKOUT", style=shape.labelup, text="猛B",
color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showKakuNow, title="KAKU", style=shape.labelup, text="確",
color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// ★稼働確認:最終足に必ず出すステータスラベル
// =========================
var label status = na
if showStatusLbl and barstate.islast
label.delete(status)
statusTxt =
"MNO RUNNING " +
"MOU: " + (mou ? "YES" : "no") + " (pull=" + (mou_pullback ? "Y" : "n") + " / brk=" + (mou_breakout ? "Y" : "n") + ") " +
"KAKU: " + (kaku ? "YES" : "no") + " " +
"BaseTrend: " + (baseTrendOK ? "OK" : "NO") + " " +
"MACD(mou): " + (macdMouOK ? "OK" : "NO") + " / MACD(zeroGC): " + (macdGCAboveZero ? "OK" : "NO") + " " +
"Vol: " + (na(volRatio) ? "na" : str.tostring(volRatio, format.mintick)) + " " +
"Pull%: " + (na(pullbackPct) ? "na" : str.tostring(pullbackPct, format.mintick))
status := label.new(bar_index, high, statusTxt, style=label.style_label_left,
textcolor=color.white, color=color.new(color.black, 0))
// =========================
// Alerts
// =========================
alertcondition(mou, title="MNO_MOU", message="MNO: MOU triggered")
alertcondition(mou_breakout, title="MNO_MOU_BREAKOUT", message="MNO: MOU Breakout triggered")
alertcondition(mou_pullback, title="MNO_MOU_PULLBACK", message="MNO: MOU Pullback triggered")
alertcondition(kaku, title="MNO_KAKU", message="MNO: KAKU triggered")
// =========================
// Debug table (optional)
// =========================
var table t = table.new(position.top_right, 2, 14, border_width=1, border_color=color.new(color.white, 60))
fRow(_name, _cond, _r) =>
bg = _cond ? color.new(color.lime, 70) : color.new(color.red, 80)
tx = _cond ? "OK" : "NO"
table.cell(t, 0, _r, _name, text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, _r, tx, text_color=color.white, bgcolor=bg)
if showDebugTbl and barstate.islast
table.cell(t, 0, 0, "MNO Debug", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(t, 1, 0, "", text_color=color.white, bgcolor=color.new(color.black, 0))
fRow("BaseTrend", baseTrendOK, 1)
fRow("MOU Pullback", mou_pullback, 2)
fRow("MOU Breakout", mou_breakout, 3)
fRow("Break confirm", breakConfirm, 4)
fRow("Break big body", bigBodyOK, 5)
fRow("Break close high", closeNearHighOK, 6)
fRow("Break vol strong", volumeStrongOK, 7)
fRow("Break MACD", macdBreakOK, 8)
fRow("KAKU all8", all8_strict, 9)
fRow("KAKU final3", final3, 10)
fRow("MOU any", mou, 11)
fRow("KAKU", kaku, 12)
Ripster Clouds + Saty Pivot + RVOL + Trend1. Ripster EMA Clouds (local + higher timeframe)
Local timeframe (your chart TF):
Plots up to 5 EMA clouds (8/9, 5/12, 34/50, 72/89, 180/200 – configurable).
Each cloud is:
One short EMA and one long EMA.
A filled band between them.
Color logic:
Cloud is bullish when short EMA > long EMA (green/blue-ish tone).
Bearish when short EMA < long EMA (red/orange/pink tone).
You can choose:
EMA vs SMA,
Whether to show the lines,
Per-cloud toggles.
MTF Clouds:
Two higher-timeframe EMA clouds:
Cloud 1: 50/55
Cloud 2: 20/21
Computed on a higher TF (default D, but configurable).
Show as thin lines + transparent bands.
Used for:
Visual higher-TF trend,
Optional signal filter (MTF must agree for trades).
2. Saty Pivot Ribbon (time-warped EMAs)
This is basically your Saty Pivot Ribbon integrated:
Uses a “Time Warp” setting to overlay EMAs from another timeframe.
EMAs:
Fast, Pivot, Slow (defaults 8 / 21 / 34).
Clouds:
Fast cloud between fast & pivot EMAs.
Slow cloud between pivot & slow EMAs.
Bullish/bearish colors are distinct from Ripster colors.
Optional highlights:
Can highlight fast/pivot/slow lines separately.
Conviction EMAs:
13 and 48 EMAs (configurable).
When fast conviction EMA crosses over/under slow:
You get triangle arrows (bullish/bearish conviction).
Bias candles:
If enabled, candles are recolored based on:
Price vs Bias EMA,
Candle up/down/doji,
So you see bullish/bearish “bias” directly in candle colors.
3. DTR vs ATR panel (range vs average)
In a small table panel (bottom-center by default):
Computes higher-TF ATR (default 14, TF auto D/W/M, smoothing type selectable).
Measures current range (high–low) on that TF.
Displays:
DTR: X vs ATR: Y Z% (+/-Δ% vs prev)
Where:
Z% = current range / ATR * 100.
Δ% = change vs previous bar’s Z%.
Background color:
Greenish for low move (<≈70%),
Red for high move (≥≈90%),
Yellow in between,
Slightly dimmed when price is below bias EMA.
This tells you: “Is today an average, quiet, or explosive day compared to normal?”
4. SMA Divergence panel
Separate histogram & line panel:
Fast and slow SMAs (default 14 & 30).
Computes price divergence vs SMA in %:
% above/below slow SMA,
% above/below fast SMA.
Shows:
Slow SMA divergence as a semi-transparent column,
Fast SMA divergence as a solid column on top,
EMA of the slow divergence (trend line) colored:
Blue when rising,
Orange/red when falling.
Static upper/lower bands with fill, plus optional zero line.
This gives you a feel for how stretched price is vs its anchors.
5. RVOL table (relative volume)
Small 3×2 table (bottom-right by default):
Inputs:
Average length (default 50 bars),
Optionally show previous candle RVOL.
Calculates:
RVOL now = volume / avg(volume N bars) * 100,
RVOL prev,
RVOL momentum (now – prev) for data window only.
Table columns:
Candle Vol,
RVOL (Now),
RVOL (Prev).
Colors:
200% → “high RVOL” color,
100–200% → “medium RVOL” color,
<100% → “low RVOL” color,
Slightly dimmer if price is below bias EMA.
This is used both visually and optionally as a signal filter (e.g., only trade when RVOL ≥ threshold).
6. Trend Dashboard (Price + 34/50 + 5/12)
Top-right trend box with 3 rows:
Price Action row:
Uses either Bias EMA or custom EMA on close to say:
Bullish (close > trend EMA),
Bearish (close < trend EMA),
Flat.
Ripster 34/50 Cloud row:
Uses 34/50 EMAs: bullish if 34>50, bearish if 34<50.
Ripster 5/12 Cloud row:
Uses 5/12 EMAs: bullish if 5>12, bearish if 5<12.
Then it does a vote:
Counts bullish votes (Price, 34/50, 5/12),
Counts bearish votes,
Depending on mode:
Majority (2 of 3) or Strict (3 of 3).
Output:
Overall Bullish / Bearish / Sideways.
You also get an optional label on the chart like
Overall: Bullish trend with color, and an optional background tint (green/red for bull/bear).
7. VWAP + Buy/Sell Signals
VWAP is plotted as a white line.
Fast “trend” cloud mid: average of 5 & 12 EMAs.
Slow “trend” cloud mid: average of 34 & 50 EMAs.
Buy condition:
5/12 crosses above 34/50 (bullish cloud flip),
Price > VWAP,
Optional filter: MTF Cloud 1 bullish (50/55 on higher TF),
Optional filter: RVOL >= threshold.
Sell condition:
5/12 crosses below 34/50,
Price < VWAP,
Optional same filters but bearish.
When conditions are met:
Plots BUY triangle up below price (distinct teal/green tone).
Plots SELL triangle down above price (distinct magenta/orange tone).
Alert conditions are defined for:
BUY / SELL signals,
Overall Bullish / Bearish / Sideways change,
MTF Cloud 1 trend flips.
8. Data Window metrics
For easy backtesting / inspection via TradingView’s data window, it exposes:
DTR% (Current) and DTR% Momentum,
RVOL% (Now), RVOL% (Prev), RVOL% Momentum.
TL;DR – What does this script do for you?
It turns your chart into a multi-framework trend and momentum dashboard:
Ripster EMA clouds for short/medium trend & S/R.
Saty Ribbon for higher-TF pivot structure and conviction.
RVOL + DTR/ATR for context (is this a big and well-participated move?).
SMA divergence panel for overextension/stretch.
A compact trend table that tells you Price vs 34/50 vs 5/12 in one glance.
Buy/Sell markers + alerts when:
short-term Ripster trend (5/12) flips over/under medium (34/50),
price agrees with VWAP,
plus optional filters (MTF trend and / or RVOL).
Basically: it’s a trend + confirmation + context system wrapped into one indicator, with most knobs configurable in the settings.
Asian Sweep Strat by MindEdgeThe idea with the indicator is to highlight the asian range, so when price goes below or above it during frankfurt and london open overlap, we can trade price to the opposite direction
MACD X SignalsThis is a fundamental signal indicator based on MACD crossovers. It enhances the standard MACD by adding visual labels that classify signals based on their location relative to the Zero Line. This helps identify whether a trend is reversing, continuing, or potentially overextended.
Signal Legend:
B (Reversal): Bullish crossover in the Negative Zone .
B+ (Neutral): Bullish crossover in the Middle Zone .
B- (Trend): Bullish crossover in the Positive Zone
S : MACD crossing down (Bearish signal).
Squeeze Momentum OscillatorTitle: Squeeze Momentum Oscillator
Description: This indicator is a panel-based oscillator designed to visualize the relationship between market volatility and momentum. Based on the classic TTM Squeeze concept, it helps traders identify periods of consolidation ("The Squeeze") and the subsequent release of energy ("The Breakout").
Originality & Enhancements: Standard squeeze oscillators only show when a squeeze fires (turning from red to green). This enhanced version adds a specific Breakout Validation layer. It changes the center-line dot color to Fuchsia or Blue only if the squeeze release is confirmed by the slope of the 20-period Moving Average, filtering out weak or false fires.
How It Works:
1. The Center Line (Volatility State): The dots along the zero line tell you the current volatility condition:
🔴 Red Dot: Squeeze ON. Bollinger Bands are inside Keltner Channels. Volatility is compressed. The market is charging up.
🟣 Fuchsia Dot: Bullish Breakout. The squeeze has fired upward, and the underlying trend (20 SMA slope) is positive.
🔵 Blue Dot: Bearish Breakout. The squeeze has fired downward, and the underlying trend (20 SMA slope) is negative.
🟢 Green Dot: Squeeze OFF. Normal volatility conditions.
2. The Histogram (Momentum): The bars indicate the strength and direction of the price movement using Linear Regression logic:
Cyan/Green: Bullish momentum. (Darker = weakening).
Red/Maroon: Bearish momentum. (Darker = weakening).
Visual Guide:
Setup: Wait for a series of Red Dots.
Trigger: Look for the first Fuchsia (Bullish) or Blue (Bearish) dot accompanied by an expanding Histogram in the same direction.
Settings:
Feature Toggle: You can turn the "Breakout Colors" (Fuchsia/Blue) on or off if you prefer the classic look.
Sensitivity: Fully customizable lengths and multipliers for Bollinger Bands and Keltner Channels.
Credits: Based on the foundational TTM Squeeze oscillator logic. Linear regression momentum calculation adapted from standard open-source methods. Breakout validation logic added for enhanced reliability.
WOLFGATEWOLFGATE is a clean, session-aware market structure and regime framework designed to help traders contextualize price action using widely accepted institutional references. The indicator focuses on structure, momentum alignment, and mean interaction, without generating trade signals or predictions.
This script is built for clarity and decision support. It provides a consistent way to evaluate market conditions across different environments while remaining flexible to individual trading styles.
What This Indicator Displays
Momentum & Structure Averages
9 EMA — Short-term momentum driver
21 EMA — Structural control and trend confirmation
200 SMA — Primary regime boundary
400 SMA (optional) — Deep regime / macro bias reference
These averages are intended to help assess directional alignment, trend strength, and structural consistency.
Session VWAP (Institutional Mean)
Session-based VWAP with a clean daily reset
Default session: 09:30–16:00 ET
Uses HLC3 as the VWAP source for balanced price input
Rendered in a high-contrast institutional blue for visibility
VWAP can be used to evaluate mean interaction, acceptance, or rejection during the active session.
How to Use WOLFGATE
This framework is designed for context, not signals.
Traders may use WOLFGATE to:
Identify bullish or bearish market regimes
Evaluate momentum alignment across multiple time horizons
Observe price behavior relative to VWAP
Maintain directional bias during trending conditions
Avoid low-quality conditions when structure is misaligned
The indicator does not generate buy or sell signals and does not include alerts or automated execution logic.
Important Notes
Volume must be added separately using TradingView’s built-in Volume indicator
(Volume cannot be embedded directly into this script due to platform limitations.)
This script is intended for educational and analytical purposes only
No financial advice is provided
Users are responsible for their own risk management and trade decisions
Optimal Daily MA Suite [MTF]Title: Optimal Daily MA Suite
Description: This is a comprehensive Multi-Timeframe (MTF) analysis suite designed to streamline chart layouts. Instead of loading multiple separate indicators to track various trend lines, this single tool allows traders to overlay higher-timeframe Moving Averages and key support/resistance levels directly onto their intraday charts.
Utility & Workflow: Swing traders and day traders often need to monitor "Big Picture" Daily Moving Averages (like the Daily 200 SMA or Daily 50 EMA) while executing trades on lower timeframes like the 15m or 1H. This tool automates that process, ensuring the major trend context is always visible without cluttering the indicator list.
Key Features:
Multi-Timeframe Engine: By default, all MAs are calculated on the Daily ("D") timeframe, regardless of the chart's current timeframe. This creates a stable "anchor" for trend analysis. The timeframe is fully customizable in the settings (e.g., set to "W" for Weekly analysis).
10 Customizable Slots: Toggle up to 10 different Moving Averages on/off individually.
Flexible Calculation Types: Supports SMA, EMA, WMA, VWMA, RMA (SMMA), and SWMA for every single line.
Trend Cloud Crossovers: Includes two dedicated "Cloud" setups to visualize crossovers (e.g., Golden Cross or Death Cross) with fill shading between the fast and slow lines.
Price Action Crossovers: Optional markers to highlight when the closing price crosses specific MAs.
Contextual Levels: Includes Previous Day High (PDH) and Previous Day Low (PDL) markers for immediate intraday support/resistance context.
How to Use:
Settings: Open the settings menu to select your "Indicator Timeframe" (Default: Daily).
Customization: Enable only the MAs relevant to your strategy (e.g., Enable MA 8 for the 50 SMA and MA 10 for the 200 SMA).
Clouds: Use the "Crossover Set" inputs to define a Bullish/Bearish trend cloud between two moving averages of your choice.
Technical Note: This script uses request.security with lookahead=barmerge.lookahead_off to ensure no repainting of historical data while providing accurate higher-timeframe values on closed bars.
Credits: Standard Moving Average calculations based on TradingView built-in functions.
PatternTransitionTablesPatternTransitionTables Library
🌸 Part of GoemonYae Trading System (GYTS) 🌸
🌸 --------- 1. INTRODUCTION --------- 🌸
💮 Overview
This library provides precomputed state transition tables to enable ultra-efficient, O(1) computation of Ordinal Patterns. It is designed specifically to support high-performance indicators calculating Permutation Entropy and related complexity measures.
💮 The Problem & Solution
Calculating Permutation Entropy, as introduced by Bandt and Pompe (2002), typically requires computing ordinal patterns within a sliding window at every time step. The standard successive-pattern method (Equations 2+3 in the paper) requires ≤ 4d-1 operations per update.
Unakafova and Keller (2013) demonstrated that successive ordinal patterns "overlap" significantly. By knowing the current pattern index and the relative rank (position l) of just the single new data point, the next pattern index can be determined via a precomputed look-up table. Computing l still requires d comparisons, but the table lookup itself is O(1), eliminating the need for d multiplications and d additions. This reduces total operations from ≤ 4d-1 to ≤ 2d per update (Table 4). This library contains these precomputed tables for orders d = 2 through d = 5.
🌸 --------- 2. THEORETICAL BACKGROUND --------- 🌸
💮 Permutation Entropy
Bandt, C., & Pompe, B. (2002). Permutation entropy: A natural complexity measure for time series.
doi.org
This concept quantifies the complexity of a system by comparing the order of neighbouring values rather than their magnitudes. It is robust against noise and non-linear distortions, making it ideal for financial time series analysis.
💮 Efficient Computation
Unakafova, V. A., & Keller, K. (2013). Efficiently Measuring Complexity on the Basis of Real-World Data.
doi.org
This library implements the transition function φ_d(n, l) described in Equation 5 of the paper. It maps a current pattern index (n) and the position of the new value (l) to the successor pattern, reducing the complexity of updates to constant time O(1).
🌸 --------- 3. LIBRARY FUNCTIONALITY --------- 🌸
💮 Data Structure
The library stores transition matrices as flattened 1D integer arrays. These tables are mathematically rigorous representations of the factorial number system used to enumerate permutations.
💮 Core Function: get_successor()
This is the primary interface for the library for direct pattern updates.
• Input: The current pattern index and the rank position of the incoming price data.
• Process: Routes the request to the specific transition table for the chosen order (d=2 to d=5).
• Output: The integer index of the next ordinal pattern.
💮 Table Access: get_table()
This function returns the entire flattened transition table for a specified dimension. This enables local caching of the table (e.g. in an indicator's init() method), avoiding the overhead of repeated library calls during the calculation loop.
💮 Supported Orders & Terminology
The parameter d is the order of ordinal patterns (following Bandt & Pompe 2002). Each pattern of order d contains (d+1) data points, yielding (d+1)! unique patterns:
• d=2: 3 points → 6 unique patterns, 3 successor positions
• d=3: 4 points → 24 unique patterns, 4 successor positions
• d=4: 5 points → 120 unique patterns, 5 successor positions
• d=5: 6 points → 720 unique patterns, 6 successor positions
Note: d=6 is not implemented. The resulting code size (approx. 191k tokens) exceeds the Pine Script limit of 100k tokens (as of 2025-12).
VOLUME with DOUBLE MAA volume chart with dual moving averages. If you're looking for a volume chart with dual moving averages, this script is for you. By averaging the volume over two periods, you can discover more subtle relationships between price and volume.
Momentum Gamma StraddleExact definition of what that script does
1) Purpose
The script is a decision aid for intraday expiry-day ATM straddle trades. It detects intraday structure breakouts and signals candidate long straddle entries for Nifty or Sensex using price structure, volume, RSI momentum, and a user-supplied combined ATM premium value (CE + PE). It draws support/resistance, shows an info box, and raises alerts.
2) Inputs the user can change
Trading time window: startHour, startMin, endHour, endMin.
Structure lookback: res_lookback (how many candles to use to compute resistance/support).
Minimum candle body as fraction of candle range: min_body_pct.
Volume multiplier threshold: vol_mult (breakout candle volume must exceed vol_mult * sma5).
RSI length and thresholds: rsi_len, rsi_bull_thresh, rsi_bear_thresh.
Combined premium source: choose Manual or Symbol. If Manual, set manual_combined. If Symbol, provide a TradingView symbol that returns CE+PE combined ATM premium.
Combined premium acceptable band: min_combined_ok and max_combined_ok.
Profit target percent and SL percent (target_pct and sl_pct).
Misc pattern heuristics: min_res_hits (min tests of resistance inside lookback), low_slope_min (used to detect rising lows).
Micro-confirmation toggle, micro timeframe, nonrepaint option, show_entry_label toggle (in the later fixed versions some of these were added, but the earlier fixed script had basic combined_symbol options and a lookahead fallback).
3) Data calculated on each bar
Safety check hasEnough: true when bar_index >= res_lookback.
resistance: the highest high over res_lookback bars.
support: the lowest low over res_lookback bars.
res_hits: count of bars within lookback whose high is within a tolerance of resistance. Tolerance is 10 percent of the range between resistance and support.
low_slope: simple slope of lows over res_lookback bars.
body_pct: the candle body as a fraction of its high-low range. strong_body true when body_pct >= min_body_pct.
bull_breakout: true if hasEnough and current close > resistance and strong_body and res_hits >= min_res_hits.
bear_breakout: true if hasEnough and current close < support and strong_body and res_hits >= min_res_hits.
vol_sma5 and vol_ok: vol_ok true when current volume > vol_mult * vol_sma5.
rsi and rsi checks: rsi_bull_ok true if rsi >= rsi_bull_thresh; rsi_bear_ok true if rsi <= rsi_bear_thresh.
combined_premium: either the manual_combined input or the value read from combined_symbol via request.security. The script attempted a fallback to manual when the symbol was not valid.
combined_ok: true if combined_premium lies between min_combined_ok and max_combined_ok.
final signals: bull_signal when in_time_window and bull_breakout and vol_ok and rsi_bull_ok and combined_ok. bear_signal similar for bearish breakout.
4) Visual output and alerts
Plots resistance and support lines on the chart.
Plots a label shape "STRADDLE BUY" below the bar for bull_signal and above the bar for bear_signal.
Creates an info label (on last bar) that shows TimeOK, VolOK and vol ratio, RSI, Combined premium and whether it is OK, ResHits and LowSlope.
Sets two alertcondition events: "Bull Straddle BUY" and "Bear Straddle BUY" with a short candidate message. The alerts fire when the corresponding signal is true.
5) Execution assumptions you must follow manually
The script does not place any orders or compute option strike-level prices or greeks. It only flags candidate entry bars.
When combined_source is Manual you must type CE+PE yourself. The indicator will only accept the manual number and treat it as the combined premium.
When combined_source is Symbol the script uses request.security to read that symbol. For historical bars the indicator may repaint depending on lookahead settings. The earlier fixed script attempted to use request.security inside a conditional which leads to runtime or compile errors. You experienced that exact error.
6) Known implementation caveats and bugs you encountered
Pine typing issue with low_slope. The earlier version set low_slope = na without explicit type. That triggers the Pine error: "Value with NA type cannot be assigned to a variable that was defined without type keyword". This required changing to float low_slope = na.
The earlier version attempted to call request.security() inside an if block or conditional. Pine prohibits request.security in conditional blocks unless allowed patterns are followed. That produced the error you saw: "Cannot use request.* call within loops or conditional structures" or similar. The correct pattern is to call request.security at top-level and decide later which value to use.
If combined_symbol is invalid or not available on your TradingView subscription, request.security can return na and the script must fall back to manual value. The earlier fixed script attempted fallback but compiled errors prevented reliable behavior.
The earlier script did not include micro-confirmation or advanced nonrepaint controls. Those were added in later versions. Because of that, the earlier script may have given signals that appear to repaint on historical bars or may have thrown errors when using combined_symbol.
7) Decision logic summary (exact)
Only operate if current chart time is inside user set time window.
Only consider trade candidates when enough history exists for res_lookback.
Identify a resistance level as the highest high in the lookback. Count how many times that resistance was tested. Ensure the breakout candle has a strong body and volume spike. Ensure RSI is aligned with breakout direction.
Require combined ATM premium to be inside a user preferred band. If combined_symbol is used the script tries to read that value and use it; otherwise it uses manual_combined input.
If all the above conditions are true on a confirmed bar, the script plots a STRADDLE BUY label and triggers an alertcondition.
8) What the script does not do
It does not calculate CE and PE prices by strike. It only consumes or accepts combined premium number.
It does not compute greeks, IV, or OI. OI and IV checks must be done manually.
It does not manage positions. No SL management or automatic exits are executed by the script.
It does not simulate fills or account for bid/ask spreads or slippage.
It cannot detect off-exchange block trades or read exchange-level auction states beyond raw volume bars.
It may repaint historical labels if the combined_symbol was read with lookahead_on or the script used request.security in a way that repainted. The corrected final version uses nonrepaint options.
9) Manual checks you must always perform even when the script signals BUY
Confirm the live combined ATM premium and the bid/ask for CE and PE.
Check ATM IV and recent IV movement for a potential IV crush risk.
Check option OI distribution and recent OI changes for strike pinning or large player exposure.
Confirm CE and PE liquidity and depth. Wide spreads make fills unrealistic.
Confirm there is no scheduled news or auction within the next few minutes.
Confirm margin and position sizing fits your risk plan.
10) Quick testing checklist you can run now
Add the script to a 5-minute chart with combined_source = Manual.
Enter manual_combined equal to the real CE+PE at the moment you test.
Set startHour and endHour so the in_time_window is true for current time.
Look for STRADDLE BUY label on confirmed bars. Inspect the info box to see why it did or did not signal.
If you set combined_source = Symbol, verify the symbol exists and that TradingView returns values for it. If you previously saw the request.security error, that was caused by placing the request inside a conditional. The correct behavior is to call request.security unconditionally at top-level like in the final fixed version.
Two individual BB - AxeThis indicator combines two Bollinger Bands into a single script, designed for traders who utilize dual-band strategies but want to keep their chart and indicator list clean.
Instead of adding two separate indicators, this script allows you to manage two Bollinger Bands within one interface. It maintains the full flexibility of the classic Bollinger Bands while adding independent toggles for better visibility control.
SharelineUI_LibraryLibrary "SharelineUI_Library"
get_text_size(opt)
Parameters:
opt (string)
status_color(val)
Parameters:
val (float)
trend_color(trend_cat)
Parameters:
trend_cat (string)
momentum_color(score, bullTh, bearTh)
Parameters:
score (float)
bullTh (float)
bearTh (float)
create_standard_hud(pos, cols, rows)
Parameters:
pos (string)
cols (int)
rows (int)
SharelineCore_LibraryLibrary "SharelineCore_Library"
funding_premium(premiumSym, funding_period, plot_type, interest_rate, fundScale)
Parameters:
premiumSym (string)
funding_period (string)
plot_type (string)
interest_rate (float)
fundScale (float)
cvd_vwap_delta(spotSym, perpSym, normLen, resetCVD)
Parameters:
spotSym (string)
perpSym (string)
normLen (int)
resetCVD (bool)
cvd_trend_norm(spotSymbol, perpSymbol, normLen, resetOnSession)
Parameters:
spotSymbol (string)
perpSymbol (string)
normLen (int)
resetOnSession (bool)
trend_strength_engine(cvdSpot, cvdPerp)
Parameters:
cvdSpot (float)
cvdPerp (float)
bias_engine(plot_value, spotTrendVal, perpTrendVal, spotStrength, perpStrength)
Parameters:
plot_value (float)
spotTrendVal (float)
perpTrendVal (float)
spotStrength (float)
perpStrength (float)
smc_engine(h, l, c, v, ms_len, bos_len, vol_filter, scale_factor, smooth_len, signal_len)
Parameters:
h (float)
l (float)
c (float)
v (float)
ms_len (int)
bos_len (int)
vol_filter (bool)
scale_factor (float)
smooth_len (simple int)
signal_len (simple int)
momentum_engine(o, c, v, fast, slow, signal, rsiLen, normLen, smaShort, smaLong, wMacd, wRsi, wCvd, wVpi)
Parameters:
o (float)
c (float)
v (float)
fast (simple int)
slow (simple int)
signal (simple int)
rsiLen (simple int)
normLen (int)
smaShort (int)
smaLong (int)
wMacd (float)
wRsi (float)
wCvd (float)
wVpi (float)
oi_engine(quotecur, useBinance, useBinance2, useBinance3, useBitmex, useBitmex2, useKraken, d_mult, strength1_mult, strength2_mult)
Parameters:
quotecur (string)
useBinance (bool)
useBinance2 (bool)
useBinance3 (bool)
useBitmex (bool)
useBitmex2 (bool)
useKraken (bool)
d_mult (float)
strength1_mult (float)
strength2_mult (float)
BALA'S Indicator - Dynamic + 5-Min + Pre-Market LevelsINTRADAY Strategy on Nifty with 15min Candle Setup.
Miela Labs | John Dee's Watchtower [257-463]Bridging the gap between 16th-century esoteric mathematics and modern algorithmic trading.
The Enochian Watchtower is not merely a trend indicator; it is a computational artifact developed by Miela Labs LLC. This script translates Dr. John Dee’s "Great Table of the Watchtowers" and the "Sigil Dei Aemeth" into actionable financial data points.
Using our proprietary Occultator V2.0 Engine, we have derived specific mathematical constants that resonate with the current market structure.
🏛️ The Algorithmic Logic
This indicator utilizes three sacred numbers to construct a "Future Vision" of the market:
1. The Axis Mundi (Vector 257): derived from Fermat Primes and John Dee’s Grid coordinates. This Weighted Moving Average (WMA) acts as the spinal cord of the trend.
2. The Gates (Cipher 463): A prime number derived from the "Galethog" cipher stride. These bands define the absolute volatility limits (Heaven & Earth Gates).
3. Future Vision (Offset 21): Utilizing Fibonacci time sequences, the indicator projects Support and Resistance levels 21 bars into the future, allowing traders to anticipate market movements before they occur.
⚡ How to Use
• The Trend: If price is above the Purple Axis (257), the market is in a bullish phase.
• The Entry: Look for "L" (Long) and "S" (Short) signals. These are confirmed when the signal path crosses the Axis.
• The Future: Watch the projected lines on the right side of the chart to identify upcoming resistance zones.
About Miela Labs
Miela Labs is a Technomancy Research Institute based in McKinney, Texas. We specialize in building open-source esoteric trading tools and the Magic Programming Language (MPL).
🌐 Official Hub: Visit Miela Labs
💻 Source Code & Research: GitHub Repository
Disclaimer: This tool is for educational and research purposes only. It demonstrates the application of esoteric mathematics in financial analysis. Trade responsibly.
NeoChartLabs EMAsOne of our Favorite Indicators - the NeoChart Labs 20/50/100/200 EMAs
20 = Blue and very thin
50 = Orange and thin
100 = Purple and thick
200 = White and very thick
When 20 Crosses above and below any other expect action.
50 crossing 200 on the 1D is the death cross.
Shout out to drsweets for the original script
Kalkulator pozycji XAUUSD PLN, 1:500, 1100 to 100 kontaPosition calculator based on the number of pips that you quickly enter from the tool, this device will select the appropriate lot for you and you can quickly take a position
BTC Regime Oscillator (MC + Spread) [1D]ONLY SUPPOSED TO BE USED FOR BTC PERPS, AND SPOT LEVERAGING:
This is a risk oscillator that measures whether Bitcoin’s price is supported by real capital or is running ahead of it, and converts that into a simple risk-regime oscillator.
It's built with market cap, and FDV, and Z-scores compressed to -100 <-> 100
I created this indicator because I got tired of FOMO Twitter and Wall Street games.
DO NOT USE THIS AS A BEGIN-ALL-AND-END-ALL. YOU NEED TO USE THIS AS A CONFIRMATION INDICATOR, AND ON HTF ONLY (1D>) IF YOU USE THIS ON LOWER TIMEFRAMES, YOU ARE FEEDING YOUR MONEY TO A LOW-LIFE DING BAT ON WALL STREET. HERE IS HOW IT WORKS:
This indicator is Split up by
A) Market Cap
--> Represents real money in BTC
--> Ownership capital
--> If MC is rising, money is entering BTC
B) FDV (Fully Diluted Valuation)
--> For BTC: price(21M) (21,000,000)
--> Represents the theoretical valuation
--> Since BTC really has a fixed cap, FDV mostly tracks the price
C) Oscillators
Both MC and FDV are:
--> Logged (to handle scale)
--> Normalized (Z-score)
--> Compressed to -100 <-> 100
HERE ARE THREE THINGS YOU ARE GOING TO SEE ON THE CHART
A) The market cap oscillator (MC OSC)
--> Normalized trend of real capital
RISING: Indicates capital inflow
FALLING: Indicates capital outflow
B) FDV Oscillator
--> Normalized trend of valuation pressure
ABOVE MC: Price is ahead of capital
BELOW MC: Capital is keeping up
!!!! FDV IS CONTEXT NOT SIGNALS !!!!
C) Spread = (FDV - MC)
--> The difference between valuation and capital
(THIS IS THE CORE SIGNAL)
NEGATIVE: Capital is gonna lead price
NEAR 0: Balanced
POSITIVE: Price leads capital
(THIS MEANS STRESS FOR BTC, NOT DILLUTION!)
WHAT DOES -60, 0, 60 MEAN?:
--> These are meant to serve as risk zones, not buy/sell dynamics; this is not the same as an RSI oscillator.
A) 0 level
--> Price and capital are balanced
--> No structural stress
(TRADE WITH NORMAL POSITION SIZE, AND NORMAL EXPECTATIONS)
B) Below -60 (Supportive/Compressed)
--> BTC is relatively cheap to recent history
--> Capital supports price well
(ALWAYS REMEMBER TO CONFIRM THIS WITH WHAT THE CHART IS TELLING YOU)
--> Press trends
--> Use higher ATRs
--> Pullbacks are better here
C) Above 60 (Overextension, or fragile)
--> BTC is expensive relative to recent history
--> Price is ahead of capital
(ALWAYS REMEMBER TO CONFIRM THIS WITH WHAT THE CHART IS TELLING YOU)
--> Reduce leverage, use smaller ATR
--> Use lower ATRs, TP faster
--> Do not chase breakouts
--> Expect volatility and whipsaws
"Can I press trades right now? Or do I need to hog my capital?"
CONDITIONS:
Spread Less than 0 and below -60 = Press trades
Spread near 0 = Normal trading conditions
Spread is Greater than 0 or above 60+ = Capital protection






















