Gradient Value Overlay
This script helps with identifying certain conditions without cluttering too much of the candles.
Some use cases:
It helps identify rsi low and high values.
Directional price movement becoming difficult.
low and high volume.
it uses a percent rank to distinguish low and high values.
It then uses a gradient to match the percentile rank to heatmap type colors.
i.e. dark blue for lowest volume, white for highest volume.
Current options are:
max bars to use.
approximate color - This value will attempt to give an approximation of what the color might be for the candle close.
e.g. If you're on the 1-hour chart, and only 30 minutes have past, it will multiple the current volume by 1.5. As time passes, if no volume comes in eventually, it will multiply current volume by 1.
This approximate value is only set to work with volume-based options.
option - select the type of value you'd like to see the gradient for.
timeframe - get values from a different chart timeframe.
on/off - turns the gradient on or off.
Gradient type - color wheel or heatmap. Currently these are the only two gardient options.
color wheel's colors for low to high values:
color wheel's current colors:
dark blue
purple
pink
red
orange
yellow
green
teal
white
heatmap's current colors from low values to high values:
dark blue
purple
pink
red
orange
yellow
white
reverse gradient - will reverse the colors so dark blue will be the high value and white will be the low value. Some charts based on previous data; you might need to switch the gradient colors.
moving average length while inside timeframe - an exponential moving average is applied to the values. At 1, there is no moving average applied.
Use case for this is to smooth out the gradient.
An example use case - if your currently on the 1-hour chart, you can set the timeframe to 1 minute and then the moving average length inside timeframe to 60. You will then be seeing the color sixty 1-minute bars.
current timeframe moving average length - an exponential moving average applied to current gradient (helps with smoothing gradient).
Smooth, further smooths values.
There is no set rule for what moving average lengths to use. Adjust timeframe, and moving average lengths to get an insight.
Cari dalam skrip untuk "heatmap"
Indicator: Profitability by Day & Hour (stacked, non-overlay)What it does
This tool performs a simple seasonality study on the selected symbol. It measures historical returns and summarizes them in two horizontal heatmaps:
Hours table (top) — Columns 00–23 show the average return of each clock hour, plus sample size, win rate, volatility (SD), and a t-score.
Days table (middle) — Columns 1–7 correspond to Mon–Sun with the same metrics.
Summary (bottom) — Shows the most profitable day and hour in the history loaded on your chart.
Green cells indicate higher average returns; red cells indicate lower/negative averages. The layout is centered on the screen, with the hours table above the days table for quick scanning.
How it works (methodology)
Returns: by default the indicator uses log returns ln(Ct/Ct-1) (you can switch to simple % if you prefer).
Daily aggregation (no look-ahead): day statistics are computed from completed daily closes via a higher timeframe request. Yesterday’s daily close vs. the prior day is added to the appropriate weekday bucket, preventing repaint/forward bias.
Hourly aggregation (intraday only): hour statistics are computed bar-to-bar on the current intraday timeframe and accumulated by clock hour (00–23) of the symbol’s exchange timezone.
Metrics per bucket:
Mean: average return in that bucket.
n: number of observations.
Win%: share of positive returns.
SD: standard deviation of returns (volatility proxy).
t-score: mean / SD * sqrt(n) — a quick stability signal (not a hypothesis test).
The indicator does not rely on future data and does not repaint past values.
Reading the tables
Start with the Mean row in each table: it’s color-mapped (red → yellow → green).
Check n (sample size). A bright green cell with very low n is less meaningful than a mild green cell with large n.
Use Win% and SD to judge consistency and noise.
t-score is a compact “signal-to-noise × sample size” measure; higher absolute values suggest more stable effects.
Typical observations traders look for (purely illustrative): for some equity indices, the first hour after the cash open can dominate; for FX/crypto, certain late-US or early-Asia hours sometimes stand out. Always verify on your symbol and timeframe.
DeltaBurst Locator ## DeltaBurst Locator
DeltaBurst Locator is a sponsorship detector that divides OBV impulse by price thrust, normalizes the ratio, and cross-checks it against a higher timeframe confirmation stream. The oscillator turns the abstract "is this move real?" question into a precise number, exposing accumulation, distribution, and exhaustion across futures and stocks.
HOW IT WORKS
OBV Impulse vs. Price Change – Smoothed deltas of On-Balance Volume and price are ratioed, then normalized using a hyperbolic tangent function to prevent single prints from dominating.
Signal vs. Confirmation – A short EMA produces the execution signal while a higher-timeframe request.security() feed validates whether broader flows agree.
Spectrum Classification – Expansion/compression metrics grade whether current aggression is intense or fading, while ±0.65 bands define exhaust/vacuum zones.
Slope Divergences – Linear regression slopes on both price and the ratio expose bullish/bearish sponsorship mismatches before candles reverse.
HOW TO USE IT
Breakout Validation : Only chase breakouts when both local and higher-timeframe ratios are on the same side of zero; mixed signals suggest liquidity is fading.
Absorption Trades : When the histogram spikes beyond ±0.65 but the EMA lags, expect absorption; combine with price structure for pinpoint reversals.
News/Event Monitoring : During earnings or macro releases, watch for ratio collapses with price still rising—this flags forced moves driven by hedging rather than real demand.
VISUAL FEATURES
Color logic: Positive sponsorship fills teal, negative fills crimson against the zero line, making intent obvious at a glance.
Optional markers: Burst triangles and divergence dots can be enabled when you need explicit annotations or left off for a minimalist panel.
Compression heatmap: Background shading communicates whether the market is coiling (high compression) or erupting (low compression).
Dashboard: Displays the live ratio, higher-timeframe ratio, and agreement state to speed up scanning across tickers.
PARAMETERS
Fast Pulse Length (default: 5): Controls the smoothing window for price change detection.
Slow Equilibrium Length (default: 34): Window for expansion/compression calculation.
OBV Smooth (default: 8): Smoothing period for OBV impulse calculation.
Ratio Ceiling (default: 3.0): Controls how aggressively values saturate; raise for high-volatility tickers.
Signal EMA (default: 4): EMA period for the signal line.
Confirmation Timeframe (default: 240): Pick a higher anchor (e.g., 4H) to validate intraday moves.
Divergence Window (default: 21): Window for slope-based divergence detection.
Show Burst Markers (default: disabled): Toggle burst triangles on demand.
Show Divergence Markers (default: disabled): Toggle divergence dots on demand.
Show Delta Dashboard (default: enabled): Hide when screen space is limited; leave on for desk broadcasts.
ALERTS
The indicator includes four alert conditions:
DeltaBurst Bull: Spotted a bullish liquidity burst
DeltaBurst Bear: Spotted a bearish liquidity burst
DeltaBurst Bull Div: Detected bullish sponsorship divergence
DeltaBurst Bear Div: Detected bearish sponsorship divergence
Hope you enjoy!
EMA MTF Trend Dashboard (Cross & Bias Modes)EMA MTF Trend Dashboard (Cross & Bias Modes)
A clean, multi-timeframe trend-alignment tool designed to support disciplined entries and higher-probability trades.
________________________________________
🔍 What This Dashboard Does
The EMA MTF Trend Dashboard provides a clear, structured view of trend direction across seven key timeframes:
1m • 5m • 15m • 30m • 1H • 4H • Daily
It highlights your execution timeframe, displays EMA-based trend direction per timeframe, and produces a plain-English directional bias using either Single EMA mode or Dual EMA Cross mode.
This makes it useful for scalpers, intraday traders, swing traders, and anyone who wants clarity before executing a trade.
________________________________________
🧠 How to Read the Dashboard
1. Execution Timeframe (Blue Row)
The blue row is your execution timeframe — the timeframe used to calculate the final bias.
• In Chart mode, it automatically matches your current chart timeframe.
• In Locked mode, it remains fixed, even if you switch to other chart timeframes.
This ensures consistency and removes any ambiguity before entering a trade.
________________________________________
2. EMA Mode (Use Any Length You Like)
You’re free to choose any EMA lengths — the dashboard adapts to your strategy.
• Smaller EMAs (5–20):
React quickly and highlight short-term momentum changes or early trend shifts.
• Larger EMAs (50–200+):
Move more slowly and provide a smoother read of overall trend structure, filtering out low-timeframe noise.
This flexibility lets you tune the dashboard to your preferred approach — whether you want fast tactical signals or slower, more stable directional structure.
________________________________________
3. Cross & Bias Modes
The dashboard supports two core engines:
✔ Single EMA Mode (Price vs EMA + ATR Neutral Buffer)
A trend-following model that avoids false signals when price is close to the EMA.
✔ Dual EMA Cross Mode (Fast vs Slow EMA)
A crossover-based trend engine ideal for traders who prefer structure shifts based on EMA alignment.
You can switch modes instantly from the settings.
________________________________________
4. Bias (Plain-English Trend Assessment)
The bias row at the bottom shows the overall directional bias for the blue timeframe, calculated using weighted multi-timeframe logic:
• Strong Bull
• Bullish
• Neutral
• Bearish
• Strong Bear
This provides instant clarity on whether market conditions support (or conflict with) your trade idea.
________________________________________
5. Trend Table (Heatmap View)
Each timeframe shows:
• ▲ Bullish
• ▼ Bearish
• – Neutral
Colour coded for clarity:
• Green = bullish
• Red = bearish
• Grey = neutral
• Blue = execution timeframe highlight
This creates a clean, at-a-glance trend heatmap.
________________________________________
⚙️ Customisation Options
• Fully adjustable EMA lengths
• Single EMA mode (with ATR neutral zone)
• Dual EMA Cross mode (fast/slow)
• Selectable text colour (dark/light theme friendly)
• Execution timeframe mode: Chart or Locked
• Compact and visually clear table layout
________________________________________
✔ Why This Tool Helps
This dashboard gives traders a structured, rule-aligned view of trend direction by:
• Keeping you aligned with broader multi-timeframe structure
• Reducing counter-trend mistakes
• Clarifying trend shifts and momentum changes
• Making decision-making faster and more consistent
• Supporting any systematic or rule-based trading plan
It is a decision-support tool, not a buy/sell signal — making it useful for all trading styles.
________________________________________
📌 Notes for Users
• Non-repainting (uses confirmed closes)
• Works universally: Forex, crypto, indices, commodities
• Suitable for scalpers, day-traders, swing traders
________________________________________
💬 Feedback & Future Enhancements
If you’d like to see additional timeframes, alternative trend engines, an ultra-compact mode, or alert integrations, feel free to request upgrades.
Seasonal Pattern DecoderSeasonal Pattern Decoder
The Seasonal Pattern Decoder is a powerful tool designed for traders and analysts who want to uncover and leverage seasonal tendencies in financial markets. Instead of cluttering your chart with complex visuals, this indicator presents a clean, intuitive table that summarizes historical monthly performance, allowing you to spot recurring patterns at a glance.
How It Works
The indicator fetches historical monthly data for any symbol and calculates the percentage return for each month over a specified number of years. It then organizes this data into a comprehensive table, providing a clear, year-by-year and month-by-month breakdown of performance.
Key Features
Historical Performance Table: Displays monthly returns for up to a user-defined number of years, making it easy to compare performance across different periods.
Color-Coded Heatmap: Each cell is colored based on the performance of the month. Strong positive returns are shaded in green, while strong negative returns are shaded in red, allowing for immediate visual analysis of monthly strength or weakness.
Annual Summary: A "Σ" column shows the total percentage return for each full calendar year.
AVG Row: Calculates and displays the average return for each month across all the years shown in the table.
WR Row: Shows the "Win Rate" for each month, which is the percentage of time that month had a positive return. This is crucial for identifying high-probability seasonal trends.
How to Use
Add the "Seasonal Pattern Decoder" indicator to your chart. Note that it works best on Daily, Weekly, or Monthly timeframes. A warning message will be displayed on intraday charts.
In the indicator settings, adjust the "Lookback Period" to control how many years of historical data you want to analyze.
Use the "Show Years Descending" option to sort the table from the most recent year to the oldest.
The "Heat Range" setting allows you to adjust the sensitivity of the color-coding to fit the volatility of the asset you are analyzing.
This tool is ideal for confirming trading biases, developing seasonal strategies, or simply gaining a deeper understanding of an asset's typical behavior throughout the year.
## Disclaimer
This indicator is designed as a technical analysis tool and should be used in conjunction with other forms of analysis and proper risk management.
Past performance does not guarantee future results, and traders should thoroughly test any strategy before implementing it with real capital.
Linh Index Trend & Exhaustion SuitePurpose: One overlay to judge trend, reversal risk, overextension, and volatility squeezes on indexes (built for VNINDEX/VN30, works on any symbol & timeframe).
What it shows
Trend state: Bull / Bear / Transition via 20/50/200 EMAs + slope check.
Overextension heatmap: Background paints when price is stretched vs the 20-EMA by ATR or % (you set the thresholds).
Squeeze detection:
Squeeze ON (yellow dot): Bollinger Bands (20,2) inside Keltner Channels (20,1.5).
Squeeze OFF + Release: White dot; script confirms direction only when close > BB upper (up) or close < BB lower (down).
52-week context: Distance to 52-week high/low (%).
Higher-TF alignment: Optional weekly trend reading shown on the label while you’re on the daily.
Anchored VWAP(s): Two optional AVWAPs from dates you choose (e.g., YTD open, last big gap/earnings).
Plots & labels
EMAs 20/50/200 (toggle on/off).
Optional BB & KC bands for diagnostics.
AVWAP #1 / #2 (optional).
Status label with: Trend, EMAs, Dist to 20-EMA (%, ATR), 52-week distances, HTF state.
Built-in alerts (set “Once per bar close”)
EMA10 ↔ EMA20 cross (early momentum shift)
EMA20 ↔ EMA50 cross (trend confirmation/negation)
Price ↔ EMA200 cross (long-term regime)
Squeeze Release UP / DOWN (BB breakout after squeeze)
Overextension Cool-off UP / DN (stretched vs 20-EMA + momentum rolling)
Near 52-week High (within your % threshold)
How to use (playbook)
Map regime: Prefer trades when Daily = Bull and HTF (Weekly) = Bull (shown on label).
Hunt expansion: Yellow → White dot and close beyond BB = fresh move.
Avoid chasing stretch: If background is painted (overextended vs 20-EMA), wait for a pullback or intraday base.
Locations matter: 52-week proximity + HTF Bull improves breakout quality.
Anchors: Add AVWAP from YTD open or last major gap to frame support/resistance.
Suggested settings
Overextension: ATR = 2.0, % = 4.0 to start; tune per index volatility.
Squeeze bands: BB(20,2) & KC(20,1.5) default are balanced; tighten KC (1.3) for more signals, widen (1.8) for fewer/higher quality.
Timeframes: Daily for signals, Weekly for bias. Optional 65-min for entries.
Dynamic Liquidity Depth [BigBeluga]
Dynamic Liquidity Depth
A liquidity mapping engine that reveals hidden zones of market vulnerability. This tool simulates where potential large concentrations of stop-losses may exist — above recent highs (sell-side) and below recent lows (buy-side) — by analyzing real price behavior and directional volume. The result is a dynamic two-sided volume profile that highlights where price is most likely to gravitate during liquidation events, reversals, or engineered stop hunts.
🔵 KEY FEATURES
Two-Sided Liquidity Profiles:
Plots two separate profiles on the chart — one above price for potential sell-side liquidity , and one below price for potential buy-side liquidity . Each profile reflects the volume distribution across binned zones derived from historical highs and lows.
Real Stop Zone Simulation:
Each profile is offset from the current high or low using an ATR-based buffer. This simulates where traders might cluster their stop-losses above swing highs (short stops) or below swing lows (long stops).
Directional Volume Analysis:
Buy-side volume is accumulated only from bullish candles (close > open), while sell-side volume is accumulated only from bearish candles (close < open). This directional filtering enhances accuracy by capturing genuine pressure zones.
Dynamic Volume Heatmap:
Each liquidity bin is rendered as a horizontal box with a color gradient based on volume intensity:
- Low activity bins are shaded lightly.
- High-volume zones appear more vividly in red (sell) or lime (buy).
- The maximum volume bin in each profile is emphasized with a brighter fill and a volume label.
Extended POC Zones:
The Point of Control (PoC) — the bin with the most volume — is extended backwards across the entire lookback period to mark critical resistance (sell-side) or support (buy-side) levels.
Total Volume Summary Labels:
At the center of each profile, a summary label displays Total Buy Liquidity and Total Sell Liquidity volume.
This metric helps assess directional imbalance — when buy liquidity is dominant, the market may favor upward continuation, and vice versa.
Customizable Profile Granularity:
You can fine-tune both Resolution (Bins) and Offset Distance to adjust how far profiles are displaced from price and how many levels are calculated within the ATR range.
🔵 HOW IT WORKS
The indicator calculates an ATR-based buffer above highs and below lows to define the top and bottom of the liquidity zones.
Using a user-defined lookback period, it scans historical candles and divides the buffered zones into bins.
Each bin checks if bullish (or bearish) candles pass through it based on price wicks and body.
Volume from valid candles is summed into the corresponding bin.
When volume exists in a bin, a horizontal box is drawn with a width scaled by relative volume strength.
The bin with the highest volume is highlighted and optionally extended backward as a zone of importance.
Total buy/sell liquidity is displayed with a summary label at the side of the profile.
🔵 USAGE/b]
Identify Stop Hunt Zones: High-volume clusters near swing highs/lows are likely liquidation zones targeted during fakeouts.
Fade or Follow Reactions: Price hitting a high-volume bin may reverse (fade opportunity) or break with strength (confirmation breakout).
Layer with Other Tools: Combine with market structure, order blocks, or trend filters to validate entries near liquidity.
Adjust Offset for Sensitivity: Use higher offset to simulate wider stop placement; use lower for tighter scalping zones.
🔵 CONCLUSION
Dynamic Liquidity Depth transforms raw price and volume into a spatial map of liquidity. By revealing areas where stop orders are likely hidden, it gives traders insight into price manipulation zones, potential reversal levels, and breakout traps. Whether you're hunting for traps or trading with the flow, this tool equips you to navigate liquidity with precision.
Heat Map Trend (VIDYA MA) [BigBeluga]The Heat Map Trend (VIDYA MA) - BigBeluga indicator is a multi-timeframe trend detection tool based on the Volumetric Variable Index Dynamic Average (VIDYA). This indicator calculates trends using volume momentum, or volatility if volume data is unavailable, and displays the trends across five customizable timeframes. It features a heat map to visualize trends, color-coded candles based on an average of the five timeframes, and a dashboard that shows the current trend direction for each timeframe. This tool helps traders identify trends while minimizing market noise and is particularly useful in detecting faster market changes in shorter timeframes.
🔵 KEY FEATURES & USAGE
◉ Volumetric Variable Index Dynamic Average (VIDYA):
The core of the indicator is the VIDYA moving average, which adjusts dynamically based on volume momentum. If volume data isn't available, the indicator uses volatility instead to smooth the moving average. This allows traders to assess the trend direction with more accuracy, using either volume or volatility, if volume data is not provided, as the basis for the trend calculation.
// VIDYA CALCULATION -----------------------------------------------------------------------------------------
// ATR (Average True Range) and volume calculation
bool volume_check = ta.cum(volume) <= 0
float atrVal = ta.atr(1)
float volVal = volume_check ? atrVal : volume // Use ATR if volume is not available
// @function: Calculate the VIDYA (Volumetric Variable Index Dynamic Average)
vidya(src, len, cmoLen) =>
float cmoVal = ta.sma(ta.cmo(volVal, cmoLen), 10) // Calculate the CMO and smooth it with an SMA
float absCmo = math.abs(cmoVal) // Absolute value of CMO
float alpha = 2 / (len + 1) // Alpha factor for smoothing
var float vidyaVal = 0.0 // Initialize VIDYA
vidyaVal := alpha * absCmo / 100 * src + (1 - alpha * absCmo / 100) * nz(vidyaVal ) // VIDYA formula
◉ Multi-Timeframe Trend Analysis with Heat Map Visualization:
The indicator calculates VIDYA across five customizable timeframes, allowing traders to analyze trends from multiple perspectives. The resulting trends are displayed as a heat map below the chart, where each timeframe is represented by a gradient color. The color intensity reflects the distance of the moving average (VIDYA) from the price, helping traders to identify trends on different timeframes visually. Shorter timeframes in the heat map are particularly useful for detecting faster market changes, while longer timeframes help to smooth out market noise and highlight the general trend.
Trend Direction:
Heat Map Reading:
◉ Dashboard for Multi-Timeframe Trend Directions:
The built-in dashboard displays the trend direction for each of the five timeframes, showing whether the trend is up or down. This quick overview provides traders with valuable insights into the current market conditions across multiple timeframes, helping them to assess whether the market is aligned or if there are conflicting trends. This allows for more informed decisions, especially during volatile periods.
◉ Color-Coded Candles Based on Multi-Timeframe Averages:
Candles are dynamically colored based on the average of the VIDYA across all five timeframes. When the price is in an uptrend, the candles are colored blue, while in a downtrend, they are colored red. If the VIDYA averages suggest a possible trend shift, the candles are displayed in orange to highlight a potential change in momentum. This color coding simplifies the process of identifying the dominant trend and spotting potential reversals.
BTC:
SP500:
◉ UP and DOWN Signals for Trend Direction Changes:
The indicator provides clear UP and DOWN signals to mark trend direction changes. When the average VIDYA crosses above a certain threshold, an UP signal is plotted, indicating a shift to an uptrend. Conversely, when it crosses below, a DOWN signal is shown, highlighting a transition to a downtrend. These signals help traders to quickly identify shifts in market direction and respond accordingly.
🔵 CUSTOMIZATION
VIDYA Length and Momentum Settings:
Adjust the length of the VIDYA moving average and the period for calculating volume momentum. These settings allow you to fine-tune how sensitive the indicator is to market changes, helping to match it with your preferred trading style.
Timeframe Selection:
Select five different timeframes to analyze trends simultaneously. This gives you the flexibility to focus on short-term trends, long-term trends, or a combination of both depending on your trading strategy.
Candle and Heat Map Color Customization:
Change the colors of the candles and heat map to fit your personal preferences. This customization allows you to align the visuals of the indicator with your overall chart setup, making it easier to analyze market conditions.
🔵 CONCLUSION
The Heat Trend (VIDYA MA) - BigBeluga indicator provides a comprehensive, multi-timeframe view of market trends, using VIDYA moving averages that adapt to volume momentum or volatility. Its heat map visualization, combined with a dashboard of trend directions and color-coded candles, makes it an invaluable tool for traders looking to understand both short-term market fluctuations and longer-term trends. By showing the overall market direction across multiple timeframes, it helps traders avoid market noise and focus on the bigger picture while being alert to faster shifts in shorter timeframes.
Monte Carlo Future Moves [ChartPrime]ORIGINS AND HISTORICAL BACKGROUND:
Prior to the the advent of the Monte Carlo method, examining well-understood deterministic problems via simulation generally utilized statistical sampling to gauge uncertainty estimations. The Monte Carlo (MC) approach inverts this paradigm by modeling with probabilistic metaheuristics to address deterministic problems. Addressing Buffon's needle problem, an early form of the Monte Carlo method estimated π (3.14159) by dropping needles on a floor. Later, the modern MC inception primarily began when Stanislaw Ulam was playing solitaire games while experiencing illness and recovery.
Ulam further developed, applied, and ascribed "Monte Carlo" as a classified code name to maintain a level of secrecy for the modern method applications during collaborative investigations on neutron diffusion and collision intricacies with John von Neumann. Despite having relevant data, physicist's conventional deterministic mathematical methods were unable to solve mysterious "neutronion problems". Monte Carlo filled in the gaps necessary to resolve this perplexing neutron problem with innovative statistics, and the resilient MC continues onward to have diverse application in many fields of science. MC also extends into the realm of relevance within finance.
APPLICATION IN FINANCE:
Building on its historical roots, the Monte Carlo method's transition into finance opened new avenues for risk assessment and predictive analysis. In financial markets, characterized by uncertainty and complex variables, this method offers a powerful tool for simulating a wide range of scenarios and assessing probabilities of different outcomes. By employing probabilistic models to predict price movements, the Monte Carlo method helps in creating more resilient and informed trading strategies. This approach is particularly valuable in options pricing, portfolio management, and risk assessment, where understanding the range of potential outcomes is crucial for making sound investment decisions. Our indicator utilizes this methodology, blending traditional financial analysis with advanced statistical techniques.
THE INDICATOR:
The Monte Carlo Future Moves (ChartPrime) indicator is designed to predict future price movements. It simulates various possible price paths, showing the likelihood of different outcomes. We have designed it to be simple to use and understand by displaying lines indicating the most likely bullish and bearish outcomes. The arrows point to these areas making it intuitive to understand. Also included is extreme price levels shown in blue and yellow. This is the most likely extreme range that the price will move to. The outcome distribution is there to show you the range of outcomes along with a visual representation of the possible future outcomes. To make things more user friendly we have also included a representation of this distribution as a background heatmap. The brighter the price level, the more likely the price will end at that level. Finally, we have also included a market bias indication on the side that shows you the general bullish/bearish probabilities.
HOW TO USE:
To use this indicator you want to first assess the market bias. From there you want to target the most likely polar outcome. You can use the range of outcomes to assess your risk and set a stop within a reasonable range of the desired target. By default the indicator projects 10 steps into the future, however this can be easily adjusted in the settings. Generally this indicator excels at mid-term estimations and may yield inconclusive results if the prediction period is too short or too long. You can change the granularity of the outcomes to give you a more or less detailed view of the future. That being said, a lower resolution can make the predictions less useful while a higher resolution can give you a less useful picture. If you decide to use a higher resolution we have included an option to smooth the final result. This is intended to reduce the uncertainty and noise in the predicted outcomes. It is advised to use the minimum level of smoothing possible as a high level of smoothing will greatly reduce the accuracy.
INPUT SECTION:
Derivative Source changes how the indicator sees the price movements. When you set this to Candle it will use the difference between the open and close of each candle. If set to Move, it will use the difference between closing prices. If you are in a market with gaps, you might want to use Candle as this will prevent the indicator from seeing gaps.
Number of Simulations is a crucial setting as it is the core of this indicator. This determines the number of simulations the indicator will use to get its final result. By default it is set to 1000 as we feel like that is around the minimum number of simulations required to get a reasonable output while maintaining stability. In tests the maximum number of simulations we have been able to consistently achieve is 2000.
Lookback is the number of historical candles to account for. A lookback that is too short will not have enough data to accurately assess the likelihood of a price movement, while a period that is too large can make the data less relevant. By default this is set to 1000 as we feel like this is a reasonable tradeoff between volume of data and relevance.
Steps Into Future is the prediction period. By default we have picked a period of 10 steps as this has a good balance between accuracy and usability. The more steps into the future you go, the more uncertain the future outcome will be.
Outcome Granularity controls the precision of the simulated outcomes. By default this is set to 40 as its a good balance between resolution and accuracy.
Outcome Smoothing allows you to smooth the outcome distribution. By default this is set to 0 as it is generally not needed for lower resolutions. Smoothing levels beyond 2 are not recommended as it will negatively impact the output.
Returns Granularity controls the level of definition in the collected price movements. This directly impacts indicator performance and is set to 50 by default because its a good balance between fidelity and usability. When this number is too small, the simulations will be less accurate while numbers too large will negatively impact the probabilities of the movements.
Drift is the trend component in the simulation. This adds the directionality of the simulations by biasing the movements in the current direction of the market. We have included both the standard formula for drift and linear regression. Both methods are well suited for simulating future price movements and have their own advantages. The drift period is set to 100 by default as its a good balance between current and historical directionality. You may want to increase or decrease this number depending on the current market conditions but it is advised to use a period that isn't too small. If your period is too small it can skew the outcomes too much resulting in poor performance. When this is set to 0 it will use the same period as your lookback.
Volatility Adjust , adjusts the simulation to include current volatility. This makes sure that the price movements in the simulation reflects the current market conditions better by making sure that each price move is at least a minimum size.
Returns Style allows you to pick between using percent moves and log returns. We have opted to make percent move the default as it is more intuitive for beginners however both settings yield similar results. Log returns can be less cpu intensive so it might be desirable for longer term predictions.
Precision adjusts the rounding of used when collecting the frequency of price movement sizes. By default this is set to 4 as its is fairly accurate without impacting performance too much. A larger number will make the indicator more precise but at the cost of cpu time. Precision levels that are too small can greatly reduce the accuracy of the simulation and even break the indicator all together.
Update Every Bar allows you to recalculate the prediction every bar and is there for you if you want to strictly use the market bias. It is not recommended to enable this feature but it is there for flexibility.
Side of Chart allows you to pick what side of the price action you want the visuals to be on. When its set to the right everything will be to the right of the starting point and when its set to Left it will position everything to the left of the starting point.
Move Visualization is there to give you an arrow to the most likely bullish and bearish moves. It is meant as a visual aid and visualization tool. The color of these arrows use the same colors as the distribution.
Most Likely Move is a horizontal line that indicates the most likely move. It is positioned in the same location as the Move Visualization.
Standard Deviation is horizontal lines at the extremities of the simulated price action. These represent the most likely range of the future outcomes. You can adjust the multiplier of the standard deviation but by default it is set to 2.
Most Likely Direction is a vertical bar that shows you the sum of the up and down probabilities. It is there to show you the bias of the outcomes and guide you in decision making.
Max Probability Zone is a horizontal line that highlights the location of the highest probability move. You can think of it almost like the POC in a volume distribution but in this case it is the "most likely" single outcome.
Outcome Distribution allows you to toggle the distribution on or off. This is the distribution of all of the simulated outcomes. You can toggle the scale width of the distribution to fit your visual style.
Distribution Text toggles the probability text inside of the distribution bars. When you have a large number for the outcome granularity this text may not be visible and you may want to disable this feature.
Background is a heatmap of the outcome distribution. This allows you to visualize the underlying distribution without the need for the distribution histogram. The brighter the color, the more likely the outcome is for that level. It can be useful for visualizing the range of possible outcomes.
Starting Line is simply a horizontal line indicating the starting point of the simulation. It just the opening price for the starting position.
Extend Lines allows you to extend the lines and background past the prediction period.
CONCLUSION:
With its intuitive visuals and flexible settings, the Monte Carlo Future Moves (ChartPrime) indicator is practice and easy to use. It brings clarity to price movement predictions, helping you to build confidence in your strategies. This indicator not only reflects the evolution of technical analysis but also touches on data-driven insights.
Enjoy
Technical checklistNo one indicator is perfect. People always have their favorite indicators and maintain a bias on weighing them purely on psychological reasons other than mathematical. This technical checklist indicator collected 20 common indicators and custom ones to address the issue of a bias weighted decision.
Here, I apply machine learning using a simple sigmoid neuron network with one hidden layer and a single node to avoid artifacts. For the ease of data collection, the indicator matrix is first shown as a heatmap. Once an uptrend signal window is selected manually, an indicator matrix can be recorded in a binary format (i.e., 1 0 0 1 1 0, etc.).
For example, the following indicator matrix was retrieved from the MRNA chart (deciscion: first 5 rows, buying; last 5 rows, no buying):
1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1
1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1
0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0
1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 0
0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0
1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1
1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1
0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1
0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1
This matrix is then used as an input to train the machine learning network. With a correlated buying decision matrix as an output:
1
1
1
1
1
0
0
0
0
0
After training, the corrected weight matrix can be applied back to the indicator. And the display mode can be changed from a heatmap into a histogram to reveal buying signals visually.
Usage:
python stock_ml.py mrna_input.txt output.txt
Weight matrix output:
1.37639407
1.67969656
1.0162141
1.3184323
-1.88888442
8.32928588
-5.35777295
3.08739916
3.06464844
0.82986227
-0.53092333
-1.95045383
4.14441698
2.99179435
-0.08379438
1.70379704
0.4173048
-1.51870972
-2.14284707
-2.08513252
Corresponding indicators to the weight matrix:
1. Breakout
2. Reversal
3. Crossover of ema20 and ema60
4. Crossover of ema20 and ema120
5. MACD golden cross
6. Long cycle (MACD crossover 0)
7. RSI not overbought
8. KD not overbought and crossover
9. OBV uptrend
10. Bullish gap
11. High volume
12. Breakout up fractal
13. Rebounce of down fractal
14. Convergence
15. Turbulence reversal
16. Low resistance
17. Bullish trend (blue zone)
18. Bearish trend (red zone)
19. VIX close above ema20
20. SPY close below ema20
PS. It is recommended not to use default settings but to train your weight matrix based on underlying and timeframe.
PoC Migration Map [BackQuant]PoC Migration Map
A volume structure tool that builds a side volume profile, extracts rolling Points of Control (PoCs), and maps how those PoCs migrate through time so you can see where value is moving, how volume clusters shift, and how that aligns with trend regime.
What this is
This indicator combines a classic volume profile with a segmented PoC trail. It looks back over a configurable window, splits that window into bins by price, and shows you where volume has concentrated. On top of that, it slices the lookback into fixed bar segments, finds the local PoC in each segment, and plots those PoCs as a chain of nodes across the chart.
The result is a "migration map" of value:
A side volume profile that shows how volume is distributed over the recent price range.
A sequence of PoC nodes that show where local value has been accepted over time.
Lines that connect those PoCs to reveal the path of value migration.
Optional trend coloring based on EMA 12 and EMA 21, so each PoC also encodes trend regime.
Used together, this gives you a structural read on where the market has actually traded size, how "value" is moving, and whether that movement is aligned or fighting the current trend.
Core components
Lookback volume profile - a side histogram built from all closes and volumes in the chosen lookback window.
Segmented PoC trail - rolling PoCs computed over fixed bar segments, plotted as nodes in time.
Trend heatmap - optional color mapping of PoC nodes using EMA 12 versus EMA 21.
PoC labels - optional labels on every Nth PoC for easier reading and referencing.
How it works
1) Global lookback and binning
You choose:
Lookback Bars - how far back to collect data.
Number of Bins - how finely to split the price range.
The script:
Finds the highest high and lowest low in the lookback.
Computes the total price range and divides it into equal binCount slices.
Assigns each bar's close and volume into the appropriate price bin.
This creates a discretized volume distribution across the entire lookback.
2) Side volume profile
If "Show Side Profile" is enabled, a right-hand volume profile is drawn:
Each bin becomes a horizontal bar anchored at a configurable "Right Offset" from the current bar.
The horizontal width of each bar is proportional to that bin's volume relative to the maximum volume bin.
Optionally, volume values and percentages are printed inside the profile bars.
Color and transparency are controlled by:
Base Profile Color and its transparency.
A gradient that uses relative volume to modulate opacity between lower volume and higher volume bins.
Profile Width (%) - how wide the maximum bin can extend in bars.
This gives you an at-a-glance view of the volume landscape for the chosen lookback window.
3) Segmenting for PoC migration
To build the PoC trail, the lookback is divided into segments:
Bars per Segment - bars in each local cluster.
Number of Segments - how many segments you want to see back in time.
For each segment:
The script uses the same price bins and accumulates volume only from bars in that segment.
It finds the bin with the highest volume in that segment, which is the local PoC for that segment.
It sets the PoC price to the center of that bin.
It finds the "mid bar" of the segment and places the PoC node at that time on the chart.
This is repeated for each segment from older to newer, so you get a chain of PoCs that shows how local value has migrated over time.
4) Trend regime and color coding
The indicator precomputes:
EMA 12 (Fast).
EMA 21 (Slow).
For each PoC:
It samples EMA 12 and EMA 21 at the mid bar of that segment.
It computes a simple trend score as fast EMA minus slow EMA.
If trend heatmap is enabled, PoC nodes (and the lines between them) are colored by:
Trend Up Color if EMA 12 is above EMA 21.
Trend Down Color if EMA 12 is below EMA 21.
Trend Flat Color if they are roughly equal.
If the trend heatmap is disabled, PoC color is instead based on PoC migration:
If the current PoC is above the previous PoC, use the Up PoC Color.
If the current PoC is below the previous PoC, use the Down PoC Color.
If unchanged, use the Flat PoC Color.
5) Connecting PoCs and labels
Once PoC prices and times are known:
Each PoC is connected to the previous one with a dotted line, using the PoC's color.
Optional labels are placed next to every Nth PoC:
Label text uses a simple "PoC N" scheme.
Label background uses a configurable label background color.
Label border is colored by the PoC's own color for visual consistency.
This turns the PoCs into a visual path that can be read like a "value trajectory" across the chart.
What it plots
When fully enabled, you will see:
A right-sided volume profile for the chosen lookback window, built from volume by price.
Colored horizontal bars representing each price bin's relative volume.
Optional volume text showing each bin's volume and its percentage of the profile maximum.
A series of PoC nodes spaced across the chart at the mid point of each segment.
Dotted lines connecting those PoCs to show the migration path of value.
Optional PoC labels at each Nth node for easier reference.
Color-coding of PoCs and lines either by EMA 12 / 21 trend regime or by up/down PoC drift.
Reading PoC migration and market pressure
Side profile as a pressure map
The side profile shows where trading has been most active:
Thick, opaque bars represent high volume zones and possible high interest or acceptance areas.
Thin, faint bars represent low volume zones, potential rejection or transition areas.
When price trades near a high volume bin, the market is sitting on an area of prior acceptance and size.
When price moves quickly through low volume bins, it often does so with less friction.
This gives you a static map of where the market has been willing to do business within your lookback.
PoC trail as a value migration map
The PoC chain represents "where value has lived" over time:
An upward sloping PoC trail indicates value migrating higher. Buyers have been willing to transact at increasingly higher prices.
A downward sloping trail indicates value migrating lower and sellers pushing the center of mass down.
A flat or oscillating trail indicates balance or rotational behaviour, with no clear directional acceptance.
Taken together, you can interpret:
Side profile as "where the volume mass sits", a static pressure field.
PoC trail as "how that mass has moved", the dynamic path of value.
Trend heatmap as a regime overlay
When PoCs are colored by the EMA 12 / 21 spread:
Green PoCs mark segments where the faster EMA is above the slower EMA, that is, a local uptrend regime.
Red PoCs mark segments where the faster EMA is below the slower EMA, that is, a local downtrend regime.
Gray PoCs mark flat or ambiguous trend segments.
This lets you answer questions like:
"Is value migrating higher while the trend regime is also up?" (trend confirming value).
"Is value migrating higher but most PoCs are red?" (value against the prevailing trend).
"Has value started to roll over just as PoCs flip from green to red?" (early regime transition).
Key settings
General Settings
Lookback Bars - how many bars back to use for both the global volume profile and segment profiles.
Number of Bins - how many price bins to split the high to low range into.
Profile Settings
Show Side Profile - toggle the right-hand volume profile on or off.
Profile Width (%) - how wide the largest volume bar is allowed to be in terms of bars.
Base Profile Color - the starting color for profile bars, with transparency.
Show Volume Values - if enabled, print volume and percent for each non-zero bin.
Profile Text Color - color for volume text inside the profile.
PoC Migration Settings
Show PoC Migration - toggle the PoC trail plotting.
Bars per Segment - the number of bars contained in each segment.
Number of Segments - how many segments to build backwards from the current bar.
Horizontal Spacing (bars) - spacing between PoC nodes when drawn. (Used to separate PoCs horizontally.)
Label Every Nth PoC - draw labels at every Nth PoC (0 or 1 to suppress labels).
Right Offset (bars) - horizontal offset to anchor the side profile on the right.
Up PoC Color - color used when a PoC is higher than the previous one, if trend heatmap is off.
Down PoC Color - color used when a PoC is lower than the previous one, if trend heatmap is off.
Flat PoC Color - color used when the PoC is unchanged, if trend heatmap is off.
PoC Label Background - background color for PoC labels.
Trend Heatmap Settings
Color PoCs By Trend (EMA 12 / 21) - when enabled, overrides simple up/down coloring and uses EMA-based trend colors.
Fast EMA - length for the fast EMA.
Slow EMA - length for the slow EMA.
Trend Up Color - color for PoCs in a bullish EMA regime.
Trend Down Color - color for PoCs in a bearish EMA regime.
Trend Flat Color - color for neutral or flat EMA regimes.
Trading applications
1) Value migration and trend confirmation
Use the PoC path to see if value is following price or lagging it:
In a healthy uptrend, price, PoCs, and trend regime should all lean higher.
In a weakening trend, price may still move up, but PoCs flatten or start drifting lower, suggesting fewer participants are accepting the new highs.
In a downtrend, persistent downward PoC migration confirms that sellers are winning the value battle.
2) Identifying acceptance and rejection zones
Combine the side profile with PoC locations:
High volume bins near clustered PoCs mark strong acceptance zones, good areas to watch for re-tests and decision points.
PoCs that quickly jump across low volume areas can indicate rejection and fast repricing between value zones.
High volume zones with mixed PoC colors may signal balance or prolonged negotiation.
3) Structuring entries and exits
Use the map to refine trade location:
Fade trades against value migration are higher risk unless you see clear signs of exhaustion or regime change.
Pullbacks into prior PoC zones in the direction of the current PoC slope can offer higher quality entries.
Stops placed beyond major accepted zones (clusters of PoCs and high volume bins) are less likely to be hit by random noise.
4) Regime transitions
Watch how PoCs behave as the EMA regime changes:
A flip in EMA 12 versus EMA 21, coupled with a turn in PoC slope, is a strong signal that value is beginning to move with the new trend.
If EMAs flip but PoC migration does not follow, the trend signal may be early or false.
A weakening PoC path (lower highs in PoCs) while trend colors are still green can warn of a late-stage trend.
Best practices
Start with a moderate lookback such as 200 to 300 bars and a moderate bin count such as 20 to 40. Too many bins can make the profile overly granular and sparse.
Align "Bars per Segment" with your trading horizon. For example, 5 to 10 bars for intraday, 10 to 20 bars for swing.
Use the profile and PoC trail as structural context rather than as a direct buy or sell signal. Combine with your existing setups for timing.
Pay attention to clusters of PoCs at similar prices. Those are areas where the market has repeatedly accepted value, and they often matter on future tests.
Notes
This is a structural volume tool, not a complete trading system. It does not manage execution, position sizing or risk management. Use it to understand:
Where the bulk of trading has occurred in your chosen window.
How the center of volume has migrated over time.
Whether that migration is aligned with or fighting the current trend regime.
By turning PoC evolution into a visible path and adding a trend-aware heatmap, the PoC Migration Map makes it easier to see how value has been moving, where the market is likely to feel "heavy" or "light", and how that structure fits into your trading decisions.
[AS] MACD-v & Hist [Alex Spiroglou | S.M.A.R.T. TRADER SYSTEMS] MACD-v & MACD-v Histogram
=======================================
Volatility Normalised Momentum 📈
Twice Awarded Indicator 🏆
=======================================
=======================================
✅ 1. INTRODUCTION TO THE MACD-v ✅
=======================================
I created the MACD-v in 2015,
as a way to deal with the limitations
of well known indicators like the Stochastic, RSI, MACD.
I decided to publicly share a very small part of my research
in the form of a research paper I wrote in 2022,
titled "MACD-v: Volatility Normalised Momentum".
That paper was awarded twice:
1. The "Charles H. Dow" Award (2022),
for outstanding research in Technical Analysis,
by the Chartered Market Technicians Association (CMTA)
2. The "Founders" Award (2022),
for advances in Active Investment Management,
by the National Association of Active Investment Managers (NAAIM)
=======================================
===================================================
❌ 2. WHY CREATE THE MACD-v ?
THE LIMITATIONS OF CONVENTIONAL MOMENTUM INDICATORS
====================================================
Technical Analysis indicators focused on momentum,
come in two general categories,
each with its own set of limitations:
(i) Range Bound Oscillators (RSI, Stochastics, etc)
These usually have a scaling of 0-100,
and thus have the advantage of having normalised readings,
that are comparable across time and securities.
However they have the following limitations (among others):
1. Skewing effect of steep trends
2. Indicator values do not adjust with and reflect true momentum
(indicator values are capped to 100)
(ii) Unbound Oscillators (MACD, RoC, etc)
These are boundless indicators,
and can expand with the market,
without being limited by a 0-100 scaling,
and thus have the advantage of really measuring momentum.
They have the main following limitations (among others):
1. Subjectivity of overbought / oversold levels
2. Not comparable across time
3. Not comparable across securities
=======================================
=======================================
💡 3. THE SOLUTION TO SOLVE THESE LIMITATIONS
=======================================
In order to deal with these limitations,
I decided to create an indicator,
that would be the "Best of two worlds".
A unique & hybrid indicator,
that would have objective normalised readings
(similar to Range Bound Oscillators - RSI)
but would also be able to have no upper/lower boundaries
(similar to Unbound Oscillators - MACD).
This would be achieved by "normalising" a boundless oscillator (MACD)
=======================================
==================================================
⛔ 4. DEEP DIVE INTO THE 5 LIMITATIONS OF THE MACD
==================================================
A Bloomberg study found that the MACD
is the most popular indicator after the RSI,
but the MACD has 5 BIG limitations.
Limitation 1: MACD values are not comparable across Time
The raw MACD values shift
as the underlying security's absolute value changes across time,
making historical comparisons obsolete
e.g S&P 500 maximum MACD was 1.56 in 1957-1971,
but reached 86.31 in 2019-2021 - not indicating 55x stronger momentum,
but simply different price levels.
Limitation 2: MACD values are not comparable across Assets
Traditional MACD cannot compare momentum between different assets.
S&P 500 MACD of 65 versus EUR/USD MACD of -0.5
reflects absolute price differences, not momentum differences
Limitation 3: MACD values cannot be Systematically Classified
Due to limitations #1 & #2, it is not possible to create
a momentum level classification scale
where one can define "fast", "slow", "overbought", "oversold" momentum
making systematic analysis impossible
Limitation 4: MACD Signal Line gives false crossovers in low-momentum ranges
In range-bound, low momentum environments,
most of the MACD signal line crossovers are false (noise)
Since there is no objective momentum classification system (limitation #3),
it is not possible to filter these signals out,
by avoiding them when momentum is low
Limitation 5: MACD Signal Line gives late crossovers in high momentum regimes.
Signal lag in strong trends not good at timing the turning point
— In high-momentum moves, MACD crossovers may come late.
Since there is no objective momentum classification system (limitation #3),
it is not possible to filter these signals out,
by avoiding them when momentum is high
===================================================================
===================================================================
🏆 5. MACD-v : THE SOLUTION TO THE LIMITATIONS OF THE MACD , RSI, etc
====================================================================
MACD-v is a volatility normalised momentum indicator.
It remedies these 5 limitations of the classic MACD,
while creating a tool with unique properties.
Formula: × 100
MACD-V enhances the classic MACD by normalizing for volatility,
transforming price-dependent readings into standardized momentum values.
This resolves key limitations of traditional MACD and adds significant analytical power.
Core Advantages of MACD-V
Advantage 1: Time-Based Stability
MACD-V values are consistent and comparable over time.
A reading of 100 has the same meaning today as it did in the past
(unlike traditional MACD which is influenced by changes in price and volatility over time)
Advantage 2: Cross-Market Comparability
MACD-V provides universal scaling.
Readings (e.g., ±50) apply consistently across all asset classes—stocks,
bonds, commodities, or currencies,
allowing traders to compare momentum across markets reliably.
Advantage 3: Objective Momentum Classification
MACD-V includes a defined 5-range momentum lifecycle
with standardized thresholds (e.g., -150 to +150).
This offers an objective framework for analyzing market conditions
and supports integration with broader models.
Advantage 4: False Signal Reduction in Low-Momentum Regimes
MACD-V introduces a "neutral zone" (typically -50 to +50)
to filter out these low-probability signals.
Advantage 5: Improved Signal Timing in High-Momentum Regimes
MACD-V identifies extremely strong trends,
allowing for more precise entry and exit points.
Advantage 6: Trend-Adaptive Scaling
Unlike bounded oscillators like RSI or Stochastic,
MACD-V dynamically expands with trend strength,
providing clearer momentum insights without artificial limits.
Advantage 7: Enhanced Divergence Detection
MACD-V offers more reliable divergence signals
by avoiding distortion at extreme levels,
a common flaw in bounded indicators (RSI, etc)
====================================================================
=======================================
⚒️ 5. HOW TO USE THE MACD-v: 7 CORE PATTERNS
HOW TO USE THE MACD-v Histogram: 2 CORE PATTERNS
=======================================
>>>>>> BASIC USE (RANGE RULES) <<<<<<
The MACD-v has 7 Core Patterns (Ranges) :
1. Risk Range (Overbought)
Condition: MACD-V > Signal Line and MACD-V > +150
Interpretation: Extremely strong bullish momentum—potential exhaustion or reversal zone.
2. Retracing
Condition: MACD-V < Signal Line and MACD-V > -50
Interpretation: Mild pullback within a bullish trend.
3. Rundown
Condition: MACD-V < Signal Line and -50 > MACD-V > -150
Interpretation: Momentum is weakening—bearish pressure building.
4. Risk Range (Oversold)
Condition: MACD-V < Signal Line and MACD-V < -150
Interpretation: Extreme bearish momentum—potential for reversal or capitulation.
5. Rebounding
Condition: MACD-V > Signal Line and MACD-V > -150
Interpretation: Bullish recovery from oversold or weak conditions.
6. Rallying
Condition: MACD-V > Signal Line and MACD-V > +50
Interpretation: Strengthening bullish trend—momentum accelerating.
7. Ranging (Neutral Zone)
Condition: MACD-V remains between -50 and +50 for 20+ bars
Interpretation: Sideways market—low conviction and momentum.
The MACD-v Histogram has 2 Core Patterns (Ranges) :
1. Risk (Overbought)
Condition: Histogram > +40
Interpretation: Short-term bullish momentum is stretched—possible overextension or reversal risk.
2. Risk (Oversold)
Condition: Histogram < -40
Interpretation: Short-term bearish momentum is stretched—potential for rebound or reversal.
=======================================
=======================================
📈 6. ADVANCED PATTERNS WITH MACD-v
=======================================
Thanks to its volatility normalization,
the MACD-V framework enables the development
of a wide range of advanced pattern recognition setups,
trading signals, and strategic models.
These patterns go beyond basic crossovers,
offering deeper insight into momentum structure,
regime shifts, and high-probability trade setups.
These are not part of this script
=======================================
===========================================================
⚙️ 7. FUNCTIONALITY - HOW TO ADD THE INDICATORS TO YOUR CHART
===========================================================
The script allows you to see :
1. MACD-v
The indicator with the ranges (150,50,0,-50,-150)
and colour coded according to its 7 basic patterns
2. MACD-v Histogram
The indicator The indicator with the ranges (40,0,-40)
and colour coded according to its 2 basic ranges / patterns
3. MACD-v Heatmap
You can see the MACD-v in a Multiple Timeframe basis,
using a colour-coded Heatmap
Note that lowest timeframe in the heatmap must be the one on the chart
i.e. if you see the daily chart, then the Heatmap will be Daily, Weekly, Monthly
4. MACD-v Dashboard
You can see the MACD-v for 7 markets,
in a multiple timeframe basis
=======================================
=======================================
🤝 CONTRIBUTIONS 🤝
=======================================
I would like to thank the following people:
1. Mike Christensen for coding the indicator
@TradersPostInc, @Mik3Christ3ns3n,
2. @Indicator-Jones For allowing me to use his Scanner
3. @Daveatt For allowing me to use his heatmap
=======================================
=======================================
⚠️ LEGAL - Usage and Attribution Notice ⚠️
=======================================
Use of this Script is permitted
for personal or non-commercial purposes,
including implementation by coders and TradingView users.
However, any form of paid redistribution,
resale, or commercial exploitation is strictly prohibited.
Proper attribution to the original author is expected and appreciated,
in order to acknowledge the source
and maintain the integrity of the original work.
Failure to comply with these terms,
or to take corrective action within 48 hours of notification,
will result in a formal report to TradingView’s moderation team,
and will actively pursue account suspension and removal of the infringing script(s).
Continued violations may result in further legal action, as deemed necessary.
=======================================
=======================================
⚠️ DISCLAIMER ⚠️
=======================================
This indicator is For Educational Purposes Only (F.E.P.O.).
I am just Teaching by Example (T.B.E.)
It does not constitute investment advice.
There are no guarantees in trading - except one.
You will have losses in trading.
I can guarantee you that with 100% certainty.
The author is not responsible for any financial losses
or trading decisions made based on this indicator. 🙏
Always perform your own analysis and use proper risk management. 🛡️
=======================================
Dynamic Heat Levels [BigBeluga]This indicator visualizes dynamic support and resistance levels with an adaptive heatmap effect. It helps traders identify key price interaction zones and potential mean reversion opportunities by displaying multiple levels that react to price movement.
🔵Key Features:
Multi-Level Heatmap Channel:
- The indicator plots multiple dynamic levels forming a structured channel.
- Each level represents a historical price interaction zone, helping traders identify critical areas.
- The channel expands or contracts based on market conditions, adapting dynamically to price movements.
Heatmap-Based Strength Indication:
- Levels change in transparency and color intensity based on price interactions for the length period .
- The more frequently price interacts with a level, the more visible and intense the color becomes.
- When a level reaches a threshold (count > 10), it starts to turn red, signaling a high-heat zone with significant price activity.
🔵Usage:
Support & Resistance Analysis: Identify price levels where the market frequently interacts, making them strong areas for trade decisions.
Heatmap Strength Assessment: More intense red levels indicate areas with heavy price activity, useful for detecting key liquidity zones.
Dynamic Heat Levels is a powerful tool for traders looking to analyze price interaction zones with a heatmap effect. It offers a structured visualization of market dynamics, allowing traders to gauge the significance of key levels and detect mean reversion setups effectively.
Color█ OVERVIEW
This library is a Pine Script® programming tool for advanced color processing. It provides a comprehensive set of functions for specifying and analyzing colors in various color spaces, mixing and manipulating colors, calculating custom gradients and schemes, detecting contrast, and converting colors to or from hexadecimal strings.
█ CONCEPTS
Color
Color refers to how we interpret light of different wavelengths in the visible spectrum . The colors we see from an object represent the light wavelengths that it reflects, emits, or transmits toward our eyes. Some colors, such as blue and red, correspond directly to parts of the spectrum. Others, such as magenta, arise from a combination of wavelengths to which our minds assign a single color.
The human interpretation of color lends itself to many uses in our world. In the context of financial data analysis, the effective use of color helps transform raw data into insights that users can understand at a glance. For example, colors can categorize series, signal market conditions and sessions, and emphasize patterns or relationships in data.
Color models and spaces
A color model is a general mathematical framework that describes colors using sets of numbers. A color space is an implementation of a specific color model that defines an exact range (gamut) of reproducible colors based on a set of primary colors , a reference white point , and sometimes additional parameters such as viewing conditions.
There are numerous different color spaces — each describing the characteristics of color in unique ways. Different spaces carry different advantages, depending on the application. Below, we provide a brief overview of the concepts underlying the color spaces supported by this library.
RGB
RGB is one of the most well-known color models. It represents color as an additive mixture of three primary colors — red, green, and blue lights — with various intensities. Each cone cell in the human eye responds more strongly to one of the three primaries, and the average person interprets the combination of these lights as a distinct color (e.g., pure red + pure green = yellow).
The sRGB color space is the most common RGB implementation. Developed by HP and Microsoft in the 1990s, sRGB provided a standardized baseline for representing color across CRT monitors of the era, which produced brightness levels that did not increase linearly with the input signal. To match displays and optimize brightness encoding for human sensitivity, sRGB applied a nonlinear transformation to linear RGB signals, often referred to as gamma correction . The result produced more visually pleasing outputs while maintaining a simple encoding. As such, sRGB quickly became a standard for digital color representation across devices and the web. To this day, it remains the default color space for most web-based content.
TradingView charts and Pine Script `color.*` built-ins process color data in sRGB. The red, green, and blue channels range from 0 to 255, where 0 represents no intensity, and 255 represents maximum intensity. Each combination of red, green, and blue values represents a distinct color, resulting in a total of 16,777,216 displayable colors.
CIE XYZ and xyY
The XYZ color space, developed by the International Commission on Illumination (CIE) in 1931, aims to describe all color sensations that a typical human can perceive. It is a cornerstone of color science, forming the basis for many color spaces used today. XYZ, and the derived xyY space, provide a universal representation of color that is not tethered to a particular display. Many widely used color spaces, including sRGB, are defined relative to XYZ or derived from it.
The CIE built the color space based on a series of experiments in which people matched colors they perceived from mixtures of lights. From these experiments, the CIE developed color-matching functions to calculate three components — X, Y, and Z — which together aim to describe a standard observer's response to visible light. X represents a weighted response to light across the color spectrum, with the highest contribution from long wavelengths (e.g., red). Y represents a weighted response to medium wavelengths (e.g., green), and it corresponds to a color's relative luminance (i.e., brightness). Z represents a weighted response to short wavelengths (e.g., blue).
From the XYZ space, the CIE developed the xyY chromaticity space, which separates a color's chromaticity (hue and colorfulness) from luminance. The CIE used this space to define the CIE 1931 chromaticity diagram , which represents the full range of visible colors at a given luminance. In color science and lighting design, xyY is a common means for specifying colors and visualizing the supported ranges of other color spaces.
CIELAB and Oklab
The CIELAB (L*a*b*) color space, derived from XYZ by the CIE in 1976, expresses colors based on opponent process theory. The L* component represents perceived lightness, and the a* and b* components represent the balance between opposing unique colors. The a* value specifies the balance between green and red , and the b* value specifies the balance between blue and yellow .
The primary intention of CIELAB was to provide a perceptually uniform color space, where fixed-size steps through the space correspond to uniform perceived changes in color. Although relatively uniform, the color space has been found to exhibit some non-uniformities, particularly in the blue part of the color spectrum. Regardless, modern applications often use CIELAB to estimate perceived color differences and calculate smooth color gradients.
In 2020, a new LAB-oriented color space, Oklab , was introduced by Björn Ottosson as an attempt to rectify the non-uniformities of other perceptual color spaces. Similar to CIELAB, the L value in Oklab represents perceived lightness, and the a and b values represent the balance between opposing unique colors. Oklab has gained widespread adoption as a perceptual space for color processing, with support in the latest CSS Color specifications and many software applications.
Cylindrical models
A cylindrical-coordinate model transforms an underlying color model, such as RGB or LAB, into an alternative expression of color information that is often more intuitive for the average person to use and understand.
Instead of a mixture of primary colors or opponent pairs, these models represent color as a hue angle on a color wheel , with additional parameters that describe other qualities such as lightness and colorfulness (a general term for concepts like chroma and saturation). In cylindrical-coordinate spaces, users can select a color and modify its lightness or other qualities without altering the hue.
The three most common RGB-based models are HSL (Hue, Saturation, Lightness), HSV (Hue, Saturation, Value), and HWB (Hue, Whiteness, Blackness). All three define hue angles in the same way, but they define colorfulness and lightness differently. Although they are not perceptually uniform, HSL and HSV are commonplace in color pickers and gradients.
For CIELAB and Oklab, the cylindrical-coordinate versions are CIELCh and Oklch , which express color in terms of perceived lightness, chroma, and hue. They offer perceptually uniform alternatives to RGB-based models. These spaces create unique color wheels, and they have more strict definitions of lightness and colorfulness. Oklch is particularly well-suited for generating smooth, perceptual color gradients.
Alpha and transparency
Many color encoding schemes include an alpha channel, representing opacity . Alpha does not help define a color in a color space; it determines how a color interacts with other colors in the display. Opaque colors appear with full intensity on the screen, whereas translucent (semi-opaque) colors blend into the background. Colors with zero opacity are invisible.
In Pine Script, there are two ways to specify a color's alpha:
• Using the `transp` parameter of the built-in `color.*()` functions. The specified value represents transparency (the opposite of opacity), which the functions translate into an alpha value.
• Using eight-digit hexadecimal color codes. The last two digits in the code represent alpha directly.
A process called alpha compositing simulates translucent colors in a display. It creates a single displayed color by mixing the RGB channels of two colors (foreground and background) based on alpha values, giving the illusion of a semi-opaque color placed over another color. For example, a red color with 80% transparency on a black background produces a dark shade of red.
Hexadecimal color codes
A hexadecimal color code (hex code) is a compact representation of an RGB color. It encodes a color's red, green, and blue values into a sequence of hexadecimal ( base-16 ) digits. The digits are numerals ranging from `0` to `9` or letters from `a` (for 10) to `f` (for 15). Each set of two digits represents an RGB channel ranging from `00` (for 0) to `ff` (for 255).
Pine scripts can natively define colors using hex codes in the format `#rrggbbaa`. The first set of two digits represents red, the second represents green, and the third represents blue. The fourth set represents alpha . If unspecified, the value is `ff` (fully opaque). For example, `#ff8b00` and `#ff8b00ff` represent an opaque orange color. The code `#ff8b0033` represents the same color with 80% transparency.
Gradients
A color gradient maps colors to numbers over a given range. Most color gradients represent a continuous path in a specific color space, where each number corresponds to a mix between a starting color and a stopping color. In Pine, coders often use gradients to visualize value intensities in plots and heatmaps, or to add visual depth to fills.
The behavior of a color gradient depends on the mixing method and the chosen color space. Gradients in sRGB usually mix along a straight line between the red, green, and blue coordinates of two colors. In cylindrical spaces such as HSL, a gradient often rotates the hue angle through the color wheel, resulting in more pronounced color transitions.
Color schemes
A color scheme refers to a set of colors for use in aesthetic or functional design. A color scheme usually consists of just a few distinct colors. However, depending on the purpose, a scheme can include many colors.
A user might choose palettes for a color scheme arbitrarily, or generate them algorithmically. There are many techniques for calculating color schemes. A few simple, practical methods are:
• Sampling a set of distinct colors from a color gradient.
• Generating monochromatic variants of a color (i.e., tints, tones, or shades with matching hues).
• Computing color harmonies — such as complements, analogous colors, triads, and tetrads — from a base color.
This library includes functions for all three of these techniques. See below for details.
█ CALCULATIONS AND USE
Hex string conversion
The `getHexString()` function returns a string containing the eight-digit hexadecimal code corresponding to a "color" value or set of sRGB and transparency values. For example, `getHexString(255, 0, 0)` returns the string `"#ff0000ff"`, and `getHexString(color.new(color.red, 80))` returns `"#f2364533"`.
The `hexStringToColor()` function returns the "color" value represented by a string containing a six- or eight-digit hex code. The `hexStringToRGB()` function returns a tuple containing the sRGB and transparency values. For example, `hexStringToColor("#f23645")` returns the same value as color.red .
Programmers can use these functions to parse colors from "string" inputs, perform string-based color calculations, and inspect color data in text outputs such as Pine Logs and tables.
Color space conversion
All other `get*()` functions convert a "color" value or set of sRGB channels into coordinates in a specific color space, with transparency information included. For example, the tuple returned by `getHSL()` includes the color's hue, saturation, lightness, and transparency values.
To convert data from a color space back to colors or sRGB and transparency values, use the corresponding `*toColor()` or `*toRGB()` functions for that space (e.g., `hslToColor()` and `hslToRGB()`).
Programmers can use these conversion functions to process inputs that define colors in different ways, perform advanced color manipulation, design custom gradients, and more.
The color spaces this library supports are:
• sRGB
• Linear RGB (RGB without gamma correction)
• HSL, HSV, and HWB
• CIE XYZ and xyY
• CIELAB and CIELCh
• Oklab and Oklch
Contrast-based calculations
Contrast refers to the difference in luminance or color that makes one color visible against another. This library features two functions for calculating luminance-based contrast and detecting themes.
The `contrastRatio()` function calculates the contrast between two "color" values based on their relative luminance (the Y value from CIE XYZ) using the formula from version 2 of the Web Content Accessibility Guidelines (WCAG) . This function is useful for identifying colors that provide a sufficient brightness difference for legibility.
The `isLightTheme()` function determines whether a specified background color represents a light theme based on its contrast with black and white. Programmers can use this function to define conditional logic that responds differently to light and dark themes.
Color manipulation and harmonies
The `negative()` function calculates the negative (i.e., inverse) of a color by reversing the color's coordinates in either the sRGB or linear RGB color space. This function is useful for calculating high-contrast colors.
The `grayscale()` function calculates a grayscale form of a specified color with the same relative luminance.
The functions `complement()`, `splitComplements()`, `analogousColors()`, `triadicColors()`, `tetradicColors()`, `pentadicColors()`, and `hexadicColors()` calculate color harmonies from a specified source color within a given color space (HSL, CIELCh, or Oklch). The returned harmonious colors represent specific hue rotations around a color wheel formed by the chosen space, with the same defined lightness, saturation or chroma, and transparency.
Color mixing and gradient creation
The `add()` function simulates combining lights of two different colors by additively mixing their linear red, green, and blue components, ignoring transparency by default. Users can calculate a transparency-weighted mixture by setting the `transpWeight` argument to `true`.
The `overlay()` function estimates the color displayed on a TradingView chart when a specific foreground color is over a background color. This function aids in simulating stacked colors and analyzing the effects of transparency.
The `fromGradient()` and `fromMultiStepGradient()` functions calculate colors from gradients in any of the supported color spaces, providing flexible alternatives to the RGB-based color.from_gradient() function. The `fromGradient()` function calculates a color from a single gradient. The `fromMultiStepGradient()` function calculates a color from a piecewise gradient with multiple defined steps. Gradients are useful for heatmaps and for coloring plots or drawings based on value intensities.
Scheme creation
Three functions in this library calculate palettes for custom color schemes. Scripts can use these functions to create responsive color schemes that adjust to calculated values and user inputs.
The `gradientPalette()` function creates an array of colors by sampling a specified number of colors along a gradient from a base color to a target color, in fixed-size steps.
The `monoPalette()` function creates an array containing monochromatic variants (tints, tones, or shades) of a specified base color. Whether the function mixes the color toward white (for tints), a form of gray (for tones), or black (for shades) depends on the `grayLuminance` value. If unspecified, the function automatically chooses the mix behavior with the highest contrast.
The `harmonyPalette()` function creates a matrix of colors. The first column contains the base color and specified harmonies, e.g., triadic colors. The columns that follow contain tints, tones, or shades of the harmonic colors for additional color choices, similar to `monoPalette()`.
█ EXAMPLE CODE
The example code at the end of the script generates and visualizes color schemes by processing user inputs. The code builds the scheme's palette based on the "Base color" input and the additional inputs in the "Settings/Inputs" tab:
• "Palette type" specifies whether the palette uses a custom gradient, monochromatic base color variants, or color harmonies with monochromatic variants.
• "Target color" sets the top color for the "Gradient" palette type.
• The "Gray luminance" inputs determine variation behavior for "Monochromatic" and "Harmony" palette types. If "Auto" is selected, the palette mixes the base color toward white or black based on its brightness. Otherwise, it mixes the color toward the grayscale color with the specified relative luminance (from 0 to 1).
• "Harmony type" specifies the color harmony used in the palette. Each row in the palette corresponds to one of the harmonious colors, starting with the base color.
The code creates a table on the first bar to display the collection of calculated colors. Each cell in the table shows the color's `getHexString()` value in a tooltip for simple inspection.
Look first. Then leap.
█ EXPORTED FUNCTIONS
Below is a complete list of the functions and overloads exported by this library.
getRGB(source)
Retrieves the sRGB red, green, blue, and transparency components of a "color" value.
getHexString(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channel values to a string representing the corresponding color's hexadecimal form.
getHexString(source)
(Overload 2 of 2) Converts a "color" value to a string representing the sRGB color's hexadecimal form.
hexStringToRGB(source)
Converts a string representing an sRGB color's hexadecimal form to a set of decimal channel values.
hexStringToColor(source)
Converts a string representing an sRGB color's hexadecimal form to a "color" value.
getLRGB(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channel values to a set of linear RGB values with specified transparency information.
getLRGB(source)
(Overload 2 of 2) Retrieves linear RGB channel values and transparency information from a "color" value.
lrgbToRGB(lr, lg, lb, t)
Converts a set of linear RGB channel values to a set of sRGB values with specified transparency information.
lrgbToColor(lr, lg, lb, t)
Converts a set of linear RGB channel values and transparency information to a "color" value.
getHSL(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of HSL values with specified transparency information.
getHSL(source)
(Overload 2 of 2) Retrieves HSL channel values and transparency information from a "color" value.
hslToRGB(h, s, l, t)
Converts a set of HSL channel values to a set of sRGB values with specified transparency information.
hslToColor(h, s, l, t)
Converts a set of HSL channel values and transparency information to a "color" value.
getHSV(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of HSV values with specified transparency information.
getHSV(source)
(Overload 2 of 2) Retrieves HSV channel values and transparency information from a "color" value.
hsvToRGB(h, s, v, t)
Converts a set of HSV channel values to a set of sRGB values with specified transparency information.
hsvToColor(h, s, v, t)
Converts a set of HSV channel values and transparency information to a "color" value.
getHWB(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of HWB values with specified transparency information.
getHWB(source)
(Overload 2 of 2) Retrieves HWB channel values and transparency information from a "color" value.
hwbToRGB(h, w, b, t)
Converts a set of HWB channel values to a set of sRGB values with specified transparency information.
hwbToColor(h, w, b, t)
Converts a set of HWB channel values and transparency information to a "color" value.
getXYZ(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of XYZ values with specified transparency information.
getXYZ(source)
(Overload 2 of 2) Retrieves XYZ channel values and transparency information from a "color" value.
xyzToRGB(x, y, z, t)
Converts a set of XYZ channel values to a set of sRGB values with specified transparency information
xyzToColor(x, y, z, t)
Converts a set of XYZ channel values and transparency information to a "color" value.
getXYY(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of xyY values with specified transparency information.
getXYY(source)
(Overload 2 of 2) Retrieves xyY channel values and transparency information from a "color" value.
xyyToRGB(xc, yc, y, t)
Converts a set of xyY channel values to a set of sRGB values with specified transparency information.
xyyToColor(xc, yc, y, t)
Converts a set of xyY channel values and transparency information to a "color" value.
getLAB(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of CIELAB values with specified transparency information.
getLAB(source)
(Overload 2 of 2) Retrieves CIELAB channel values and transparency information from a "color" value.
labToRGB(l, a, b, t)
Converts a set of CIELAB channel values to a set of sRGB values with specified transparency information.
labToColor(l, a, b, t)
Converts a set of CIELAB channel values and transparency information to a "color" value.
getOKLAB(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of Oklab values with specified transparency information.
getOKLAB(source)
(Overload 2 of 2) Retrieves Oklab channel values and transparency information from a "color" value.
oklabToRGB(l, a, b, t)
Converts a set of Oklab channel values to a set of sRGB values with specified transparency information.
oklabToColor(l, a, b, t)
Converts a set of Oklab channel values and transparency information to a "color" value.
getLCH(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of CIELCh values with specified transparency information.
getLCH(source)
(Overload 2 of 2) Retrieves CIELCh channel values and transparency information from a "color" value.
lchToRGB(l, c, h, t)
Converts a set of CIELCh channel values to a set of sRGB values with specified transparency information.
lchToColor(l, c, h, t)
Converts a set of CIELCh channel values and transparency information to a "color" value.
getOKLCH(r, g, b, t)
(Overload 1 of 2) Converts a set of sRGB channels to a set of Oklch values with specified transparency information.
getOKLCH(source)
(Overload 2 of 2) Retrieves Oklch channel values and transparency information from a "color" value.
oklchToRGB(l, c, h, t)
Converts a set of Oklch channel values to a set of sRGB values with specified transparency information.
oklchToColor(l, c, h, t)
Converts a set of Oklch channel values and transparency information to a "color" value.
contrastRatio(value1, value2)
Calculates the contrast ratio between two colors values based on the formula from version 2 of the Web Content Accessibility Guidelines (WCAG).
isLightTheme(source)
Detects whether a background color represents a light theme or dark theme, based on the amount of contrast between the color and the white and black points.
grayscale(source)
Calculates the grayscale version of a color with the same relative luminance (i.e., brightness).
negative(source, colorSpace)
Calculates the negative (i.e., inverted) form of a specified color.
complement(source, colorSpace)
Calculates the complementary color for a `source` color using a cylindrical color space.
analogousColors(source, colorSpace)
Calculates the analogous colors for a `source` color using a cylindrical color space.
splitComplements(source, colorSpace)
Calculates the split-complementary colors for a `source` color using a cylindrical color space.
triadicColors(source, colorSpace)
Calculates the two triadic colors for a `source` color using a cylindrical color space.
tetradicColors(source, colorSpace, square)
Calculates the three square or rectangular tetradic colors for a `source` color using a cylindrical color space.
pentadicColors(source, colorSpace)
Calculates the four pentadic colors for a `source` color using a cylindrical color space.
hexadicColors(source, colorSpace)
Calculates the five hexadic colors for a `source` color using a cylindrical color space.
add(value1, value2, transpWeight)
Additively mixes two "color" values, with optional transparency weighting.
overlay(fg, bg)
Estimates the resulting color that appears on the chart when placing one color over another.
fromGradient(value, bottomValue, topValue, bottomColor, topColor, colorSpace)
Calculates the gradient color that corresponds to a specific value based on a defined value range and color space.
fromMultiStepGradient(value, steps, colors, colorSpace)
Calculates a multi-step gradient color that corresponds to a specific value based on an array of step points, an array of corresponding colors, and a color space.
gradientPalette(baseColor, stopColor, steps, strength, model)
Generates a palette from a gradient between two base colors.
monoPalette(baseColor, grayLuminance, variations, strength, colorSpace)
Generates a monochromatic palette from a specified base color.
harmonyPalette(baseColor, harmonyType, grayLuminance, variations, strength, colorSpace)
Generates a palette consisting of harmonious base colors and their monochromatic variants.
Ultimate Bands [BigBeluga]Ultimate Bands
The Ultimate Bands indicator is an advanced technical analysis tool that combines elements of volatility bands, oscillators, and trend analysis. It provides traders with a comprehensive view of market conditions, including trend direction, momentum, and potential reversal points.
🔵 KEY FEATURES
● Ultimate Bands
Consists of an upper band, lower band, and a smooth middle line
Based on John Ehler's SuperSmoother algorithm for reduced lag
Bands are calculated using Root Mean Square Deviation (RMSD) for adaptive volatility measurement
Helps identify potential support and resistance levels
● Ultimate Oscillator
Derived from the price position relative to the Ultimate Bands
Oscillates between overbought and oversold levels
Provides insights into potential reversals and trend strength
● Trend Signal Line
Based on a Hull Moving Average (HMA) of the Ultimate Oscillator
Helps identify the overall trend direction
Color-coded for easy trend interpretation
● Heatmap Visualization
Displays the current state of the oscillator and trend signal
Provides an intuitive visual representation of market conditions
Shows overbought/oversold status and trend direction at a glance
● Breakout Signals
Optional feature to detect and display breakouts beyond the Ultimate Bands
Helps identify potential trend reversals or continuations
Visualized with arrows on the chart and color-coded candles
🔵 HOW TO USE
● Trend Identification
Use the color and position of the Trend Signal Line to determine the overall market trend
Refer to the heatmap for a quick visual confirmation of trend direction
● Entry Signals
Look for price touches or breaks of the Ultimate Bands for potential entry points
Use oscillator extremes in conjunction with band touches for stronger signals
Consider breakout signals (if enabled) for trend-following entries
● Exit Signals
Use opposite band touches or breakouts as potential exit points
Monitor the oscillator for divergences or extreme readings as exit signals
● Overbought/Oversold Analysis
Use the Ultimate Oscillator and heatmap to identify overbought/oversold conditions
Look for potential reversals when the oscillator reaches extreme levels
● Confirmation
Combine Ultimate Bands, Oscillator, and Trend Signal for stronger trade confirmation
Use the heatmap for quick visual confirmation of market conditions
🔵 CUSTOMIZATION
The Ultimate Bands indicator offers several customization options:
Adjust the main calculation length for bands and oscillator
Modify the number of standard deviations for band calculation
Change the signal line length for trend analysis
Toggle the display of breakout signals and candle coloring
By fine-tuning these settings, traders can adapt the Ultimate Bands indicator to various market conditions and personal trading strategies.
The Ultimate Bands indicator provides a multi-faceted approach to market analysis, combining volatility-based bands, oscillator analysis, and trend identification in one comprehensive tool. Its adaptive nature and visual cues make it suitable for both novice and experienced traders across various timeframes and markets. The integration of multiple analytical elements offers traders a rich set of data points to inform their trading decisions.
Stop Loss Hunting Zones This Pine Script indicator identifies and visualizes potential "stop loss hunting zones" on charts. It marks price levels where institutional traders or market makers might trigger retail stop losses before reversing direction, helping traders avoid false breakouts and better time their entries.
Key Features:
Four Types of Detection Zones-
1.Swing Zones (Red/Green): Identifies swing highs and lows using pivot point analysis where stop losses typically cluster above resistance and below support levels.
2.Breakout Zones (Orange): Detects consolidation periods and marks levels where false breakouts might occur, trapping traders who enter too early.
3.Wick Trap Zones (Purple): Highlights candles with disproportionately large wicks relative to body size, indicating potential stop loss raids with quick reversals.
4.Volume Reversal Zones (Blue): Identifies high-volume reversal patterns where price briefly touches a level before sharply reversing, suggesting stop loss absorption.
Customizable Parameters:
Swing Lookback: Period for pivot point detection (5-100 bars)
Swing Threshold: Minimum percentage move to qualify as a swing (0.5-10%)
Volume Threshold: Multiplier for detecting unusual volume (1-5x average)
Wick Ratio: Minimum wick-to-total range ratio for trap detection (0.3-0.9)
ATR Settings: Length and multiplier for zone buffer calculation
Zone Management: Maximum zones per type and minimum distance between zones
Display Options: Toggle individual zone types, heatmap intensity, labels, and transparency
Visual Features:
Heatmap Mode: Colour intensity reflects how often price has tested each zone
Smart Zone Management: Prevents chart cluttering by limiting zones and removing those too close together
Dynamic Labels: Clear zone identification with customizable display
Adjustable Transparency: Control zone visibility (10-90%)
How It Works:
The indicator uses ATR-based buffers to create zones around detected levels. It tracks price history to calculate "intensity" scores for the heatmap feature, helping identify the most significant hunting zones. The algorithm ensures zones are meaningful by enforcing minimum distances and limiting total zones displayed.
Avoid placing stop losses at obvious levels where hunting is likely
Identify potential reversal points for counter-trend trades
Recognize false breakout patterns before they complete
Time entries after stop loss hunts are absorbed
Technical Details:
Maximum 500 boxes, lines, and labels for comprehensive zone tracking
Compatible with all timeframes
Works on any market (stocks, forex, crypto, futures)
Real-time detection as new bars confirm
This indicator is designed for traders who want to understand where institutional players might target retail stop losses and use that information to their advantage. Please boost & follow for more. Happy trading !!
Disclaimer: This indicator is for educational and informational purposes only. It should not be considered financial advice. Always perform your own analysis and risk management before trading.
ROC+ADX Trend & Momentum System### Code Analysis: ROC+ADX Trend & Momentum System (v5 Pine Script)
#### **Core Function**
This Pine Script indicator integrates **Rate of Change (ROC)** and **Average Directional Index (ADX)** to build a professional trend-momentum trading system, which identifies trend strength, momentum changes, price divergences and generates actionable long/short trading signals for financial markets (stocks, crypto, forex). It features coordinated visual display, adaptive volatility adjustment and a comprehensive scoring mechanism for trend evaluation.
#### **Key Features (Concise)**
1. **Hybrid Indicator Logic**
Combines **ROC (12/6-period, EMA-smoothed)** (measures price momentum) and **ADX (14-period)** (identifies trend strength/direction, with +DI/-DI for trend bias), forming a dual-dimension analysis of trend + momentum.
2. **Adaptive Dynamic Threshold**
Adjusts momentum thresholds in real time based on **14-period ATR volatility**; higher market volatility raises thresholds, lower volatility lowers them, ensuring signal accuracy across different market conditions.
3. **Multi-Category Trading Signals**
Generates 4 core signal types: trend breakout (long/short), momentum boost/drop, trend reversal, and price-ROC bullish/bearish divergence, all filtered by ADX trend validity.
4. **Comprehensive Trend Scoring System**
Calculates a **0-100 trend score** (integrates ADX strength, ROC momentum, direction consistency, momentum persistence) and classifies trend intensity into 5 levels (Extreme/Strong/Medium/Weak/None).
5. **Coordinated Visual Display**
Supports scalable unified display for ROC & ADX values (custom scale factors), with color-coded lines, momentum histograms, heatmap background and reference lines for intuitive trend judgment.
6. **Informative Dashboard & Alerts**
Embeds a top-right info panel showing real values (ROC, ADX, volatility), trend level and active signals; includes multi-tier alert conditions for all key signals (breakout, reversal, divergence).
7. **High Customizability**
Full input configurability for all core parameters (periods, thresholds, scale factors) and visual toggles (show/hide ROC/ADX, signals, heatmap, reference lines).
#### **Technical Highlights**
- Uses EMA smoothing for ROC/ADX to reduce false signals;
- Identifies ROC momentum & acceleration for precise trend phase judgment;
- ADX grading (strong/weak/oscillation) filters invalid signals in sideways markets;
- Color-coded elements (lines, histograms, heatmap) reflect real-time trend/momentum status;
- Non-overlay layout ensures clear separation from price charts, optimized for multi-screen analysis.
Trend Strength Matrix [JOAT]Trend Strength Matrix — Multi-Timeframe Confluence Analysis System
This indicator addresses a specific analytical challenge: how to efficiently compare multiple technical measurements across different timeframes while accounting for their varying scales and interpretations. Rather than managing separate indicator windows with different scales, this tool normalizes four distinct analytical approaches to a common -1 to +1 scale and presents them in a unified matrix format.
Why This Combination Adds Value
The core problem this indicator solves is analytical fragmentation. Traders often use multiple indicators but struggle with:
1. **Scale Inconsistency**: RSI ranges 0-100, MACD has no fixed range, ADX ranges 0-100 but measures strength not direction
2. **Timeframe Coordination**: Checking multiple timeframes requires switching between charts or cramming multiple indicators
3. **Cognitive Load**: Processing different indicator types simultaneously creates mental overhead
4. **Confluence Assessment**: Determining when multiple approaches agree requires manual comparison
This indicator specifically addresses these issues by creating a standardized analytical framework where different measurement approaches can be directly compared both within and across timeframes.
Originality and Technical Innovation
While the individual components (RSI, MACD, ADX, Moving Average) are standard, the originality lies in:
1. **Unified Normalization System**: Each component is mathematically transformed to a -1 to +1 scale using component-specific normalization that preserves the indicator's core characteristics
2. **Multi-Timeframe Weighting Algorithm**: Higher timeframes receive proportionally more weight (40% current, 25% next, 20% third, 15% fourth) based on the principle that longer timeframes provide more significant context
3. **Real-Time Confluence Scoring**: The composite calculation provides an instant assessment of how much the different analytical approaches agree
4. **Adaptive Visual Encoding**: The heatmap format allows immediate pattern recognition of agreement/disagreement across both indicators and timeframes
How the Components Work Together
Each component measures a different aspect of market behavior, and their combination provides a more complete analytical picture:
**Momentum Component (RSI-based)**: Measures the velocity of price changes by comparing average gains to losses
**Trend Component (MACD-based)**: Measures the relationship between fast and slow moving averages, indicating trend acceleration/deceleration
**Strength Component (ADX-based)**: Measures trend strength regardless of direction, then applies directional bias
**Position Component (MA-based)**: Measures price position relative to a reference average
The mathematical relationship between these components creates a comprehensive view:
- When all four agree (similar colors), it suggests multiple analytical approaches are aligned
- When they disagree (mixed colors), it highlights analytical uncertainty or transition periods
- The composite score quantifies the degree of agreement numerically
Detailed Component Analysis
**1. Momentum Oscillator Component**
This component transforms RSI into a centered oscillator by subtracting 50 and dividing by 50, creating a -1 to +1 range where 0 represents equilibrium between buying and selling pressure.
// Momentum calculation normalized to -1 to +1 scale
float rsi = ta.rsi(close, rsiLength)
float rsiScore = (rsi - 50) / 50
// Result: 0 at equilibrium, +1 at extreme overbought, -1 at extreme oversold
**2. Moving Average Convergence Component**
MACD is normalized by its own volatility (standard deviation) to create a bounded oscillator. This prevents the unbounded nature of MACD from dominating the composite calculation.
// MACD normalized by its historical volatility
= ta.macd(close, macdFast, macdSlow, macdSignal)
float macdStdev = ta.stdev(macdLine, 100)
float macdScore = macdStdev != 0 ? math.max(-1, math.min(1, macdLine / (macdStdev * 2))) : 0
**3. Directional Movement Component**
This combines ADX (strength) with directional movement (+DI vs -DI) to create a directional strength measurement. ADX alone shows strength but not direction; this component adds directional context.
// ADX-based directional strength
= calcADX(adxLength)
float adxStrength = math.min(adx / 50, 1) // Normalize ADX to 0-1
float adxDirection = plusDI > minusDI ? 1 : -1 // Direction bias
float adxScore = adxStrength * adxDirection // Combine strength and direction
**4. Price Position Component**
This measures price deviation from a moving average, weighted by the magnitude of deviation to distinguish between minor and significant displacements.
// Price position relative to moving average
float ma = ta.sma(close, maLength)
float maDirection = close > ma ? 1 : -1
float maDeviation = math.abs(close - ma) / ma * 10 // Percentage deviation scaled
float maScore = math.max(-1, math.min(1, maDirection * math.min(maDeviation, 1)))
Multi-Timeframe Integration Logic
The multi-timeframe system uses a weighted average that gives more influence to higher timeframes:
// Timeframe weighting system
float currentTF = composite * 0.40 // Current timeframe: 40%
float higherTF1 = composite_tf2 * 0.25 // Next higher: 25%
float higherTF2 = composite_tf3 * 0.20 // Third higher: 20%
float higherTF3 = composite_tf4 * 0.15 // Fourth higher: 15%
float multiTFComposite = currentTF + higherTF1 + higherTF2 + higherTF3
This weighting reflects the principle that higher timeframes provide more significant context for market direction, while lower timeframes provide timing precision.
What the Dashboard Shows
The heatmap displays a grid where:
Each row represents a timeframe
Each column shows one component's normalized reading
Colors indicate the value: green shades for positive, red shades for negative, gray for neutral
The rightmost column shows the composite average for that timeframe
Visual Elements
Moving Average Line — A simple moving average plotted on the price chart
Background Tint — Subtle coloring based on the composite score
Shift Labels — Markers when the composite crosses threshold values
Dashboard Table — The main heatmap display
Inputs
Calculation Parameters:
Momentum Length (default: 14)
MACD Fast/Slow/Signal (default: 12/26/9)
Directional Movement Length (default: 14)
Moving Average Length (default: 50)
Timeframe Settings:
Enable/disable multi-timeframe analysis
Select additional timeframes to display
How to Read the Display
Similar colors across a row indicate the components are showing similar readings
Mixed colors indicate the components are showing different readings
The composite percentage shows the average of all four components
Alerts
Composite crossed above/below threshold values
Strong readings (above 50% or below -50%)
Important Limitations and Realistic Expectations
This indicator displays current analytical conditions—it does not predict future price movements
Agreement between components indicates current analytical alignment, not future price direction
All four components are based on historical price data and inherently lag price action
Market conditions can change rapidly, making current readings irrelevant
Different parameter settings will produce different readings and interpretations
No combination of technical indicators can reliably predict future market behavior
Strong readings in one direction do not guarantee continued movement in that direction
The composite score reflects mathematical relationships, not market fundamentals or sentiment
This tool should be used as one input among many in a comprehensive analytical approach
Appropriate Use Cases
This indicator is designed for:
- Analytical organization and efficiency
- Multi-timeframe confluence assessment
- Pattern recognition in indicator relationships
- Educational study of how different analytical approaches relate
- Supplementary analysis alongside other methods
This indicator is NOT designed for:
- Standalone trading signals
- Guaranteed profit generation
- Market timing precision
- Replacement of fundamental analysis
- Automated trading systems
— Made with passion by officialjackofalltrades
Open Interest Bubbles [BackQuant]Open Interest Bubbles
A visual OI positioning overlay that aggregates futures open interest across major venues, normalizes it into a consistent “signal strength” scale, then plots extreme events as bubbles, labels, and optional horizontal levels directly on price.
What this is for
Open interest is one of the cleanest ways to track when positioning is building, unwinding, or aggressively shifting. The problem is raw OI is noisy, exchange-specific, and hard to compare across time. This script solves that by:
- Aggregating OI across multiple exchanges.
- Letting you choose what “OI signal” you care about (raw, delta, percent versions).
- Normalizing the signal so “big events” are easy to spot.
- Plotting those events as bubbles and levels at the exact price they occurred.
You end up with a clean, fast visual map of where large positioning changes occurred, and where those events may later matter as reaction points.
────────────────────────────────────────────────────────────
Plotting types (what you can display)
Bubbles
This mode plots OI events as size-bucketed circles on the chart. Bigger bubbles represent stronger normalized events. You can tune:
- Bubble sizing by bucket (Tiny → Huge).
- Heatmap vs solid color styling.
- Signed vs unsigned coloring (positive/negative separation or magnitude-only).
Best use:
- Spotting “where something changed” at a glance.
- Identifying clusters of positioning events around key price zones.
- Seeing whether the market is repeatedly building/closing positions at similar levels.
Levels
Levels mode draws a horizontal line at the anchor price when an extreme OI event triggers. These act like “positioning memory” levels:
- They do not claim to be support/resistance by themselves.
- They highlight prices where the derivatives market clearly did something meaningful.
Best use:
- Marking potential reaction zones.
- Combining with your price action tools (structure, OBs, FVGs) to confirm whether an OI level aligns with a technical level.
- Building a “map” of where leverage likely entered or exited.
Modes available in the script:
- Off
- Bubbles
- Bubbles + Labels
- Labels Only
- Levels + Labels
────────────────────────────────────────────────────────────
Aggregated Open Interest source (multi-exchange)
This indicator builds a single aggregated OI series by requesting OI data from multiple exchanges and summing it. You can toggle exchanges on/off:
- Binance, Bybit, OKX, Bitget, Kraken, HTX, Deribit
You can also choose OI units:
- COIN , OI in base units (native sizing)
- USD , converted for a dollar-value representation
Important note:
Not every symbol has OI data on every venue. If the script cannot build an aggregated series for the symbol, it will throw an error rather than quietly plotting garbage.
────────────────────────────────────────────────────────────
OI Source, what the bubbles are measuring
You control what “signal” is normalized and plotted:
- Delta , change in aggregated OI from the prior bar.
Use when you want to highlight bursts of new positioning or sudden unwind events.
- Raw OI , the aggregated open interest level itself.
Use when you want to highlight absolute positioning build-up periods.
- Delta % , percent change in OI.
Use when you want moves normalized to the current OI regime, useful across different market eras.
- Raw OI % , percent change form of the raw series.
Use when you want relative changes rather than absolute size.
Practical guidance:
- Delta modes are best for “event detection”.
- Raw modes are better for “regime context” and whether positioning is structurally rising or fading.
────────────────────────────────────────────────────────────
Normalization (the key to making it readable)
Because OI varies massively across assets and time, the script includes multiple normalization modes to convert your chosen OI source into a comparable “strength” value.
Options:
- ZScore , deviation from a rolling mean in standard deviation units.
- StdNorm , scaled by rolling standard deviation.
- AbsZScore , absolute value version for magnitude-only mapping.
- AbsStdNorm , absolute value version for magnitude-only mapping.
- None , plots raw values (advanced users only, often too noisy visually).
Why this matters:
Normalization makes a “1.5” or “3.0” threshold mean something across different assets and timeframes, instead of being stuck to raw OI units.
────────────────────────────────────────────────────────────
Threshold system (when bubbles/levels trigger)
The plot is driven by two user thresholds:
- Base Threshold
Controls where “meaningful” events start. Raising this reduces noise and focuses on larger deviations.
- Extreme Threshold
Controls what qualifies as a top-tier event. Extreme events are what you typically want to convert into labels and levels.
You also control side filtering:
- Both , show positive and negative events.
- Positive Only , show only increases (or positive signal side depending on source).
- Negative Only , show only decreases (or negative signal side).
In practice:
- Use Base Threshold to tune chart cleanliness.
- Use Extreme Threshold to mark only the “big stuff” that tends to matter later.
────────────────────────────────────────────────────────────
Anchor Source (where the bubble/level is placed)
The indicator places bubbles, labels, and levels at a price anchor you choose:
- HL2, Close, Open, High, Low, VWAP
This is important because “where you pin the event” changes how it reads:
- Close is clean and consistent for backtesting and candle-close logic.
- High/Low can better represent where the fight occurred intrabar.
- VWAP can be useful for “fair price” anchoring in active markets.
────────────────────────────────────────────────────────────
Style system (theme, palette, signed logic)
This script is built to look good and stay readable on busy charts.
Themes
- BackQuant, Classic, Ice, Fire, Mono, Custom
Palette Mode
- Solid , one consistent color
- Heatmap , intensity increases with magnitude
- Single Color Adaptive , adapts to chart background for clarity
Side Coloring
- Signed , positive and negative events can use different ramps
- Unsigned , magnitude-only coloring
Negative theme handling:
- Auto (mirrors your chosen theme),
- Invert (flips the ramp),
- Custom (fully user-defined negative palette).
What this gives you:
- You can run a clean “mono” look for professional charts.
- Or a high-contrast heatmap for fast scanning.
- Or fully custom branding colors for BackQuant-style presentation.
────────────────────────────────────────────────────────────
Labels (what’s inside the label)
When labels are enabled, the script can display:
- OI , the aggregated OI value
- OI + Norm , OI plus normalized strength
- Norm Only , just the normalized strength
- Src + Norm , the selected source value (Delta, Raw, %) plus normalized strength
You can also control:
- Left/Center/Right label alignment
- Number formatting style (Raw, Compact, Volume format)
Best practice:
- Use “Src + Norm” when you want both the raw event size and its rarity.
- Use “Norm Only” when you want a clean, minimal chart.
────────────────────────────────────────────────────────────
Levels and object limits (performance and cleanliness)
Because this script draws objects, it includes a hard cleanup system:
- You set Max Levels / Labels to control chart clutter.
- The script deletes older lines/labels when the limit is exceeded.
This is critical if you trade lower timeframes, where OI events can trigger frequently.
────────────────────────────────────────────────────────────
How to interpret the signals
What a large bubble usually means:
- A statistically large positioning change relative to recent history.
- This can represent fresh leverage entering, forced liquidations, or aggressive de-risking, depending on direction and context.
How to use levels:
- Treat them as “attention levels”, not automatic entries.
- Combine them with structure and liquidity tools:
- If price revisits an OI level and shows rejection, it often confirms that level mattered.
- If price slices through with no reaction, it often indicates the OI event was transitional, not defended.
Common setups:
- Clustered extreme bubbles near a breakout zone, then retest later.
- Extreme negative event at capitulation low, followed by structure flip.
- Extreme positive build into resistance, then unwind and mean reversion.
Also, please check out @NoveltyTrade for the OI Aggregation logic & pulling the data source!
Here is the original script:
Seasonality Table: % Move by Day x Month (Open vs Prev Close)Short description
A compact seasonality heatmap that shows the average daily open vs previous session close move for each calendar day (1–31) across months (Jan–Dec).
What it does
This indicator builds a Day × Month table where each cell displays the historical average of:
(Open/Close-1) -1 x 100
In other words: how the market typically “opened” relative to the prior day’s close, grouped by day of month and month.
How to read it
Rows = Day of month (1–31)
Columns = Months (Jan–Dec)
Cell value = average percentage move (signed format like +0.23% or -0.33%)
Heatmap = stronger color intensity indicates larger absolute average moves
Today highlight = the current calendar day cell is visually highlighted for fast context
Key settings
Reference timeframe (Daily): uses daily session data as the source of truth
Decimals / Signed formatting: control numeric display
Theme controls: fully customizable colors for positive/negative/neutral cells, headers, labels, and text
Font sizes: independently adjust header/labels/values
Heatmap scaling: set “max abs (%)” to match the volatility of the instrument
Notes / limitations
The indicator depends on the historical data available on TradingView for the selected
symbol and timeframe.
This is a statistical visualization tool. It does not predict future returns and does not generate trade signals.
Disclaimer
This script is for educational and informational purposes only and is not financial advice. Trading involves risk. Always do your own research and use proper risk management.
GraphLibrary "Graph"
Library to collect data and draw scatterplot and heatmap as graph
method init(this)
Initialise Quadrant Data
Namespace types: Quadrant
Parameters:
this (Quadrant) : Quadrant object that needs to be initialised
Returns: current Quadrant object
method init(this)
Initialise Graph Data
Namespace types: Graph
Parameters:
this (Graph) : Graph object that needs to be initialised with 4 Quadrants
Returns: current Graph object
method add(this, data)
Add coordinates to graph
Namespace types: Graph
Parameters:
this (Graph) : Graph object
data (Coordinate) : Coordinates containing x, y data
Returns: current Graph object
method calculate(this)
Calculation required for plotting the graph
Namespace types: Graph
Parameters:
this (Graph) : Graph object
Returns: current Graph object
method paint(this)
Draw graph
Namespace types: Graph
Parameters:
this (Graph) : Graph object
Returns: current Graph object
Coordinate
Coordinates of sample data
Fields:
xValue (series float) : x value of the sample data
yValue (series float) : y value of the sample data
Quadrant
Data belonging to particular quadrant
Fields:
coordinates (array) : Coordinates present in given quadrant
GraphProperties
Properties of Graph that needs to be drawn
Fields:
rows (series int) : Number of rows (y values) in each quadrant
columns (series int) : number of columns (x values) in each quadrant
graphtype (series GraphType) : Type of graph - scatterplot or heatmap
plotColor (series color) : color of plots or heatmap
plotSize (series string) : size of cells in the table
plotchar (series string) : Character to be printed for display of scatterplot
outliers (series int) : Excude the outlier percent of data from calculating the min and max
position (series string) : Table position
bgColor (series color) : graph background color
PlotRange
Range of a plot in terms of x and y values and the number of data points that fall within the Range
Fields:
minX (series float) : min range of X value
maxX (series float) : max range of X value
minY (series float) : min range of Y value
maxY (series float) : max range of Y value
count (series int) : number of samples in the range
Graph
Graph data and properties
Fields:
properties (GraphProperties) : Graph Properties object associated
quadrants (array) : Array containing 4 quadrant data
plotRanges (matrix) : range and count for each cell
xArray (array) : array of x values
yArray (array) : arrray of y values
Cobra's CryptoMarket VisualizerCobra's Crypto Market Screener is designed to provide a comprehensive overview of the top 40 marketcap cryptocurrencies in a table\heatmap format. This indicator incorporates essential metrics such as Beta, Alpha, Sharpe Ratio, Sortino Ratio, Omega Ratio, Z-Score, and Average Daily Range (ADR). The table utilizes cell coloring resembling a heatmap, allowing for quick visual analysis and comparison of multiple cryptocurrencies.
The indicator also includes a shortened explanation tooltip of each metric when hovering over it's respected cell. I shall elaborate on each here for anyone interested.
Metric Descriptions:
1. Beta: measures the sensitivity of an asset's returns to the overall market returns. It indicates how much the asset's price is likely to move in relation to a benchmark index. A beta of 1 suggests the asset moves in line with the market, while a beta greater than 1 implies the asset is more volatile, and a beta less than 1 suggests lower volatility.
2. Alpha: is a measure of the excess return generated by an investment compared to its expected return, given its risk (as indicated by its beta). It assesses the performance of an investment after adjusting for market risk. Positive alpha indicates outperformance, while negative alpha suggests underperformance.
3. Sharpe Ratio: measures the risk-adjusted return of an investment or portfolio. It evaluates the excess return earned per unit of risk taken. A higher Sharpe ratio indicates better risk-adjusted performance, as it reflects a higher return for each unit of volatility or risk.
4. Sortino Ratio: is a risk-adjusted measure similar to the Sharpe ratio but focuses only on downside risk. It considers the excess return per unit of downside volatility. The Sortino ratio emphasizes the risk associated with below-target returns and is particularly useful for assessing investments with asymmetric risk profiles.
5. Omega Ratio: measures the ratio of the cumulative average positive returns to the cumulative average negative returns. It assesses the reward-to-risk ratio by considering both upside and downside performance. A higher Omega ratio indicates a higher reward relative to the risk taken.
6. Z-Score: is a statistical measure that represents the number of standard deviations a data point is from the mean of a dataset. In finance, the Z-score is commonly used to assess the financial health or risk of a company. It quantifies the distance of a company's financial ratios from the average and provides insight into its relative position.
7. Average Daily Range: ADR represents the average range of price movement of an asset during a trading day. It measures the average difference between the high and low prices over a specific period. Traders use ADR to gauge the potential price range within which an asset might fluctuate during a typical trading session.
Utility:
Comprehensive Overview: The indicator allows for monitoring up to 40 cryptocurrencies simultaneously, providing a consolidated view of essential metrics in a single table.
Efficient Comparison: The heatmap-like coloring of the cells enables easy visual comparison of different cryptocurrencies, helping identify relative strengths and weaknesses.
Risk Assessment: Metrics such as Beta, Alpha, Sharpe Ratio, Sortino Ratio, and Omega Ratio offer insights into the risk associated with each cryptocurrency, aiding risk assessment and portfolio management decisions.
Performance Evaluation: The Alpha, Sharpe Ratio, and Sortino Ratio provide measures of a cryptocurrency's performance adjusted for risk. This helps assess investment performance over time and across different assets.
Market Analysis: By considering the Z-Score and Average Daily Range (ADR), traders can evaluate the financial health and potential price volatility of cryptocurrencies, aiding in trade selection and risk management.
Features:
Reference period optimization, alpha and ADR in particular
Source calculation
Table sizing and positioning options to fit the user's screen size.
Tooltips
Important Notes -
1. The Sharpe, Sortino and Omega ratios cell coloring threshold might be subjective, I did the best I can to gauge the median value of each to provide more accurate coloring sentiment, it may change in the future.
The median values are : Sharpe -1, Sortino - 1.5, Omega - 20.
2. Limitations - Some cryptos have a Z-Score value of NaN due to their short lifetime, I tried to overcome this issue as with the rest of the metrics as best I can. Moreover, it limits the time horizon for replay mode to somewhere around Q3 of 2021 and that's with using the split option of the top half, to remain with the older cryptos.
3. For the beginner Pine enthusiasts, I recommend scimming through the script as it serves as a prime example of using key features, to name a few : Arrays, User Defined Functions, User Defined Types, For loops, Switches and Tables.
4. Beta and Alpha's benchmark instrument is BTC, due to cryptos volatility I saw no reason to use SPY or any other asset for that matter.
Volume Profile Volume Delta OI Delta [Kioseff Trading]Hello!
This script serves to distinguish volume delta for any asset and open interest delta for Binance perpetual futures.
The image above provides further explanation of functionality and color correspondence.
The image above shows the indicator calculating volume at each tick level and displaying the metric.
The label color outline (neon effect) is configurable; the image above is absent the feature.
The image above shows Open Interest (OI) Delta calculated - similar to how the script calculates volume delta - for a Binance Perpetual Future pair.
This feature only works for Binance Futures pairs; the script will not load when trying to calculate OI Delta on other assets.
Additionally, a heatmap is displayable should you configure the indicator to calculate it.
The image above shows a heatmap using volume delta calculations.
The image above shows a heatmap using OI delta calculations.
Of course, these calculations - when absent requisite data - require some assumptions to better replicate calculations with access to requisite data.
The indicator assumes a 60/40 split when a tick level is traded at and only one metric - "buy volume" or "sell volume" is recorded. This means there shouldn't be any levels recorded where "buy volume" is greater than 0 and "sell volume" equals 0 and vice versa. While this assumption was performed arbitrarily, it may help better replicate volume delta and OI delta calculations seen on other charting platforms.
This option is configurable; you can select to have the script not assume a 60/40 split and instead record volume "as is" at the corresponding tick level.
The script also divides volume and open interest if a one-minute bar violates multiple tick levels. The volume or open interest generated on the one-minute bar will be divided by the number of tick levels it exceeds. The results are, subsequently, appended to the violated tick levels.
Further, the script can be set to recalculate after a user-defined time threshold is exceeded. You can also define the percentage or tick distance between levels.
Also, it'd be great if this indicator can nicely replicate volume delta indicators on other charting platforms. If you've any ideas on how price action can be used to better assume volume at the corresponding price area please let me know!
Thank you (:






















