Trend Exhaustion liteThe Trend Exhaustion Lite tool tracks the age and strength of the current directional move to show how mature or extended a trend has become. It converts complex statistical analysis into a simple visual panel and colour-coded background.
How It Works
Once a directional bias is established, the indicator measures: Direction (Bullish / Bearish phase), Trend Age (Number of bars since the current trend began), and Strength % (Relative intensity of the move on a 0–100 scale). Background colour shifts subtly as strength increases or fades, while the table displays live metrics.
Use Cases
Younger trends (low age): Usually early in development — potential continuation
Aging trends (high age, declining strength): Often nearing exhaustion; tighten risk or prepare for rotation
Combine with the Forecast Paint Engine or Trend Regime Lite for confirmation on when conviction is building or fading
Interpretation Example
Example Output:
Panel reads Direction: Bull, Age: 47 bars, Strength: 68%
Meaning:
The uptrend remains statistically healthy but entering a later stage — manage exposure accordingly
指标和策略
SMA Stufen-TP Strategie (200/100/50/25) mit ReentryStrategy Description for TradingView: Multi-SMA Momentum & Reentry System
This Pine Script strategy, named "SMA Stufen-TP Strategie (200/100/50/25) mit Reentry," is a Long-Only trend-following system designed to capitalize on upward momentum and capture significant gains while incorporating sophisticated logic for reentry after corrections.
The system relies on four Simple Moving Averages (SMAs): SMA 200, SMA 100, SMA 50, and SMA 25. These indicators are used to define the trend structure, trigger entries, and set dynamic, layered Take-Profit (TP) levels.
Entry Rules
The strategy has one main entry and two specific reentry triggers:
Main Entry (Standard Trend): A long position is opened when the price crosses above the SMA 200. This acts as the initial signal for a strong, long-term uptrend.
Reentry 1 (Medium Correction): This reentry is sought after an official exit (Stop Loss or Take Profit). It is permitted if the SMA 100 is above the SMA 200 and two conditions are met: the price previously dipped below the SMA 100 during the correction, and it now closes two consecutive bars above the SMA 100. This targets a confirmed bounce within an overall bullish structure.
Reentry 2 (Deep Correction/Momentum Shift): This triggers during a deep correction where all shorter SMAs (100, 50, 25) are below the SMA 200. Reentry occurs when the SMA 25 crosses above the SMA 50, signaling a powerful short-term momentum shift that precedes a larger recovery.
Exit and Take-Profit Logic
Exits are governed by a prioritized system including a fixed Stop Loss and three dynamic Take-Profit stages.
A. Stop Loss (Highest Priority)
The primary risk control is a fixed Stop Loss at -10% below the entry price. This is always the first exit condition checked.
B. Layered Take-Profits (TP)
Profits are secured using a step-wise mechanism that trails the price using the shorter SMAs, but only after specific profit thresholds are met. This ensures that the strategy provides ample room for a strong rally while securing gains as the trend matures.
TP Stage 1: Activated when the price first crosses above the SMA 100. The position is closed if the profit reaches 10% or more and the price closes two consecutive bars below the SMA 100.
TP Stage 2: Activated when the price first crosses above the SMA 50. The position is closed if the profit reaches 20% or more and the price closes two consecutive bars below the SMA 50.
TP Stage 3: Activated when the price first crosses above the SMA 25. The position is closed if the profit reaches 40% or more and the price closes two consecutive bars below the SMA 25.
The exit priority ensures that the tightest active stop is used: Stop Loss takes precedence, followed by TP 3 (the highest profit and tightest trail), then TP 2, and finally TP 1.
Quantile Support & ResistanceThis indicator plots dynamic support and resistance zones based on quantile logic — a statistically grounded method for identifying structural price boundaries.
Support Level: The price below which only a small percentage of lows fall (default: 10%). This approximates a strong demand zone.
Resistance Level: The price above which only a small percentage of highs rise (default: 10%). This approximates a strong supply zone.
Volatility-Adaptive: Levels adjust automatically to changing market conditions using a configurable lookback window.
Quantile Interpolation: Uses sorted price data and fractional indexing to estimate percentile thresholds with precision.
This tool is ideal for traders who want to visualize statistically significant price zones without relying on subjective drawing or fixed levels. It pairs well with breakout strategies, retest logic, and compression overlays.
ICT SMT A+ LONG & SELL ChecklistTrade Checklist. Once all items checked color changes from yellow to green.
Boring MACD Trading Strategy - Dedicated to 'The Secret Mindset'This indicator displays the MACD status across three selectable timeframes, regardless of the chart timeframe you are currently viewing.
For each timeframe, it shows whether the MACD line is above or below the zero line, indicating bullish or bearish momentum.
It also shows whether the MACD line is above or below the signal line, revealing the current trend condition as bullish, bearish, or neutral.
Boring MACD Trading Strategy - Dedicated to 'The Secret Mindset'This indicator displays the MACD status across three selectable timeframes, regardless of the chart timeframe you are currently viewing.
For each timeframe, it shows whether the MACD line is above or below the zero line, indicating bullish or bearish momentum.
It also shows whether the MACD line is above or below the signal line, revealing the current trend condition as bullish, bearish, or neutral.
60-Minute Range Highlighter - Color Coded (All Dates)//@version=5
indicator("60-Minute Range Highlighter - Color Coded (All Dates)", overlay=true)
// === INPUTS ===
show_all_ranges = input.bool(true, "Highlight All 60-Minute Ranges")
show_specific_range = input.bool(true, "Show Specific 60-Minute Range")
target_hour = input.int(9, "Target Hour (24h format)", minval=0, maxval=23)
// === COLOR PICKERS ===
color1 = input.color(color.new(color.teal, 85), "Box Color 1")
color2 = input.color(color.new(color.orange, 85), "Box Color 2")
color3 = input.color(color.new(color.purple, 85), "Box Color 3")
color4 = input.color(color.new(color.green, 85), "Box Color 4")
label_color = input.color(color.yellow, "Label Color")
// === TIME CONDITIONS ===
range_period = 60
range_index = math.floor(time / (range_period * 60 * 1000)) // continuous 60-min index
is_new_range = ta.change(range_index)
range_color = switch range_index % 4
0 => color1
1 => color2
2 => color3
=> color4
// === VARS FOR STORING RANGE ===
var float h_start = na
var float l_start = na
var label range_label = na
var box b = na
if is_new_range
h_start := high
l_start := low
if show_all_ranges
b := box.new(left=bar_index, right=bar_index,
top=h_start, bottom=l_start,
border_color=color.new(range_color, 40),
bgcolor=range_color)
else
h_start := math.max(high, h_start)
l_start := math.min(low, l_start)
if show_all_ranges and not na(b)
box.set_right(b, bar_index)
box.set_top(b, h_start)
box.set_bottom(b, l_start)
// === SHOW SPECIFIC RANGE ===
hour_now = hour(time)
next_hour = (target_hour + 1) % 24
in_target_range = (hour_now == target_hour) or (hour_now == next_hour and minute(time) < 30)
if show_specific_range and is_new_range and in_target_range
range_val = h_start - l_start
label.delete(range_label)
mid_price = (h_start + l_start) / 2
range_label := label.new(bar_index, mid_price, text="Range: " + str.tostring(range_val, "#.##"), style=label.style_label_left, color=label_color, textcolor=color.black, size=size.small)
YCGH ATH DrawdownHow the Indicator Measures Drawdown from ATH
The indicator continuously tracks and calculates the percentage decline from the all-time high (ATH) using a systematic approach.
ATH Tracking Mechanism
Dynamic ATH Calculation: The script maintains a persistent variable that stores the highest price ever reached. On each bar, it compares the current high with the stored ATH using ath := math.max(ath, high), updating the ATH whenever a new peak is reached.
Periodic Volume Time Velocity ProfileThis is the Periodic Volume Time Velocity Profile (PVTVP). It is an advanced professional profiling tool that goes beyond standard volume analysis by introducing Time and Velocity (Flow Rate) as profile dimensions.
By analyzing high-resolution intra-bar data, it builds
precise profiles for any custom period (Session, Day, Week, etc.),
helping you understand not just *where* the market traded,
but *how* it traded there.
## The 3 Dimensions of the Market
Unlike standard tools that only show Volume, PVTVP allows you
to switch between three critical metrics:
1. **VOLUME Profile (The "Where"):**
* Shows standard acceptance. High volume nodes (HVN)
are magnets for price.
2. **TIME Profile (The "How Long"):**
* Similar to TPO, it measures how long price spent at each
level.
* **High Time:** True acceptance and fair value.
* **Low Time:** Rejection or rapid movement.
3. **VELOCITY Profile (The "How Fast"):**
* Measures the **speed of trading** (Contracts per Second).
This reveals the hidden intent of market participants.
* **High Velocity (Fast Flow):** Aggression. Initiative
buyers/sellers are hitting market orders rapidly. Often
seen at breakouts or in liquidity vacuums.
* **Low Velocity (Slow Flow):** Absorption. Massive passive
limit orders are slowing price down despite high volume.
Often seen at major reversals ("hitting a brick wall").
## Key Features
1. **Statistical Volume Profile Engine:** For each bar in the selected
period, the indicator builds a complete volume profile on a lower
'Intra-Bar Timeframe'. Instead of simple tick counting, it uses
**statistical models ('PDF' allocation)** to distribute volume
across price levels and **advanced classifiers ('Dynamic' split)**
to determine the buy/sell pressure within that profile.
2. **Flexible Profile Display:** The **finalized profile** (plotted at
the end of each period) can be visualized in three distinct
ways: 'Up/Down' (buy vs. sell), 'Total' (combined volume),
and 'Delta' (net difference).
3. **Developing Key Levels:** The indicator also plots the developing
Point of Control (POC), Value Area (VA), VWAP, and Standard
Deviation bands in real-time as the period unfolds, providing
live insights into the emerging market structure.
4. **Dynamic Row Sizing:** Includes an option ('Rows per Percent')
to automatically adjust the number of profile rows (buckets)
based on the profile's price range, maintaining a consistent
visual density.
5. **Integrated Alerts:** Includes 12 alerts that trigger when the
main price crosses over or under the key developing levels:
POC, VWAP, Value Area High/Low, and the +/- Standard
Deviation bands.
**Caution: Real-Time Data Behavior (Intra-Bar Repainting)**
This indicator uses high-resolution intra-bar data. As a result, the
values on the **current, unclosed bar** (the real-time bar) will
update dynamically as new intra-bar data arrives. This behavior is
normal and necessary for this type of analysis. Signals should only
be considered final **after the main chart bar has closed.**
---
**DISCLAIMER**
1. **For Informational/Educational Use Only:** This indicator is
provided for informational and educational purposes only. It does
not constitute financial, investment, or trading advice, nor is
it a recommendation to buy or sell any asset.
2. **Use at Your Own Risk:** All trading decisions you make based on
the information or signals generated by this indicator are made
solely at your own risk.
3. **No Guarantee of Performance:** Past performance is not an
indicator of future results. The author makes no guarantee
regarding the accuracy of the signals or future profitability.
4. **No Liability:** The author shall not be held liable for any
financial losses or damages incurred directly or indirectly from
the use of this indicator.
5. **Signals Are Not Recommendations:** The alerts and visual signals
(e.g., crossovers) generated by this tool are not direct
recommendations to buy or sell. They are technical observations
for your own analysis and consideration.
BTCUSD / (inverted)DXY RatioShows relation between INVERTED DXY and BITCOIN ( blue line ) . With EMA-smoothing ( red line ).
LibVeloLibrary "LibVelo"
This library provides a sophisticated framework for **Velocity
Profile (Flow Rate)** analysis. It measures the physical
speed of trading at specific price levels by relating volume
to the time spent at those levels.
## Core Concept: Market Velocity
Unlike Volume Profiles, which only answer "how much" traded,
Velocity Profiles answer "how fast" it traded.
It is calculated as:
`Velocity = Volume / Duration`
This metric (contracts per second) reveals hidden market
dynamics invisible to pure Volume or TPO profiles:
1. **High Velocity (Fast Flow):**
* **Aggression:** Initiative buyers/sellers hitting market
orders rapidly.
* **Liquidity Vacuum:** Price slips through a level because
order book depth is thin (low resistance).
2. **Low Velocity (Slow Flow):**
* **Absorption:** High volume but very slow price movement.
Indicates massive passive limit orders ("Icebergs").
* **Apathy:** Little volume over a long time. Lack of
interest from major participants.
## Architecture: Triple-Engine Composition
To ensure maximum performance while offering full statistical
depth for all metrics, this library utilises **object
composition** with a lazy evaluation strategy:
#### Engine A: The Master (`vpVol`)
* **Role:** Standard Volume Profile.
* **Purpose:** Maintains the "ground truth" of volume distribution,
price buckets, and ranges.
#### Engine B: The Time Container (`vpTime`)
* **Role:** specialized container for time duration (in ms).
* **Hack:** It repurposes standard volume arrays (specifically
`aBuy`) to accumulate time duration for each bucket.
#### Engine C: The Calculator (`vpVelo`)
* **Role:** Temporary scratchpad for derived metrics.
* **Purpose:** When complex statistics (like Value Area or Skewness)
are requested for **Velocity**, this engine is assembled
on-demand to leverage the full statistical power of `LibVPrf`
without rewriting complex algorithms.
---
**DISCLAIMER**
This library is provided "AS IS" and for informational and
educational purposes only. It does not constitute financial,
investment, or trading advice.
The author assumes no liability for any errors, inaccuracies,
or omissions in the code. Using this library to build
trading indicators or strategies is entirely at your own risk.
As a developer using this library, you are solely responsible
for the rigorous testing, validation, and performance of any
scripts you create based on these functions. The author shall
not be held liable for any financial losses incurred directly
or indirectly from the use of this library or any scripts
derived from it.
create(buckets, rangeUp, rangeLo, dynamic, valueArea, allot, estimator, cdfSteps, split, trendLen)
Construct a new `Velo` controller, initializing its engines.
Parameters:
buckets (int) : series int Number of price buckets ≥ 1.
rangeUp (float) : series float Upper price bound (absolute).
rangeLo (float) : series float Lower price bound (absolute).
dynamic (bool) : series bool Flag for dynamic adaption of profile ranges.
valueArea (int) : series int Percentage for Value Area (1..100).
allot (series AllotMode) : series AllotMode Allocation mode `Classic` or `PDF` (default `PDF`).
estimator (series PriceEst enum from AustrianTradingMachine/LibBrSt/1) : series PriceEst PDF model for distribution attribution (default `Uniform`).
cdfSteps (int) : series int Resolution for PDF integration (default 20).
split (series SplitMode) : series SplitMode Buy/Sell split for the master volume engine (default `Classic`).
trendLen (int) : series int Look‑back for trend factor in dynamic split (default 3).
Returns: Velo Freshly initialised velocity profile.
method clone(self)
Create a deep copy of the composite profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo Profile object to copy.
Returns: Velo A completely independent clone.
method clear(self)
Reset all engines and accumulators.
Namespace types: Velo
Parameters:
self (Velo) : Velo Profile object to clear.
Returns: Velo Cleared profile (chaining).
method merge(self, srcVolBuy, srcVolSell, srcTime, srcRangeUp, srcRangeLo, srcVolCvd, srcVolCvdHi, srcVolCvdLo)
Merges external data (Volume and Time) into the current profile.
Automatically handles resizing and re-bucketing if ranges differ.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
srcVolBuy (array) : array Source Buy Volume bucket array.
srcVolSell (array) : array Source Sell Volume bucket array.
srcTime (array) : array Source Time bucket array (ms).
srcRangeUp (float) : series float Upper price bound of the source data.
srcRangeLo (float) : series float Lower price bound of the source data.
srcVolCvd (float) : series float Source Volume CVD final value.
srcVolCvdHi (float) : series float Source Volume CVD High watermark.
srcVolCvdLo (float) : series float Source Volume CVD Low watermark.
Returns: Velo `self` (chaining).
method addBar(self, offset)
Main data ingestion. Distributes Volume and Time to buckets.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
offset (int) : series int Offset of the bar to add (default 0).
Returns: Velo `self` (chaining).
method setBuckets(self, buckets)
Sets the number of buckets for the profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
buckets (int) : series int New number of buckets.
Returns: Velo `self` (chaining).
method setRanges(self, rangeUp, rangeLo)
Sets the price range for the profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
rangeUp (float) : series float New upper price bound.
rangeLo (float) : series float New lower price bound.
Returns: Velo `self` (chaining).
method setValueArea(self, va)
Set the percentage of volume/time for the Value Area.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
va (int) : series int New Value Area percentage (0..100).
Returns: Velo `self` (chaining).
method getBuckets(self)
Returns the current number of buckets in the profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: series int The number of buckets.
method getRanges(self)
Returns the current price range of the profile.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns:
rangeUp series float The upper price bound of the profile.
rangeLo series float The lower price bound of the profile.
method getArrayBuyVol(self)
Returns the internal raw data array for **Buy Volume** directly.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for buy volume.
method getArraySellVol(self)
Returns the internal raw data array for **Sell Volume** directly.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for sell volume.
method getArrayTime(self)
Returns the internal raw data array for **Time** (in ms) directly.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for time duration.
method getArrayBuyVelo(self)
Returns the internal raw data array for **Buy Velocity** directly.
Automatically executes _assemble() if data is dirty.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for buy velocity.
method getArraySellVelo(self)
Returns the internal raw data array for **Sell Velocity** directly.
Automatically executes _assemble() if data is dirty.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
Returns: array The internal array for sell velocity.
method getBucketBuyVol(self, idx)
Returns the **Buy Volume** of a specific bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The buy volume.
method getBucketSellVol(self, idx)
Returns the **Sell Volume** of a specific bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The sell volume.
method getBucketTime(self, idx)
Returns the raw accumulated time (in ms) spent in a specific bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The time in milliseconds.
method getBucketBuyVelo(self, idx)
Returns the **Buy Velocity** (Aggressive Buy Flow) of a bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The buy velocity in .
method getBucketSellVelo(self, idx)
Returns the **Sell Velocity** (Aggressive Sell Flow) of a bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns: series float The sell velocity in .
method getBktBnds(self, idx)
Returns the price boundaries of a specific bucket.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
idx (int) : series int The index of the bucket.
Returns:
up series float The upper price bound of the bucket.
lo series float The lower price bound of the bucket.
method getPoc(self, target)
Returns Point of Control (POC) information for the specified target metric.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
pocIdx series int The index of the POC bucket.
pocPrice series float The mid-price of the POC bucket.
method getVA(self, target)
Returns Value Area (VA) information for the specified target metric.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
vaUpIdx series int The index of the upper VA bucket.
vaUpPrice series float The upper price bound of the VA.
vaLoIdx series int The index of the lower VA bucket.
vaLoPrice series float The lower price bound of the VA.
method getMedian(self, target)
Returns the Median price for the specified target metric distribution.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
medianIdx series int The index of the bucket containing the median.
medianPrice series float The median price.
method getAverage(self, target)
Returns the weighted average price (VWAP/TWAP) for the specified target.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
avgIdx series int The index of the bucket containing the average.
avgPrice series float The weighted average price.
method getStdDev(self, target)
Returns the standard deviation for the specified target distribution.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns: series float The standard deviation.
method getSkewness(self, target)
Returns the skewness for the specified target distribution.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns: series float The skewness.
method getKurtosis(self, target)
Returns the excess kurtosis for the specified target distribution.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns: series float The excess kurtosis.
method getSegments(self, target)
Returns the fundamental unimodal segments for the specified target metric.
Calculates on-demand if the target is 'Velocity' and data changed.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns: matrix A 2-column matrix where each row is an pair.
method getCvd(self, target)
Returns Cumulative Volume/Velo Delta (CVD) information for the target metric.
Namespace types: Velo
Parameters:
self (Velo) : Velo The profile object.
target (series Metric) : Metric The data aspect to analyse (Volume, Time, Velocity).
Returns:
cvd series float The final delta value.
cvdHi series float The historical high-water mark of the delta.
cvdLo series float The historical low-water mark of the delta.
Velo
Velo Composite Velocity Profile Controller.
Fields:
_vpVol (VPrf type from AustrianTradingMachine/LibVPrf/2) : LibVPrf.VPrf Engine A: Master Volume source.
_vpTime (VPrf type from AustrianTradingMachine/LibVPrf/2) : LibVPrf.VPrf Engine B: Time duration container (ms).
_vpVelo (VPrf type from AustrianTradingMachine/LibVPrf/2) : LibVPrf.VPrf Engine C: Scratchpad for velocity stats.
_aTime (array) : array Pointer alias to `vpTime.aBuy` (Time storage).
_valueArea (series float) : int Percentage of total volume to include in the Value Area (1..100)
_estimator (series PriceEst enum from AustrianTradingMachine/LibBrSt/1) : LibBrSt.PriceEst PDF model for distribution attribution.
_allot (series AllotMode) : AllotMode Attribution model (Classic or PDF).
_cdfSteps (series int) : int Integration resolution for PDF.
_isDirty (series bool) : bool Lazy evaluation flag for vpVelo.
BTC 1H Momentum + Near-Setup Alerts bigbeeukthis alert, sets up on 1h chart of BTC only. it alerts you to price action and when its close to a setup. it will then trigger again once the setup is ready
Projected 15min RVOLProjects RVOL every 15 minutes no matter what the timeframe you are using in the chart
Binary Ratio Table (30 tokens) - against 3 Benchmark TokensDescription:
This indicator compares the relative strength of 30 selected cryptocurrencies against three major benchmark assets — BTC, ETH, and SOL — using a ratio-based RSI system.
For each token, the script:
Calculates the ratio of the token’s price to each major (BTC, ETH, SOL).
Computes RSI(60) of the ratio, then compares its EMA(10) vs. Median(30).
Assigns a score of 1 (green) if EMA > Median (bullish) or 0 (red) if not (bearish).
Results are displayed in two color-coded tables showing all 30 tokens and their relative strength signals vs. BTC, ETH, and SOL.
A full JSON payload of all scores is also generated for webhook alerts or external automation.
Use Case:
Quickly assess which altcoins are outperforming or underperforming major crypto benchmarks. Ideal for relative strength rotation, momentum analysis, or automated portfolio filters.
Ratio Logic is adjustable in Pincescript
Relative Strength HSIWe add the relative strength indicator. We try to maximize the alpha,
when there is price divergence, we should notice.
RSI with Zone Colors//@version=6
indicator(title="RSI with Zone Colors", shorttitle="RSI+", format=format.price, precision=2, timeframe="", timeframe_gaps=true)
//// ==== INPUT SETTINGS ====
rsiLength = input.int(14, title="RSI Length", minval=1)
source = input.source(close, title="Source")
ob_level = input.int(70, title="Overbought Level")
os_level = input.int(30, title="Oversold Level")
//// ==== RSI CALCULATION ====
change = ta.change(source)
up = ta.ma(math.max(change, 0), rsiLength)
down = ta.ma(-math.min(change, 0), rsiLength)
rsi = down == 0 ? 100 : 100 - (100 / (1 + up / down))
//// ==== COLOR BASED ON ZONES ====
rsiColor = rsi > ob_level ? color.red : rsi < os_level ? color.green : #2962FF
//// ==== PLOT RSI ====
plot(rsi, title="RSI", color=rsiColor, linewidth=2)
//// ==== ZONE LINES ====
hline(ob_level, "Overbought", color=#787B86)
hline(50, "Middle", color=color.new(#787B86, 50))
hline(os_level, "Oversold", color=#787B86)
//// ==== FILL ZONES ====
zoneColor = rsi > ob_level ? color.new(color.red, 85) : rsi < os_level ? color.new(color.green, 85) : na
fill(plot(ob_level, display=display.none), plot(rsi > ob_level ? rsi : ob_level, display=display.none), color=zoneColor, title="OB Fill")
fill(plot(os_level, display=display.none), plot(rsi < os_level ? rsi : os_level, display=display.none), color=zoneColor, title="OS Fill")
//// ==== COLOR CANDLE WHEN RSI IN ZONE ====
barcolor(rsi > ob_level ? color.red : rsi < os_level ? color.green : na)
Gold-Silver Ratio (GSR) ComparatorUpdated to present silver as % of gold price. Otherwise identical function as previous version.
ATR (No Gap) - Advanced Volatility IndicatorA customizable Average True Range indicator that eliminates gap distortion between trading sessions, providing cleaner volatility measurements for intraday and swing traders.
Key Features:
Gap Filtering: Optional toggle to ignore overnight/weekend gaps that distort volatility readings
EMA Smoothing: Defaults to EMA for more responsive volatility tracking (also supports RMA and SMA)
Half ATR Display: Shows 50% ATR value for quick stop-loss and take-profit calculations
Clean Value Table: Real-time values displayed on chart with configurable decimal precision
Flexible Settings: Customize length, smoothing method, and display options
Ideal for:
Setting dynamic stop losses and take profits
Position sizing based on current volatility
Comparing gap vs. no-gap volatility measurements
Trading instruments with large overnight gaps (indices, forex, crypto)
Use this indicator to get a more accurate picture of intraday volatility without the noise from session gaps!
Live Higher TF Volume Ratio DashboardComparative intraday volume dashboard for 15 mins volume in any intraday timeframe
TrendDetectorLibLibrary "TrendDetector_Lib"
method formatTF(timeframe)
Namespace types: series string, simple string, input string, const string
Parameters:
timeframe (string) : (string) The timeframe to convert (e.g., "15", "60", "240").
Returns: (string) The formatted timeframe (e.g., "15M", "1H", "4H").
f_ma(type, src, len)
Computes a Moving Average value based on type and length.
Parameters:
type (simple string) : (string) One of: "SMA", "EMA", "RMA", "WMA", "VWMA".
src (float) : (series float) Source series for MA (e.g., close).
len (simple int) : (simple int) Length of the MA.
Returns: (float) The computed MA series.
render(tbl, trendDetectorSwitch, frameColor, frameWidth, borderColor, borderWidth, textColor, ma1ShowTrendData, ma1Timeframe, ma1Value, ma2ShowTrendData, ma2Timeframe, ma2Value, ma3ShowTrendData, ma3Timeframe, ma3Value)
Fills the provided table with Trend Detector contents.
@desc This renderer does NOT plot and does NOT create tables; call from indicator after your table exists.
Parameters:
tbl (table) : (table) Existing table to render into.
trendDetectorSwitch (bool) : (bool) Master toggle to draw the table content.
frameColor (color) : (color) Table frame color.
frameWidth (int) : (int) Table frame width (0–5).
borderColor (color) : (color) Table border color.
borderWidth (int) : (int) Table border width (0–5).
textColor (color) : (color) Table text color.
ma1ShowTrendData (bool) : (bool) Show MA #1 in table.
ma1Timeframe (simple string) : (string) MA #1 timeframe.
ma1Value (float)
ma2ShowTrendData (bool) : (bool) Show MA #2 in table.
ma2Timeframe (simple string) : (string) MA #2 timeframe.
ma2Value (float)
ma3ShowTrendData (bool) : (bool) Show MA #3 in table.
ma3Timeframe (simple string) : (string) MA #3 timeframe.
ma3Value (float)
MACD Advanced [CongTrader]Title:
MACD Advanced – Enhanced Trend & Momentum Analysis
Short Description (Displayed on Chart)
MACD Advanced [CongTrader is an enhanced version of the traditional MACD, combining gradient histogram, multi-layer EMA, and smart markers to identify trend and momentum more accurately. Supports bullish/bearish crossover alerts in line with trend, helping traders seize opportunities quickly.
Detailed Description (SEO-friendly, professional)
MACD Advanced is designed for traders who want to:
Track market momentum through slope and gradient of the MACD.
Identify short-term and long-term trends using EMA 50 & EMA 200.
Receive visual trading signals with bullish/bearish markers directly on the chart.
Set intelligent alerts when MACD aligns with the trend, ensuring no opportunities are missed.
Key Features:
MACD Slope: measures the rate of MACD change to identify strong or weak momentum.
Gradient Histogram: colors change according to momentum → easy to see increasing/decreasing strength.
Multi-layer EMA: EMA 50 (short-term trend) & EMA 200 (long-term trend) → reduces noise.
Smart Markers: up/down triangles display crossover points + color indicates momentum.
Built-in Alerts: triggers when bullish/bearish signals confirm trend alignment.
How to Use
Setup:
Paste the code into Pine Editor → click “Add to Chart”.
Adjust input parameters:
Fast EMA / Slow EMA / Signal Line Length → MACD sensitivity.
Short-term EMA / Long-term EMA → trend confirmation.
Toggle EMA Trend Filter, histogram, and markers as needed.
Reading Signals:
Bullish Signal: MACD line crosses above signal line + positive slope + price above EMAs → consider buying.
Bearish Signal: MACD line crosses below signal line + negative slope + price below EMAs → consider selling.
Dark green histogram → strong upward momentum; dark red → strong downward momentum.
Markers on chart indicate crossovers → combine with EMA trend for confirmation.
Advanced Tips:
Use multiple timeframes to confirm trends.
EMA filters help reduce false signals in sideways markets.
Disclaimer
⚠️ Disclaimer:
This indicator is for educational and technical analysis purposes only. It **does not constitute financial advice** and does not guarantee profit.
Any trading decisions made based on this indicator are the sole responsibility of the user. Always apply proper risk management.
Acknowledgment
Thank you for using MACD Advanced [CongTrader! Wishing you safe and successful trading. Feedback and improvement suggestions are welcome on TradingView
MACD, MACD Advanced, MACD Histogram, MACD Trend, EMA Filter, Momentum, Technical Analysis, Trading, CT Style, Alerts
ATR Trend & Chop Dashboard (Overlay)# ATR Trend & Chop Dashboard (Overlay)
**Version:** 3
**Script Type:** Overlay (Dashboard)
**Pine Script Version:** v6
---
## SUMMARY
The ATR Trend & Chop Dashboard identifies volatility regimes and directional bias directly on the active chart. It combines ATR expansion and contraction behavior with EMA slope detection to help traders determine whether the market is trending, neutral, or choppy.
This version is designed for clarity and precision, with background colors disabled by default for clean chart visibility. A live dashboard displays the current state, ATR values, and ratio data in real time.
---
## FUNCTION
The indicator measures volatility and direction using two main components:
1. **ATR Regime Detection**
Calculates the ratio between the current ATR and its smoothed average (SMA of ATR).
- When the ATR expands beyond the upper threshold, volatility is considered trending.
- When it contracts below the lower threshold, the market is entering compression or chop.
2. **Directional Filter (EMA Slope)**
Measures the slope of a 50-period EMA across a short lookback window to confirm meaningful directional bias.
The ATR regime is validated only when the EMA slope supports trend direction.
3. **Classification**
- **TREND:** ATR expanded and EMA showing directional slope.
- **CHOP:** ATR suppressed and EMA showing minimal slope.
- **NEUTRAL:** Conditions between those thresholds.
---
## LOGIC
| Condition | Description |
|------------|-------------|
| TREND | Volatility expanded and direction confirmed by EMA slope. |
| CHOP | Volatility compressed with no strong directional structure. |
| NEUTRAL | Transitional condition near baseline ratio. |
The script dynamically adapts across instruments and timeframes.
---
## INPUTS
**Core Settings**
- ATR timeframe (default: 5-minute, adjustable to any timeframe).
- ATR length and smoothing period (SMA length).
- Trend threshold (ratio above/below 1.0).
**Directional Filter**
- EMA length (default: 50).
- Slope lookback (default: 3 bars).
- Minimum EMA slope as a fraction of ATR (default: 0.05).
**Visual Options**
- Show background colors (off by default).
- Dashboard position (Top Left, Top Right, Bottom Left, Bottom Right).
- Show status label (optional on-chart tag with current ATR timeframe and state).
---
## HOW TO USE
1. Apply the indicator to the timeframe where you plan to analyze entries and exits.
The default ATR timeframe is **5-minute**, but it can be changed in settings to match your preferred analysis timeframe.
2. Use the dashboard and background color states as environmental filters:
- TREND = Favor continuation or breakout strategies.
- CHOP = Favor mean reversion or avoid overtrading.
- NEUTRAL = Transition zone; remain patient or reduce size.
3. Combine the dashboard signals with VWAP, EMA crossovers, or ORB range tools for confirmation and higher confluence.
---
## ALERTS
The following alerts are available for automation or visual triggers:
- ATR TREND Regime
- ATR CHOP Regime
- ATR NEUTRAL Regime
Each alert provides clear notification when volatility or structure changes.
---
## COMPLIANCE NOTES
- Background colors are disabled by default to maintain chart readability.
- Default ATR timeframe is **5-minute**, but this value can be modified in the inputs menu.
- The script’s logic is original and built specifically to merge ATR-driven volatility structure with directional slope context in a single overlay.
- Description provided here meets TradingView’s publication rules for clarity, purpose, originality, and instructional detail.
---






















