SPY vs VIX SMA Slope Alignment (Adjustable Days)Use this on VIX Chart only.
This indicator compares the SLOPE of the daily SMA of SPY, to the SLOPE of the Daily SMA to VIX
When SPY and VIX are trending UP for the length of time that you define, you will get a GREEN ARROW on the VIX chart showing that the condition has been met.
EXAMPLE:
Set 3 day SMA for VIX and SPY
THEN
Set Look back time to 2 days
---IF SPY 3day SMA AND VIX 3day SMA are both ASCENDING during any 3 day lookback period, a green indicator arrow will be showing on the VIX Chart
DO NOT Use this indicator on SPY Chart
(SPY and VIX have different daily open/close times. This indicator DOES NOT work propertly on SPY Chart. But it DOES work properly on VIX chart. )
Indicators and strategies
First 30M Candle Rule Ref / 5M EntriesThis strategy highlights and reacts to two key 30-minute candles on the Romanian market schedule — at 10:30 AM and 15:30 or 16:30 (depending on daylight saving time).
It is designed to run on a 5-minute chart, using the 30-minute candles as reference points for potential entries.
When each 30-minute candle closes, the script:
Colors the background during that specific 30-minute period (green for the morning session, red for the afternoon session)
Sends an alert confirming the candle’s closure
Places a symbolic long trade after the 10:30 candle closes and a symbolic short trade after the afternoon candle closes (for backtesting purposes)
This setup allows traders to test or automate strategies that rely on market reactions following key time-based candles, without plotting any extra lines on the chart.
Premarket, Previous Day H/L + EMA Trend Table + ATHPremarket, Previous Day H/L + EMA Trend Table + ATH
ES Key Levels (Adam Mancini)An automated way to draw key levels from Adam's newsletter without manually drawing it all out.
High Volume AlertThis Pine Script monitors trading volume in real time and alerts you whenever current volume is unusually high — specifically, when it’s greater than a chosen multiple (for example, 1.5×) of the average volume over a recent period (for example, 20 bars).
It’s a quick way to detect volume spikes, which often precede breakouts or reversals.
Asia Range Breakout Asia Range Breakout
Description:
Asia Range Breakout is a sophisticated, multi-filter trading tool designed to identify high-probability breakout opportunities during the core Asian trading session. By combining session-based range analysis with advanced confirmation filters like Heiken Ashi momentum, Ichimoku baseline trends, and EMA alignment, this indicator helps traders capture decisive moves while filtering out market noise.
Tired of false breakouts? This system provides a structured framework to trade the Sydney and Tokyo sessions with precision and confidence.
Key Features:
Multi-Session Range Tracking:
Monitors 6 distinct pre-defined Asian sessions (Sydney Box, Tokyo Pre-Open, Tokyo Launch, etc.).
Dynamically plots High and Low boundaries for each session (Teal for Highs, Red for Lows).
Individually toggleable sessions to focus on your preferred trading window.
Smart Alert & Signal System:
Generates alerts based on Heiken Ashi candle closings relative to session ranges.
Dual-Size Signals: Differentiates between "Large" breakouts (outside the range) and "Small" signals (within the range).
Configurable alert timeframe for confirmation candle closure.Built-in Sound Alerts for real-time notifications.
Advanced Confirmation Filters:
Heiken Ashi Momentum Filter: Ensures breakout candles have significant momentum, adjustable via a threshold multiplier.
EMA 200 Filter: Confirms the breakout's alignment with the broader trend.
Ichimoku Baseline (Kijun-sen) Filter: Uses a dynamic support/resistance level for additional confirmation.
Ichimoku Baseline Divergence Filter: A unique feature that requires the baseline's slope to match the breakout direction (Bullish for buys, Bearish for sells).
ATR Volatility Filter: (Optional) Ensures the breakout candle has sufficient range relative to recent market volatility.
Visual Enhancements:
Take-Profit Lines: Projects profit targets using ATR and connects consecutive alerts with a trendline.
Heiken Ashi Overlay: Displays smoothed Heiken Ashi candles directly on the main chart for cleaner trend visualization.
Divergence Trend Line: Visually plots the slope of the Ichimoku Baseline for quick trend assessment.
Session Background Highlighter: Shades the active sessions for easy time reference.
Comprehensive Debug Info Box: Provides real-time feedback on filter status, perfect for strategy validation and learning.
Usage Instructions & Tips:
1. Initial Setup:
Start simple! Apply the indicator to a 5-minute or 1-minute chart.
Recommended Instruments:
Forex: Major pairs like AUD/USD , USD/JPY or EUR/JPY.
Indices: `NAS100` (Nasdaq), `US30` (Dow Jones), `JP225` (Nikkei 225).
Commodities: `XAUUSD` (Gold).
Initially, enable only the Sydney Box (00:30 - 03:15 UTC) as it is the most robust session, then explore others.
2. Interpreting the Signals:
Large Green Arrow (Above Bar): A strong BUY signal. The Heiken Ashi candle closed above the session's High, and all enabled filters are confirmed.
Small Green Arrow (Above Bar): A moderate BUY signal. The candle closed bullishly but within the session range.
Large Red Arrow (Below Bar): A strong SELL signal. The Heiken Ashi candle closed below the session's Low, with filter confirmation.
Small Red Arrow (Below Bar): A moderate SELL signal. The candle closed bearishly but within the session range.
3. Optimizing Your Strategy:
Filter Tuning: The default filters are balanced. Adjust them based on your risk appetite:
Increase the Heiken Ashi Threshold (e.g., to 0.2) for fewer, but stronger signals.
Disable filters like ATR or Divergence if you find them too restrictive.
The Power of Divergence: The Ichimoku Divergence filter is a powerful trend-confirmation tool. Pay close attention to it for the highest-quality signals.
Use the Debug Box: Enable the "Show Debug Info Box" to see exactly why a signal did or did not trigger. This is invaluable for understanding the indicator's logic and avoiding bad trades.
4. Risk Management:
The TP Lines provide a logical profit target based on market volatility. Consider using them for setting take-profit orders.
Always use a stop-loss. A logical level is the opposite side of the session range (e.g., for a buy signal, place a stop below the session low).
You're very welcome! I'm glad I could help you create a professional tool. Wishing you great success with your Trading! 🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
XAUUSD Scalper-AbsoluteTesting for first time, indicator with an idea to get the volitality. first time will be bad but let us see with time
RSI + Stochastic Combo (fixed) by howhaber# RSI + Stochastic Indicator
**Summary**
This indicator combines RSI and Stochastic to generate BUY and SELL signals in oversold or overbought market conditions. It merges both indicators for higher accuracy, reducing false signals. Includes visual signals on the chart, alerts, and an info label for quick analysis.
---
## 📈 How the Indicator Works
### RSI Component
- Calculates standard RSI based on the specified period (`rsiLen`).
- Indicates oversold (< 30) or overbought (> 70) conditions.
### Stochastic Component
- Manually calculated to avoid compatibility issues.
- Measures the current price position relative to the price range (highs/lows) over the selected period.
- Smoothed using two SMA filters (%K and %D).
### Signal Logic
**BUY Signal**:
- %K crosses above %D (`ta.crossover(k, d)`).
- %K < 20 (oversold market).
- RSI < specified threshold (default < 40).
**SELL Signal**:
- %K crosses below %D (`ta.crossunder(k, d)`).
- %K > 80 (overbought market).
- RSI > specified threshold (default > 60).
---
## 📍 What's Displayed on the Chart
- 🟢 **Green arrow** below the bar → BUY signal.
- 🔴 **Red arrow** above the bar → SELL signal.
- **In a separate window**:
- RSI line (blue).
- Stochastic %K (orange).
- Stochastic %D (purple).
- Reference levels: 30/70 (RSI), 20/80 (Stochastic).
---
## 🔔 Alerts
- **RSI+Stoch BUY**: Notification on BUY signal.
- **RSI+Stoch SELL**: Notification on SELL signal.
Receive alerts via email, Telegram, or directly on the platform.
---
## 🧩 Additional Feature
- Info label on the last bar, displaying:
- Current RSI value.
- %K and %D values.
- Facilitates quick visual checks of the indicator's current state.
---
## 💡 Interpretation
- **Oversold market** (confirmed by RSI and Stochastic): Likely upward reversal.
- **Overbought market** (confirmed by RSI and Stochastic): Likely downward reversal.
- Combining both reduces false signals and improves accuracy in choppy markets.
---
## ⚠️ Important Note
This indicator is not financial advice. It is designed for technical analysis and educational purposes. Combine it with other tools like trend analysis, volume, and price patterns for better results.
多周期Stoch RSI共振指标Multi-period Stoch RSI resonance indicator
This is a multi-period resonance indicator,4h、1h、30m、15m
(RSI + CCI) × (MACD/ATR)^2⚙️ (RSI + CCI) × (MACD / ATR)² Composite — Normalized, Compressed, Dynamic Colors
This advanced composite oscillator merges three powerful momentum indicators — RSI, CCI, and MACD — into one normalized and volatility-adjusted signal that reacts smoothly across all markets.
By dividing MACD by ATR (Average True Range), the indicator self-scales for different symbols, and an optional tanh-like compression prevents extreme spikes while keeping the movement fluid and responsive.
🧩 Core Formula
(RSI + CCI) × (MACD / ATR)²
(optionally passed through a tanh compression for stability)
RSI and CCI are normalized (RSI ÷ 50, CCI ÷ 100) → roughly −2 to +2 range.
MACD is volatility-adjusted by ATR → scale-independent between assets.
The result is centered around 0 for clear bullish/bearish momentum comparison.
🎨 Visual Features
🟢🔴 Dynamic 4-Color Histogram
Positive + Rising = Strong Teal
Positive + Falling = Light Teal
Negative + Falling = Strong Red
Negative + Rising = Light Red
🟡⚫ 4-Color Smoothing Line
Positive & Rising = Bright Yellow
Positive & Falling = Soft Yellow
Negative & Rising = Grey
Negative & Falling = Dark Grey
Zero-centered layout for intuitive bullish/bearish visualization.
⚙️ Adjustable Parameters
Individual RSI, CCI, and MACD lengths and sources.
ATR length for volatility normalization.
Optional tanh-style compression with adjustable gain (to keep values in ±1 range).
Fully customizable colors and line widths for both bars and smoothing line.
🔔 Alerts
Triggered automatically when the composite crosses above or below zero, signaling potential trend reversals or momentum shifts.
💡 How to Use
Composite > 0 → Bullish momentum ↑
Composite < 0 → Bearish momentum ↓
A brightening line or bar = momentum accelerating.
A fading color = momentum weakening or reversal forming.
Combine with higher-timeframe trend filters (EMA, VWAP, Supertrend) for confirmation.
EMA Ribbon MozyMozy TRading
EMA Ribbons for short time frames on daily traders. Buy or sell during crosses
Liquidations Aggregated (Lite)Liquidations Aggregated (Lite)
The Liquidations Aggregated (Lite) script provides a unified cross-exchange visualization of short and long liquidation volumes, allowing traders to identify high-impact market events and sentiment reversals driven by forced position closures. It aggregates normalized liquidation data from Binance, Bybit, and OKX into a single coherent output, offering a consolidated perspective of derivative market stress across major venues.
Core Concept
Liquidations are involuntary closures of leveraged positions when margin requirements are breached. They represent points of structural orderflow imbalance, often triggering localized volatility spikes and price pivots. This indicator isolates and aggregates those liquidation volumes by direction (short vs. long), allowing traders to map where leveraged traders are being forced out and whether current market movement is driven by short covering or long capitulation.
Underlying Methodology
Each connected exchange provides liquidation feeds via standardized symbols (e.g., BTCUSDT.P_LQBUY or BTCUSD.P_LQSELL).
The script differentiates between:
Short Liquidations → Buy Volume: Forced covering of shorts, representing upward pressure.
Long Liquidations → Sell Volume: Forced selling of longs, representing downward pressure.
Bybit’s inverse data is normalized to align directional logic with Binance and OKX. Data is drawn through the request.security() function per symbol and per exchange, with per-exchange scaling adjustments applied to compensate for differences in reported nominal sizes (USD vs. coin-margined). The script is meant to match the calculation methods of professional-grade data sources (e.g., Velodata, Coinalyze). The value is denominated in the base currency at all times.
Computation Logic
Liquidation volumes are fetched separately for USD- and USDT-margined pairs on each exchange.
Exchange-specific magnitude adjustments are applied to account for nominal denomination differences.
Normalized liquidation buy and sell volumes are summed into two global aggregates:
combinedBuyVolumeLiquidationsShort → aggregated buy volume from forced short positions closes (Short Liquidations)
combinedSellVolumeLiquidationsLong → aggregated sell pressure from forced long position closes (Long Liquidations)
Final series are plotted as mirrored column charts around a zero baseline for direct comparison.
How to Use
Apply the script to any crypto perpetual futures symbol (e.g., BTCUSDT, ETHUSDT).
Observe teal bars (Buy Volume from Short Liquidations) for short squeezes and red bars (Sell Volume from Long Liquidations) for long wipes.
Strong teal spikes during downtrends often indicate aggressive short liquidations leading to short-term bounces.
Strong red spikes during uptrends often mark long unwinds that can trigger sharp retracements.
Sustained asymmetry in either direction suggests systemic imbalance across leveraged positioning.
RSI// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © xdecow
//@version=5
indicator("RSI", overlay=true)
g_panel = 'Panel Options'
i_orientation = input.string('Vertical', 'Orientation', options = , group = g_panel)
i_position = input.string('Bottom Right', 'Position', options = , group = g_panel)
i_border_width = input.int(1, 'Border Width', minval = 0, maxval = 10, group = g_panel, inline = 'border')
i_color_border = input.color(#000000, '', group = g_panel, inline = 'border')
i_showHeaders = input.bool(true, 'Show Headers', group = g_panel)
i_color_header_bg = input.color(#5d606b, 'Headers Background', group = g_panel, inline = 'header')
i_color_header_text = input.color(color.white, 'Text', group = g_panel, inline = 'header')
i_color_tf_bg = input.color(#2a2e39, 'Timeframe Background', group = g_panel, inline = 'tf')
i_color_tf_text = input.color(color.white, 'Text', group = g_panel, inline = 'tf')
i_debug = input.bool(false, 'Display colors palette (debug)', group = g_panel)
// rsi bg colors
g_rsi = 'RSI Colors'
i_threshold_ob = input.int(70, 'Overbought Threshold', minval=51, maxval=100, group = g_rsi)
i_color_ob = input.color(#128416, 'Overbought Background', inline = 'ob', group = g_rsi)
i_tcolor_ob = input.color(color.white, 'Text', inline = 'ob', group = g_rsi)
i_threshold_uptrend = input.int(60, 'Uptrend Threshold', minval=51, maxval=100, group = g_rsi)
i_color_uptrend = input.color(#2d472e, 'Uptrend Background', inline = 'up', group = g_rsi)
i_tcolor_uptrend = input.color(color.white, 'Text', inline = 'up', group = g_rsi)
i_color_mid = input.color(#131722, 'No Trend Background', group = g_rsi, inline = 'mid')
i_tcolor_mid = input.color(#b2b5be, 'Text', group = g_rsi, inline = 'mid')
i_threshold_downtrend = input.int(40, 'Downtrend Threshold', group = g_rsi, minval=0, maxval=49)
i_color_downtrend = input.color(#5b2e2e, 'Downtrend Background', group = g_rsi, inline = 'down')
i_tcolor_downtrend = input.color(color.white, 'Text', group = g_rsi, inline = 'down')
i_threshold_os = input.int(30, 'Oversold Threshold', minval=0, maxval=49, group = g_rsi)
i_color_os = input.color(#db3240, 'Oversold Background', group = g_rsi, inline = 'os')
i_tcolor_os = input.color(color.white, 'Text', group = g_rsi, inline = 'os')
g_rsi1 = 'RSI #1'
i_rsi1_enabled = input.bool(true, title = 'Enabled', group = g_rsi1)
i_rsi1_tf = input.timeframe('5', 'Timeframe', group = g_rsi1)
i_rsi1_len = input.int(14, 'Length', minval = 1, group = g_rsi1)
i_rsi1_src = input.source(close, 'Source', group = g_rsi1) * 10000
v_rsi1 = i_rsi1_enabled ? request.security(syminfo.tickerid, i_rsi1_tf, ta.rsi(i_rsi1_src, i_rsi1_len)) : na
g_rsi2 = 'RSI #2'
i_rsi2_enabled = input.bool(true, title = 'Enabled', group = g_rsi2)
i_rsi2_tf = input.timeframe('15', 'Timeframe', group = g_rsi2)
i_rsi2_len = input.int(14, 'Length', minval = 1, group = g_rsi2)
i_rsi2_src = input.source(close, 'Source', group = g_rsi2) * 10000
v_rsi2 = i_rsi2_enabled ? request.security(syminfo.tickerid, i_rsi2_tf, ta.rsi(i_rsi2_src, i_rsi2_len)) : na
g_rsi3 = 'RSI #3'
i_rsi3_enabled = input.bool(true, title = 'Enabled', group = g_rsi3)
i_rsi3_tf = input.timeframe('60', 'Timeframe', group = g_rsi3)
i_rsi3_len = input.int(14, 'Length', minval = 1, group = g_rsi3)
i_rsi3_src = input.source(close, 'Source', group = g_rsi3) * 10000
v_rsi3 = i_rsi3_enabled ? request.security(syminfo.tickerid, i_rsi3_tf, ta.rsi(i_rsi3_src, i_rsi3_len)) : na
g_rsi4 = 'RSI #4'
i_rsi4_enabled = input.bool(true, title = 'Enabled', group = g_rsi4)
i_rsi4_tf = input.timeframe('240', 'Timeframe', group = g_rsi4)
i_rsi4_len = input.int(14, 'Length', minval = 1, group = g_rsi4)
i_rsi4_src = input.source(close, 'Source', group = g_rsi4) * 10000
v_rsi4 = i_rsi4_enabled ? request.security(syminfo.tickerid, i_rsi4_tf, ta.rsi(i_rsi4_src, i_rsi4_len)) : na
g_rsi5 = 'RSI #5'
i_rsi5_enabled = input.bool(true, title = 'Enabled', group = g_rsi5)
i_rsi5_tf = input.timeframe('D', 'Timeframe', group = g_rsi5)
i_rsi5_len = input.int(14, 'Length', minval = 1, group = g_rsi5)
i_rsi5_src = input.source(close, 'Source', group = g_rsi5) * 10000
v_rsi5 = i_rsi5_enabled ? request.security(syminfo.tickerid, i_rsi5_tf, ta.rsi(i_rsi5_src, i_rsi5_len)) : na
g_rsi6 = 'RSI #6'
i_rsi6_enabled = input.bool(true, title = 'Enabled', group = g_rsi6)
i_rsi6_tf = input.timeframe('W', 'Timeframe', group = g_rsi6)
i_rsi6_len = input.int(14, 'Length', minval = 1, group = g_rsi6)
i_rsi6_src = input.source(close, 'Source', group = g_rsi6) * 10000
v_rsi6 = i_rsi6_enabled ? request.security(syminfo.tickerid, i_rsi6_tf, ta.rsi(i_rsi6_src, i_rsi6_len)) : na
g_rsi7 = 'RSI #7'
i_rsi7_enabled = input.bool(false, title = 'Enabled', group = g_rsi7)
i_rsi7_tf = input.timeframe('W', 'Timeframe', group = g_rsi7)
i_rsi7_len = input.int(14, 'Length', minval = 1, group = g_rsi7)
i_rsi7_src = input.source(close, 'Source', group = g_rsi7) * 10000
v_rsi7 = i_rsi7_enabled ? request.security(syminfo.tickerid, i_rsi7_tf, ta.rsi(i_rsi7_src, i_rsi7_len)) : na
g_rsi8 = 'RSI #8'
i_rsi8_enabled = input.bool(false, title = 'Enabled', group = g_rsi8)
i_rsi8_tf = input.timeframe('W', 'Timeframe', group = g_rsi8)
i_rsi8_len = input.int(14, 'Length', minval = 1, group = g_rsi8)
i_rsi8_src = input.source(close, 'Source', group = g_rsi8) * 10000
v_rsi8 = i_rsi8_enabled ? request.security(syminfo.tickerid, i_rsi8_tf, ta.rsi(i_rsi8_src, i_rsi8_len)) : na
g_rsi9 = 'RSI #9'
i_rsi9_enabled = input.bool(false, title = 'Enabled', group = g_rsi9)
i_rsi9_tf = input.timeframe('W', 'Timeframe', group = g_rsi9)
i_rsi9_len = input.int(14, 'Length', minval = 1, group = g_rsi9)
i_rsi9_src = input.source(close, 'Source', group = g_rsi9) * 10000
v_rsi9 = i_rsi9_enabled ? request.security(syminfo.tickerid, i_rsi9_tf, ta.rsi(i_rsi9_src, i_rsi9_len)) : na
g_rsi10 = 'RSI #10'
i_rsi10_enabled = input.bool(false, title = 'Enabled', group = g_rsi10)
i_rsi10_tf = input.timeframe('W', 'Timeframe', group = g_rsi10)
i_rsi10_len = input.int(14, 'Length', minval = 1, group = g_rsi10)
i_rsi10_src = input.source(close, 'Source', group = g_rsi10) * 10000
v_rsi10 = i_rsi10_enabled ? request.security(syminfo.tickerid, i_rsi10_tf, ta.rsi(i_rsi10_src, i_rsi10_len)) : na
f_StrPositionToConst(_p) =>
switch _p
'Top Left' => position.top_left
'Top Right' => position.top_right
'Top Center' => position.top_center
'Middle Left' => position.middle_left
'Middle Right' => position.middle_right
'Middle Center' => position.middle_center
'Bottom Left' => position.bottom_left
'Bottom Right' => position.bottom_right
'Bottom Center' => position.bottom_center
=> position.bottom_right
f_timeframeToHuman(_tf) =>
seconds = timeframe.in_seconds(_tf)
if seconds < 60
_tf
else if seconds < 3600
str.tostring(seconds / 60) + 'm'
else if seconds < 86400
str.tostring(seconds / 60 / 60) + 'h'
else
switch _tf
"1D" => "D"
"1W" => "W"
"1M" => "M"
=> str.tostring(_tf)
type TPanel
table src = na
bool vertical_orientation = true
int row = 0
int col = 0
method incCol(TPanel _panel) =>
if _panel.vertical_orientation
_panel.col += 1
else
_panel.row += 1
method incRow(TPanel _panel) =>
if not _panel.vertical_orientation
_panel.col += 1
_panel.row := 0
else
_panel.row += 1
_panel.col := 0
method add(TPanel _panel, string _v1, color _bg1, color _ctext1, string _v2, color _bg2, color _ctext2) =>
table.cell(_panel.src, _panel.col, _panel.row, _v1, text_color = _ctext1, bgcolor = _bg1)
_panel.incCol()
table.cell(_panel.src, _panel.col, _panel.row, _v2, text_color = _ctext2, bgcolor = _bg2)
_panel.incRow()
f_bg(_rsi) =>
c_line = na(_rsi) ? i_color_mid :
_rsi >= i_threshold_ob ? i_color_ob :
_rsi >= i_threshold_uptrend ? i_color_uptrend :
_rsi <= i_threshold_os ? i_color_os :
_rsi <= i_threshold_downtrend ? i_color_downtrend :
i_color_mid
f_rsi_text_color(_rsi) =>
c_line = na(_rsi) ? i_tcolor_mid :
_rsi >= i_threshold_ob ? i_tcolor_ob :
_rsi >= i_threshold_uptrend ? i_tcolor_uptrend :
_rsi <= i_threshold_os ? i_tcolor_os :
_rsi <= i_threshold_downtrend ? i_tcolor_downtrend :
i_tcolor_mid
f_formatRsi(_rsi) => na(_rsi) ? 'N/A' : str.tostring(_rsi, '0.00')
if barstate.islast
v_panel = TPanel.new(vertical_orientation = i_orientation == 'Vertical')
v_max_rows = 20
v_panel.src := table.new(f_StrPositionToConst(i_position), v_max_rows, v_max_rows, border_width = i_border_width, border_color = i_color_border)
if i_showHeaders
v_panel.add('TF', i_color_header_bg, i_color_header_text, 'RSI', i_color_header_bg, i_color_header_text)
if i_rsi1_enabled
v_panel.add(f_timeframeToHuman(i_rsi1_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi1), f_bg(v_rsi1), f_rsi_text_color(v_rsi1))
if i_rsi2_enabled
v_panel.add(f_timeframeToHuman(i_rsi2_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi2), f_bg(v_rsi2), f_rsi_text_color(v_rsi2))
if i_rsi3_enabled
v_panel.add(f_timeframeToHuman(i_rsi3_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi3), f_bg(v_rsi3), f_rsi_text_color(v_rsi3))
if i_rsi4_enabled
v_panel.add(f_timeframeToHuman(i_rsi4_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi4), f_bg(v_rsi4), f_rsi_text_color(v_rsi4))
if i_rsi5_enabled
v_panel.add(f_timeframeToHuman(i_rsi5_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi5), f_bg(v_rsi5), f_rsi_text_color(v_rsi5))
if i_rsi6_enabled
v_panel.add(f_timeframeToHuman(i_rsi6_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi6), f_bg(v_rsi6), f_rsi_text_color(v_rsi6))
if i_rsi7_enabled
v_panel.add(f_timeframeToHuman(i_rsi7_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi7), f_bg(v_rsi7), f_rsi_text_color(v_rsi7))
if i_rsi8_enabled
v_panel.add(f_timeframeToHuman(i_rsi8_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi8), f_bg(v_rsi8), f_rsi_text_color(v_rsi8))
if i_rsi9_enabled
v_panel.add(f_timeframeToHuman(i_rsi9_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi9), f_bg(v_rsi9), f_rsi_text_color(v_rsi9))
if i_rsi10_enabled
v_panel.add(f_timeframeToHuman(i_rsi10_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi10), f_bg(v_rsi10), f_rsi_text_color(v_rsi10))
if i_debug
t = table.new(position.middle_center, 21, 20, border_width = i_border_width, border_color = i_color_border)
v_panel2 = TPanel.new(t, vertical_orientation = i_orientation == 'Vertical')
v_panel2.add('Debug', i_color_header_bg, i_color_header_text, 'Colors', i_color_header_bg, i_color_header_text)
demo = map.new()
map.put(demo, 'Overbought', i_threshold_ob)
map.put(demo, 'Uptrend', i_threshold_uptrend)
map.put(demo, 'No Trend', 50)
map.put(demo, 'Downtrend', i_threshold_downtrend)
map.put(demo, 'Oversold', i_threshold_os)
demoKeys = map.keys(demo)
for key in demoKeys
tf = key
rsi = map.get(demo, key)
v_panel2.add(tf, i_color_tf_bg, i_color_tf_text, f_formatRsi(rsi), f_bg(rsi), f_rsi_text_color(rsi))
Custom MTF EMA CloudsVisualize market structure and trend alignment across multiple timeframes with six layered EMA clouds — from short-term momentum to macro trend anchors.
Each pair of EMAs forms a dynamic cloud that adapts to your selected timeframe.
Colors, lengths, and visibility are fully customizable, allowing you to tailor the setup for any trading style.
⚙️ Default Configuration
EMA Short Long Purpose
1 8 13 🔸 Intraday momentum cloud (scalping layer)
2 21 24 🟩 Short-term trend confirmation
3 50 55 🔵 Medium-term swing structure
4 120 144 🔴 Long-term support/resistance band
5 200 238 🟠 Institutional trend foundation
6 400 460 🟣 Macro directional anchor
🧩 Features
✅ Up to 6 independent EMA clouds
✅ Fully customizable short & long lengths
✅ Individual line and cloud colors
✅ Toggle each layer on/off
✅ Works with any timeframe via the Resolution input
✅ Automatic cloud transparency for better chart clarity
📈 How to Use
Use EMA 1–2 (8/13, 21/24) for momentum shifts and intraday entries.
Use EMA 3–4 (50/55, 120/144) for swing confirmation and trend continuation.
Use EMA 5–6 (200/238, 400/460) as long-term anchors to stay aligned with institutional flow.
Watch for crossovers or price breaking in/out of clouds — they often precede strong directional moves.
Previous Day High-LowIt will show Previous Day High-Low. This will create two horizontal lines automatically updated each day, marking yesterday’s high and low levels clearly on any intraday chart.
X 4H ORThis indicator plots the 30-second opening range (high/low) for six New-York–time anchors—2am, 6am, 10am, 2pm, 6pm, and 10pm—and extends each box to a fixed end time (e.g., 2am→9am, 6am→1pm, etc.). It samples true 30-second data regardless of the chart timeframe, so the captured highs/lows are precise.
What it does
Builds the first 30s OR for each selected anchor and draws a time-anchored box for that session.
Archives every day’s boxes (up to a cap) so you can study how price interacts with past ranges.
Adds per-anchor show toggles to display the latest box for that anchor.
Adds a global History toggle to show/hide all archived boxes without deleting them (clean view vs. context view).
Uses borderless, color-coded fills per anchor to avoid edge distortion while keeping levels easy to read.
Why it’s useful
Quickly spot session inflection zones where liquidity, breakouts, or reversals cluster.
Compare how current price trades relative to recent session ranges for bias and risk framing.
Perform lightweight post-session review/backtesting on OR breaks, retests, and range rotations.
Keep charts decluttered on demand (latest only), or flip on history for deeper context.
黄金专用LPPL特征检测(Log-Periodic Power Law Singularity)专门用于黄金走势的LPPL检测,在技术分析中,LPPL 奇点指的是对数周期幂律奇异性(Log-Periodic Power Law Singularity),它是对数周期幂律模型(LPPL)中的一个关键概念。以下是关于它的详细介绍:
提出者及背景:LPPL 模型是由研究市场泡沫的先驱者、物理学家迪迪埃・索尔内特(Didier Sornette)等人提出的。该模型结合了理性预期泡沫的经济理论、投资者的模仿和羊群行为的行为金融学以及分岔和相变的数学统计物理学,用于检测金融市场中的泡沫和预测市场转折点。
模型原理:LPPL 模型假设当市场出现泡沫时,资产价格会呈现出一种特殊的波动模式,这种模式由正反馈机制驱动。在泡沫形成过程中,投资者的模仿和跟风行为导致市场参与者的一致性和协同性急剧上升,价格出现 “快于指数” 的增长,同时伴随着加速的对数周期振荡。而 LPPL 奇点就是价格增长和振荡达到极限的那个有限时间点,在这个点之前,价格增长越来越快,振荡频率也越来越高,当到达奇点时,泡沫破裂,市场往往会出现急剧的反转和崩盘。
数学表达:LPPL 模型的数学公式较为复杂,其原始形式提出了一个由 3 个线性参数和 4 个非线性参数组成的函数。通过将这个函数与对数价格时间序列进行拟合,可以估计出模型的参数,进而确定奇点的时间位置等信息。
在金融市场中的应用:LPPL 模型及其中的奇点概念主要用于检测金融市场中的泡沫和预测市场的崩溃点。例如,在 2008 年石油价格泡沫和 2009 年上海股市泡沫等事件中,该模型都被用于分析和预测市场的转折点。不过,该模型也存在一定的局限性,比如对奇点具体点位的预测误差较大,而且市场情况复杂多变,可能会有强大的外力干扰等因素影响模型的准确性。
The LPPL model was proposed by physicist Didier Sornette, a pioneer in the study of market bubbles, and others. The model combines the economic theory of rational expectations bubbles, behavioral finance on investor imitation and herding behavior, and the mathematical statistical physics of bifurcations and phase transitions to detect bubbles in financial markets and predict market turning points.
Model Principle: The LPPL model posits that when a market bubble forms, asset prices exhibit a distinctive pattern of fluctuation driven by a positive feedback mechanism. During the bubble's formation, investors' imitation and bandwagon-following behavior lead to a sharp increase in consistency and coordination among market participants, resulting in "faster-than-exponential" price growth accompanied by accelerating logarithmic-periodic oscillations. The LPPL singularity is the finite point in time where price growth and oscillation reach their limits. Prior to this point, prices grow increasingly faster, and the frequency of oscillations increases. When the singularity is reached, the bubble bursts, and the market often experiences a sharp reversal and crash.
Previous Candle 50% line The intention of this is to mark the 50% mark of the previous candle. My use is to set stops and to spot reversals coming from the STRAT to see in real time 2's going 3
Continuation Gauge - ES 3m (v1.1)Continuation Gauge - ES 3m (v1.1)
wave trend analysis between bull and bear imbalance trends
Logit RSI [AdaptiveRSI]The traditional 0–100 RSI scale makes statistical overlays, such as Bollinger Bands or even moving averages, technically invalid. This script solves this issue by placing RSI on an unbounded, continuous scale, enabling these tools to work as intended.
The Logit function takes bounded data, such as RSI values ranging from 0 to 100, and maps them onto an unbounded scale ranging from negative infinity (−∞) to positive infinity (+∞).
An RSI reading of 50 becomes 0 on the Logit scale, indicating a balanced market. Readings above 50 map to positive Logit values (price above Wilder’s EMA / RSI above 50), while readings below 50 map to negative values (price below Wilder’s EMA / RSI below 50).
For the detailed formula, which calculates RSI as a scaled distance from Wilder’s EMA, check the RSI
: alternative derivation script.
The main issue with the 0–100 RSI scale is that different lookback periods produce very different distributions of RSI values. The histograms below illustrate how often RSIs of various lengths spend time within each 5-point range.
On RSI(2), the tallest bars appear at the edges (0–5 and 95–100), meaning short-term RSI spends most of its time at the extremes. For longer lookbacks, the bars cluster around the center and rarely reach 70 or 30.
This behavior makes it difficult to generalize the two most common RSI techniques:
Fixed 70/30 thresholds: These overbought and oversold levels only make sense for short- or mid-range lookbacks (around the low teens). For very short periods, RSI spends most of its time above or below these levels, while for long-term lookbacks, RSI rarely reaches them.
Bollinger Bands (±2 standard deviations): When applied directly to RSI, the bands often extend beyond the 0–100 limits (especially for short-term lookbacks) making them mathematically invalid. While the issue is less visible on longer settings, it remains conceptually incorrect.
To address this, we apply the Logit Transform :
Logit RSI = LN(RSI / (100 − RSI))
The transformed data fits a smooth bell-shaped curve, allowing statistical tools like Bollinger Bands to function properly for the first time.
Why Logit RSI Matters:
Makes RSI statistically consistent across all lookback periods.
Greatly improves the visual clarity of short-term RSIs
Allows proper use of volatility tools (like Bollinger Bands) on RSI.
Replaces arbitrary 70/30 levels with data-driven thresholds.
Simplifies RSI interpretation for both short- and long-term analysis.
INPUTS:
RSI Length — set the RSI lookback period used in calculations.
RSI Type — choose between Regular RSI or Logit RSI .
Plot Bollinger Bands — ON/OFF toggle to overlay statistical envelopes around RSI or Logit RSI.
SMA and Standard Deviation Length — defines the lookback period for both the SMA (Bollinger Bands midline) and Standard Deviation calculations.
Standard Deviation Multiplier — controls the width of the Bollinger Bands (e.g., 2.0 for ±2σ).
While simple, the Logit transformation represents an unexplored yet powerful mathematically grounded improvement to the classic RSI.
It offers traders a structured, intuitive, and statistically consistent way to use RSI across all timeframes.
I welcome your feedback, suggestions, and code improvements—especially regarding performance and efficiency. Your insights are greatly appreciated.
CMF, RSI, CCI, MACD, OBV, Fisher, Stoch RSI, ADX (+DI/-DI)Eight normalized indicators are used in conjunction with the CMF, CCI, MACD, and Stoch RSI indicators. You can track buy and sell decisions by tracking swings. The zero line is for reversal tracking at -20, +20, +50, and +80. You can use any of the nine indicators individually or in combination.
Timebender – 369 PivotsTimebender – 369 Pivots is a clean visual study that marks swing highs and lows with numeric “369-sequence” digits derived from time.
Each digit is automatically color-coded into Accumulation (1 – 3), Manipulation (4 – 6), and Distribution (7 – 9) phases, helping traders identify rhythm and symmetry in market structure.
Labels float above or below bars for clear visibility and never overlap price, allowing smooth zoom and multi-timeframe use.
This base model focuses on clarity, precision, and efficient plotting — no toggles, no clutter — a stable foundation for future Timebender builds.
Gold and Bitcoin: The Evolution of Value!The Eternal Luster of Gold
In the dawn of time, when the earth was young and rivers whispered secrets to the stones, a wanderer named Elara found a gleam in the silt of a sun-kissed stream. It was pure gold, radiant like a captured star fallen from the heavens. She held it in her palm, feeling its warmth pulse like a heartbeat, and in that moment, humanity’s soul awakened to the allure of eternity.
As seasons turned to centuries, gold wove itself into the story of empires. In ancient Egypt, pharaohs crowned themselves with its glow, believing it to be the flesh of gods. It built pyramids that reached for the sky and tombs that guarded kings forever. Across the sands in Mesopotamia, merchants traded it for spices and silks, its weight a promise of power and trust.
Translation moment: Gold became the first universal symbol of value. People trusted it more than words or promises because it did not rust, fade, or vanish.
The Greeks saw in gold not only wealth but wisdom, the symbol of the sun’s eternal fire. Alexander the Great carried it across the continent, forging an empire of golden threads. Rome rose on its back, minting coins whose clink echoed through history.
Through the ages, gold endured the rush of California’s dreamers, the halls of Versailles, and the quiet vaults of modern fortunes. It has been both a curse and a blessing, the fuel of wars and the gift of love, whispering of beauty’s fragility and the human desire for something that lasts beyond the grave. In its shine, we see ourselves fragile yet forever chasing light.
The Digital Dawn of Bitcoin
Centuries later, under the glow of computer screens, a visionary named Satoshi dreamed of a new gold born not from the earth but from the ether of ideas. Bitcoin appeared in 2009 amid a world weary of banks and broken trust.
Like gold’s ancient gleam, Bitcoin was mined not with picks but with puzzles solved by machines. It promised freedom, a currency without kings, flowing from person to person, unbound by borders or empires.
Translation moment: Bitcoin works like digital gold. Instead of digging the ground, miners use computers to solve problems and unlock new coins. No one controls it, and that is what makes it powerful.
Through doubt and frenzy, it rose as a beacon for those seeking sovereignty in a digital world. Its volatility became its soul, a reminder that true value is built on belief. Bitcoin speaks to ingenuity and rebellion, a star of code guiding us toward a future where wealth is weightless yet profoundly honest.
Gold’s Cycles: Echoes of War and Crisis
In the early 20th century, gold was held under fixed prices until the Great Depression of 1929 shattered these illusions. The 1934 dollar devaluation lifted it from 20.67 to 35, restoring faith amid despair. When World War II erupted in 1939, gold’s role as a refuge was muted by controls, yet it quietly held its place as the world’s silent guardian.
The 1970s awakened its wild spirit. The Nixon Shock of 1971 freed gold from 35, sparking a bull run during the 1973 Oil Crisis. The 1979 Iranian Revolution led to a 1980 peak of 850, a leap of more than 2,000 percent, as investors sought safety from the chaos.
Translation moment: When fear rises, people rush to gold. Every major war or economic crisis has sent gold upward because it feels safe when paper money loses trust.
The 1987 stock crash caused brief dips, but the 1990 Gulf War reignited its glow. Around 2000, after the Dot-com Bust, gold found new life, climbing from $ 270 to over $1,900 during the 2008 Financial Crisis. It dipped to 1050 in 2015, then surged again past 2000 during the 2020 pandemic.
The 2022 Ukraine War added another chapter with prices climbing above 2700 by 2025. Across a century of crises, gold has risen whenever fear tested humanity’s resolve, teaching patience and fortitude through its quiet endurance.
Bitcoin’s Cycles: Echoes of Innovation and Crisis
Born from the ashes of the 2008 Financial Crisis, Bitcoin began its story at mere cents. It traded below $1 until 2011, when it reached $30 before crashing by 90 percent following the MTGOX collapse.
In 2013, it soared to 1242 only to fall again to 200 in 2015 as regulations tightened. The 2017 bull run lifted it to nearly 20000 before another long winter brought it to 3200 in 2018. Each fall taught resilience, each rise renewed belief.
During the 2020 pandemic, it fell below 5000 before rallying to 69000 in 2021. The Ukraine War and the FTX collapse of 2022 brought it down to 16000, but also proved its role in humanitarian aid. By 2024, the halving and ETF approvals helped it break 100000, marking Bitcoin’s rise as digital gold.
Translation moment: Bitcoin’s rhythm follows four-year halving cycles when mining rewards are cut in half. This keeps supply limited, which often triggers new bull runs as demand returns.
Every four years, it's halving cycles 2012, 2016, 2020, 2024, fueling new waves of adoption and correction. Bitcoin grows strongest in times of uncertainty, echoing humanity’s drive to evolve beyond limits.
The Harmony of Gold and Bitcoin Modern Parallels
In today’s markets, gold’s ancient glow meets Bitcoin’s electric pulse. As of October 17, 2025, their correlation stands near 0.85, close to its historic high of 0.9. Both rise as guardians against inflation and the erosion of trust in the dollar.
Gold trades near 4310 per ounce a record high while Bitcoin hovers around 104700 showing brief fractures in their unity. Gold offers the comfort of touch while Bitcoin provides the thrill of code. Together, they reflect fear and hope, the twin emotions that drive every market.
Translation moment: A correlation of 0.85 means they often move in the same direction. When fear or inflation rises, both gold and Bitcoin tend to rise in tandem.
Analysts warn of bubbles in stocks, gold, and crypto, yet optimism remains for Bitcoin’s growth through 2026, while gold holds its defensive strength.
Gold carries risks of storage cost and theft, but steadiness in chaos. Bitcoin carries volatility and regulatory challenges, but it also offers unmatched innovation and reach. One is the anchor, the other the dream, and both reward those who hold conviction through uncertainty.
Epilogue: The Timeless Balance
Gold and Bitcoin form a bridge between the ancient and the future. Gold, the earth’s eternal treasure, stands as a symbol of stability and truth. Bitcoin, the digital heir, shines with the spark of innovation and freedom.
Experts view gold as the ultimate inflation hedge, forged in fire and tested over centuries. They see Bitcoin as its digital counterpart, scarce by code and limitless in reach.
Gold’s weight grounds us in reality while Bitcoin’s light expands our imagination. In 2025, as gold surpasses $4,346 and Bitcoin hovers near $105,000, the wise investor sees not rivals but reflections.
Translation moment: Gold reminds us to protect what we have. Bitcoin reminds us to dream of what could be. Together, they balance caution and courage, the two forces every generation must master.
One whispers of legacy, the other of evolution, yet together they tell humanity’s oldest story, our unending quest to preserve value against time and to chase the light that never fades.
🙏 I ask (Allah) for guidance and success. 🤲