Relative Strength vs Index - Joe v2This Indicator compares the relative strength of a ticker versus a reference index (QQQ/SPY), offering different calculation modes to capture performance or momentum differences.
Calculation Modes
Each mode analyzes the ticker’s performance against the index in a different way:
1. Moving Averages #1 (DEFAULT)
Compares the performance of the ticker relative to the index using the percentage distance from the moving average. This absolute deviation method may result in larger swings when price is far from the MA, offering a more sensitive view of divergence.
2. Moving Averages #2
Compares the performance of the ticker relative to the index using the ratio of price to moving average. This relative ratio method provides a smoother, proportional comparison and tends to produce stable values even when prices are far from the moving average.
3. % Based
Compares the percentage change in price since the session’s start time (adjustable) for both the ticker and the index.
Use case: Quick, simple snapshot of relative performance.
4. % Based - Bar-By-Bar
It compares the percentage change of the ticker from the previous bar to the percentage change of the index from the previous bar, and expresses the result as a relative strength percentage. It essentially answers: "Did the ticker move more (up or down) than the index in this bar?"
5. Rate of Change (ROC)
Compares the rate of change over a user-defined period. Optionally normalizes using ATR ratios to adjust for volatility.
Use case: Measures price momentum relative to the index.
6. RSI (Relative Strength Index)
Compares the RSI values of the ticker and index.
Effect: Highlights differences in momentum strength, expressed as a percentage difference.
-------------------------------------------------------------------
ATR Normalization (Very Important)
You can normalize the results of any mode using the Daily ATR of the ticker. This adjusts the output to account for the ticker's volatility, helping distinguish between meaningful moves and normal noise.
This is very important as every ticker have its own daily Average True Range (Typically movement in any given day)
-------------------------------------------------------------------
Trading Ideas
This indicator should not be used as the sole signal to enter trades; it works best when combined with your other trading signals.
As shown on the chart, at the open, the ticker was stronger than the index and initially moved upward. However, this strength eventually turned into weakness, and the ticker trended downward. Always keep a chart of the index open to monitor overall market behavior alongside your ticker.
It is well known that stocks generally follow the index. However, if a stock has news or specific reasons to move independently, knowing whether it is stronger or weaker than the index provides valuable insight.
Tip: If a stock is trading stronger than the index while the index is moving downward, once the index reverses and moves upward, the stock is likely to move with even greater strength, assuming it remains correlated with the index. Monitoring both the index and the stock together helps identify these opportunities.
-------------------------------------------------------------------
Important Companion Indicator: Correlation Tracker - Jv2 (Available From my Scripts)
The Correlation Tracker is a powerful tool designed to measure, visualize, and classify the correlation between a symbol and a reference index (QQQ/SPY). It provides an intuitive and customizable way to understand whether a ticker moves with, against, or independently from the market.
It classifies correlation strength into seven categories (from strong negative to strong positive) and highlights them using color-coded visuals, labels, meters, and optional background zones.
It is another part of the same puzzle and both should be used at the same time. One measuring relative strength, and the other correlation.
Oscillators
PurpleAlgo: Execution ModuleThis indicator is based on the Smart Money Concept. It analyzes price and volume data to identify the current trend direction.
MTF Stoch RSI + RSI Signalsthis script will provide Buy and sell signals considering RSI and price action
Smoothed Heiken Ashi - Thrust Body HighlightSmoothed Heiken Ashi – Thrust Body Highlight is a price–action visualization tool designed to make strong directional “thrust” candles stand out and filter out noisy, wick-heavy bars.
Instead of using raw OHLC data, this script first applies an EMA smoothing (user-defined length) to open, high, low, and close, then builds a smoothed Heiken Ashi candle from those values. It then measures the total range of each HA candle and compares the wick size to that range. When the lower wick is small and the candle closes above its open, the bar is highlighted as a bull thrust (green). When the upper wick is small and the candle closes below its open, the bar is highlighted as a bear thrust (red). All other candles are shown as neutral (gray), helping you visually focus only on strong, decisive moves.
Use this indicator to:
Quickly spot momentum thrusts in the current trend
Filter out choppy, indecisive price action
Refine entries/exits when combined with your existing strategy (structure, EMAs, volume, etc.)
Inputs
Smoothing Length: EMA length used to smooth price before building Heiken Ashi candles.
Max Lower Wick % for Bull Thrust: Maximum lower wick as a percentage of total range for a candle to qualify as a bullish thrust.
Max Upper Wick % for Bear Thrust: Maximum upper wick as a percentage of total range for a candle to qualify as a bearish thrust.
This tool is intended as an aid to visual analysis, not as a standalone buy/sell signal.
Accumulation/Distribution Oscillator# Short description
A clean, volume-weighted Accumulation/Distribution Oscillator (ADO) that highlights buying/selling pressure by comparing cumulative AD to its EMA — ideal for confirming trends, spotting divergences, and timing entries with volume context.
# Full description
**Overview**
The Accumulation/Distribution Oscillator (ADO) measures the relationship between price and volume by taking a cumulative Accumulation/Distribution value and subtracting its exponential moving average. The resulting oscillator emphasizes recent shifts in accumulation (buying) and distribution (selling), making it easier to spot momentum changes and volume-driven confirmations or divergences.
**How it works (brief)**
* Computes the standard accumulation/distribution contribution each bar using price position within the range and multiplies it by volume.
* Builds a cumulative AD series and smooths it with an EMA.
* The oscillator = cumulative AD − EMA(cumulative AD). Positive values indicate rising accumulation relative to the trend, negative values indicate rising distribution.
**Inputs**
* `length` — EMA smoothing period (default: 20). Adjust to tune sensitivity: lower values = faster signals, higher values = smoother trend.
**Interpretation & signals**
* **Above zero**: recent accumulation momentum — bullish bias.
* **Below zero**: recent distribution momentum — bearish bias.
* **Crosses of zero**: simple entry/exit trigger (cross above = potential long, cross below = potential short).
* **Divergences**: price making new highs while ADO fails to make new highs → bearish divergence (sell signal). Price making new lows while ADO fails to make new lows → bullish divergence (buy signal).
* **Slope and magnitude**: steep, growing positive readings suggest strong buying pressure; steep, growing negative readings suggest strong selling pressure.
**Suggested usage**
* Use ADO to confirm breakout strength: a price breakout with ADO rising above zero has higher probability.
* Combine with trend filters (e.g., moving averages) to trade in the direction of the main trend.
* Use divergence with price action or candles for higher-probability reversal setups.
* Best applied on intraday and swing timeframes where volume data is reliable. May be less effective on low-volume or synthetic data.
**Alert examples (copy into TradingView alert message)**
* `ADO Bullish: Oscillator crossed above 0`
* `ADO Bearish: Oscillator crossed below 0`
* `ADO Momentum Up: Oscillator turned positive and rising`
* `ADO Divergence: Price made new high but ADO did not — check for potential reversal`
**Practical tips**
* Shorten `length` (e.g., 8–12) for more responsive signals on lower timeframes; lengthen (e.g., 30–50) for smoother, long-term signals.
* Confirm signals with volume profile or volume spike filters to avoid false breakouts.
* Always validate with support/resistance and manage risk with stops sized to your strategy.
**Disclaimer**
This indicator is a technical tool intended to assist analysis — not a standalone trading system. Backtest and paper-trade any strategy before using real capital. The author and publisher are not responsible for trading outcomes.
ASI Momentum CloudASI Momentum Cloud (AMC) — a scaled Accumulative Swing Index (ASI) momentum indicator with an EMA cloud for visual trend context, signal smoothing, and configurable scaling for any instrument.
---
## Overview
The ASI Momentum Cloud visualizes ASI-based momentum while providing a three-EMA cloud that highlights trend bias and momentum strength. The indicator scales ASI values for better visibility across different instruments and adds an SMA signal line for entry/exit clarity. Designed for traders who want a momentum oscillator with trend context and simple alertable signals.
## Key features
* Scaled ASI value (`ASI Multiplier`) for improved chart readability.
* Configurable `Daily Limit` to adapt the ASI calculation to different asset volatilities.
* SMA signal line to smooth ASI and provide clear cross signals.
* Three-EMA cloud (Fast / Mid / Slow) to show bullish/bearish bias and momentum shifts.
* Lightweight, low-latency computation — suitable for multiple timeframes.
* Built-in cloud coloring: green tint when Fast EMA > Slow EMA, red tint otherwise.
## How it works (brief)
1. ASI is calculated each bar using price movement components (high/low/close relationships) and normalized by the `Daily Limit`.
2. `ASI Multiplier` scales the values for visual clarity.
3. A short SMA (`Period Length`) acts as the indicator’s signal/smoother.
4. Three EMAs (Fast / Mid / Slow) form a cloud — their relative positions determine the cloud color and trend bias.
## Inputs (as shown in settings)
* **Daily Limit** — numeric; adjusts ASI normalization (default: `10000`). Tune to instrument volatility.
* **ASI Multiplier** — numeric; scales the ASI for visibility (default: `100`).
* **Period Length** — SMA length for the signal line (default: `14`).
* **EMA Cloud Fast Length** — fast EMA (default: `7`).
* **EMA Cloud Mid Length** — middle EMA (default: `14`).
* **EMA Cloud Slow Length** — slow EMA (default: `28`).
## How to interpret signals
* **Bullish bias:** EMA Fast > EMA Slow → cloud green (favour long bias).
* **Bearish bias:** EMA Fast < EMA Slow → cloud red (favour short bias).
* **Momentum entry:** ASI line crossing **above** the Signal SMA — momentum turning positive.
* **Momentum exit / short entry:** ASI line crossing **below** the Signal SMA — momentum turning negative.
* **Confirmation:** Prefer entries that align with cloud bias (e.g., take long crossovers when cloud is green).
* **Divergence:** Watch for price making new highs/lows while ASI fails to confirm — possible momentum exhaustion.
## Suggested alert messages (copy/paste)
* `ASI Momentum Cloud — ASI crossed above Signal (potential buy)`
* `ASI Momentum Cloud — ASI crossed below Signal (potential sell)`
* `ASI Momentum Cloud — Cloud turned bullish (EMA Fast > EMA Slow)`
* `ASI Momentum Cloud — Cloud turned bearish (EMA Fast < EMA Slow)`
Use these messages in TradingView alert conditions tied to the corresponding cross or condition.
## Recommended usage & timeframes
* Works on any timeframe; commonly useful on 1H, 4H, Daily for trend-following, and lower timeframes for intra-day momentum signals.
* Adjust **Daily Limit** and **ASI Multiplier** for low-volatility instruments (smaller limit, higher multiplier) or high-volatility instruments (larger limit, lower multiplier).
* Combine with price action, support/resistance, or higher-timeframe trend for better signal quality.
## Notes & credits
* Version: 1.0 — initial release.
* If you adapt or redistribute, please credit the original script.
* Built for clarity and practical trading signals — tweak the input values to match your instrument and trading style.
## Risk disclaimer
This indicator is a technical tool and not investment advice. Backtest and paper-trade any strategy before using real capital. Use proper risk management.
The Alchemist's Trend [wjdtks255]📊 The Alchemist's Trend - Filtered Trading Guide
This indicator, named The Alchemist's Trend, is a High-Confidence Trend-Following Strategy designed to maximize reliability. It generates a final entry signal only when the QQE (Quantitative Qualitative Estimation) momentum signal is validated by four robust filters: Long-Term Trend (MA200), Mid-Term Trend (HMA), Momentum Strength (CCI), and Higher Timeframe (HTF) Trend.
1. Indicator Mechanism and Core Components
A. Chart Visualization and Trend Identification
Trend Line (HMA): Appears as a Yellow or Purple Thick Line. It represents the direction of the current short/mid-term market trend. Candle colors follow this line.
MA 200: Appears as a Dotted Line (color configurable in settings). It is the Long-Term Trend Line. Price above it suggests a long-term bullish view; below it, a long-term bearish view.
Candle Background: Appears as Light Yellow or Purple. It matches the Trend Line direction, providing a visual cue of the trend's strength.
B. The Four-Filter System
For a confirmed entry signal ('L' or 'S') to fire, the following four conditions must all align in the same direction:
QQE (Momentum Base): Generates the primary Long/Short crossover signal.
MA & HMA (Trend Alignment):
For Long Entries: Price must be above both the MA200 and the HMA Trend Line.
For Short Entries: Price must be below both the MA200 and the HMA Trend Line.
CCI (Momentum Strengthening):
For Long Entries: CCI value must be above +50. (Confirms strong buying momentum)
For Short Entries: CCI value must be below -50. (Confirms strong selling momentum)
HTF (Higher Timeframe Trend): Checks if the price on the set higher timeframe (default 4H) is above its own Trend Line, confirming alignment with the broader market direction.
2. Trading Strategy and Usage Rules
This indicator aims to maximize signal reliability over frequency.
🔔 Entry Rule
Enter a trade only when the 'L' or 'S' label appears on the chart AND the Action panel on the dashboard displays LONG SIGNAL or SHORT SIGNAL.
Long Entry (L):
Condition: 'L' label appears (All Long conditions met).
Verification: Confirm the Trend Line and candle color are in the yellow range.
Short Entry (S):
Condition: 'S' label appears (All Short conditions met).
Verification: Confirm the Trend Line and candle color are in the purple range.
🛡️ Risk and Position Management
Stop-Loss (SL): A common practice is to place the Stop-Loss below the low of the signal candle (for Long) or above the high of the signal candle (for Short), or beyond a recent significant support/resistance level.
Exit Strategy (Three Options):
Opposite Signal: Close the position immediately if the opposite signal ('S' during a Long, or 'L' during a Short) occurs.
RSI Extremes: Consider taking partial profits if the RSI reaches 70 (for Long) or 30 (for Short), indicating potential exhaustion.
Trend Line Crossover: Exit the position if the price breaks or crosses the Trend Line, causing the candle color to change.
🖥️ Dashboard Utilization Tips
The dashboard provides contextual information to validate the signal:
RSI: Signals occurring within the neutral 30-70 zone suggest a stronger developing trend. If near 70/30, consider the risk of reversal.
Vol Status ('High'): If the volume status is 'High' when the signal fires, the signal's power is likely high, indicating a higher probability of significant movement.
Day High/Low: Use these values as a secondary reference for setting initial Stop-Loss or Take-Profit targets.
Real Relative Strength Indicator### What is RRS (Real Relative Strength)?
RRS is a volatility-normalized relative strength indicator that shows you – in real time – whether your stock, crypto, or any asset is genuinely beating or lagging the broader market after adjusting for risk and volatility. Unlike the classic “price ÷ SPY” line that gets completely fooled by volatility regimes, RRS answers the only question that actually matters to professional traders:
“Is this ticker moving better (or worse) than the market on a risk-adjusted basis right now?”
It does this by measuring the excess momentum of your ticker versus a benchmark (SPY, QQQ, BTC, etc.) and then dividing that excess by the average volatility (ATR) of both instruments. The result is a clean, centered-around-zero oscillator that works the same way in calm markets, crash markets, or parabolic bull runs.
### How to Use the RRS Indicator (Aqua/Purple Area Version) in Practice
The indicator is deliberately simple to read once you know the rules:
Positive area (aqua) means genuine outperformance.
Negative area (purple) means genuine underperformance.
The farther from zero, the stronger the leadership or weakness.
#### Core Signals and How to Trade Them
- RRS crossing above zero → one of the highest-probability long signals in existence. The asset has just started outperforming the market on a risk-adjusted basis. Enter or add aggressively if price structure agrees.
- RRS crossing below zero → leadership is ending. Tighten stops, take partial or full profits, or flip short if you trade both sides.
- RRS above +2 (bright aqua area) → clear leadership. This is where the real money is made in bull markets. Trail stops, add on pullbacks, let winners run.
- RRS below –2 (bright purple area) → clear distribution or capitulation. Avoid new longs, consider short entries or protective puts.
- Extreme readings above +4 or below –4 (background tint appears) → rare, very high-conviction moves. Treat these like once-a-month opportunities.
- Divergence (not plotted here, but easy to spot visually): price making new highs while the aqua area is shrinking → distribution. Price making new lows while the purple area is shrinking → hidden buying and coming reversal.
#### Best Settings by Style and Asset Class
For stocks and ETFs: keep benchmark as SPY (or QQQ for tech-heavy names) and length 14–20 on daily/4H charts.
For crypto: change the benchmark to BTCUSD (or ETHUSD) immediately — otherwise the reading is meaningless. Length 10–14 works best on 1H–4H crypto charts because volatility is higher.
For day trading: drop length to 10–12 and use 15-minute or 5-minute charts. Signals are faster and still extremely clean.
#### Highest-Edge Setups (What Actually Prints Money)
- RRS crosses above zero while price is still below a major moving average (50 EMA, 200 SMA, etc.) → early leadership, often catches the exact bottom of a new leg up.
- RRS already deep aqua (+3 or higher) and price pulls back to support without RRS dropping below +1 → textbook add-on or re-entry zone.
- RRS deep purple and suddenly turns flat or starts curling up while price is still falling → hidden accumulation, usually the exact low tick.
That’s it. Master these few rules and the RRS becomes one of the most powerful edge tools you will ever use for rotation trading...
Trend Flow & Volatility Guard Strategy [ROSTOK V5]Description:
This strategy is a comprehensive trend-following system designed to identify high-probability entries by aligning long-term market direction with short-term momentum, while strictly filtering out low-quality "choppy" market conditions.
How it Works:
The strategy operates on a multi-stage logic system:
Trend Identification: The core direction is determined by a customizable Main Trend Line (selectable between a long-period EMA or Supertrend). Trades are only taken in the direction of the dominant trend.
Signal Generation: Entries are triggered when a fast-moving Signal Line crosses the Main Trend Line, confirmed by specific candlestick price action (Close > Open).
Advanced Filtering (Confluence): To avoid false signals, the strategy employs a robust set of filters. A trade is only valid if:
Momentum: RSI is within safe operating zones (avoiding extreme overbought/oversold unless a strong trend override is active).
Cycle: CCI and MACD histograms align with the trade direction.
Volatility: The ADX is analyzed to ensure sufficient trend strength, while a Choppiness Index filter blocks trades during sideways/ranging markets.
Risk Management & Recovery: The strategy features built-in money management tools, including:
ADR (Average Daily Range) Filter: Prevents entering trades when the asset has already moved its expected daily distance.
Daily Limits: Hard stops for Max Daily Loss and Target Daily Profit to preserve capital.
Recovery Logic: An optional mechanism to manage drawdowns on difficult days using calculated recovery targets.
Settings & Customization: Users can toggle individual filters (Volume, Choppiness, ADX) and adjust the sensitivity of the trend lines to fit different assets and timeframes (e.g., EURAUD 15m).
Disclaimer: Past performance is not indicative of future results. This script is for educational purposes and backtesting analysis.
REMS - Deep SynergyThis is a more flexible version of the REMS Synergy indicator. Like other indicators in the REMS family, it builds upon the foundations assessing the relationships between RSI, EMAs, MACDs, and Stochastic RSI across multiple timeframes. Designed to help traders identify less frequent, but high probability entries across 2 time frames. Uses 3 levels of confluence indicators for both long and short moves.
Features 3 levels of confluence across 2 timeframes. All 3 levels allow filtering of any combination of REMS filters. Features more options and customization than previous REMS Synergy.
Includes VWAP and 4 EMAs as optional visual representations.
Includes 'Enhanced Candles' than can colour code candlesticks for better visual identification. (off by default)
Originally designed with 5 minute and 2 minute timeframes in mind, and pairs well with REMS First Strike and/or REMS Snap Shot indicators.
This version features no hard-coded inputs and allows for more freedom than previous version. With the added flexibility comes the ability for the indicator to be more easily stacked.
DOGE Stochastic RSI Pro System📌 Strategy Overview
The DOGE Stochastic RSI Pro System is a high-precision algorithm designed specifically for DOGEUSDT on the 1-hour timeframe.
It combines the power of Stochastic RSI momentum, EMA trend direction, and VWAP price positioning to generate high-probability long and short entries.
This system was optimized through multi-year backtesting and short-term adaptive tuning, showing strong performance during trending and volatility-rich periods.
📌 Technical Logic
✔ 1. Stochastic RSI Core
Entry when %K crosses %D
Detects momentum reversals early
Works effectively on DOGE volatility cycles
✔ 2. EMA Trend Filter
EMA50 above EMA150 → long-bias signals allowed
EMA50 below EMA150 → short-bias signals allowed
Prevents trading against the dominant trend
Improves signal accuracy
✔ 3. VWAP Institutional Filter
Price above VWAP → only long entries
Price below VWAP → only short entries
Avoids low-quality trades in mean-reversion zones
📌 Money Management
✔ Starting Amount: 5 USDT
✔ Take Profit: 3%
✔ Stop Loss: 3%
✔ Both Long & Short
✔ No Martingale — Clean, stable system
The strategy opens one position at a time to avoid overexposure.
📌 Recommended Settings
Pair: DOGEUSDT
Timeframe: 1H
Leverage (Bybit): 5–10× (optional, system does not enforce leverage)
Broker Execution: Bybit derivatives or spot with position sizing
📌 Backtesting Results (User Verified)
1 Year Backtest: ~57–58% win rate
2 Year Backtest: ~56% win rate
Last 3 Months: ~61% win rate
Last 30 Days: ~64% win rate
Profit Factor Range: 1.32 – 1.70
This system performs best in moderate trending + volatility expansion cycles.
📌 Notes for Users
Strategy does not repaint.
Behavior may vary depending on exchange price feeds.
Use proper risk management and test before going live.
Performance may change over time as markets shift.
📌 Access
This is an Invite-Only script.
Access is granted only to approved users.
If you'd like access, send a private request.
📌 Disclaimer
This script is for educational and research purposes only.
Not financial advice. Trading involves risk.
Past performance does not guarantee future results.
Aroon + Chaiki OscillatorThis is an Chaiki Oscillator that facilitates more straightforward trendline analysis utilizing the Aroon setup for bars.
This is a simple Pinescript designed for incorporation into your charting analysis.
As always, none of this is investment or financial advice. Please do your own due diligence and research.
Pythia — 33 LITEPythia — v33 (Lite Edition)
Core Structural Divergences and Movement Context
Overview
Pythia Lite is the entry point into the Pythia ecosystem.
It shows how the structure of movement evolves: where divergences form, where impulse weakens, and where instability appears due to mismatches between price and internal energy.
The computational engine is inherited from the Standard and Full editions, but most parameters are fixed or simplified, making Lite clean, minimalistic, and easy to use.
Configuration
You control only the essential parameters:
• MACD settings
• pivot sensitivity
• basic divergence and trap visualization
All Flow, TTC, and energy thresholds are fixed internally and optimized for common instruments (Forex, gold, indices, crypto).
What Pythia Lite Displays
• micro- and macro-divergences
• TTC grids showing zones where movement often loses impulse
• minimal Flow context (built-in, no sensitivity adjustments)
• compact EnergyTrap / PriceTrap markers
• OR-impulse spikes
Lite provides a clean structural skeleton: where the market diverges from its own energy, where impulse becomes unstable, and where movement behaves atypically.
Key Modules
1. Divergences (micro / macro)
Identify small and large structural discrepancies between price and MACD.
Settings are reduced to essentials: MACD lengths, pivot sensitivity, and minimal tolerance controls.
2. TTC Grids
A base model that highlights zones where impulse commonly collapses.
All parameters are fixed internally to keep Lite simple and clutter-free.
3. Movement Traps (minimal mode)
EnergyTrap and PriceTrap are displayed as compact dots without extended labels.
Colors and transparency are simplified to avoid over-visualization.
4. OR-Impulses
Mark rare bursts of momentum caused by abrupt structural anomalies.
5. Flow Context
Flow is included internally in a simplified form — no sensitivity controls or separate visual states.
It acts as an automatic background component of the TTC/divergence context.
Release Notes
Pythia v33 (Lite Edition) is designed for traders who need a lightweight structural tool without alerts or advanced modules.
Extended energy logic, alerts, news-impulse detection, and channel geometry are part of the Standard and Full editions.
Lite highlights where movement begins to break — without clutter and without unnecessary complexity.
Interpretation of Chart Markers (1–15)
(with version availability: Full / Standard / Lite)
________________________________________
1 — Pre-Flow Divergence
What it is:
A divergence displayed in a pale version of the trend color, showing early price-energy discrepancy while price moves in a strong impulse.
Why it matters:
Signals that a regular divergence may be ignored because the market still has enough momentum to continue without correction.
How to use:
Not a reversal entry.
Wait for impulse weakening or confirmation from traps, micro-divergences, TTC, or the Catcher zone.
Versions:
(Full, Standard — limited, Lite — not included)
________________________________________
2 — Regular Bearish Divergence
What it is:
A classic discrepancy between price and momentum.
Why it matters:
Shows weakening of the current swing and increases the probability of correction or reversal.
How to use:
Useful for exits or timing counter-trend entries.
Best when combined with traps, TTC, or the Catcher zone.
Versions:
(Full, Standard, Lite)
________________________________________
3 — Divergence Energy Indicator
What it is:
A marker showing how strong the divergence energy load is.
Why it matters:
Helps separate weak divergences from structurally significant ones.
How to use:
High-energy divergences carry greater reversal potential.
Versions:
(Full, Standard — no, Lite — no)
________________________________________
4 — Trap Cloud: Mass Without Impulse
What it is:
A cloud indicating significant trade mass with minimal price progress.
Why it matters:
Shows hidden exhaustion or buildup before a directional change.
How to use:
When combined with divergences or the Catcher zone, attention increases.
Lite uses micro-markers instead of clouds.
Versions:
(Full, Standard, Lite — limited)
________________________________________
5 — Trap Cloud: Impulse Without Mass
What it is:
Shows small clusters of relatively large trades producing impulse without depth.
Why it matters:
Often indicates unstable or misleading moves.
How to use:
Strengthens reversal probability when combined with divergences.
Versions:
(Full, Standard, Lite — limited)
________________________________________
6 — Post-Impulse Oscillation Window
What it is:
The time window after an impulse-shift marker (7).
Why it matters:
Shows whether the new impulse strengthened or faded.
How to use:
Supports reading the stability of short-term structural breaks.
Versions:
(Full, Standard — no, Lite — no)
________________________________________
7 — Instant Impulse-Shift Marker
What it is:
A marker showing a sudden change in structural impulse.
Why it matters:
These points often precede short-term acceleration or instability.
How to use:
Especially meaningful when appearing near traps or divergences.
Versions:
(Full, Standard — no, Lite — no)
________________________________________
8 — Growing Price–Energy Discrepancy
What it is:
Marks increasing separation between price progress and energy behavior.
Why it matters:
Often precedes divergence formation or weakening of movement.
How to use:
Use as an early attention signal, especially when clusters appear.
Versions:
(Full, Standard — no, Lite — no)
________________________________________
9 — Collapsed Micro-Divergences
What it is:
Micro-divergences that formed but collapsed.
Why it matters:
Clusters of such points often reflect hidden weakness.
How to use:
Multiple collapsed micro-divs frequently precede structural slowing.
Versions:
(Full, Standard, Lite)
________________________________________
10 — Low-Energy Uncertainty Cloud
What it is:
A weak instability cloud similar to marker 7 but less pronounced.
Why it matters:
Marks zones where the market struggles with direction.
How to use:
Strengthens reversal context when inside a Catcher zone.
Versions:
(Full, Standard — no, Lite — no)
________________________________________
11 — Catcher Zone Marker
What it is:
Marks the moment a Catcher zone was created.
Why it matters:
Even if the zone collapses, the marker remains as evidence of structural preparation.
How to use:
If traps or divergences appear afterward, reversal probability increases.
Versions:
(Full, Standard, Lite)
________________________________________
12 — Catcher Zone (Forecast Window for Divergence)
What it is:
A dynamic zone predicting where a divergence is most likely to appear.
Why it matters:
Helps anticipate reversal signals earlier and with better timing.
How to use:
Divergences born inside the zone are significantly stronger.
Standard and Lite preserve full functionality with simplified visuals.
Versions:
(Full, Standard — limited visuals, Lite — limited visuals)
________________________________________
13 — Divergence Probation Start
What it is:
Beginning of the window where divergence must prove itself.
Why it matters:
If no structural reaction appears, the signal weakens.
How to use:
Watch traps, micro-divs, and impulse slowdown during this interval.
Versions:
(Full, Standard — limited, Lite — not included)
________________________________________
14 — Divergence Probation End
What it is:
The final point where divergence should manifest.
Why it matters:
If no reaction occurs, the market transitions into Flow and the divergence becomes irrelevant.
How to use:
If price does not react by this point — ignore the divergence.
Versions:
(Full, Standard — limited, Lite — not included)
________________________________________
15 — Catcher HUD (Forecast Accuracy Panel)
What it is:
A panel showing how many divergences the Catcher predicted and how many were confirmed by the market.
Why it matters:
Helps tune the indicator without guesswork.
How to use:
Adjust parameters and observe how HUD accuracy changes instantly.
Optimizes Pythia for each instrument and timeframe.
Versions:
(Full, Standard, Lite)
________________________________________
Note from the Developers
Pythia marks the exact areas where the market can mislead you.
So here is a simple and practical rule:
Do not step into the places where the markers stand.)
Volume Pressure OscillatorThe Volume Pressure Oscillator (VPO) is a momentum-based indicator that measures the directional pressure of cumulative volume delta (CVD) combined with price efficiency. It oscillates between 0 and 100, with readings above 50 indicating net buying pressure and readings below 50 indicating net selling pressure.
The indicator is designed to identify the strength and sustainability of volume-driven trends while remaining responsive during consolidation periods.
How the Indicator Works
The VPO analyzes volume flow by examining price action at lower timeframes to build a Cumulative Volume Delta (CVD). For each chart bar, the indicator looks at intrabar price movements to classify volume as either buying volume or selling volume. These classifications are accumulated into a running total that tracks net directional volume.
The indicator then measures the momentum of this CVD over both short-term and longer-term periods, providing responsiveness to recent changes while maintaining awareness of the broader trend. These momentum readings are normalized using percentile ranking, which creates a stable 0-100 scale that works consistently across different instruments and market conditions.
A key feature is the extreme zone persistence mechanism. When the indicator enters extreme zones (above 80 or below 20), it maintains elevated readings as long as volume pressure continues in the same direction. This allows the VPO to stay in extreme zones during strong trends rather than quickly reverting to neutral, making it useful for identifying sustained volume pressure rather than just temporary spikes.
What Makes This Indicator Different
While many indicators measure volume or volume delta, the VPO specifically measures how aggressively CVD is currently changing and whether that pressure is being sustained. It's the difference between knowing "more volume has accumulated on the buy side" versus "buying pressure is intensifying right now and shows signs of continuation."
1. Focus on CVD Momentum, Not CVD Levels
Most CVD indicators display the cumulative volume delta as a line that trends up or down indefinitely. The VPO is fundamentally different - it measures the slope of CVD rather than the absolute level. This transforms CVD from an unbounded cumulative metric into a bounded 0-100 oscillator that shows the intensity and direction of current volume pressure, not just the historical accumulation.
2. Designed to Stay in Extremes During Trends
Unlike traditional oscillators that treat extreme readings (above 80 or below 20) as overbought/oversold reversal signals, the VPO is engineered to oscillate within extreme zones during strong trends. When sustained buying or selling pressure exists, the indicator remains elevated (e.g., 80-95 or 5-20) rather than quickly reverting to neutral. This makes it useful for trend continuation identification rather than exclusively for reversal trading.
3. Percentile-Based Normalization
The VPO uses percentile ranking over a lookback window, which provides consistent behavior across different instruments, timeframes, and volatility regimes without constant recalibration.
4. Dual-Timeframe Momentum Synthesis
The indicator simultaneously considers short-term CVD momentum (responsive to recent changes) and longer-term CVD momentum (tracking trend direction), weighted and combined with a slow-moving trend bias. This multi-timeframe approach helps it stay responsive in ranging markets while maintaining context during trends.
How to Use the Indicator
Understanding the Zones:
80-100 (Strong Buying Pressure): CVD momentum is strongly positive. In trending markets, the indicator oscillates within this zone rather than immediately reverting to neutral. This suggests sustained accumulation and trend continuation probability.
60-80 (Moderate Buying): Positive volume pressure but not extreme. Suitable for identifying pullback entry opportunities within uptrends.
40-60 (Neutral Zone): Volume pressure is balanced or unclear. No strong directional edge from volume. Often seen during consolidation or trend transitions.
20-40 (Moderate Selling): Negative volume pressure developing. May indicate distribution or downtrend continuation setups.
0-20 (Strong Selling Pressure): CVD momentum is strongly negative. During downtrends, sustained readings in this zone suggest continued distribution and downside follow-through probability.
Practical Applications:
Trend Confirmation: When price makes new highs/lows, check if VPO confirms with similarly elevated readings. Divergences (price making new highs while VPO fails to reach prior highs) may indicate weakening momentum.
Range Trading: During consolidation, the VPO typically oscillates between 30-70. Readings toward the low end of the range (30-40) may present accumulation opportunities, while readings at the high end (60-70) may indicate distribution zones.
Extreme Persistence: If VPO reaches 90+ or drops below 10, this indicates exceptional volume pressure. Rather than fading these extremes immediately, monitor whether the indicator stays elevated. Sustained extreme readings suggest strong trend continuation potential.
Context with Price Action: The VPO is most effective when combined with price action or other orderflow indicators. Use the indicator to gauge whether volume is confirming or contradicting.
What the Indicator Does NOT Do:
It does not provide specific entry or exit signals
It does not predict future price direction
It does not guarantee profitable trades
It should not be used as a standalone trading system
Settings Explanation
Momentum Period (Default: 14)
This parameter controls the lookback period for CVD rate-of-change calculations.
Lower values (5-10): Make the indicator more responsive to recent volume changes. Useful for shorter-term trading and more active oscillation. May produce more whipsaws in choppy markets.
Default value (14): Provides balanced responsiveness while filtering out most noise. Suitable for swing trading and daily timeframe analysis.
Higher values (20-50): Create smoother readings and focus on longer-term volume trends. Better for position trading and reducing false signals, but with slower reaction to genuine changes in volume pressure.
Important Notes:
This indicator requires intrabar data to function properly. On some instruments or timeframes where lower timeframe data is not available, the indicator may not display.
The indicator uses request.security_lower_tf() which has a limit of intrabars. On higher timeframes, this provides extensive history, but on very low timeframes (<1-minute charts), the indicator may only cover limited historical bars.
Volume data quality varies by exchange and instrument. The indicator's effectiveness depends on accurate volume reporting from the data feed.
PyTai Top/Bottom Finder v0.1When the average StochRSI line rises high (near or above 80), it often signals the asset's price is approaching the peak or end of an uptrend, as momentum becomes overextended across multiple timeframes—aligning with your view on run endings. Conversely, a low average (near or below 20) suggests exhaustion in a downtrend, hinting at potential bottoms. The cluster columns amplify this: wide green bars (high positive netScore) show broad oversold agreement for bullish reversals, while red bars indicate overbought consensus for bearish turns. However, StochRSI can remain extreme in strong trends, so combine with price action or volume to avoid false signals; backtest on your assets to refine thresholds, as shorter smoothing (e.g., 1-3) increases sensitivity but noise.
Directional Movement Index - HistogramModified standard DMI to have histogram instead of standard lines
RSI-ma Wave Sensor (Free ver.)RSI-ma Wave Sensor is a 3-line RSI-based oscillator (Main / Middle / Wave) that shows trend direction, momentum and higher timeframe context in a single pane.
Compared with many classic MA/RSI tools it aims to:
• react with very low lag (almost real-time feeling)
• detect trend direction early
• avoid “overbought/oversold sticking” so you can hold calmly until the trend really starts to end
This Free version is a DAY trade preset for the 15m chart:
• Main = 14, Middle = EMA 9, Wave = EMA 28
• 1h higher timeframe wave sensor included
• good for learning / testing how to read trends with RSI waves
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.
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.
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))
Logic Flow Signals & Backtest [bercutiatia]To understand the advanced logic of the tool, it is essential that you carefully read each topic and check the visual examples in this presentation.
--
Who is the Logic Flow Signals & Backtest tool recommended for?
Ideal for traders looking to increase the reliability and level of their operations. Recommended for those who want to create rigorous confluences, validate strategies with backtesting, and transform emotional management into systematic and measurable processes.
How can the Logic Flow Signals & Backtest tool help me?
High-confidence signals! You combine TradingView indicators and create a single robust signal, eliminating the frustration of having to spend hours in front of the chart and still clicking at the wrong time. This ensures that your entry is validated by logic, not emotional impulse.
--
Logic Flow Signals & Backtest is a versatile and powerful tool designed to test and validate your trading ideas with indicators from the TradingView community.
Extreme flexibility: Allows you to combine indicators available on TradingView (EMAs, RSI, MACD, SMC, etc.) to create custom entry and exit logics.
Sequential Logic: Goes far beyond simple crossovers. You can define rules where signal A must occur before signal B — and, if desired, before signal C or D — to validate an entry. Add time, order, and context filters, creating truly intelligent sequential logic that generates a single final alert only when all conditions align.
With Stages (Stage 1, Stage 2, etc.), your entries follow the exact sequence you define. And the best part: you no longer need to spend hours in front of the chart waiting for confluences. Simply set up your stages once, create an alert in TradingView, and the system will automatically notify you when the ideal combination of signals occurs.
Sequence Invalidation: Offers the option to define conditions that, if they occur, immediately cancel an ongoing entry sequence, helping to avoid entries in unfavorable scenarios.
Explaining the first image example (chart below):
LONG INDICATOR 1 (Stage 1): The market confirms a change in character (CHoCH Bullish). The system enters an alert state awaiting the confluence of the next indicators.
LONG INDICATOR 2 and 3 (Stage 2): Entry is only released when the SMA17 crosses above the SMA72 (indicator 2), but with one condition: The SMA72 must be ABOVE the SMA305 (indicator 3); Without this alignment of indicator 3, the signal of indicator 2 does not occur.
LONG INDICATOR 4 (Invalidation Rule): If at any point in the sequence the SMA72 crosses below the SMA305, the setup is immediately canceled and no entry signal is generated. The sequence restarts with indicator 1.
EXIT LONG (Hybrid Exit TP + SIGNAL): The trade seeks a TP target of 1000 ticks, but has a technical "Trailing Stop": if the trend reverses (Exit Long Indicator 1 = SMA72 crosses below the SMA305) before the target, the position is closed to protect capital.
SHORT INDICATOR 1 (Stage 1): Identification of weakness in the market with a Bearish CHoCH.
SHORT INDICATOR 2 and 3 (Stage 2): Entry is only released when the SMA17 crosses below the SMA72 (indicator 2), but with a strict condition: The SMA72 must be BELOW the SMA305 (indicator 3); Without this STATE of indicator 3, the signal from indicator 2 does not occur.
SHORT INDICATOR 4 (Invalidation Rule): If at any point in the sequence the SMA72 crosses above the SMA305, the setup is immediately canceled and no entry signal is generated. The sequence starts again with indicator 1.
EXIT SHORT (Hybrid Exit TP + SIGNAL): The trade seeks a target of 1000 ticks, but has a technical "Trailing Stop": if the downtrend reverses (Exit Short Indicator 1 = SMA72 crosses above the SMA305) before the target, the position is closed to protect capital.
In this strategy, we use the external indicators: Multiple MTF MA and Smart Money Concepts (Advanced)
--
Stage Duration: In STAGE DURATION , you control the maximum time (in candles) allowed for each transition between stages to occur. If the time limit expires before the next stage is reached, the sequence is reset. Keep it at 0 to disable the time limit.
The "Stage Duration" function is available in four separate blocks on the settings panel:
- LONG - STAGE DURATION: Controls the time limit (in candles) between Long entry stages (for example from Stage 1 to Stage 2).
- LONG EXIT - STAGE DURATION: Controls the time limit between Long exit stages.
- SHORT - STAGE DURATION: Controls the time limit between Short entry stages.
- SHORT EXIT - STAGE DURATION: Controls the time limit between Short exit stages.
Explaining the second image example (chart below):
Stage 1 (INDICATOR 1): New Fair Value Gap (FVG) Bullish Confirmed.
- Meaning: The move starts with a bullish FVG (Fair Value Gap), indicating a confirmed imbalance where buyers were much more aggressive than sellers.
Stage 2 (INDICATOR 2): EMA10 crossing above the EMA50.
- Meaning: Immediately after the FVG trigger, the fast moving average (10 periods) crosses the intermediate moving average (50 periods). This confirms that the initial FVG impulse was not an isolated event but the beginning of a short-term trend.
Stage 3: In this final stage, we require two simultaneous confirmations to validate the entry:
- INDICATOR 3: The EMA10 crosses above the EMA100, indicating that the movement has enough strength to break through larger barriers.
- INDICATOR 4: The RSI must be above its own moving average (SMA14). This ensures the asset is gaining momentum at the exact moment the averages are broken, avoiding entries in "tired" markets.
Stage Duration: The most important feature of this setup is the restricted time window.
- Rule: From Stage 1 to 2, and from Stage 2 to 3, the maximum interval to accept confluences is only 3 candles.
- Why this is vital? If the market took 20 candles to align these conditions, it would indicate weakness or indecision. By demanding that everything happens within a maximum of 3 candles per step, the setup filters only the moves where buying pressure is urgent and aggressive, increasing the probability of an explosive move in favor of the trade.
Asymmetric Risk Management: To complement a high-probability and high-pressure setup, we use aggressive risk management:
- Stop Loss (Technical/Short): 200 Ticks. If the buying pressure fails quickly, we exit early with a small loss.
- Take Profit (Long Target): 1000 Ticks. We aim to ride the impulse "leg" that the setup identified.
- Risk/Reward: 5:1. This means a single winning trade covers five losing trades, making the strategy mathematically viable in the long term.
In this strategy, we use the external indicators: Multiple MTF MA , Smart Money Concepts (Advanced) and Relative Strength Index (RSI) .
--
Multiple Operating Modes
It is not limited to sequences. It can operate by confluence (where all signals must be valid at the same time), by single trigger (only one signal is required), or by "OR" logic (any one of the defined signals).
- If you use only Stage 1 in more than one indicator session, the entry will only occur if all enabled conditions are true simultaneously.
- Any condition defined as OR can trigger the entry by itself.
- If only one condition block is enabled, the single indicator will function as a simple signal.
Multiple and Simultaneous Exits
It allows for the configuration of exits by both indicators and TP/SL targets. The strategy will close the trade as soon as any of these conditions are met first (indicator signal, profit target, or loss limit
Integrated Risk Management
It includes Stop Loss and Take Profit exits by percentage and ticks, which are easy to configure and essential for risk management. The strategy calculates the exact TP and SL prices based on your entry price and monitors the market on every tick.
Explaining the Third Image Example (Chart Below)
The move was validated by a 4-step logical sequence (Stage 1) and managed by a hybrid exit system.
Short Indicator 1, 2, and 3: The price (Close) crossed below the SMA200, SMA72, and SMA17 averages simultaneously.
- What this means: When a single candle has the strength to break below the short-term (17), mid-term (72), and long-term (200) averages, it indicates a high probability for the price to seek lower levels.
To reinforce Indicators 1 through 3, we added an extra layer of confirmation.
Short Indicator 4: The Positive Volume Index (PVI) needed to be below its own long-term average (EMA300).
- Why this is important: PVI below the average confirms that selling volume is dominant, validating that the break of the averages was not just noise.
Triple Exit Management (Maximum Security)
The great advantage of this tool is the ability to manage risk dynamically. In this trade, we configured three simultaneous exit conditions, where the first one to be met closes the position:
1. Financial Target (TP): A fixed Take Profit of 15%.
2. Exit Short Indicator 1 (Technical Exit 1): If the average (SMA72) crosses above the average (SMA200), the trade is closed.
3. Exit Short Indicator 2 (Technical Exit 2): If the PVI crosses above the EMA300, indicating an entry of buying strength, the trade is closed.
"OR" Logic: The tool monitors these conditions in real-time. Whichever occurs first triggers the exit, ensuring you lock in profit (TP) or protect your capital at the first sign from the indicators.
In this strategy, we use the external indicators: Multiple MTF MA and Positive Volume Index .
--
Reversal Mode (Stop and Reverse)
The Reversal Mode (Stop and Reverse) allows a new signal in the opposite direction (e.g., a SELL signal) to automatically close an existing position (e.g., BUY) and open a new one (sell). This "stop and reverse" function can be enabled or disabled in the settings, giving you full control over whether the strategy should only exit (awaiting a new signal) or immediately reverse the position.
Explaining the Fourth Image Example (Chart Below)
In this example, we demonstrate a setup focused on capturing every market "flip," keeping the trader positioned 100% of the time ("Always-in"), a technique widely used in automation.
- Long Entry: Occurs immediately upon confirming a bullish change of character (New CHoCH Bullish).
- Short Entry: Occurs immediately upon confirming a bearish change of character (New CHoCH Bearish).
- Exit (The Differentiator): We are not using fixed TP or SL here. The exit is triggered by Automatic Reversal.
The Power of "Exit by Opposite Signal"
Notice the labels on the chart: "Close Short" followed immediately by a "Long." This happens because the Allow Reversal function is enabled in the tool's settings.
When the market generates a buy signal, the tool understands that the sell thesis has been invalidated. It simultaneously sends an order to close the Short position and open a new Long position.
When to use this exit rule?
- Capturing Long Trends / Directional Movements: Ideal for volatile assets where you want to ride the trend until the market structure effectively changes.
- Operational Simplification: Eliminates the need to guess profit targets and acts as a loss limiter when the price moves against your position. The market dictates when to enter and when to exit.
Hybrid Flexibility:
The strongest point of Logic Flow is that you don't have to choose just one method. Reversal can be used in two ways:
1. Individually (as in the image): Reversal is the only form of exit. You stay in the move until the opposite signal.
2. Combined (Hybrid): You can enable Reversal and configure a safety Stop Loss + technical Take Profit (Exit Long/Short Indicator).
- Example: If the price hits your TP/SL first, you exit. If the market turns before the TP, the Reversal takes you out of the trade and generates a new trend alert.
In this strategy, we use the external indicators: Smart Money Concepts .
--
Backtesting: Far beyond creating logic and generating signals, Logic Flow Signals stands out due to its Integrated Backtest.
Backtesting serves as a reality check for the trader. It takes the strategy out of the realm of "imagination" and puts it to the test against historical data.
Here are the 4 main practical uses:
1. Verifying Feasibility (Proof of Concept): The most obvious use is to answer: "Does this idea make money?". Many strategies look visually perfect on the chart, but when you run the backtest, you discover that brokerage fees or frequent "stops" consume all the profit.
2. Knowing the "Worst-Case Scenario" (Drawdown): Maximum Drawdown: It shows you what the largest accumulated drop the strategy has ever experienced was. By identifying a Drawdown that exceeds the desired risk tolerance, the backtest allows for parameter optimization in search of a more efficient balance between risk and return.
3. Fine-Tuning (Optimization): It allows you to make changes such as: Increasing the profit target, changing the stop, removing an indicator, changing the chart timeframe, among other actions. You can test various variations instantly to find the most efficient configuration.
4. Expectation Management and Discipline: Backtesting does not eliminate fear nor guarantee that the future will repeat the past, but it serves as a reference map.
The Real Role: Aligning expectation with reality.
In the image below, you can check out how a backtest result is generated:
To understand the backtest results shown above, check the chart and the detailed operational logic below:
This operational example seeks to identify altcoins that are demonstrating an explosive decorrelation relative to Bitcoin. The logic is: we want to buy only the assets that are outperforming the market leader, precisely at the moment when speculative money (Open Interest) heavily enters the market.
For the buy signal (Long) to be triggered, three conditions must be simultaneously true (Stage 1):
Long Indicator 1 (Altcoin Strength): The asset's RSI must be above the 70 level (Overbought), indicating extremely strong bullish momentum.
Long Indicator 2 (Bitcoin Weakness): Bitcoin's RSI must be below the 50 level. This confirms that the Altcoin's rally is genuine and independent.
Long Indicator 3 (Money Flow): The Open Interest (open contracts) must be above the Extreme level of the OI DELTA indicator. This validates that new money is aggressively entering the asset to sustain the rally.
Risk Management: In this example, we configured an aggressive target to capture the altcoin volatility:
- Take Profit: 100%
- Stop Loss: 20%
- Risk/Reward: 5:1
In this strategy, we use the external indicators: RSI Crypto Strength (Asset vs BTC) and Open Interest Delta .
--
Configuring an Indicator Block
Each block (BUY INDICATOR 1, BUY INDICATOR 2, ...) allows you to define a complete condition.
- Enable (Activate): Simply turns this indicator block on or off.
- Source A: The first value you want to analyze.
example: The Closing Price (Close), Opening Price (Open), or another TradingView indicator.
- Condition: How 'Source A' will be compared.
example: Crossover/Crossunder, Greater Than, Less Than, Cross Up.
- Comparison Type: The option that defines whether you will compare 'Source A' with a fixed number or with another indicator.
- Fixed Value: Used if you selected "Fixed Value".
example: For an RSI greater than 70 condition, Source A would be the RSI, the Condition would be Greater Than, and the Fixed Value would be 70.
- Source B: Used if you selected "Source B".
example: For a condition where the EMA10 crosses above the EMA200, Source A would be the EMA10, the Condition would be 'Cross Up', and Source B would be the EMA200.
--
Configurable Alert Signals
Configurable Alert Signals: The tool allows for the creation of fully customized alerts for different types of events, such as entries, signal-based exits, take profit, and stop loss. These alerts can be used for both strategy automation and manual, real-time notifications.
The message field is highly flexible: it accepts dynamic placeholders, JSON structure, UUID identifiers, or any custom text, allowing integration with other external tools and systems via webhook.
Configuring Your Messages:
- LONG/SHORT - ALERTS: Defines the message for new entries.
- LONG/SHORT INDICATOR EXIT - ALERTS: Defines the message for signal-based exits (e.g., moving average cross).
- REVERSAL - ALERTS: Defines the message for when a position is closed by an opposite signal (stop-and-reverse).
- LONG/SHORT TP/SL EXIT - ALERTS: Defines the message for exits triggered by take profit (TP) or stop loss (SL), via percentage or ticks.
A Single Alert to Control Everything
You don't need to create separate alerts for "Buy," "Sell," or "Exits." On a single screen, you can create strategies by defining entries, signal-based exits, profit targets, or stop limits.
Alert Times (Operating Window)
In the Alert Times section, you can define a specific time (and time zone) for the strategy to generate entry or exit signals.
--
To create your alert, simply follow these steps:
- Condition: Select the script name: "Logic Flow Signals & Backtest".
- Message: Insert only the placeholder: {{strategy.order.alert_message}}
Once this single alert is active, it will "listen" to all orders executed by the strategy.
This means you can have your Long-Term, Short-Term, Signal-Based Exits, and TP/SL strategies active simultaneously. When any of these events are plotted on the chart, the script will send the customized message (which you wrote in the fields) to your single alert.
--
Advanced period filters: Allow you to test the strategy in specific date ranges, over the last X days, or over the last X bars, facilitating performance analysis in different market environments.
--
Status Panel: Displays a clear summary of all active rules and settings directly on the chart, facilitating the visualization and confirmation of the running logic.
Additionally, it has a settings box where you can activate or deactivate the panel, choose its position (such as at the bottom or side), and adjust its size.
--
The Thumbnail strategy uses the following external indicators: Multiple MTF MA and Breakout Finder .
--
Final Considerations:
The Logic Flow Signals & Backtest tool is a versatile and powerful system, designed to test and apply trading ideas based on multiple indicators from TradingView.
Its differential is being a customization environment: the script does not have integrated graphical indicators, as the objective is precisely to allow the user to combine and integrate multiple existing indicators in the TradingView community to build unique entry and exit logics.
It offers flexibility and precision, but the true value emerges when the trader integrates the tool into a consistent trading plan, with efficient risk management (Stop Loss and Take Profit), leverage control, and a professional mindset.
Important: Risk of Repainting (Unstable Data): Avoid indicators that 'repaint' (those that change their values in past bars after the closing of new candles). The backtest will be invalidated, and the actual performance of the strategy will fail.
Legal Warning and Didactic Purpose:
It is fundamental to understand that all visual examples, charts, and texts contained in this description do not constitute financial advice, buy or sell recommendations, nor a promise of easy or guaranteed gains.
This is an advanced support tool, not an automatic profit system. Use the integrated backtesting to evaluate the historical behavior of strategies before real execution and understand how different market conditions impact your results. The sole purpose of this material is to demonstrate the logical and execution capacity of the script, serving as a didactic guide for you to test and validate your own ideas.
Conclusion and Risk Warning:
Success in financial markets comes not only from a set of charting indicators, but from the trader's understanding, practice, and discipline. Our objective is to provide a robust, customizable, and intuitive solution, created to enhance your technical analysis and broaden your strategic vision, without replacing critical thinking and conscious decision-making.
Finally, remember: past results do not guarantee future performance. The real differentiator lies in continuous learning, testing, and evolution.
RSI cyclic smoothed ProCyclic Smoothed Relative Strength Indicator - Pro Version
The cyclic smoothed RSI indicator is an enhancement of the classic RSI, adding
additional smoothing according to the market vibration,
adaptive upper and lower bands according to the cyclic memory and
using the current dominant cycle length as input for the indicator.
The cRSI is used like a standard indicator. The chart highlights trading signals where the signal line crosses above or below the adaptive lower/upper bands. It is much more responsive to market moves than the basic RSI.
The indicator uses the dominant cycle as input to optimize signal, smoothing and cyclic memory. To get more in-depth information on the cyclic-smoothed RSI indicator, please read Chapter 4 "Fine tuning technical indicators" of the book "Decoding the Hidden Market Rhythm, Part 1" available at your favorite book store.
Info: Pro Version
This is the actively maintained and continuously enhanced edition of my free, open-source indicator “RSI Cyclic Smoothed v2” which was recognized with a TradingView Editors’ Pick. The Pro Version will remain fully up to date with the latest Pine Script standards and will receive ongoing refinements and feature improvements, all while preserving the core logic and intent of the original tool. The legacy version will continue to be available for code review and educational purposes, but it will no longer receive updates. The legacy open-source version is here
Pro Features V1:
1) Leveraging multi-timeframe analysis
Indicator can be used on one chart by using different time frames at the same time. Read more on TradingView here .
2) Scoring feature added for scanning and filtering
This indicator now provides four distinct scoring states for both bullish and bearish conditions, making it fully compatible with the TradingView Screener .
Each score reflects a specific market phase based on RSI behavior, slope, and crossover signals.
Bullish States (Positive Scores)
+1 – Bull Exhaustion: Price is above the upper threshold and still rising (upsloping).
+2 – Bull Fatigue: Price is above the upper threshold but losing momentum (downsloping).
+3 – Bull Exit: A fresh downward crossover has occurred.
+4 – Recent Bull Exit: A downward crossover occurred within the recent lookback window.
Bearish States (Negative Scores)
–1 – Bear Exhaustion: Price is below the lower threshold and still declining (downsloping).
–2 – Bear Fatigue: Price is below the lower threshold but starting to turn upward (upsloping).
–3 – Bear Exit: A fresh upward crossover has occurred.
–4 – Recent Bear Exit: An upward crossover occurred within the recent lookback window.
The scoring states are shown in the indicator status panel when plotting the indicator on the chart. For a Screener run, use a generic cycle length setting.
How to determine the current active cycle length?
You can use the following additional tools to fine-tune the current dominant cycle length:
1. The advanced dyanmic Cycle Spectrum Scanner
2. The free Detremded Market Rhythm Oscillator
Paid script






















