NQ Daily Volatility BandsThis is the fixed version, the last script had some new bug, don't know what happened. But you're gonna pay for this one if you want it still, don't know why i gave it out for free. Or you can continue to use the previous version with the bug, you just have to refresh every time there is a new 1min candle.
add me on discord. Lebonbony - if you want this fixed version, for $$$, and also an explanation of how to use it.
Plots standard deviation levels off of market open, based upon the previous day's 1m average standard deviation (volatility). The levels can be used to help provide a structure to your trading, and can be especially used as reversal levels. Good for futures trading, I personally use for NQ.
Below is an image shown of it working. It updates each day at 9:31am NY session.
指標和策略
Sigma-X Algo (Oscillator) Final + DivSigma-X Algo - Divergence & Momentum**
**简介 / Short Description:**
The companion oscillator for the Sigma-X system. Features absolute momentum (TRIMA), structural trend filtering, and automatic divergence detection.
Sigma-X 系统的配套副图指标。包含绝对动能算法、趋势结构过滤以及自动背离检测功能。
**详细描述 / Description:**
---
### ** 中文说明**
这是 **Sigma-X Algo** 系统的专用副图震荡指标,用于辅助主图进行动能确认和背离识别。
#### **核心功能**
1. **动能柱 (Momentum Histogram):**
* 基于价格与 TRIMA 均线的偏离度绘制。
* **实心柱:** 动能增强。
* **空心/浅色柱:** 动能衰竭(这是进场的重要参考)。
2. **👀 自动背离检测 (Auto Divergence):**
* 自动识别价格与动能之间的 **底背离 (Bullish)** 和 **顶背离 (Bearish)**。
* **绿线:** 底背离,提示潜在上涨。
* **红线:** 顶背离,提示潜在下跌。
3. **🦅 鹰眼预警 (Warning Zones):**
* 当动能突破 **1.8σ** 警戒线时,背景会变色,提示即将进入变盘区。
#### **如何配合主图使用**
当主图出现 **S+ 信号** 时,观察副图:
* 如果副图同时出现 **绿线 (底背离)**,胜率极高。
* 如果副图动能柱颜色变浅 (衰竭),确认反转即将发生。
---
### ** English Description**
This is the companion oscillator for the **Sigma-X Algo** system, designed to confirm momentum and identify divergences.
#### **Key Features**
1. **Momentum Histogram:**
* Calculated based on the deviation between Price and TRIMA.
* **Solid Colors:** Momentum is increasing.
* **Pale Colors:** Momentum is exhausting (A key trigger for entry).
2. **👀 Auto Divergence Detection:**
* Automatically plots **Regular Bullish (Green Line)** and **Regular Bearish (Red Line)** divergences between Price and Oscillator.
3. **🦅 Warning Zones:**
* Background changes color when momentum breaches the **1.8σ** warning threshold, signaling potential volatility.
#### **How to Use with Main Chart**
When a **S+ Signal** appears on the Main Chart:
* Look for a **Green Line (Bullish Divergence)** on this oscillator for high-probability confirmation.
* Wait for the histogram bars to fade (exhaustion) before pulling the trigger.
Sigma-X Algo [Main] - SMC & Volume Heatmap
**简介 / Short Description:**
A professional institutional trading system combining Statistical Mean Reversion (Sigma), Smart Money Concepts (SMC), and Volume Analysis. Designed for XAUUSD and BTC M5 scalping.
一套结合了统计学均值回归、SMC机构订单流以及量能热力图的专业交易系统。专为黄金(XAUUSD)和比特币(BTC)的M5短线交易设计。
**详细描述 / Description:**
---
### ** 中文说明**
**Sigma-X Algo** 是一套为高波动市场(如黄金、比特币)量身定制的狙击型交易系统。它不预测行情,而是通过捕捉价格的**“统计学极值”**与**“机构订单痕迹”**,寻找高胜率的反转机会。
#### **核心功能 (Core Features)**
1. **📊 统计学均值回归 (Sigma Extremes):**
* 基于 **TRIMA** 算法计算价格偏离度。
* 当价格触及 **3.0σ** 极值时,图表会出现 **钻石信号**。
* **S+ (彩色钻石):** 顺势极值,胜率加成。
* **Risk (灰色钻石):** 逆势极值,提示风险。
2. **🏛️ 多周期 SMC 订单块 (MTF Order Blocks):**
* **4H OB (绿色/橙色):** 大级别“城墙”,也是核心反转区。
* **1H OB (蓝色/红色):** 短线“战术掩体”,用于日内观察。
* **逻辑:** 采用“穿透即删除”逻辑,只保留未被截取 (Unmitigated) 的有效结构。
3. **🔥 量能热力图 (Volume Heatmap):**
* 通过 K 线染色识别主力行为。
* **亮紫色/亮黄色 K 线:** 代表成交量超过平均值的 **2.0倍**。这是机构入场护盘或出货的关键信号。
4. **🌊 趋势过滤器 (Trend Filter):**
* 内置 **EMA 50/144** 斐波那契均线组,自动判定当前是顺势还是逆势。
#### **实战策略 (How to Trade)**
* **做多狙击 (Long Setup):**
1. 价格回踩 **4H 看涨 OB (绿色框)**。
2. 主图出现 **绿色 S+ 钻石** 信号。
3. **K 线变色 (亮紫)**,确认主力爆量承接。
* **做空狙击 (Short Setup):**
1. 价格反抽 **4H 看跌 OB (橙色框)**。
2. 主图出现 **红色 S+ 钻石** 信号。
3. **K 线变色 (亮黄)**,确认主力出货。
---
### ** English Description**
**Sigma-X Algo** is a sniper-style trading system tailored for high-volatility assets like Gold (XAUUSD) and Bitcoin (BTC). Instead of predicting, it identifies high-probability reversals by combining **Statistical Extremes** with **Institutional Footprints**.
#### **Key Features**
1. **📊 Statistical Mean Reversion (Sigma Extremes):**
* Calculates price deviation based on the **TRIMA** algorithm.
* **Diamond Signals** appear when price hits the **3.0σ** extreme.
* **S+ (Colored Diamond):** Trend-following signals (High Probability).
* **Risk (Gray Diamond):** Counter-trend signals (Caution required).
2. **🏛️ MTF Smart Money Concepts (SMC):**
* **4H Order Blocks (Green/Orange):** The "HTF Wall". Primary reversal zones.
* **1H Order Blocks (Blue/Red):** Intraday tactical zones.
* **Logic:** Uses "Delete on Break" logic to keep the chart clean, showing only unmitigated zones.
3. **🔥 Volume Heatmap:**
* Highlights institutional activity by coloring candles.
* **Bright Purple/Yellow Candles:** Indicate volume is **2.0x** greater than average. This confirms "Stopping Volume" or "Climax" behavior.
4. **🌊 Trend Filter:**
* Built-in **EMA 50/144** Fibonacci ribbon to filter noise and identify the dominant trend.
#### **Trading Strategy**
* **Long Setup:**
1. Price dips into a **4H Bullish OB (Green Box)**.
2. A **Green S+ Diamond** appears.
3. **Highlighter Candle (Purple)** appears, confirming institutional absorption.
* **Short Setup:**
1. Price rallies into a **4H Bearish OB (Orange Box)**.
2. A **Red S+ Diamond** appears.
3. **Highlighter Candle (Yellow)** appears, confirming institutional distribution.
---
**Disclaimer:**
Trading involves high risk. This indicator is a tool for analysis, not financial advice. Always use stop losses.
---
# 2. 副图指标说明书 (Sub Indicator)
**标题 / Title:**
**Sigma-X Algo - Divergence & Momentum**
**简介 / Short Description:**
The companion oscillator for the Sigma-X system. Features absolute momentum (TRIMA), structural trend filtering, and automatic divergence detection.
Sigma-X 系统的配套副图指标。包含绝对动能算法、趋势结构过滤以及自动背离检测功能。
**详细描述 / Description:**
---
### ** 中文说明**
这是 **Sigma-X Algo** 系统的专用副图震荡指标,用于辅助主图进行动能确认和背离识别。
#### **核心功能**
1. **动能柱 (Momentum Histogram):**
* 基于价格与 TRIMA 均线的偏离度绘制。
* **实心柱:** 动能增强。
* **空心/浅色柱:** 动能衰竭(这是进场的重要参考)。
2. **👀 自动背离检测 (Auto Divergence):**
* 自动识别价格与动能之间的 **底背离 (Bullish)** 和 **顶背离 (Bearish)**。
* **绿线:** 底背离,提示潜在上涨。
* **红线:** 顶背离,提示潜在下跌。
3. **🦅 鹰眼预警 (Warning Zones):**
* 当动能突破 **1.8σ** 警戒线时,背景会变色,提示即将进入变盘区。
#### **如何配合主图使用**
当主图出现 **S+ 信号** 时,观察副图:
* 如果副图同时出现 **绿线 (底背离)**,胜率极高。
* 如果副图动能柱颜色变浅 (衰竭),确认反转即将发生。
---
### ** English Description**
This is the companion oscillator for the **Sigma-X Algo** system, designed to confirm momentum and identify divergences.
#### **Key Features**
1. **Momentum Histogram:**
* Calculated based on the deviation between Price and TRIMA.
* **Solid Colors:** Momentum is increasing.
* **Pale Colors:** Momentum is exhausting (A key trigger for entry).
2. **👀 Auto Divergence Detection:**
* Automatically plots **Regular Bullish (Green Line)** and **Regular Bearish (Red Line)** divergences between Price and Oscillator.
3. **🦅 Warning Zones:**
* Background changes color when momentum breaches the **1.8σ** warning threshold, signaling potential volatility.
#### **How to Use with Main Chart**
When a **S+ Signal** appears on the Main Chart:
* Look for a **Green Line (Bullish Divergence)** on this oscillator for high-probability confirmation.
* Wait for the histogram bars to fade (exhaustion) before pulling the trigger.
---
Triple Screen System [FlexibleMAs MACD-RSI-ADX]#### Triple Screen System (TSS-FMR)
The TSS-FMR script is a specialized, multi-timeframe confirmation tool built for Swing, Positional Traders, and Longer Term Investors. It is engineered to filter out low-conviction noise by implementing an advanced interpretation of the Elder's Triple Screen strategy, relying on proprietary momentum, volatility, and volume analysis to isolate high-probability setups.
---
#### 🧠 Core Methodology & Logic
The TSS-FMR synthesizes three distinct layers of confirmation to generate signals:
1. Macro Trend & Volatility: Determines the primary trend and overall market condition using configurable EMA+RSI metrics , the script uses Average Directional Index (ADX) as an internal component to filter out non-trending, consolidating market conditions.
2. Momentum Synchronization: A proprietary filter requiring MACD,MAs and RSI to be synchronized * within a specified bar window (`MACD/RSI Sync Window`) ensures that entries align with current short-term momentum shifts.
3. Volume & Price Action: Final entry is triggered only when the higher timeframes align and the entry timeframe (Daily or 4H) confirms the move, optionally requiring * Candle Confirmation * and filtering out low-quality trades using the * Volume Filter *
The key is the separation of input thresholds and lengths for Weekly and Daily lookbacks, allowing for precise tuning unavailable in standard public libraries.
---
#### 🎯 Understanding Signal Strength & Conviction
Signals are categorized using a proprietary Strength scale (from Overbought/Oversold to 6) to help traders gauge the potential size and probability of the momentum move, This scale is dynamically influenced by the ADX volatility readings.
#### 🔍 Integrating External Visual Tools (Addressing Rule: Vendor/Chart)
The TSS-FMR generates signals based solely on its internal logic and inputs .*
We recommend overlaying the TSS-FMR signals with external tools (such as the Lux Algo SmartMoneyConcepts indicator or similar public S/R tools) for visual confirmation only :
* Signals (2, 3, 4) + CHOCH/BOS: * A signal with lower internal strength (2-4) gains stronger conviction if it aligns precisely with a CHOCH or BOS event visually identified by the external tool. This confirms that the market structure is validating the script's momentum reading.
Zone Confirmation: When signals land precisely within visually defined Liquidity or Accumulation/Distribution Zones (provided by external visual tools), it adds significant conviction to the TSS-FMR's output.
The *Overbought/Oversold regions* are decided based on the script's internal strength calculation and prevailing price action.
#### Summary:
--- This script is for Swing, Positional Traders and Longer Term Investors
--- It will only work with Monthly,Weekly, Daily and 4H chart to help you make confirmation based positions.
--- Sell Signals are Overbought Exits and Short sell signals, Plan according to Weekly Signals and Daily signals
--- Use the Momentum Table/matrix at the right top of the chart when TSS indicator is active.
--- Use Volume Filter enable to remove chaos of signals
--- Keep *Lux Algo -SmartMoneyConcepts* indicator active for visual of zones
--- Adjust Volume Filter in Settings to avoid crowding of signals
--- Adjust Input signal length to select number of history bars
--- Watch-out for Weekly 100ema Line and
--- Watch-out for Sell Signals, in discount region they are marked as Buy oversold or moderate, vise versa Sell Overbought signals are added to the charts.
--- To earn money, we need to look out for early signals, fake breakouts, breakdowns and what we want the table/matrix turning all green or red in Momentum trades.
---
#### House Rule Compliance Statement
This script description is provided strictly for technical clarity. It is free from all promotional content, external links, contact information, social media references, and solicitations, as per TradingView's General House Rule #2. The justification for its closed-source nature is based on its proprietary signal synchronization logic and flexible, multi-timeframe implementation.
Futures Risk Manager Pro (v6 stable)This indicator will allow you to calculate your risk management per position.
You must first enter your capital and your risk percentage. Then, when you specify your stop-loss size in ticks, the indicator will immediately tell you the number of contracts to use to stay within your risk percentage.
Futures Risk Manager Pro (v6 stable)This indicator will allow you to calculate your risk management per position.
You must first enter your capital and your risk percentage. Then, when you specify your stop-loss size in ticks, the indicator will immediately tell you the number of contracts to use to stay within your risk percentage.
Futures Risk Manager Pro (v6 stable)This indicator will allow you to calculate your risk management per position.
You must first enter your capital and your risk percentage. Then, when you specify your stop-loss size in ticks, the indicator will immediately tell you the number of contracts to use to stay within your risk percentage.
Futures Risk Manager Pro (v6 stable)This indicator will allow you to calculate your risk management per position.
You must first enter your capital and your risk percentage. Then, when you specify your stop-loss size in ticks, the indicator will immediately tell you the number of contracts to use to stay within your risk percentage.
GENESIS DHANUS A clean, non-repainting trend-following signal indicator.
Buy signals appear when:
• Fast EMA (9) crosses above Slow EMA (21)
• RSI > 50 (bullish momentum)
• Previous bar volume > 1.5× 20-period average
• Price is above the current Heikin-Ashi "trend level"
Sell signals use the exact opposite conditions.
All conditions use confirmed data only (no future leak, no repainting).
Perfect for swing trading and alert setups on any timeframe.
Features:
- Large clear arrows with text
- Optional light background coloring
- Precise alert conditions
- EMA lines can be toggled
100% Pine Script v5 – open source and free.
Santo Graal RápidoSanto Graal Lento — Indicator Description (English)
Santo Graal Lento is a trend-following indicator designed to identify high-probability market movements by combining price structure, volatility behavior, and dynamic support/resistance zones. Instead of reacting quickly to short-term noise, this tool focuses on slower, more reliable signals, helping traders stay aligned with the dominant trend while avoiding premature entries.
The indicator highlights optimal “Holy Grail–style” setups by detecting pullbacks within strong trends, offering visual cues for potential continuation points. It also adapts to market conditions by smoothing signals and reducing false alerts, making it suitable for swing traders and position traders looking for cleaner, more consistent market reads.
Use Santo Graal Lento to:
Identify trend direction with improved stability
Spot high-probability pullback entries
Filter out short-term noise
Support decision-making in trending markets
Whether you’re trading Forex, crypto, indices, or stocks, Santo Graal Lento helps you focus on quality setups and maintain discipline through clearer trend visualization.
Multi-factor momentum & flow confluence oscillator
MarketExploiter
Momentum–flow confluence oscillator.
Overview
This indicator combines momentum structure, money-flow behavior, trend context, and divergence detection into a single visual tool. It helps highlight when momentum is strengthening, weakening, or beginning to shift direction.
Components
• A smoothed momentum curve that visualizes acceleration and exhaustion.
• Money-flow bias reflecting underlying buying or selling pressure.
• Momentum-shift dots that appear only when several factors align, such as momentum inflection, curve behavior, and supportive flow.
• Bullish and bearish divergence detection between price and the momentum curve.
• A trend panel offering broader directional context.
How to Use
Signals are most effective when they appear in the direction of the trend panel and when money-flow conditions support the move. Divergence signals may highlight early strength or weakness relative to price action. The indicator is intended for context and confirmation rather than standalone entries. Works across all liquid markets and timeframes.
Notes
Non-repainting. Suitable for momentum assessment, trend reading, and identifying potential inflection zones.
Santo Graal LentoSanto Graal Lento — Indicator Description (English)
Santo Graal Lento is a trend-following indicator designed to identify high-probability market movements by combining price structure, volatility behavior, and dynamic support/resistance zones. Instead of reacting quickly to short-term noise, this tool focuses on slower, more reliable signals, helping traders stay aligned with the dominant trend while avoiding premature entries.
The indicator highlights optimal “Holy Grail–style” setups by detecting pullbacks within strong trends, offering visual cues for potential continuation points. It also adapts to market conditions by smoothing signals and reducing false alerts, making it suitable for swing traders and position traders looking for cleaner, more consistent market reads.
Use Santo Graal Lento to:
Identify trend direction with improved stability
Spot high-probability pullback entries
Filter out short-term noise
Support decision-making in trending markets
Whether you’re trading Forex, crypto, indices, or stocks, Santo Graal Lento helps you focus on quality setups and maintain discipline through clearer trend visualization.
HTF Candle overlayOverview
This Pine Script indicator overlays three separate Mini Charts onto the right side of your main chart area. These mini charts display price action from Higher Timeframes (HTF), allowing traders to monitor multi-timeframe market structure and trends without switching screens. Each mini chart is overlaid with up to 5 customizable EMA (Exponential Moving Average) Clouds.
Key Features
1. Three Independent Mini Charts
Users can select three distinct higher timeframes (e.g., 1 Hour, 4 Hours, 1 Day).
The script automatically checks to ensure the selected timeframe is higher than the current chart's timeframe.
Displays up to 10 historical candles per mini chart (limited to optimize Pine Script drawing resources).
2. Smart Data Handling (RTH vs. ETH)
Daily, Weekly, Monthly: For timeframes of 1 Day or higher, the script forces Regular Trading Hours (RTH) data. This ensures daily candles look standard and aren't distorted by pre/post-market low volume ticks.
Intraday (e.g., 1H, 4H): For timeframes below 1 Day, the script uses Extended Trading Hours (ETH) data, ensuring you see the full picture of pre-market and after-hours moves.
Ticker Cleaning: The script automatically sanitizes ticker IDs to prevent "Symbol Resolve Errors" when used on charts with complex session settings.
3. Comprehensive EMA Clouds
5 Customizable Clouds: Each mini chart can display up to 5 different EMA Clouds (pairs of Short and Long Moving Averages).
Full Color Control: Users can individually customize:
Line Colors: Distinct colors for Short and Long EMA lines.
Cloud Fill: Distinct colors and transparency for Bullish and Bearish trends.
Toggle Visibility: Each of the 5 clouds can be turned On or Off via settings.
Source Selection: Users can calculate EMAs based on Close, Open, High, Low, HL2, HLC3, or OHLC4.
4. Custom Visuals & Positioning
Candle Aesthetics: Users can define Bull/Bear candle colors, transparency, and Candle Width (thickness).
Positioning:
Horizontal Offset: Shift the entire dashboard left or right to avoid overlapping with current price action.
Spacing: Adjust the gap between the three mini charts.
Assistance Lines: Optional Support/Resistance lines (Fibonacci or Range High/Low) can be drawn extending from the mini charts.
How it Works (Technical Summary)
The script utilizes request.security to fetch OHLC data and Moving Average data from the specified higher timeframes. It stores this data in Matrices and Arrays to manage history. It then uses Pine Script's line.new and label.new functions to manually draw the candles and EMA lines onto the main chart canvas, relative to the current bar_index. It includes logic to handle dynamic array resizing and garbage collection to stay within Pine Script's execution limits.
Magic Color-Changing EMA (Stateful) + Buy/SellThis indicator is a state-based, adjustable EMA crossover engine designed to expose real momentum shifts at the earliest statistically valid moment. It uses a user-defined Fast EMA and Slow EMA (default 8 & 21) and tracks how their directional behavior changes over time. Instead of reacting to candle color or price position alone, it measures directional acceleration and structural regime change, allowing traders to clearly see when the market transitions from bearish momentum to bullish momentum and vice versa.
The core of the system operates as a three-state market engine. When bullish acceleration is confirmed, the EMA turns green. When bearish acceleration is confirmed, it turns red. When neither condition is clearly valid, the EMA enters a neutral (black) state. A built-in two-bar debounce filter prevents one-bar fakeouts and random noise from triggering false transitions, ensuring that color changes only occur when momentum is actually stabilizing in a new direction.
Buy and Sell signals are generated using a non-repainting state transition model. A Buy signal is only issued when the market transitions from a confirmed bearish state into a confirmed bullish state. A Sell signal is only issued when the market transitions from a confirmed bullish state into a confirmed bearish state. This prevents repetitive signals in the same direction and ensures that each tag marks a true regime change, not simple continuation noise.
Each Buy and Sell label is intentionally offset back one candle, placing it directly on the bar where the transition actually became structurally valid, not the reaction bar afterward. A matching vertical confirmation line is drawn through that candle to visually anchor the exact moment when momentum flipped. This makes trade review, execution timing, and historical analysis extremely precise.
Because the Fast EMA and Slow EMA lengths are fully user-adjustable, this indicator can function as a scalping engine, intraday trend detector, or higher-timeframe swing system simply by changing the EMA lengths. Shorter values increase responsiveness and frequency, while larger values increase trend filtering and reduce noise. This adaptability allows the same tool to be used across crypto, futures, forex, metals, and equities without redesigning the strategy.
This indicator does not attempt to predict price. It is a state confirmation and momentum transition detector. It performs best during volatility expansion, trending sessions, and institutional liquidity windows. Like all momentum systems, it should be used with caution during low-volatility ranges, overnight compression, and pre-news conditions.
Santo Graal Tendência🌟 Holy Grail Trend – Clarity in the Flow of the Market
Introducing Holy Grail Trend, a smart trend-following indicator designed for traders who want to ride strong moves while avoiding noise and false breakouts. By blending adaptive cycle analysis, smoothed momentum, and dynamic support/resistance logic, this tool highlights the true underlying trend—not just price noise.
Whether you're a swing trader, position trader, or intraday momentum seeker, Holy Grail Trend helps you stay aligned with the market’s dominant direction while filtering out choppy, sideways phases.
🔍 Key Features:
✅ Clean, color-coded trend visualization (bullish / bearish)
✅ Adaptive sensitivity based on current market cycle length
✅ Dynamic trend bands that adjust to volatility and price structure
✅ Minimal lag and no repainting — reliable in real-time
✅ Works across all assets and timeframes (forex, stocks, crypto, indices)
✅ Lightweight and chart-friendly
💡 How to Use:
Go long when the trend turns green and price is above the dynamic band
Go short when the trend turns red and price is below the band
Stay flat or reduce exposure during neutral (gray) or conflicting phases
The “Holy Grail” isn’t about chasing every move—it’s about trading with the tide, not against it. Combine this indicator with your risk management rules, and you’ll have a powerful ally in your trading journey.
Santo Graal SinaisHoly Grail Signals – The Balance Between Precision and Simplicity
Welcome to Holy Grail Signals, an indicator crafted for traders seeking clarity amid market volatility. Inspired by principles of cyclic analysis, adaptive relative strength, and intelligent noise filtering, this script merges robust logic with intuitive visualization to deliver highly reliable entry and exit signals.
🔍 Key Features:
✅ Clear visual signals (buy and sell) based on cycle inflection points and momentum
✅ Dynamic bands that adapt to volatility and recent price behavior
✅ Anti-noise filters that reduce false triggers in ranging markets
✅ Compatible with multiple assets and timeframes — from scalping to swing trading
✅ Lightweight and optimized to avoid overloading your chart
The “Holy Grail” isn’t a promise of easy profits—it’s the result of rigorous testing, sound market logic, and the understanding that the best strategy is the one you truly comprehend and can execute with discipline.
Std Dev Reversal LevelsPlots standard deviation bands around a central mean to identify statistically extreme price levels where reversals are likely.
How It Works
Price statistically tends to stay within predictable ranges around its mean. This indicator plots sigma (σ) levels showing where price becomes statistically extended.
Green lines: Levels above the mean (+1σ to +5σ)
Red lines: Levels below the mean (-1σ to -5σ)
White line: Center/mean (optional)
How To Use
Set timeframe to 1D or 4H
Use Statistical method with 20-30 lookback
Watch for price touching ±3σ levels
Look for reversal confirmation at these extremes
Target the center line for mean reversion plays
Santo Graal Força RelativaThe RSI Indicator (RSI) represents a qualitative leap in the evolution of classic oscillators. While the traditional RSI has already been established for decades as one of the most reliable tools...
Best Metal to Sell → More BTCWhichever precious metal has outperformed Bitcoin the most over the last 21 days (by >4%) is showing short-term strength → sell a small slice of that metal and rotate into BTC.
Orange = trim some gold → buy BTC
Grey = trim some silver → buy BTC
Black = no clear edge → hold
This is a gradual, disciplined rebalancing tool for anyone holding physical gold & silver who wants to slowly increase their BTC exposure on relative strength spikes — without ever going “all-in”.
You decide the pace: 1% per signal, pause anytime, or stop when you’ve reached your personal comfort level of BTC allocation.
2020–2025 backtest (weekly 1% rotations):
$200k metals → 18.4 BTC + $0 metals left = $1.68 million
HODL metals only = $320k
HODL BTC from day one = ~$1.4 million
It’s not about beating BTC every cycle — it’s about turning stagnant metals into more sats, at your own pace.
HoneG_BJVH 軽量化版v11VJBH v11 is a tool that displays volatility and range reference tables tailored for one-touch options trading, organized by currency and trading time.
Try applying it to any chart you like, whether it's a 1-minute chart or a 15-second chart.
Volatility levels are divided into four stages from 0 to 4, and you can set alerts for specific stages.
Internally, it monitors second-based charts, so even when used on a 1-minute chart, a Premium or higher grade is required.
ザオプションのワンタッチ取引向けに作ったボラや通貨毎・取引時間毎の幅の目安表を表示するツール VJBH v11 です。
1分足チャートでも、15秒足チャートでも、お好きなチャートに適用してお試しください。
ボラのレベルは0~4の4段階に分けてまして、段階を選んでアラートを出せます。
内部的には秒足を見ているので、1分足チャートで使う場合でも、Premium以上のグレードが必要になります。
HoneG_ヒゲヒゲ067ALT_v2
HigeHige is a tool that displays the wick ratio for one-touch trading on The Option.
Try applying it to your preferred chart, whether it's a 1-minute chart or a 15-second chart.
ザオプションのワンタッチ取引向けにヒゲ比率を表示するツール ヒゲヒゲ です。
1分足チャートでも、15秒足チャートでも、お好きなチャートに適用してお試しください。
RSI + BB + RSI Advanced MTF Panel//@version=6
indicator(title="RSI + BB + RSI Advanced MTF Panel", shorttitle="RSI + BB + RSI Advance MTF Panel", format=format.price, precision=2, overlay=false)
bb_group = "BB (Price Overlay)"
bb_length = input.int(50, minval=1, group = bb_group)
bb_maType = input.string("SMA", "Basis MA Type", options = , group = bb_group)
bb_src = input.source(close, title="Source", group = bb_group)
bb_mult = input.float(0.2, minval=0.001, maxval=50, title="StdDev", group = bb_group)
BasisColor = input.color(color.rgb(163, 41, 245), "Basis Color", group = bb_group, display = display.none)
UpperColor = input.color(color.rgb(120, 156, 202,100), "Upper Color", group = bb_group, display = display.none)
LowerColor = input.color(color.rgb(120, 156, 202,100), "Lower Color", group = bb_group, display = display.none)
offset = input.int(0, "Offset", minval = -500, maxval = 500, display = display.data_window, group = bb_group)
ma(source, bb_length, _type) =>
switch _type
"SMA" => ta.sma(source, bb_length)
"EMA" => ta.ema(source, bb_length)
"SMMA (RMA)" => ta.rma(source, bb_length)
"WMA" => ta.wma(source, bb_length)
"VWMA" => ta.vwma(source, bb_length)
basis = ma(bb_src, bb_length, bb_maType)
dev = bb_mult * ta.stdev(bb_src, bb_length)
upper = basis + dev
lower = basis - dev
plot(basis, "Basis", color=BasisColor, offset = offset, force_overlay = true)
p1 = plot(upper, "Upper", color=UpperColor, offset = offset, force_overlay = true)
p2 = plot(lower, "Lower", color=LowerColor, offset = offset, force_overlay = true)
fill(p1, p2, title = "Background", color=color.rgb(163, 41, 245, 90))
rsiLengthInput = input.int(30, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(false, title="Calculate Divergence", group="RSI Settings", display = display.data_window, tooltip = "Calculating divergences is needed in order for divergence alerts to fire.")
SignalDot = input.bool(false, title="Signal Dot", group="Smoothing", display = display.data_window, tooltip = "Signal for possible entry")
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiPlot = plot(rsi, "RSI", color= rsi >= 51 ? color.rgb(13, 197, 230) : color.red)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
midLinePlot = plot(50, color = na, editable = false, display = display.none)
fill(rsiPlot, midLinePlot, 100, 70, top_color = color.new(color.green, 0), bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 30, 0, top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 0), title = "Oversold Gradient Fill")
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maTypeInput = input.string("SMA", "Type", options = , group = GRP, display = display.data_window)
maLengthInput = input.int(14, "Length", group = GRP, display = display.data_window)
bbMultInput = input.float(2.0, "BB StdDev", minval = 0.001, maxval = 50, step = 0.5, tooltip = TT_BB, group = GRP, display = display.data_window)
var enableMA = maTypeInput != "None"
var isBB = maTypeInput == "SMA + Bollinger Bands"
smoothma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
smoothingMA = enableMA ? smoothma(rsi, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(rsi, maLengthInput) * bbMultInput : na
plot(smoothingMA, "RSI-based MA", color=color.yellow, display = enableMA ? display.all : display.none, editable = enableMA)
bbUpperBand = plot(smoothingMA + smoothingStDev, title = "Upper Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
bbLowerBand = plot(smoothingMA - smoothingStDev, title = "Lower Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display = isBB ? display.all : display.none, editable = isBB)
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_calcBarsSince(cond) =>
ta.barssince(cond)
rsiLBR = rsi
// 1. Calculate Pivots Unconditionally
plFound = not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
phFound = not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
// 2. Calculate History Unconditionally
barsSincePL = _calcBarsSince(plFound )
barsSincePH = _calcBarsSince(phFound )
// 3. Check Ranges Unconditionally
inRangePL = rangeLower <= barsSincePL and barsSincePL <= rangeUpper
inRangePH = rangeLower <= barsSincePH and barsSincePH <= rangeUpper
// 4. Calculate Conditions
var bool bullCond = false
var bool bearCond = false
if calculateDivergence
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and inRangePL
lowLBR = low
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and inRangePH
highLBR = high
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
else
bullCond := false
bearCond := false
plot(plFound ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bullish", linewidth = 2, color = (bullCond ? bullColor : noneColor), display = display.pane, editable = calculateDivergence)
plotshape(bullCond ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bullish Label", text = " Bull ", style = shape.labelup, location = location.absolute, color = bullColor, textcolor = textColor, display = display.pane, editable = calculateDivergence)
plot(phFound ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bearish", linewidth = 2, color = (bearCond ? bearColor : noneColor), display = display.pane, editable = calculateDivergence)
plotshape(bearCond ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bearish Label", text = " Bear ", style = shape.labeldown, location = location.absolute, color = bearColor, textcolor = textColor, display = display.pane, editable = calculateDivergence)
alertcondition(bullCond, title='Regular Bullish Divergence', message="Found a new Regular Bullish Divergence.")
alertcondition(bearCond, title='Regular Bearish Divergence', message='Found a new Regular Bearish Divergence.')
// --- Panel Options (General) ---
g_panel = 'MTF 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 Colors (Conditional Formatting) ---
g_rsi = 'MTF 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')
// --- Individual RSI Settings (MTF Sources) ---
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(30, '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(30, '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(30, '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(30, '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(30, '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(30, '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(30, '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(30, '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(30, '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(30, '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
// --- Panel Helper Functions ---
// Function 4: String Position to Constant (Indentation cleaned)
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
// Function 5: Timeframe to Human Readable (Indentation cleaned)
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 1: Increment Column (Indentation cleaned)
method incCol(TPanel _panel) =>
if _panel.vertical_orientation
_panel.col += 1
else
_panel.row += 1
// Method 2: Increment Row (Indentation cleaned)
method incRow(TPanel _panel) =>
if not _panel.vertical_orientation
_panel.col += 1
_panel.row := 0
else
_panel.row += 1
_panel.col := 0
// Method 3: Add Cell (Indentation cleaned)
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()
// Function 6: Background Color
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
// Function 7: Text Color
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')
// --- Panel Execution Logic ---
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)
// Using a tuple array for debugging colors demo
// Final Syntax Correction: Use array.new() and array.set() to avoid 'tuple()' function reference error
v_rows = 5 // We know we have 5 elements
demo = array.new(v_rows, '') // Initialize array with 5 string elements, will hold string representation of the tuple
// We will push the elements as a *string* representation of the tuple, as Pine v6 allows
// and then parse them inside the loop if necessary.
// To preserve the structure (string, float) without the tuple() function:
// We must define two separate arrays if the 'tuple' function is truly unavailable.
tf_array = array.new(v_rows)
rsi_array = array.new(v_rows)
// Populate the arrays
array.set(tf_array, 0, 'Overbought')
array.set(rsi_array, 0, float(i_threshold_ob))
array.set(tf_array, 1, 'Uptrend')
array.set(rsi_array, 1, float(i_threshold_uptrend))
array.set(tf_array, 2, 'No Trend')
array.set(rsi_array, 2, 50.0)
array.set(tf_array, 3, 'Downtrend')
array.set(rsi_array, 3, float(i_threshold_downtrend))
array.set(tf_array, 4, 'Oversold')
array.set(rsi_array, 4, float(i_threshold_os))
// Iterate over the arrays using a simple index
for i = 0 to v_rows - 1
tf = array.get(tf_array, i)
rsi = array.get(rsi_array, i)
v_panel2.add(tf, i_color_tf_bg, i_color_tf_text, f_formatRsi(rsi), f_bg(rsi), f_rsi_text_color(rsi))






















