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.
Cerca negli script per "国泰黄金ETF联接C相关行业指数的最新政策"
Contrarian with 5 Levels5 Levels application was inspired and adapted from Predictive Ranges indicator developed by Lux Algo. So much credit to their work.
Indicator Description: Contrarian with 5 Levels
Overview
The "Contrarian with 5 Levels" indicator is a powerful tool designed for traders seeking to identify potential reversal points in the market by combining contrarian trading principles with dynamic support and resistance levels. This indicator overlays a Simple Moving Average (SMA) shadow and five adaptive price levels, integrating Institutional Concepts of Structure (ICT) such as Break of Structure (BOS) and Market Structure Shift (MSS) to provide clear buy and sell signals. It is ideal for traders looking to capitalize on overextended price movements, particularly on the daily timeframe, though it is adaptable to other timeframes with proper testing.
How It Works
The indicator operates on two core components:
Contrarian SMA Shadow: A shaded region between the SMA of highs and lows (default length: 100) acts as a dynamic zone to identify overbought or oversold conditions. When the price moves significantly outside this shadow, it signals potential exhaustion, aligning with contrarian trading principles.
Five Adaptive Levels: Using a modified ATR-based calculation, the indicator plots five key levels (two resistance, one average, and two support) that adjust dynamically to market volatility. These levels serve as critical zones for potential reversals.
ICT Structure Analysis: The indicator incorporates BOS and MSS logic to detect shifts in market structure, plotting bullish and bearish breaks with customizable colors for clarity.
Buy and sell signals are generated when the price crosses key levels while outside the SMA shadow, indicating potential reversal opportunities. The signals are visualized as small circles above (sell) or below (buy) the price bars, making them easy to interpret.
Mathematical Concepts
SMA Shadow: The indicator calculates the SMA of the highest highs and lowest lows over a user-defined period (default: 100). This creates a dynamic range that highlights extreme price movements, which contrarian traders often target for reversals.
Five Levels Calculation: The five levels are derived using a volatility-adjusted formula based on the Average True Range (ATR). The average level (central pivot) is calculated as a smoothed price, with two upper (resistance) and two lower (support) levels offset by a multiple of the ATR (default multiplier: 6.0). This adaptive approach ensures the levels remain relevant across varying market conditions.
ICT BOS/MSS Logic: The indicator identifies pivot highs and lows on a user-defined timeframe (default: daily) to detect structural breaks. A BOS occurs when the price breaks a prior pivot high (bullish) or low (bearish), while an MSS signals a shift in market direction, providing context for potential reversals.
Entry and Exit Rules
Buy Signal (Blue Dot Below Bar): Triggered when the closing price is below both the SMA shadow (smaLow) and the average level (avg), and the price crosses under either the first or second support level (prS1 or prS2). This suggests the market may be oversold, indicating a potential reversal upward.
Sell Signal (White Dot Above Bar): Triggered when the closing price is above both the SMA shadow (smaHigh) and the average level (avg), and the price crosses over either the first or second resistance level (prR1 or prR2). This suggests the market may be overbought, indicating a potential reversal downward.
Recommended Usage
This indicator is optimized for the daily timeframe, where it has been designed to capture significant reversal opportunities in trending or ranging markets. However, it can be adapted to other timeframes (e.g., 1H, 4H, 15M) with proper testing of settings such as SMA length, ATR multiplier, and structure timeframe. Users are encouraged to backtest and optimize parameters to suit their trading style and asset class.
Customization Options
SMA Length: Adjust the SMA period (default: 100) to control the sensitivity of the shadow.
Five Levels Length and Multiplier: Modify the length (default: 200) and ATR multiplier (default: 6.0) to fine-tune the support/resistance levels.
Timeframe Settings: Set separate timeframes for structure analysis and five levels to align with your trading strategy.
Color and Signal Display: Customize colors for BOS/MSS lines and toggle buy/sell signals on or off for a cleaner chart.
Why Use This Indicator?
The "Contrarian with 5 Levels" indicator combines the power of contrarian trading with dynamic levels and market structure analysis, offering a unique perspective for identifying high-probability reversal setups. Its intuitive design, customizable settings, and clear signal visualization make it suitable for both novice and experienced traders. Whether you're trading forex, stocks, or cryptocurrencies, this indicator provides a robust framework for spotting potential turning points in the market.
We hope you find the "Contrarian with 5 Levels" indicator a valuable addition to your trading toolkit! Happy trading!
Please leave feedback in the comments section.
Universal Sentiment Oscillator with Trade RecommendationsUniversal Sentiment Oscillator & Strategy Guide
Summary
This all-in-one indicator is designed to be a comprehensive co-pilot for your trading journey. It moves beyond simple buy/sell signals by analyzing the underlying market sentiment and providing a dynamic, risk-assessed guide of potential trading strategies. Whether you're a novice learning the ropes or an expert seeking confirmation, this tool provides a structured framework for making smarter, more informed decisions in stocks, options, and futures.
How It Works
The core of the indicator is the Sentiment Oscillator, which calculates a score from -5 (Extremely Bearish) to +5 (Extremely Bullish) on every bar. This isn't just a single measurement; it's a weighted aggregate of several key technical conditions:
Trend Analysis: Price position relative to the 20, 50, and 200 EMAs.
Momentum Analysis: The current RSI value.
Hybrid Analysis: The state of the MACD and its signal line.
These factors are intelligently combined and normalized to produce a single, intuitive sentiment score, giving you an at-a-glance understanding of the market's pulse.
Core Features
Dynamic Trade Recommendation Table:
The informational heart of the indicator. This on-chart table provides a list of potential trades perfectly aligned with the current sentiment score.
Risk-Ranked Strategies:
All suggested trades are logically ordered by risk, helping you quickly identify strategies that match your comfort level.
Adjusted Trade Suggestions:
The indicator analyzes sentiment momentum (the score vs. its signal line) to provide proactive, forward-looking trade ideas based on where the market might be heading next.
Customizable Trading Styles:
Tell the indicator if you are a Conservative, Neutral, or Aggressive trader, and the "Adjusted Trade Suggestion" will automatically tailor its recommendations to your personal risk preference.
Context-Aware Futures Mode:
When viewing a futures contract, enable this mode to switch all recommendations from stock/options to futures-specific actions (e.g., "Cautious Long," "Monitor Range").
Predictive Sentiment Cone:
Visualize the potential short-term path of sentiment based on current momentum, helping you anticipate future conditions.
Fully Customizable:
Every parameter—from EMA lengths to trade filters—can be adjusted, allowing you to fine-tune the indicator to your exact specifications.
How to Use This Indicator
This tool is flexible and can be integrated into many trading systems. Here is a powerful, professional approach:
Top-Down Analysis (for Swing or Position Trading):
Establish the Trend: Start on the higher timeframes (Monthly, Weekly, Daily). Use the oscillator's color and score to define the dominant, long-term market sentiment. You only want to look for trades that align with this macro trend.
Refine the Entry: Drop down to the medium timeframes (4-Hour, 1-Hour). Wait for the sentiment on these charts to come into alignment with the higher-timeframe trend. This pullback or consolidation is your "zone of interest."
Pinpoint the Execution: Move to a lower timeframe (e.g., 15-Minute). Use the Adjusted Trade Suggestion and Sentiment Momentum to find a precise entry as momentum begins to shift back in the direction of the primary trend. You can set alerts on the oscillator's zero-line for early warnings of a sentiment shift.
As a Confirmation Tool: If you have an existing trade idea, use the indicator to validate it. Does the sentiment score align with your bullish or bearish thesis? Does the momentum confirm that now is a good time to enter?
As an Idea Generation Tool: Unsure what to trade? Browse different assets and let the indicator's "Primary Trades" and "Adjusted Trade Suggestion" present you with a list of risk-assessed ideas that you can then investigate further.
Disclaimer: This is an analysis tool and should not be considered financial advice. All forms of trading involve substantial risk. You should not trade with money you cannot afford to lose. Always perform your own due diligence and use this indicator as one component of a complete trading plan.
Share SizePurpose: The "Share Size" indicator is a powerful risk management tool designed to help traders quickly determine appropriate share/contract sizes based on their predefined risk per trade and the current market's volatility (measured by ATR). It calculates potential dollar differences from recent highs/lows and translates them into a recommended share/contract size, accounting for a user-defined ATR-based offset. This helps you maintain consistent risk exposure across different instruments and market conditions.
How It Works: At its core, the indicator aims to answer the question: "How many shares/contracts can I trade to keep my dollar risk within limits if my stop loss is placed at a recent high or low, plus an ATR-based buffer?"
Price Difference Calculation: It first calculates the dollar difference between the current close price and the high and low of the current bar (Now) and the previous 5 bars (1 to 5).
Tick Size & Value Conversion: These price differences are then converted into dollar values using the instrument's specific tickSize and tickValue. You can select common futures contracts (MNQ, MES, MGC, MCL), a generic "Stock" setting, or define custom values.
ATR Offset: An Average True Range (ATR) based offset is added to these dollar differences. This offset acts as a buffer, simulating a stop loss placed beyond the immediate high/low, accounting for market noise or volatility.
Risk-Based Share Size: Finally, using your Default Risk ($) input, the indicator calculates how many shares/contracts you can take for each of the 6 high/low scenarios (current bar, 5 previous bars) to ensure your dollar risk per trade remains constant.
Dynamic Table: All these calculations are presented in a clear, real-time table at the bottom-left of your chart. The table dynamically adjusts its "Label" to show the selected symbol preset, making it easy to see which instrument's settings are currently being used. The "Shares" rows indicate the maximum shares/contracts you can trade for a given risk and stop placement. The cells corresponding to the largest dollar difference (and thus smallest share size) for both high and low scenarios are highlighted, drawing your attention to the most conservative entry points.
Key Benefits:
Consistent Risk: Helps maintain a consistent dollar risk per trade, regardless of the instrument or its current price/volatility.
Dynamic Sizing: Automatically adjusts share/contract size based on market volatility and your chosen stop placement.
Quick Reference: Provides a real-time, easy-to-read table directly on your chart, eliminating manual calculations.
Informed Decision Making: Assists in quickly assessing trade opportunities and potential position sizes.
Setup Parameters (Inputs)
When you add the "Share Size" indicator to your chart, you'll see a settings dialog with the following parameters:
1. Symbol Preset:
Purpose: This is the primary setting to define the tick size and value for your chosen trading instrument.
Options:
MNQ (Micro Nasdaq 100 Futures)
MES (Micro E-mini S&P 500 Futures)
MGC (Micro Gold Futures)
MCL (Micro Crude Oil Futures)
Stock (Generic stock setting, with tick size/value of 0.01)
Custom (Allows you to manually input tick size and value)
Default: MNQ
Importance: Crucial for accurate dollar calculations. Ensure this matches the instrument you are trading.
2. Tick Size (Manual Override):
Purpose: Only used if Symbol Preset is set to Custom. This defines the smallest price increment for your instrument.
Type: Float
Default: 0.25
Hidden: This input is hidden (display=display.none) unless "Custom" is selected. You might need to change display=display.none to display=display.inline in the code if you want to see and adjust it directly in the settings for "Custom" mode.
3. Tick Value (Manual Override):
Purpose: Only used if Symbol Preset is set to Custom. This defines the dollar value of one tickSize increment.
Type: Float
Default: 0.50
Hidden: This input is hidden (display=display.none) unless "Custom" is selected. Similar to Tick Size, you might need to adjust its display property if you want it visible.
4. Default Risk ($):
Purpose: This is your maximum desired dollar risk per trade. All share size calculations will be based on this value.
Type: Float
Default: 50.0
Hidden: This input is hidden (display=display.none). It's a critical setting, so consider making it visible by changing display=display.none to display=display.inline in the code if you want users to easily adjust their risk.
ATR Offset Settings (Group): This group of settings allows you to fine-tune the ATR-based buffer added to your potential stop loss.
5. ATR Offset Length:
Purpose: Defines the lookback period for the Average True Range (ATR) calculation used for the offset.
Type: Integer
Default: 7
Hidden: This input is hidden (display=display.none).
6. ATR Offset Timeframe:
Purpose: Specifies the timeframe on which the ATR for the offset will be calculated. This allows you to use ATR from a higher timeframe for your stop buffer, even if your chart is on a lower timeframe.
Type: Timeframe string (e.g., "1" for 1 minute, "60" for 1 hour, "D" for Daily)
Default: "1" (1 Minute)
Hidden: This input is hidden (display=display.none).
7. ATR Offset Multiplier (x ATR):
Purpose: Multiplies the calculated ATR value to determine the final dollar offset added to your high/low price difference. A value of 1.0 means one full ATR is added. A value of 0.5 means half an ATR is added.
Type: Float
Minimum Value: 0 (no offset)
Default: 1.0
Hidden: This input is hidden (display=display.none).
Super MTF Clouds (4x3 Pairs)Overview:
This script is based on Ripster's MTF clouds, which transcends the standard moving average cloud indicator by offering a powerful and deeply customizable Multi-Timeframe (MTF) analysis. Instead of being limited to the moving averages of your current charts from the current timeframe, this tool allows you to project and visualize the trend and key support/resistance zones from up to 4 different timeframes simultaneously. User can input up to 6 different EMA values which will form 3 pairs of EMA clouds, for each of the timeframes.
The primary purpose is to provide traders with immediate confluence. By observing how price interacts with moving average clouds from higher timeframes (e.g., Hourly, Daily, Weekly), you can make more informed decisions on your active trading timeframe (e.g., 10 Minute). It's designed as a complete MTF Cloud toolkit, allowing you to display all necessary MTFs in a single script to build a comprehensive view of the market structure without having to flick to different timeframe to look for cloud positions.
Key features:
Four Independent Multi-Timeframe Slots: Each slot can be assigned any timeframe available on TradingView (e.g., D, W, M, 4H).
Three MA Pairs Per Timeframe: For each timeframe, configure up to three separate MA clouds (e.g., a 9/12 EMA pair, a 20/50 EMA pair, and a 100/200 SMA pair).
Complete Customisation: For every single moving average (24 in total), you can independently control:
MA Type: Choose between EMA or SMA.
Length: Any period you require.
Line Color: Full colour selection.
Line Thickness: Adjust the visual weight of each line.
Cloud Control: For every pair (12 in total), you can set the fill colour and transparency.
How To Use This Script:
This tool is best used for confirmation and context. Here are some practical strategies that one can adopt:
Trend Confluence: Before taking a trade based on a signal on your current timeframe, glance at the higher timeframe clouds. If you see a buy signal on the 15-minute chart and the price is currently trading above a thick, bullish Daily cloud, the probability of that trade succeeding is significantly higher. Conversely, shorting into strong HTF support is a low-probability trade.
Dynamic Support & Resistance: The edges of the higher timeframe clouds often act as powerful, dynamic levels of support and resistance. A pullback to the 4-Hour 50 EMA on your 15-minute chart can be a prime area to look for entries in the direction of the larger trend.
Gauging Market Regimes: Use the toggles in the settings to quickly switch between different views. You can have a "risk-on" view with short-term clouds and a "macro" view with weekly and monthly clouds. This helps you adapt your trading style to the current market conditions.
Key Settings:
1. Global Setting
Source For All MAs: This determines the price data point used for every single moving average calculation.
Default: hl2 (an average of the High and Low of each bar). This gives a smooth midpoint price.
Options: You can change this to Close (the most common method), Open, High, Low, or ohlc4 (an average of the open, high, low, and close), among others.
Recommendation: For most standard trend analysis, the default hl2 is the common choice.
2. The Timeframe Group Structure
The rest of the settings are organized into four identical, collapsible groups: "Timeframe 1 Settings" through "Timeframe 4 Settings". Each group acts as a self-contained control panel for one multi-timeframe view.
Within each timeframe group, you have two master controls:
Enable Timeframe: This is the main power switch for the entire group. Uncheck this box to instantly hide all three clouds and lines associated with this timeframe. This is perfect for quickly decluttering your chart or focusing on a different set of analyses.
Timeframe: This dropdown menu is the heart of the MTF feature. Here, you select the higher timeframe you want to analyse (e.g., 1D for Daily, 1W for Weekly, 4H for 4-Hour). All calculations for the three pairs within this group will be based on the timeframe you select here.
3. Pair-Specific Controls
Inside each timeframe group, there are three sections for "Pair 1", "Pair 2", and "Pair 3". These control each individual moving average cloud.
Enable Pair: Just like the master switch for the timeframe, this checkbox turns a single cloud and its two MA lines on or off.
For each pair, the settings are further broken down:
Moving Average Lines (A and B): These two rows control the two moving averages that form the cloud. 'A' is typically used for the shorter-period MA and 'B' for the longer-period one.
Type (A/B): A dropdown menu to select either EMA (Exponential Moving Average) or SMA (Simple Moving Average). EMAs react more quickly to recent price changes, while SMAs are smoother and react more slowly.
Length (A/B): The lookback period for the moving average (e.g., 21, 50, 200).
Color (A/B): Sets the specific colour of the MA line itself on your chart.
Cloud Fill Settings
Fill Color: This controls the colour of the shaded area (the "cloud") between the two moving average lines. For a consistent look, you can set this to the same colour as your shorter MA line.
Transparency: Controls how see-through the cloud is, on a scale of 0 to 100. 0 is a solid, opaque colour, while 100 is completely invisible. The default of 85 provides a light, "cloud-like" appearance that doesn't obscure the price action.
----------------------------------------------------------------------
If anything is not clear please let me know!
EWMA Volatility EstimatorThis script calculates EWMA Volatility (Exponentially Weighted Moving Average Volatility).
Commonly used model in financial risk management.
It estimates recent price volatility by applying more weight to the most recent returns, capturing volatility clustering while remaining responsive to fast market shifts.
The method uses a decay factor (λ) of 0.94, the standard value used in models like RiskMetrics, and converts the variance estimate into annualized volatility in percentage terms.
This is not a forecasting tool. It’s an estimator that reflects the magnitude of recent price moves in a statistically robust way.
It can be helpful for:
Understanding regime shifts in market behavior
Designing position sizing rules based on recent volatility
Filtering entries during high or low volatility phases
How It Works
Computes log returns of the closing price.
Squares the returns to get a proxy for variance.
Applies an exponential moving average to the squared returns using an equivalent EMA period based on λ = 0.94.
Converts the result to volatility by taking the square root and scaling to a percentage.
Key Characteristics
Backward-looking estimator
Reacts faster than standard rolling-window volatility
Smooths noise while still being sensitive to recent spikes
This script is educational and informational. It is not financial advice or a guarantee of performance. Always test any tool as part of a broader strategy before using it in live markets.
SMT DivergenceSMT Divergence Indicator
This powerful indicator identifies high-probability reversal points by detecting SMT (Smart Money Technique) divergences between two correlated assets. It spots subtle shifts in market momentum, revealing when one asset fails to confirm the price action of another—often signaling an impending trend change.
Key Features:
Inter-Market Divergence Detection: Automatically compares the price action of the main symbol with a second user-defined asset.
Identifies Key Reversals: Pinpoints both bullish and bearish SMT divergences, highlighting hidden strength in downtrends and underlying weakness in uptrends.
Customizable Pivot Detection: Allows fine-tuning of the pivot length to adjust sensitivity for different market conditions and timeframes.
Flexible Display Modes: Choose between clean 'Lines' connecting the diverging pivots or precise 'Labels' marking the exact high/low points.
Full Visual Customization: Complete control over the colors and line thickness for seamless integration with your existing chart layout.
Built-in Alerts: Stay notified of every potential opportunity with alerts for both bullish and bearish signals.
Settings:
Core Parameters:
Comparison Symbol: Select the second asset to compare against for divergence analysis (e.g., NQ1! if you are charting ES1!).
Pivot Length: Defines the number of bars to the left and right required to confirm a pivot high or low.
Visual Settings:
Display Style: Choose to visualize divergences as 'Lines' or 'Labels'.
Bearish/Bullish Color: Set custom colors for bearish and bullish divergence indicators.
Line Width: Adjust the thickness of the divergence lines for optimal visibility.
Perfect for traders who utilize inter-market analysis to confirm trade ideas. The SMT Divergence indicator provides a crucial edge by exposing non-confirmations between related assets, allowing for earlier and more confident entries into potential market reversals.
The Butterfly [theUltimator5]This is a technical analysis tool designed to automatically detect and visualize Butterfly harmonic patterns based on recent market pivot structures. This indicator uses a unique plotting and detection algorithm to find and display valid Butterfly patterns on the chart.
The indicator works in real-time and historically by identifying major swing highs and lows (pivots) based on a user-defined ZigZag length. It then evaluates whether the most recent price structure conforms to the ideal proportions of a bullish or bearish Butterfly pattern. If the ratios between price legs XA, AB, BC, and projected CD meet defined tolerances, the pattern is plotted on the chart along with a projected D point for potential reversal.
Key Features:
Automatic Pivot Detection: The script analyzes recent price action to construct a ZigZag pattern, identifying swing points as potential X, A, B, and C coordinates.
Butterfly Pattern Validation: The pattern is validated against traditional Fibonacci ratios:
--AB should be approximately 78.6% of XA.
--BC must lie between 38.2% and 88.6% of AB.
--CD is projected as a multiple of BC, with user control over the ratio (e.g., 1.618–2.24).
Bullish and Bearish Recognition: The pattern logic detects both bullish and bearish Butterflies, automatically adjusting plotting direction and color themes.
Custom Ratio Tolerance: Users can define how strictly the AB/XA and BC/AB legs must adhere to ideal ratios, using a percentage-based tolerance slider.
Fallback Detection Logic: If a new pattern is not identified in recent bars, the script performs a backward search on the last four pivots to find the most recent valid pattern.
Force Mode: A toggle allows users to force the drawing of a Butterfly pattern on the most recent pivot structure, regardless of whether the ideal Fibonacci rules are satisfied.
Dynamic Visualization:
--Clear labeling of X, A, B, C, and D points.
--Colored connecting lines and filled triangles to visualize structure.
--Optional table displaying key Fibonacci ratios and how close each leg is to ideal values.
Inputs:
Length: Controls the sensitivity of the ZigZag pivots. Smaller values result in more frequent pivots.
Tolerance (%): Adjustable threshold for acceptable deviation in AB/XA and BC/AB ratios.
CD Length Multiplier: Projects point D by multiplying the BC leg using a value between 1.618 and 2.24.
Force New Pattern: Overrides validation checks to display a Butterfly structure on recent pivots regardless of ratio accuracy.
Show Table: Enables a table showing calculated ratios and deviations from the ideal.
Murrey Math Lines v6Murrey Math Lines v6
This is not just another Murrey Math indicator. It's a complete, ground-up modernization of the classic concept, rebuilt with the latest Pine Script features for unparalleled performance, accuracy, and usability. While preserving the core mathematical genius of T.H. Murrey's system, this version introduces a suite of modern tools designed for today's trader.
What are Murrey Math Lines?
Murrey Math Lines (MML) are a powerful system of support and resistance based on geometric formulas developed by T.H. Murrey. As a derivation of W.D. Gann's observations, Murrey's geometry simplifies Gann's theories into a more accessible application. The core principle is that price action tends to trend and retrace in 1/8th intervals.
These intervals create a "trading octave" with distinct levels, each having its own characteristic behavior:
& - Ultimate Resistance & Support: These lines are the hardest to break. They represent the top and bottom of the expected price range and are prime areas for reversals.
- Major Pivot: This is the most significant level, offering the strongest support and resistance within the octave. Price has a high probability of stopping and reversing here.
& - Strong Pivot/Reversal: These are strong, secondary pivot points where price often struggles to pass through.
& - The Trading Range: The price tends to consolidate between these two lines about 50% of the time. A decisive break outside this range often signals the start of a new trend.
& - Weak Support/Resistance: These levels are weaker, but when price moves too quickly towards them, they can act as initial stopping points or areas for a minor reversal.
& - Extended Octave: These lines show extreme overbought and oversold conditions beyond the primary 0/8 to 8/8 octave.
Modern Enhancements in This Version
Session-Locked Precision: Anchor the Murrey Lines to the start of a specific trading session (e.g., NYSE open). The levels remain constant for the entire session, providing a stable and reliable framework for your daily analysis.
Visual Trading & Reversal Zones: Instead of just lines, this indicator can fill the key trading range (3/8 to 5/8) and reversal zones (0/8-1/8 & 7/8-8/8) with color, giving you an instant visual reference of market sentiment.
Dynamic "Closest Price" Labels: Declutter your chart! The indicator can intelligently display only the label for the Murrey level closest to the current price, keeping your view clean while providing critical information at a glance.
Integrated Alert System: Never miss a key level touch again. Set up alerts for when the price approaches major lines, the trading range, or all lines, customized to your trading style.
Advanced Pine Script Engine: Built on a modern codebase using User-Defined Types and dynamic drawing objects (line, box, label). This ensures the indicator is fast, efficient, and non-repainting, even on lower timeframes.
Intuitive User Interface: Settings are neatly organized into collapsible groups with clear tooltips, making it incredibly easy to customize every aspect of the indicator, from calculation parameters to colors.
A Note on Accuracy
Some of the other Murrey Math indicators on TradingView use different formulas and therefore produce varying results. This version has been carefully checked against MML indicators on other professional platforms to ensure its calculations are accurate and reliable.
Credits
This indicator is a complete overhaul and modernization of the original "MM Lines " script. Full credit for the original calculation logic and concept goes to its author, JRL_6.
Normalized Volume & True RangeThis indicator solves a fundamental challenge that traders face when trying to analyze volume and volatility together on their charts. Traditionally, volume and price volatility exist on completely different scales, making direct comparison nearly impossible. Volume might range from thousands to millions of shares, while volatility percentages typically stay within single digits. This indicator brings both measurements onto a unified scale from 0 to 100 percent, allowing you to see their relationship clearly for the first time.
The core innovation lies in the normalization process, which automatically calculates appropriate scaling factors for both volume and volatility based on their historical statistical properties. Rather than using arbitrary fixed scales that might work for one stock but fail for another, this system adapts to each instrument's unique characteristics. The indicator establishes baseline averages for both measurements and then uses statistical analysis to determine reasonable maximum values, ensuring that extreme outliers don't distort the overall picture.
You can choose from three different volatility calculation methods depending on your analytical preferences. The "Body" option measures the distance between opening and closing prices, focusing on the actual trading range that matters most for price action. The "High/Low" method captures the full daily range including wicks and shadows, giving you a complete picture of intraday volatility. The "Close/Close" approach compares consecutive closing prices, which can be particularly useful for identifying gaps and overnight price movements.
The indicator displays volume as colored columns that match your candlestick colors, making it intuitive to see whether high volume occurred during up moves or down moves. Volatility appears as a gray histogram, providing a clean background reference that doesn't interfere with volume interpretation. Both measurements are clipped at 100 percent, which represents their calculated maximum normal values, so any readings near this level indicate unusually high activity in either volume or volatility.
The baseline reference line shows you what "normal" volume looks like for the current instrument, helping you quickly identify when trading activity is above or below average. Optional moving averages for both volume and volatility are available if you prefer smoothed trend analysis over raw daily values. The entire system updates in real-time as new data arrives, continuously refining its statistical calculations to maintain accuracy as market conditions evolve.
This two-in-one indicator provides a straightforward way to examine how price movements relate to trading volume by presenting both measurements on the same normalized scale, making it easier to spot patterns and relationships that might otherwise remain hidden when analyzing these metrics separately.
LRHA Trend Shift DetectorLRHA Trend Shift Detector (TSD)
The LRHA Trend Shift Detector is an advanced momentum exhaustion indicator that identifies potential trend reversals and changes by analyzing Linear Regression Heikin Ashi (LRHA) candle patterns. TSD focuses on detecting when strong directional moves begin to lose momentum.
🔬 Methodology
The indicator employs a three-stage detection process:
LRHA Calculation: Applies linear regression smoothing to Heikin Ashi candles, creating ultra-smooth trend-following candles that filter out market noise
Extended Move Detection: Identifies sustained directional moves by counting consecutive bullish or bearish LRHA candles
Momentum Exhaustion Analysis: Monitors for significant changes in candle size compared to recent averages
When an extended move shows clear signs of momentum exhaustion, the indicator signals a potential trend shift with red dots plotted above or below your candlesticks.
⚙️ Parameters
Core Settings
LRHA Length (11): Linear regression period for smoothing calculations. Lower values = more responsive, higher values = smoother trends.
Minimum Trend Bars (4): Consecutive candles required to establish an "extended move." Higher number detects longer term trend changes.
Exhaustion Bars (3): Number of consecutively smaller candles needed to signal exhaustion. Lower is more sensitive.
Size Reduction Threshold (40%): Percentage decrease in candle size to qualify as "exhaustion." Lower is more sensitive.
Trend Trading
Pullback Entries: Identify exhaustion in counter-trend moves for trend continuation
Exit Strategy: Recognize when main trend momentum is fading
Position Sizing: Reduce size when seeing exhaustion in your direction
🎛️ Optimization Tips
For More Signals (Aggressive)
- Decrease LRHA Length (7-9)
- Reduce Minimum Trend Bars (2-3)
- Lower Size Reduction Threshold (25-35%)
For Higher Quality (Conservative)
- Increase LRHA Length (13-18)
- Raise Minimum Trend Bars (5-6)
- Higher Size Reduction Threshold (45-55%)
⚠️ Important Notes⚠️
- **Not a Complete Strategy**: Use as confluence with other analysis methods
- **Market Context Matters**: Consider overall trend direction and key support/resistance levels
- **Risk Management Essential**: Always use proper position sizing and stop losses
- **Backtest First**: Optimize parameters for your specific trading style and instruments
VWAP %BVWAP %B - Volume Weighted Average Price Percent B
The VWAP %B indicator combines the reliability of VWAP (Volume Weighted Average Price) with the analytical power of %B oscillators, similar to Bollinger Bands %B but using volume-weighted statistics.
## How It Works
This indicator calculates where the current price sits relative to VWAP-based standard deviation bands, expressed as a percentage from 0 to 1:
• **VWAP Calculation**: Uses volume-weighted average price as the center line
• **Standard Deviation Bands**: Creates upper and lower bands using standard deviation around VWAP
• **%B Formula**: %B = (Price - Lower Band) / (Upper Band - Lower Band)
## Key Levels & Interpretation
• **Above 1.0**: Price is trading above the upper VWAP band (strong bullish momentum)
• **0.8 - 1.0**: Overbought territory, potential resistance
• **0.5**: Price exactly at VWAP (equilibrium)
• **0.2 - 0.0**: Oversold territory, potential support
• **Below 0.0**: Price is trading below the lower VWAP band (strong bearish momentum)
## Trading Applications
**Trend Following**: During strong trends, breaks above 1.0 or below 0.0 often signal continuation rather than reversal.
**Mean Reversion**: In ranging markets, extreme readings (>0.8 or <0.2) may indicate potential reversal points.
**Volume Context**: Unlike traditional %B, this incorporates volume weighting, making it more reliable during high-volume periods.
## Parameters
• **Length (20)**: Period for standard deviation calculation
• **Standard Deviation Multiplier (2.0)**: Controls band width
• **Source (close)**: Price input for calculations
## Visual Features
• Reference lines at key levels (0, 0.2, 0.5, 0.8, 1.0)
• Background highlighting for extreme breaks
• Real-time values table
• Clean oscillator format below price chart
Perfect for intraday traders and swing traders who want to combine volume analysis with momentum oscillators.
ALEX - ATR Extensions + ADR + TableALEX - ATR Extensions + ADR + Table
Overview
The ALEX ATR Extensions indicator is a comprehensive volatility and momentum analysis tool that combines Average True Range (ATR), Average Daily Range (ADR), and moving average distance calculations in a single, customizable display. This indicator helps traders assess current price action relative to historical volatility and key moving averages, providing crucial context for risk management and trade planning.
Key Features
Multi-Metric Analysis
- ATR Percentage: Current ATR as a percentage of price for volatility assessment
- ADR Percentage: Average Daily Range as a percentage for typical daily movement
- Low of Day Distance: Distance from current price to daily low
- Moving Average Distance: ATR-normalized distance from 21 and 50 period moving averages
Flexible Moving Average Options
- Configurable MA Types: Choose between EMA or SMA for both 21 and 50 period averages
- Customizable Periods: Adjust moving average lengths to suit your trading style
- Daily Timeframe Data: Uses daily moving averages regardless of chart timeframe
ATR Extension Levels
- Dynamic Price Targets: Calculate extension levels based on ATR multiples from moving averages
- Visual Reference Lines: Optional overlay lines showing ATR extension targets
- Customizable Multipliers: Adjust ATR multipliers for different risk/reward scenarios
Smart Visual Alerts
- Color-Coded Distance Metrics: Automatic color changes based on distance thresholds
- Symbol Plotting: Customizable chart symbols when distance thresholds are exceeded
- Threshold-Based Alerts: Visual cues when price reaches significant ATR distances
Comprehensive Data Table
- Real-Time Metrics: Live updating table with all key measurements
- Customizable Display: Toggle individual metrics on/off based on preference
- Professional Styling: Adjustable colors, fonts, and transparency
How to Use
Volatility Assessment
- High ATR%: Indicates elevated volatility, larger position sizing considerations
- Low ATR%: Suggests compressed volatility, potential for expansion
- ADR% Comparison: Compare current day's range to historical average
Moving Average Analysis
- ATR Distance 21/50: Normalized distance showing how extended price is from key levels
- Positive Values: Price above moving average (bullish positioning)
- Negative Values: Price below moving average (bearish positioning)
- Color Changes: Automatic alerts when reaching threshold levels
Extension Target Planning
- ATR Extension Lines: Visual price targets based on volatility-adjusted projections
- Risk/Reward Planning: Use extension levels for profit target placement
- Breakout Confirmation: Extension levels can confirm breakout validity
Symbol Alert System
- Chart Symbols: Automatic plotting when distance thresholds are breached
- Customizable Triggers: Set your own threshold levels for alerts
- Visual Scanning: Quick identification of extended conditions across multiple charts
Settings
Display Controls
- Show ADR%: Toggle average daily range percentage display
- Show ATR%: Toggle average true range percentage display
- Show LoD Distance: Toggle low of day distance calculation
- Show LoD Price: Toggle actual low of day price display
- Show ATR Distance from 21/50 DMA: Toggle moving average distance metrics
- Show 21/50 DMA Price: Toggle actual moving average price display
- Show ATR Extension Levels: Toggle extension target display in table
Moving Average Configuration
- 21/50 DMA Type: Choose between EMA or SMA calculation methods
- 21/50 DMA Period: Customize moving average lengths
- ADR/ATR Length: Adjust calculation periods for range measurements
Color Thresholds
- Threshold Levels: Set distance levels for color changes (default 2.0 and 5.0)
- Custom Colors: Choose colors for different threshold breaches
- Separate 21/50 Settings: Independent color schemes for each moving average
Symbol Settings
- Show Char Symbol: Toggle symbol plotting for each moving average
- Custom Symbols: Choose any character for chart plotting
- Symbol Colors: Customize colors for visual distinction
- Threshold Levels: Set trigger points for symbol appearance
ATR Extension Lines
- Show Extension Lines: Toggle visual extension level lines
- ATR Multipliers: Customize extension distance (default 2.0x)
- Line Colors: Choose colors for extension level visualization
Table Customization
- Background Color: Adjust table transparency and color
- Text Color: Customize default text appearance
- Font Size: Choose from tiny to huge font options
Advanced Applications
Trend Strength Analysis
- Large ATR distances suggest strong trending moves
- Small ATR distances indicate potential consolidation or reversal zones
- Compare current readings to recent historical ranges
Risk Management
- Use ATR% for position sizing calculations
- Extension levels provide natural profit target zones
- Distance metrics help identify overextended conditions
Multi-Timeframe Context
- Apply to different timeframes for comprehensive analysis
- Daily data provides consistency across all chart intervals
- Combine with weekly/monthly analysis for broader context
Market Regime Identification
- High volatility periods: Increased ATR% readings
- Low volatility periods: Compressed ATR% readings
- Trending markets: Sustained high distance readings
- Consolidating markets: Low distance readings with frequent color changes
Best Practices
Volatility-Adjusted Trading
- Increase position sizes during low volatility periods
- Reduce position sizes during high volatility periods
- Use ATR% for stop-loss placement relative to normal market movement
Extension Level Usage
- Primary targets: 1.5-2.0x ATR extensions
- Secondary targets: 2.5-3.0x ATR extensions
- Avoid chasing prices beyond 3x ATR extensions
Threshold Optimization
- Backtest different threshold levels for your trading style
- Consider market conditions when setting alert levels
- Adjust thresholds based on instrument volatility characteristics
Integration Strategies
- Combine with momentum indicators for confirmation
- Use alongside support/resistance levels
- Incorporate into systematic trading approaches
Technical Specifications
- Compatible with Pine Script v6
- Uses daily timeframe data for consistency
- Optimized for real-time performance
- Works on all chart types and timeframes
- Supports all tradeable instruments
Ideal For
- Swing traders using daily charts
- Position traders seeking volatility context
- Day traders needing intraday reference levels
- Risk managers requiring volatility metrics
- Systematic traders building rule-based strategies
Disclaimer
This indicator is for educational and informational purposes only. It should not be used as the sole basis for trading decisions. Always combine with other forms of analysis, proper risk management techniques, and consider your individual trading plan and risk tolerance. Past performance does not guarantee future results.
Compatible with Pine Script v6 | Optimized for daily timeframe analysis | Works across all markets and instruments
21DMA Structure Counter (EMA/SMA Option)21DMA Structure Counter (EMA/SMA Option)
Overview
The 21DMA Structure Counter is an advanced technical indicator that tracks consecutive periods where price action remains above a 21-period moving average structure. This indicator helps traders identify momentum phases and potential trend exhaustion points using statistical analysis.
Key Features
Moving Average Structure
- Configurable MA Type: Choose between EMA (Exponential Moving Average) or SMA (Simple Moving Average)
- 21-Period Default: Optimized for the widely-watched 21-period moving average
- Triple MA Structure: Tracks high, close, and low moving averages for comprehensive analysis
Statistical Analysis
- Cycle Counting: Automatically counts consecutive periods above the MA structure
- Historical Data: Maintains up to 2,500 historical cycles (approximately 10 years of daily data)
- Z-Score Calculation: Provides statistical context using mean and standard deviation
- Multiple Standard Deviation Levels: Displays +1, +2, and +3 standard deviation thresholds
Visual Indicators
Color-Coded Bars:
- Gray: Below 10-year average
- Yellow: Between average and +1 standard deviation
- Orange: Between +1 and +2 standard deviations
- Red: Between +2 and +3 standard deviations
- Fuchsia: Above +3 standard deviations (extreme readings)
Breadth Integration
- Multiple Breadth Options: NDFI, NDTH, NDTW (NASDAQ breadth indicators), or VIX
- Background Shading: Visual alerts when breadth reaches extreme levels
- High/Low Thresholds: Customizable levels for breadth analysis
- Real-time Display: Current breadth value shown in data table
Smart Reset Logic
- High Below Structure Reset: Automatically resets count when daily high falls below the lowest MA
- Flexible Hold Period: Continues counting during temporary weakness as long as structure isn't violated
- Precise Entry/Exit: Strict criteria for starting cycles, flexible for maintaining them
How to Use
Trend Identification
- Rising Counts: Indicate sustained momentum above key moving average structure
- Extreme Readings: Z-scores above +2 or +3 suggest potential trend exhaustion
- Historical Context: Compare current cycles to 10-year statistical averages
Risk Management
- Breadth Confirmation: Use breadth shading to confirm market-wide strength/weakness
- Statistical Extremes: Exercise caution when readings reach +3 standard deviations
- Reset Signals: Pay attention to structure violations for potential trend changes
Multi-Timeframe Application
- Daily Charts: Primary timeframe for swing trading and position management
- Weekly/Monthly: Longer-term trend analysis
- Intraday: Shorter-term momentum assessment (adjust MA period accordingly)
Settings
Moving Average Options
- Type: EMA or SMA selection
- Period: Default 21 (customizable)
- Reset Days: Days below structure required for reset
Visual Customization
- Standard Deviation Lines: Toggle and customize colors for +1, +2, +3 SD
- Breadth Selection: Choose from NDFI, NDTH, NDTW, or VIX
- Threshold Levels: Set custom high/low breadth thresholds
- Table Styling: Customize text colors, background, and font size
Technical Notes
- Data Retention: Maintains 2,500 historical cycles for robust statistical analysis
- Real-time Updates: Calculations update with each new bar
- Breadth Integration: Uses security() function to pull external breadth data
- Performance Optimized: Efficient array management prevents memory issues
Best Practices
1. Combine with Price Action: Use alongside support/resistance and chart patterns
2. Monitor Breadth Divergences: Watch for breadth weakness during strong readings
3. Respect Statistical Extremes: Exercise caution at +2/+3 standard deviation levels
4. Context Matters: Consider overall market environment and sector rotation
5. Risk Management: Use appropriate position sizing, especially at extreme readings
Disclaimer
This indicator is for educational and informational purposes only. It should not be used as the sole basis for trading decisions. Always combine with other forms of analysis and proper risk management techniques.
Compatible with Pine Script v6 | Optimized for daily timeframes | Best used on major indices and liquid stocks
Volume Profile - EdzVolume Profile – Edz is a lightweight indicator that identifies the top high-volume price levels over a recent range of candles, using customizable price binning (priceStep) and lookback length. It highlights the top N volume clusters with horizontal lines, labels, and strength-based star ratings (★–★★★), and displays a compact summary table showing price, volume, and relative strength. Optimized for intraday and short-term trading, this tool updates only on the latest bar for maximum performance and is ideal for spotting volume-based support, resistance, and high-confluence trading zones.
SMEMA Trend CoreSMEMA Trend Core is a multi-timeframe trend analysis tool designed to provide a clean, adaptive and structured view of the market’s directional bias. It can be used in short term, swing or long term contexts. The internal calculation adjusts automatically based on the selected trading style, while always combining data from six timeframes.
At its core, the indicator uses a SMEMA, which is a Simple Moving Average applied to an EMA. This combination improves smoothness without losing reactivity. The SMEMA is calculated separately on 1H, 4H, 1D, 3D, 1W and 1M timeframes. These six values are then combined using dynamic weights that depend on the trading mode:
Short Term mode gives more influence to 1H and 4H
Swing Trading mode gives more influence to 1D, 3D and 1W
Long Term mode gives more influence to 1W and 1M
However, all six timeframes are always included in the final result. This avoids the tunnel vision of relying on a single resolution and ensures that the indicator captures both local and structural movements.
The result is a synthetic trend line, called Global SMEMA, that adapts to market conditions and offers a realistic view of the ongoing trend. To enhance the reading, the indicator calculates a Trend Score. This score reflects the position of price relative to the Global SMEMA, scaled by a long-term ATR, and adjusted by the slope of the trend line. A hyperbolic tangent function is used to normalize values and reduce distortion from outliers.
The final score is capped between -10 and +10, and used to define the trend state:
Green when the trend is bullish (score > +1.5)
Red when the trend is bearish (score < -1.5)
Brown when the trend is neutral (score between -1.5 and +1.5)
Optional Deviation Bands can be displayed at ±1, ±2 and ±3 ATR distances around the central line. These dynamic zones help identify extended price movements or potential support and resistance areas, depending on the current trend bias.
Main features:
A single, stable trend line based on six timeframes
Automatic rebalancing depending on trading mode
Quantified score integrating distance and slope
No overreaction to short-term noise
Deviation zones for advanced market context
No repainting, no lookahead, 100% real-time
SMEMA Trend Core is not a signal tool. It is a directional framework that helps you stay aligned with the real structure of the market. Use it to confirm setups, filter trades or simply understand where the market stands in its trend cycle.
Auto-Trend Finder (Pivot + ADX)Inspired in part by LuxAlgo Trendlines with Breaks. Extended and enhanced for directional clarity and pivot-based precision.
🔍 What It Does
The Auto-Trend Finder (Pivot + ADX) is a smart trend-detection toolkit that combines:
Pivot-based swing detection (HH, HL, LH, LL)
ADX-filtered trendline projections
Custom slope estimation using ATR, Standard Deviation, Linear Regression, or a blended approach
Candlestick pattern detection for added confirmation (e.g., hammer, engulfing, shooting star)
📈 How It Works
1. Swing Detection
Uses ta.pivothigh / ta.pivotlow to mark major price turning points.
Labels pivots as Higher High (HH), Lower High (LH), Lower Low (LL), or Higher Low (HL).
Optionally overlays basic candle pattern names for visual context.
2. Trendline Logic
Connects successive pivot highs/lows with real-time trendlines.
Draws separate Uptrend and Downtrend lines with distinct colors.
3. Extended Projections
Projects extended dashed lines from the last pivot using slope formulas:
ATR-based (volatility)
Stdev-based (dispersion)
Linear Regression (trend best-fit)
Or a Combined slope using user-defined weights.
Color changes dynamically on breakout to visually signal momentum shifts.
4. ADX Trend Strength Filter
Optional ADX filter disables trendline updates unless directional strength exceeds a threshold (e.g. 20+).
Helps remove noise in sideways markets.
⚠️ Important Notes
Backpainting Warning: This script includes a backpainting setting (backpaint) that may cause lines to appear "reliably predictive" in historical data. Backpainting does not repaint once the pivot is confirmed, but it still reflects a post-fact state. Use this feature cautiously in live trading decisions.
Reused Code Attribution: Extended trendline concept and breakout color logic were inspired by publicly available open-source versions of LuxAlgo's trendline logic. Credit is given in the script comments and here as required.
🛠️ How to Use It
Adjust Pivot Length for swing detection sensitivity.
Toggle ADX filtering on or off to avoid choppy signals.
Choose your preferred Slope Calculation Method.
Use candlestick labels as potential entry signals near trendline retests or breaks.
✅ Why This Is More Than a Mashup
This tool integrates several separate technical methods into one cohesive, customizable framework:
It’s not just combining indicators, it’s engineering synergy between them.
The slope and ADX filtering mechanics dynamically adjust to trend strength.
Candlestick confirmation and labeling give visual, real-time trade confidence.
It enhances open-source logic by adding modular slope options, ADX gating, pattern labeling, and user control.
"Know the structure. Follow the strength. Trade with clarity. Auto-Trend Finder is your edge in the chaos."
Trending Indicator: Price % of Pivots# Price % of Pivots Indicator
## Overview
A trend-following indicator that measures current price position relative to recent pivot highs and lows as percentages, providing normalized trend analysis across all timeframes and instruments.
## Key Features
- **Real-time trend table** with live signal updates (Strong Bullish/Bearish, Leaning Bullish/Bearish, Neutral)
- **Dual percentage tracking**: Price % of high pivot and low pivot % of current price
- **Universal compatibility** - works on any timeframe and asset class
- **Faster than some other trend indicators** - catches trend changes earlier with less lag
## Trading Signals
- **Bullish bias**: When price % of high pivot > low pivot % of price
- **Bearish bias**: When low pivot % of price > price % of high pivot
- **Customizable thresholds** (default 99%) with alert system
- **Color-coded backgrounds** for immediate visual confirmation
## Configuration
- Adjustable pivot lookback period (5-100 bars)
- Customizable left/right bars for pivot confirmation
- Threshold settings from 50-110% with 0.5% increments
- Full color customization for all elements
## Advantages
- **Speed**: More responsive than traditional ATR-based indicators
- **Clarity**: Clean percentage-based display with professional info table
- **Alerts**: Multiple conditions for automated and manual trading
- **Versatility**: Effective for day trading, swing trading, and multi-timeframe analysis
Perfect for traders seeking a fast, reliable trend indicator that works consistently across all markets and timeframes.
Pullback Candle (Bullish & Bearish, No EMA)🔍 Purpose
This indicator detects simple pullback reversal patterns based on price action and swing highs/lows — without any moving average or trend filters.
It highlights:
Bullish pullbacks (potential bounce/long setups)
Bearish pullbacks (potential rejection/short setups)
📈 Bullish Pullback Criteria
Three-bar pattern:
Bar 3: Highest close
Bar 2: Lower close
Bar 1: Even lower close
Current bar closes above previous bar (bullish reversal)
One of the last two candles is the lowest low of the past 6 bars (swing low)
📍 Result: A small green cross is plotted below the bar, and the bar is colored green.
📉 Bearish Pullback Criteria
Three-bar pattern:
Bar 3: Lowest close
Bar 2: Higher close
Bar 1: Even higher close
Current bar closes below previous bar (bearish reversal)
One of the last two candles is the highest high of the past 10 bars (swing high)
📍 Result: A small red cross is plotted above the bar, and the bar is colored red.
🔔 Alerts
One alert condition each for bullish and bearish pullback detection.
Can be used to trigger TradingView alerts.
🛠️ Customization
No inputs — fully automated logic
Clean, minimal, and fast
Can be extended with labels, alert sounds, or signals
Vix_Fix Enhanced MTF [Cometreon]The VIX Fix Enhanced is designed to detect market bottoms and spikes in volatility, helping traders anticipate major reversals with precision. Unlike standard VIX Fix tools, this version allows you to control the standard deviation logic, switch between chart styles, customize visual outputs, and set up advanced alerts — all with no repainting.
🧠 Logic and Calculation
This indicator is based on Larry Williams' VIX Fix and integrates features derived from community requests/advice, such as inverse VIX logic.
It calculates volatility spikes using a customizable standard deviation of the lows and compares it to a moving high to identify potential reversal points.
All moving average logic is based on Cometreon's proprietary library, ensuring accurate and optimized calculations on all 15 moving average types.
🔷 New Features and Improvements
🟩 Custom Visual Styles
Choose how you want your VIX data displayed:
Line
Step Line
Histogram
Area
Column
You can also flip the orientation (bottom-up or top-down), change the source ticker, and tailor the display to match your charting preferences.
🟩 Multi-MA Standard Deviation Calculation
Customize the standard deviation formula by selecting from 15 different moving averages:
SMA (Simple Moving Average)
EMA (Exponential Moving Average)
WMA (Weighted Moving Average)
RMA (Smoothed Moving Average)
HMA (Hull Moving Average)
JMA (Jurik Moving Average)
DEMA (Double Exponential Moving Average)
TEMA (Triple Exponential Moving Average)
LSMA (Least Squares Moving Average)
VWMA (Volume-Weighted Moving Average)
SMMA (Smoothed Moving Average)
KAMA (Kaufman’s Adaptive Moving Average)
ALMA (Arnaud Legoux Moving Average)
FRAMA (Fractal Adaptive Moving Average)
VIDYA (Variable Index Dynamic Average)
This gives you fine control over how volatility is measured and allows tuning the sensitivity for different market conditions.
🟩 Full Control Over Percentile and Deviation Conditions
You can enable or disable lines for standard deviation and percentile conditions, and define whether you want to trigger on over or under levels — adapting the indicator to your exact logic and style.
🟩 Chart Type Selection
You're no longer limited to candlestick charts! Now you can use Vix_Fix with different chart formats, including:
Candlestick
Heikin Ashi
Renko
Kagi
Line Break
Point & Figure
🟩 Multi-Timeframe Compatibility Without Repainting
Use a different timeframe from your chart with confidence. Signals remain stable and do not repaint. Perfect for spotting long-term reversal setups on lower timeframes.
🟩 Alert System Ready
Configure alerts directly from the indicator’s panel when conditions for over/under signals are met. Stay informed without needing to monitor the chart constantly.
🔷 Technical Details and Customizable Inputs
This indicator includes full control over the logic and appearance:
1️⃣ Length Deviation High - Adjusts the lookback period used to calculate the high deviation level of the VIX logic. Shorter values make it more reactive; longer values smooth out the signal.
2️⃣ Ticker - Choose a different chart type for the calculation, including Heikin Ashi, Renko, Kagi, Line Break, and Point & Figure.
3️⃣ Style VIX - Change the visual style (Line, Histogram, Column, etc.), adjust line width, and optionally invert the display (bottom-to-top).
📌 Fill zones for deviation and percentile are active only in Line and Step Line modes
4️⃣ Use Standard Deviation Up / Down - Enable the overbought and oversold zone logic based on upper and lower standard deviation bands.
5️⃣ Different Type MA (for StdDev) - Choose from 15 different moving averages to define the calculation method for standard deviation (SMA, EMA, HMA, JMA, etc.), with dedicated parameters like Phase, Sigma, and Offset for optimized responsiveness.
6️⃣ BB Length & Multiplier - Adjust the period and multiplier for the standard deviation bands, similar to how Bollinger Bands work.
7️⃣ Show StdDev Up / Down Line - Enable or disable the visibility of upper and lower standard deviation boundaries.
8️⃣ Use Percentile & Length High - Activate the percentile-based logic to detect extreme values in historical volatility using a customizable lookback length.
9️⃣ Highest % / Lowest % - Set the high and low percentile thresholds (e.g., 85 for high, 99 for low) that will be used to trigger over/under signals.
🔟 Show High / Low Percentile Line - Toggle the visual display of the percentile boundaries directly on the chart for clearer signal reference.
1️⃣1️⃣ Ticker Settings – Customize parameters for special chart types such as Renko, Heikin Ashi, Kagi, Line Break, and Point & Figure, adjusting reversal, number of lines, ATR length, etc.
1️⃣2️⃣ Timeframe – Enables using SuperTrend on a higher timeframe.
1️⃣3️⃣ Wait for Timeframe Closes -
✅ Enabled – Displays Vix_Fix smoothly with interruptions.
❌ Disabled – Displays Vix_Fix smoothly without interruptions.
☄️ If you find this indicator useful, leave a Boost to support its development!
Every feedback helps to continuously improve the tool, offering an even more effective trading experience. Share your thoughts in the comments! 🚀🔥
BBS – Bond Breadth Signal"When bonds scream, breadth collapses, and fear spikes — BBS listens."
🧠 BBS – Bond Breadth Signal
A reversal timing tool built on macro conviction, not price noise.
The Bond Breadth Signal (BBS) was developed to identify major market inflection points by combining four key market stress indicators:
1) 10-Year Yield ROC – Measures sharp moves in the bond market
2) Z-Score of the 10Y – Captures statistical extremes
3) NSHF (Net Highs–Lows) – Signals internal market strength or weakness
4) TLT ROC + VIX – Confirmations of flight to safety and volatility-driven fear
When all conditions align, BBS marks either a For-Sure Buy or For-Sure Sell — these are rare, high-confidence signals designed to cut through noise and focus on true market dislocations.
🔧 Features:
-Background color and signal arrows on confirmation days
-Signals remain visually active for 3 days for added clarity
-Fully adjustable thresholds and alert toggles
-Plot panel for yield, TLT, NSHF, VIX, and Z-score visuals
This tool isn’t designed to fire every day. It’s meant to wait for those moments when the market truly bends — not just wiggles.
Best used on major indices (SPY, QQQ, IWM) to assess macro turning points.
System 0530 - Stoch RSI Strategy with ATR filterStrategy Description: System 0530 - Multi-Timeframe Stochastic RSI with ATR Filter
Overview:
This strategy, "System 0530," is designed to identify trading opportunities by leveraging the Stochastic RSI indicator across two different timeframes: a shorter timeframe for initial signal triggers (assumed to be the chart's current timeframe, e.g., 5-minute) and a longer timeframe (15-minute) for signal confirmation. It incorporates an ATR (Average True Range) filter to help ensure trades are taken during periods of adequate market volatility and includes a cooldown mechanism to prevent rapid, successive signals in the same direction. Trade exits are primarily handled by reversing signals.
How It Works:
1. Signal Initiation (e.g., 5-Minute Timeframe):
Long Signal Wait: A potential long entry is considered when the 5-minute Stochastic RSI %K line crosses above its %D line, AND the %K value at the time of the cross is at or below a user-defined oversold level (default: 30).
Short Signal Wait: A potential short entry is considered when the 5-minute Stochastic RSI %K line crosses below its %D line, AND the %K value at the time of the cross is at or above a user-defined overbought level (default: 70). When these conditions are met, the strategy enters a "waiting state" for confirmation from the 15-minute timeframe.
2. Signal Confirmation (15-Minute Timeframe):
Once in a waiting state, the strategy looks for confirmation on the 15-minute Stochastic RSI within a user-defined number of 5-minute bars (wait_window_5min_bars, default: 5 bars).
Long Confirmation:
The 15-minute Stochastic RSI %K must be greater than or equal to its %D line.
The 15-minute Stochastic RSI %K value must be below a user-defined threshold (stoch_15min_long_entry_level, default: 40).
Short Confirmation:
The 15-minute Stochastic RSI %K must be less than or equal to its %D line.
The 15-minute Stochastic RSI %K value must be above a user-defined threshold (stoch_15min_short_entry_level, default: 60).
3. Filters:
ATR Volatility Filter: If enabled, trades are only confirmed if the current ATR value (converted to ticks) is above a user-defined minimum threshold (min_atr_value_ticks). This helps to avoid taking signals during periods of very low market volatility. If the ATR condition is not met, the strategy continues to wait for the condition to be met within the confirmation window, provided other conditions still hold.
Signal Cooldown Filter: If enabled, after a signal is generated, the strategy will wait for a minimum number of bars (min_bars_between_signals) before allowing another signal in the same direction. This aims to reduce overtrading.
4. Entry and Exit Logic:
Entry: A strategy.entry() order is placed when all trigger, confirmation, and filter conditions are met.
Exit: This strategy primarily uses reversing signals for exits. For example, if a long position is open, a confirmed short signal will close the long position and open a new short position. There are no explicit take profit or stop loss orders programmed into this version of the script.
Key User-Adjustable Parameters:
Stochastic RSI Parameters: RSI Length, Stochastic RSI Length, %K Smoothing, %D Smoothing.
Signal Trigger & Confirmation:
5-minute %K trigger levels for long and short.
15-minute %K confirmation thresholds for long and short.
Wait window (in 5-minute bars) for 15-minute confirmation.
Filters:
Enable/disable and configure the Signal Cooldown filter (minimum bars between signals).
Enable/disable and configure the ATR Volatility filter (ATR period, minimum ATR value in ticks).
Strategy Parameters:
Leverage Multiplier (Note: This primarily affects theoretical position sizing for backtesting calculations in TradingView and does not simulate actual leveraged trading risks).
Recommendations for Users:
Thorough Backtesting: Test this strategy extensively on historical data for the instruments and timeframes you intend to trade.
Parameter Optimization: Experiment with different parameter settings to find what works best for your trading style and chosen markets. The default values are starting points and may not be optimal for all conditions.
Understand the Logic: Ensure you understand how each component (Stochastic RSI on different timeframes, ATR filter, cooldown) interacts to generate signals.
Risk Management: Since this version does not include explicit stop-loss orders, ensure you have a clear risk management plan in place if trading this strategy live. You might consider manually adding stop-loss orders through your broker or using TradingView's separate strategy order settings for stop-loss if applicable.
Disclaimer:
This strategy description is for informational purposes only and does not constitute financial advice. Past performance is not indicative of future results. Trading involves significant risk of loss. Always do your own research and understand the risks before trading.
atr stop loss for double SMA v6Strategy Name
atr stop loss for double SMA v6
Credit: This v6 update is based on Daveatt’s “BEST ATR Stop Multiple Strategy.”
Core Logic
Entry: Go long when the 15-period SMA crosses above the 45-period SMA; go short on the inverse cross.
Stop-Loss: On entry, compute ATR(14)×2.0 and set a fixed stop at entry ± that amount. Stop remains static until hit.
Trend Tracking: Uses barssince() to ensure only one active long or short position; stop is only active while that trend persists.
Visualization
Plots fast/slow SMA lines in teal/orange.
On each entry bar, displays a label showing “ATR value” and “ATR×multiple” positioned at the 30-bar low (long) or high (short).
Draws an “×” at the stop-price level in green (long) or red (short) while the position is open.
Execution Settings
Initial Capital: $100 000, Size = 100 shares per trade.
Commission: 0.075% per trade.
Pyramiding: 1.
Calculations: Only on bar close (no intra-bar ticks).
Usage Notes
Static ATR stop adapts to volatility but does not trail.
Ideal for trending, liquid markets (stocks, futures, FX).
Adjust SMA lengths or ATR multiple for faster/slower signals.