OPEN-SOURCE SCRIPT
Penguin Trend with RSI on Diff

Visualizes volatility regime via the percent spread between the upper Bollinger Band and the upper Keltner Channel, with bar colors from a lightweight trend engine and an RSI computed on the Diff signal. Supports SMA/EMA/WMA/RMA/HMA/VWMA/VWAP and an optional calculation timeframe. Defaults preserve the original look and behavior.
Penguin Trend with RSI on Diff shows expansion vs. compression in price action by comparing two classic volatility envelopes. It computes:
Diff% = (UpperBB − UpperKC) / UpperKC × 100
• Diff > 0: Bollinger Bands are wider than Keltner Channels → expansion / momentum regime
• Diff < 0: BB narrower than KC → compression / squeeze regime
A white “Average Diff” line smooths Diff% (default: SMA(5)) to highlight regime shifts. Bars are colored only when Diff > 0 to focus on expansion phases. A lightweight trend engine defines four states from a fast/slow MA bias and a short “thrust” MA on ohlc4:
• Green: Bullish bias and thrust > fast MA (healthy upside thrust)
• Red: Bearish bias and thrust < fast MA (healthy downside thrust)
• Yellow: Bullish bias but thrust ≤ fast MA (pullback/weakness)
• Blue: Bearish bias but thrust ≥ fast MA (bear rally/short squeeze)
RSI on Diff:
The indicator adds an RSI applied to Diff% to gauge momentum of the expansion/compression signal itself. Choose between Built-in RSI or a manual RMA-based computation, and optionally smooth it. Default OB/OS lines are 70/30.
How it works:
• Bollinger Bands (BB): Basis = selected MA of src (default SMA(20)); Width = StdDev × Mult (default 2.0)
• Keltner Channels (KC): Basis = selected MA of src (default SMA(20)); Width = ATR(kcATR) × Mult (defaults 20 and 2.0)
• Diff%: Safe division guards against division-by-zero
• MA engine: Select SMA / EMA / WMA / RMA / HMA / VWMA / VWAP for BB/KC bases, Average Diff, and trend components (VWAP is session-anchored)
• Calculation timeframe: Compute internals on a chosen TF via request.security() while viewing any chart TF
Inputs (key):
• Calculation timeframe: Empty = chart TF; set e.g., 60/240 to compute on that TF
• BB: Length, StdDev Mult, MA Type
• KC: Basis Length, ATR Length, Multiplier, MA Type
• Average Diff: Length and MA Type
• RSI on Diff: RSI Length, Method (Built-in or Manual RMA), Smoothing Length, OB/OS levels, show/hide
• Trend Engine: Fast/Slow lengths & MA type, Signal (kept for completeness), Thrust MA length & type
• Display/Visibility: Paint bars only when Diff > 0; show zero line; “true Blue” color toggle; show/hide Diff columns and Average Diff
How to use:
1. Regime changes: Watch Diff% or Average Diff crossing 0. Above zero favors momentum/continuation setups; below zero suggests compression and potential breakout conditions.
2. State confirmation: During expansion (Diff > 0), prioritize Green/Red for aligned thrust; treat Yellow/Blue as cautionary/contrarian.
3. RSI on Diff: Use OB/OS and crossovers for timing entries/exits or for confirming/negating expansion strength.
Alerts:
• Diff crosses above/below 0
• Average Diff crosses above/below 0
• RSI(Diff) crosses above OB / below OS
• State changes: GREEN / RED / YELLOW / BLUE
Notes & limitations:
• VWAP is session-anchored and best on intraday data. If not applicable on the selected calculation TF, the script automatically falls back to EMA.
• Defaults (SMA(20) for BB/KC, multipliers 2.0, SMA(5) Average Diff, original trend coloring and bar painting) preserve the original appearance.
• RSI on Diff is plotted in the same pane for a compact workflow; you can hide it or split into a separate indicator if desired.
Release notes:
v6.0 — Upgraded to Pine v6. Added multi-MA options (SMA/EMA/WMA/RMA/HMA/VWMA/VWAP), calculation timeframe, RSI on Diff (Built-in or Manual RMA) with smoothing, safe division guard, optional zero line, and optional true Blue color. Defaults retain the original behavior.
License / disclaimer:
© waranyu.trkm — MIT License. Educational use only; not financial advice.
Penguin Trend with RSI on Diff shows expansion vs. compression in price action by comparing two classic volatility envelopes. It computes:
Diff% = (UpperBB − UpperKC) / UpperKC × 100
• Diff > 0: Bollinger Bands are wider than Keltner Channels → expansion / momentum regime
• Diff < 0: BB narrower than KC → compression / squeeze regime
A white “Average Diff” line smooths Diff% (default: SMA(5)) to highlight regime shifts. Bars are colored only when Diff > 0 to focus on expansion phases. A lightweight trend engine defines four states from a fast/slow MA bias and a short “thrust” MA on ohlc4:
• Green: Bullish bias and thrust > fast MA (healthy upside thrust)
• Red: Bearish bias and thrust < fast MA (healthy downside thrust)
• Yellow: Bullish bias but thrust ≤ fast MA (pullback/weakness)
• Blue: Bearish bias but thrust ≥ fast MA (bear rally/short squeeze)
RSI on Diff:
The indicator adds an RSI applied to Diff% to gauge momentum of the expansion/compression signal itself. Choose between Built-in RSI or a manual RMA-based computation, and optionally smooth it. Default OB/OS lines are 70/30.
How it works:
• Bollinger Bands (BB): Basis = selected MA of src (default SMA(20)); Width = StdDev × Mult (default 2.0)
• Keltner Channels (KC): Basis = selected MA of src (default SMA(20)); Width = ATR(kcATR) × Mult (defaults 20 and 2.0)
• Diff%: Safe division guards against division-by-zero
• MA engine: Select SMA / EMA / WMA / RMA / HMA / VWMA / VWAP for BB/KC bases, Average Diff, and trend components (VWAP is session-anchored)
• Calculation timeframe: Compute internals on a chosen TF via request.security() while viewing any chart TF
Inputs (key):
• Calculation timeframe: Empty = chart TF; set e.g., 60/240 to compute on that TF
• BB: Length, StdDev Mult, MA Type
• KC: Basis Length, ATR Length, Multiplier, MA Type
• Average Diff: Length and MA Type
• RSI on Diff: RSI Length, Method (Built-in or Manual RMA), Smoothing Length, OB/OS levels, show/hide
• Trend Engine: Fast/Slow lengths & MA type, Signal (kept for completeness), Thrust MA length & type
• Display/Visibility: Paint bars only when Diff > 0; show zero line; “true Blue” color toggle; show/hide Diff columns and Average Diff
How to use:
1. Regime changes: Watch Diff% or Average Diff crossing 0. Above zero favors momentum/continuation setups; below zero suggests compression and potential breakout conditions.
2. State confirmation: During expansion (Diff > 0), prioritize Green/Red for aligned thrust; treat Yellow/Blue as cautionary/contrarian.
3. RSI on Diff: Use OB/OS and crossovers for timing entries/exits or for confirming/negating expansion strength.
Alerts:
• Diff crosses above/below 0
• Average Diff crosses above/below 0
• RSI(Diff) crosses above OB / below OS
• State changes: GREEN / RED / YELLOW / BLUE
Notes & limitations:
• VWAP is session-anchored and best on intraday data. If not applicable on the selected calculation TF, the script automatically falls back to EMA.
• Defaults (SMA(20) for BB/KC, multipliers 2.0, SMA(5) Average Diff, original trend coloring and bar painting) preserve the original appearance.
• RSI on Diff is plotted in the same pane for a compact workflow; you can hide it or split into a separate indicator if desired.
Release notes:
v6.0 — Upgraded to Pine v6. Added multi-MA options (SMA/EMA/WMA/RMA/HMA/VWMA/VWAP), calculation timeframe, RSI on Diff (Built-in or Manual RMA) with smoothing, safe division guard, optional zero line, and optional true Blue color. Defaults retain the original behavior.
License / disclaimer:
© waranyu.trkm — MIT License. Educational use only; not financial advice.
Skrip sumber terbuka
Dalam semangat sebenar TradingView, pencipta skrip ini telah menjadikannya sumber terbuka supaya pedagang dapat menilai dan mengesahkan kefungsiannya. Terima kasih kepada penulis! Walaupun anda boleh menggunakannya secara percuma, ingat bahawa menerbitkan semula kod ini adalah tertakluk kepada Peraturan Dalaman kami.
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.
Skrip sumber terbuka
Dalam semangat sebenar TradingView, pencipta skrip ini telah menjadikannya sumber terbuka supaya pedagang dapat menilai dan mengesahkan kefungsiannya. Terima kasih kepada penulis! Walaupun anda boleh menggunakannya secara percuma, ingat bahawa menerbitkan semula kod ini adalah tertakluk kepada Peraturan Dalaman kami.
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.