3 Zero Lag + 3 Moving Averages + 3 RVWAPThe "3 Zero Lag + 3 Moving Averages + 3 RVWAP" (ZMR) indicator combines three groups of tools for technical analysis.
1. Three Customizable Moving Averages (MAs):
Configuration for Each MA:
Choice of 7 types (SMA, EMA, WMA, HMA, VWMA, LSMA, SMMA).
Independent periods and price sources for each line.
Visualization:
MA1 (Blue), MA2 (Red), MA3 (Green).
2. Three Zero Lag EMAs (ZLEMA) with Individual Settings:
Lag Reduction: Corrects traditional EMA lag using:
Adjusted Price = 2 * Current Price - Price .
Flexibility:
Unique lengths (20, 50, 70) and individual price sources for each ZLEMA (HLC3, HL2, Close, etc.).
Colors:
ZLEMA1 (Yellow), ZLEMA2 (Orange), ZLEMA3 (Purple).
3. Three Rolling VWAPs with Custom Parameters:
Volume-Weighted Average Price (VWAP):
Calculated for three periods (20, 50, 100) with dedicated price sources for each VWAP.
Colors:
VWAP1 (Pink), VWAP2 (Light Blue), VWAP3 (Neon Green).
Cari dalam skrip untuk "科创50和科创100区别"
SMC Entry Signals MTF v2📘 User Guide for the SMC Entry Signals MTF v2 Indicator
🎯 Purpose of the Indicator
This indicator is designed to identify reversal entry points based on Smart Money Concepts (SMC) and candlestick confirmation. It’s especially useful for traders who use:
Imbalance zones, order blocks, breaker blocks
Liquidity grabs
Multi-timeframe confirmation (MTF)
📈 How to Use the Signals on the Chart
✅ LONG Signal (green triangle below the candle):
Conditions:
Price is in a discount zone (below the FIB 50% level)
A bullish engulfing candle appears
A bullish Order Block (OB) or Breaker Block is detected
There’s an upward imbalance
A bullish OB is confirmed on the higher timeframe
➡️ How to act:
Consider entering long on the current or next candle.
Place your stop-loss below the OB or the nearest swing low.
Take profit at the nearest liquidity zone or premium area (above FIB 50%).
🔻 SHORT Signal (red triangle above the candle):
Conditions:
Price is in a premium zone (above FIB 50%)
A bearish engulfing candle appears
A bearish OB or Breaker Block is detected
There’s a downward imbalance
A bearish OB is confirmed on the higher timeframe
➡️ How to act:
Consider short entry after the signal.
Place your stop-loss above the OB or swing high.
Target the discount zone or the next liquidity pocket.
⚙️ Recommended Settings by Trading Style
Trading Style Suggested Settings Notes
Intraday (1–15m) fibLookback = 20–50, obLookback = 5–10, htf_tf = 1H/4H Fast signals. Use Discount/Premium + Engulfing.
Swing/Position (1H–1D) fibLookback = 50–100, obLookback = 10–20, htf_tf = 1D/1W Higher trust in MTF confirmation. Ideal with fundamentals.
Scalping (1m) fibLookback = 10–20, obLookback = 3–5, htf_tf = 15m/1H Remove Breaker and MTF for quick reaction trades.
🧠 Best Practices for Traders
Trend Filtering:
Use EMAs or volume to confirm the current trend.
Take longs only in uptrends, shorts in downtrends.
Liquidity Zones:
Use this indicator after liquidity grabs.
OBs and Breakers often appear right after stop hunts.
Combine with Manual Zones:
This works best when paired with manually drawn OBs and key levels.
Backtest the Signals:
Use Bar Replay mode on TradingView to test past signals.
🧪 Example Trade Setup
Example on BTCUSDT 15m:
Price drops into the discount zone.
A green triangle appears (bullish engulfing + OB + imbalance + HTF OB).
You enter long, stop below the OB, target the premium zone.
🎯 This type of setup often gives a risk/reward ratio of 1:2 or better — profitable even with a 40% win rate.
⏰ Alerts & Automation
Enable alerts:
"SMC Long Entry" — fires when a long signal appears.
"SMC Short Entry" — fires when a short signal appears.
You can integrate this with bots via webhook, like:
TradingConnector, 3Commas, Alertatron, etc.
✅ What This Indicator Gives You
High-probability entries using SMC logic
Customizable filters for entry logic
Multi-timeframe confirmation for stronger setups
Suitable for both intraday and swing trading
VWAP Horizon Suite Optimized - CoffeeKillerVWAP Horizon Suite Optimized - User Guide
Overview
The VWAP Horizon Suite Optimized is a comprehensive technical analysis tool for TradingView designed to enhance your trading strategy with Volume Weighted Average Price (VWAP) analysis, standard deviation bands, and customizable Exponential Moving Averages (EMAs). This indicator provides a robust framework for identifying potential support and resistance levels, price momentum, and market trends.
Key Features
- **Daily VWAP with Session Reset**: Automatically resets at 17:00 (5:00 PM) each day
- **Customizable Standard Deviation/Percentage Bands**: Up to 3 bands above and below VWAP
- **High/Low Point Detection**: Visual markers for significant price levels
- **Multiple Customizable EMAs**: 8 different EMAs that can be individually toggled and styled
- **Visual Customization**: Adjustable colors, fills, and styles for all elements
VWAP Settings
- **Source**: Determines the price data used to calculate VWAP (default: HLC3 - High, Low, Close average)
Bands Settings
- **Bands Calculation Mode**: Choose between "Standard Deviation" or "Percentage" methods
- **Show Band #1, #2, #3**: Toggle visibility for each band
- **Band Multiplier #1, #2, #3**: Adjust the distance from VWAP (in standard deviations or percentage)
- **Show Fills**: Enable colored fills between bands for better visualization
Visualization Settings
- **Show High/Low Markers**: Display diamond markers for local high and low points relative to VWAP, these reset based on the price crossing the VWAP Line.
EMA Settings
The indicator provides 8 customizable EMAs (8, 13, 21, 26, 48, 50, 100, and 200) with individual controls:
- **Show EMA X**: Toggle visibility for each EMA
- **EMA X Period**: Adjust the period length for calculation
- **EMA X Color**: Customize the color of each EMA
- **EMA Line Width**: Set the width for all EMA lines
How to Use
Basic VWAP Analysis
The core VWAP line (blue) represents the average price weighted by volume since the start of the session (17:00 daily reset). This serves as a dynamic support/resistance level and reference point for intraday trading.
1. **Price above VWAP**: Generally bullish short-term sentiment
2. **Price below VWAP**: Generally bearish short-term sentiment
3. **Crosses of VWAP**: Potential shift in short-term momentum
Standard Deviation Bands
The bands surrounding VWAP help identify potential support, resistance, and volatility levels:
- **Band #1 (±1σ)**: Price often reverts to VWAP when reaching these levels
- **Band #2 (±2σ)**: Stronger support/resistance areas, possible reversal zones
- **Band #3 (±3σ)**: Extreme price levels, often indicating overbought/oversold conditions
High/Low Point Detection
Purple and yellow diamond markers identify significant swing highs and lows relative to VWAP, helping you recognize potential reversal points or continuation patterns. (These repaint in a effort to find the max high/low point from the VWAP Line)
EMA Strategy
The customizable EMAs can be used to:
- Find potential support/resistance levels
- Create crossover systems
- Analyze market structure
Common EMA combinations include:
- 8 & 21 for short-term trends
- 50 & 200 for long-term trends and the "Golden Cross/Death Cross"
- 13 & 48 for the "New Golden Cross" - a modern alternative gaining popularity among traders
- 8, 13, 21 for complex short-term momentum analysis
Advanced Usage Tips
For Day Traders
1. **Opening Range Analysis**: Watch how price reacts to VWAP in the first hour of trading
2. **VWAP Reversions**: Look for trades when price touches outer bands and reverses toward VWAP
3. **Band Breakouts**: Strong moves beyond Band #2 may indicate momentum for continuation
For Swing Traders
1. **Use alongside daily/weekly support-resistance levels**
2. **Combine with EMA crossovers for trend confirmation**
3. **Identify potential reversal zones where price reaches Band #3**
Combined Strategies
- **EMA + VWAP Confluence**: Strong signals occur when EMA lines and VWAP/bands align at the same price level
- **High/Low + Band Touch**: When a high/low marker appears near a band, it may indicate a stronger support/resistance level
Conclusion
The VWAP Horizon Suite Optimized provides a comprehensive set of tools for price analysis based on volume-weighted data and exponential averages. By understanding and properly configuring the various components, you can create a powerful visual framework for identifying potential trading opportunities across multiple timeframes.
Remember that no indicator provides perfect signals, and the VWAP Horizon Suite works best when used as part of a complete trading strategy that includes risk management, multiple confirmation tools, and proper analysis of market conditions.
DISCLAIMER
**DISCLAIMER: This indicator and its signals are intended solely for educational and informational purposes. They do not constitute financial advice. Trading involves significant risk of loss. Always conduct your own analysis and consult with financial professionals before making trading decisions.**
CSVParser█ OVERVIEW
The library contains functions for parsing and importing complex CSV configurations (with a special simple syntax) into a special hierarchical object (of type objProps ) as follows:
Functions:
parseConfig() - reads CSV text into an objProps object.
toT() - displays the contents of an objProps object in a table form, which allows to check the CSV text for syntax errors.
getPropAr() - returns objProps.arS array for child object with `prop` key in mpObj map (or na if not found)
This library is handy in allowing users to store presets for the scripts and switch between them (see, e.g., my HTF moving averages script where users can switch between several preset configuations of 24 MA's across 5 timeframes).
█ HOW THE SCRIPT WORKS.
The script works as follows:
all values read from config text are stored as strings
Nested brackets in config text create a named nested objects of objProps0, ... , objProps9 types.
objProps objects of each level have the following fields:
- array arS for storing values without names (e.g. "12, 23" will be imported into a string array arS as )
- map mpS for storing items with names (e.g. "tf = 60, length = 21" will be imported as <"tf", "60"> and <"length", "21"> pairs into mpS )
- map mpObj for storing nested objects (e.g. "TF1(tf=60, length(21,50,100))" creates a <"TF1, objProps0 object> pair in mpObj map property of the top level object (objProps) , "tf=60" is stored as <"tf", "60"> key-value pair in mpS map property of a next level object (objProps0) and "length (...)" creates a <"length", objProps1> pair in objProps0.mpObj map while length values are stored in objProps1.arS array as strings. Every opening bracket creates a next level objProps object.
If objects or properties with duplicate names are encountered only the latest is imported
(e.g. for "TF1(length(12,22)), TF1(tf=240)" only "TF1(tf=240)" will be imported
Line breaks are not regarded as part of syntax (i.e. values are imported with line breaks, you can supply
symbols "(" , ")" , "," and "=" are special characters and cannot be used within property values (with the exception of a quoted text as a value of a property as explained below)
named properties can have quoted text as their value. In that case special characters within quotation marks are regarded as normal characters. Text between "=" and opening quotation mark as well as text following the closing quotation mark and until next property value is ignored. E.g. "quote = ignored "The quote" also ignored" will be imported as <"quote", "The quote">. Quotation marks within quotes must be excaped with "\" .
if a key names happens to be a multi-line then only first line containing non-space characters (trimmed from spaces) is taken as a key.
")," or ") ," and similar do not create an empty ("") array item while ",," does. (",)" creates an "" array item)
█ CSV CONFIGURATION SYNTAX
Unnamed values: just list them comma separated and they will be imported into arS of the object of the current level.
Named values: use "=" sign as follows: "property1=value1, property2 = value2"
Value of several objects: Use brackets after the name of the object ant list all object properties within the brackets (including its child objects if necessary). E.g. "TF1(tf =60, length(21,200), TF2(tf=240, length(50,200)"
Named and unnamed values as well as objects can go in any order. E.g. "12, tf=60, 21" will be imported as follows: "12", "21" will go to arS array and <"tf", "60"> will go to mpS maP of objProps (the top level object).
You can play around and test your config text using demo in this library, just edit your text in script settings and see how it is parsed into objProps objects.
█ USAGE RECOMMENDATIONS AND SAMPLE USE
I suggest the following approach:
- create functions for your UDT which can set properties by name.
- create enumerator functions which iterates through all the property names (supplied as a const string array) and imports their values into the object
█ SAMPLE USE
A sample use of this library can be seen in my Multi-timeframe 24 moving averages + BB+SAR+Supertrend+VWAP script where settings for the MAs across many timeframes are imported from CSV configurations (presets).
█ FULL LIST OF FUNCTIONS AND PROPERTIES
nzs(_s, nz)
Like nz() but for strings. Returns `nz` arg (default = "") if _s is na.
Parameters:
_s (string)
nz (string)
method init(this)
Initializes objProps obj (creates child maps and arrays)
Namespace types: objProps
Parameters:
this (objProps)
method toT(this, nz)
Outputs objProps to string matrices for further display using autotable().
Namespace types: objProps, objProps1, ..., objProps9
Parameters:
this (objProps/objProps1/..../objProps9)
nz (string)
Returns: A tuple - value, merge and color matrix (autotable() parameters)
method parseConfig(this, s)
Reads config text into objProps (unnamed values into arS, named into mpS, sub-levels into mpObj)
Namespace types: objProps
Parameters:
this (objProps)
s (string)
method getPropArS(this, prop)
Returns a string array of values for a given property name `prop`. Looks for a key `prop` in objProps.mpObj
if finds pair returns obj.arS, otherwise returns na. Returns a reference to the original, not a copy.
Namespace types: objProps, objProps1, ..., objProps8
Parameters:
this (objProps/objProps1/..../objProps8)
prop (string)
method getPropVal(this, prop, id)
Checks if there is an array of values for property `prop` and returns its `id`'s element or na if not found
Namespace types: objProps, objProps1, ..., objProps8
Parameters:
this (objProps/objProps1/..../objProps8) : objProps object containing array of property values in a child objProp object corresponding to propertty name.
prop (string) : (string) Name of the property
id (int) : (int) Id of the element to be returned from the array pf property values
objProps9 type
Object for storing values read from CSV relating to a particular object or property name.
Fields:
mpS (map) : (map() Stores property values as pairs
arS (array) : (string ) Array of values
objProps, objProps0, ... objProps8 types
Object for storing values read from CSV relating to a particular object or property name.
Fields:
mpS (map) : (map() Stores property values as pairs
arS (array) : (string ) Array of values
mpObj (map) : (map() Stores objProps objects containing properties's data as pairs
Fibonacci Moving Averages Input(FibMAI) Fibonacci Moving Averages Input is a strategy based on moving averages cross-over or cross-under signals. The bullish golden cross appears on a chart when a stock's short-term moving average crosses above its long-term moving average. The bearish death cross appears on a chart when a stock’s short-term moving average, crosses below its long-term moving average. The general market consensus values used are the 50-day moving average and the 200-day moving average.
With the (FibMAI) Fibonacci Moving Averages Input strategy you can use any value you choose for your bullish or bearish cross. For visual display purposes I have a lot of the Fib Moving Averages 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 shown while hiding the chart candlesticks. But to use this indicator I click on only a couple of MA's to see if there's a notable cross-over or cross-under pattern signal. Then, most importantly, I back test those values into the FibMAI strategy Long or Short settings input.
For example, this NQ1! day chart has it's Long or Short settings input as follows:
Bullish =
FibEMA34
cross-over
FibEMA144
Bearish =
FibEMA55
cross-under
FibSMA144
As you can see you can mix or match 4 different MA's values either Exponential or Simple.
Default color settings:
Rising value = green color
Falling value = red color
Default Visual FibMA settings:
FibEMA's 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181
Default Visual MA settings:
SMA's 50, 100, 150, 200
Default Long or Short settings:
Bullish =
FibEMA34
cross-over
FibEMA144
Bearish =
FibEMA55
cross-under
FibSMA144
TechnicalRating█ OVERVIEW
This library is a Pine Script™ programmer’s tool for incorporating TradingView's well-known technical ratings within their scripts. The ratings produced by this library are the same as those from the speedometers in the technical analysis summary and the "Rating" indicator in the Screener , which use the aggregate biases of 26 technical indicators to calculate their results.
█ CONCEPTS
Ensemble analysis
Ensemble analysis uses multiple weaker models to produce a potentially stronger one. A common form of ensemble analysis in technical analysis is the usage of aggregate indicators together in hopes of gaining further market insight and reinforcing trading decisions.
Technical ratings
Technical ratings provide a simplified way to analyze financial markets by combining signals from an ensemble of indicators into a singular value, allowing traders to assess market sentiment more quickly and conveniently than analyzing each constituent separately. By consolidating the signals from multiple indicators into a single rating, traders can more intuitively and easily interpret the "technical health" of the market.
Calculating the rating value
Using a variety of built-in TA functions and functions from our ta library, this script calculates technical ratings for moving averages, oscillators, and their overall result within the `calcRatingAll()` function.
The function uses the script's `calcRatingMA()` function to calculate the moving average technical rating from an ensemble of 15 moving averages and filters:
• Six Simple Moving Averages and six Exponential Moving Averages with periods of 10, 20, 30, 50, 100, and 200
• A Hull Moving Average with a period of 9
• A Volume-Weighted Moving Average with a period of 20
• An Ichimoku Cloud with a conversion line length of 9, base length of 26, and leading span B length of 52
The function uses the script's `calcRating()` function to calculate the oscillator technical rating from an ensemble of 11 oscillators:
• RSI with a period of 14
• Stochastic with a %K period of 14, a smoothing period of 3, and a %D period of 3
• CCI with a period of 20
• ADX with a DI length of 14 and an ADX smoothing period of 14
• Awesome Oscillator
• Momentum with a period of 10
• MACD with fast, slow, and signal periods of 12, 26, and 9
• Stochastic RSI with an RSI period of 14, a %K period of 14, a smoothing period of 3, and a %D period of 3
• Williams %R with a period of 14
• Bull Bear Power with a period of 50
• Ultimate Oscillator with fast, middle, and slow lengths of 7, 14, and 28
Each indicator is assigned a value of +1, 0, or -1, representing a bullish, neutral, or bearish rating. The moving average rating is the mean of all ratings that use the `calcRatingMA()` function, and the oscillator rating is the mean of all ratings that use the `calcRating()` function. The overall rating is the mean of the moving average and oscillator ratings, which ranges between +1 and -1. This overall rating, along with the separate MA and oscillator ratings, can be used to gain insight into the technical strength of the market. For a more detailed breakdown of the signals and conditions used to calculate the indicators' ratings, consult our Help Center explanation.
Determining rating status
The `ratingStatus()` function produces a string representing the status of a series of ratings. The `strongBound` and `weakBound` parameters, with respective default values of 0.5 and 0.1, define the bounds for "strong" and "weak" ratings.
The rating status is determined as follows:
Rating Value Rating Status
< -strongBound Strong Sell
< -weakBound Sell
-weakBound to weakBound Neutral
> weakBound Buy
> strongBound Strong Buy
By customizing the `strongBound` and `weakBound` values, traders can tailor the `ratingStatus()` function to fit their trading style or strategy, leading to a more personalized approach to evaluating ratings.
Look first. Then leap.
█ FUNCTIONS
This library contains the following functions:
calcRatingAll()
Calculates 3 ratings (ratings total, MA ratings, indicator ratings) using the aggregate biases of 26 different technical indicators.
Returns: A 3-element tuple: ( [(float) ratingTotal, (float) ratingOther, (float) ratingMA ].
countRising(plot)
Calculates the number of times the values in the given series increase in value up to a maximum count of 5.
Parameters:
plot : (series float) The series of values to check for rising values.
Returns: (int) The number of times the values in the series increased in value.
ratingStatus(ratingValue, strongBound, weakBound)
Determines the rating status of a given series based on its values and defined bounds.
Parameters:
ratingValue : (series float) The series of values to determine the rating status for.
strongBound : (series float) The upper bound for a "strong" rating.
weakBound : (series float) The upper bound for a "weak" rating.
Returns: (string) The rating status of the given series ("Strong Buy", "Buy", "Neutral", "Sell", or "Strong Sell").
Technical Ratings on Multi-frames / Assets█ OVERVIEW
This indicator is a modified version of TECHNICAL RATING v1.0 available in the public library to provide a quick overview of consolidated technical ratings performed on 12 assets in 3 timeframes.The purpose of the indicator is to provide a quick overview of the current status of the custom 12 (24) assets and to help focus on the appropriate asset.
█ MODIFICATIONS
- Markers, visualizations and alerts have been deleted
- Due to the limitation on maximum number of security (40), the results of 12 assets evaluated in 3 different time frames can be shown at the same time.
- An additional 12 assets can be configured in the settings so that you do not have to choose each ticker one by one to facilitate a quick change, but can switch between the 12 -12 assets with a single click on "Second sets?".
- The position, colors and parameters of the table can be widely customized in the settings.
- The 12 assets can be arranged in rows 3, 4, 6 and 12 with Table Rows options, which can also be used to create a simple mobile view.
- The default gradient color setting has been changed to red/yellow/green traffic lights
ORIGINAL DESCRIPTION ABOUT TECHNICAL RATING v1.0
█ OVERVIEW
This indicator calculates TradingView's well-known "Strong Buy", "Buy", "Neutral", "Sell" or "Strong Sell" states using the aggregate biases of 26 different technical indicators.
█ WARNING
This version is similar, but not identical, to our recently published "Technical Ratings" built-in, which reproduces our "Technicals" ratings displayed as a gauge in the right panel of charts, or in the "Rating" indicator available in the TradingView Screener. This is a fork and refactoring of the code base used in the "Technical Ratings" built-in. Its calculations will not always match those of the built-in, but it provides options not available in the built-in. Up to you to decide which one you prefer to use.
█ FEATURES
Differences with the built-in version
• The built-in version produces values matching the states displayed in the "Technicals" ratings gauge; this one does not always.
• A strategy version is also available as a built-in; this script is an indicator—not a strategy.
• This indicator will show a slightly different vertical scale, as it does not use a fixed scale like the built-in.
• This version allows control over repainting of the signal when you do not use a higher timeframe. Higher timeframe (HTF) information from this version does not repaint.
• You can adjust the weight of the Oscillators and MAs components of the rating here.
• You can configure markers on signal breaches of configurable levels, or on advances declines of the signal.
The indicator's settings allow you to:
• Choose the timeframe you want calculations to be made on.
• When not using a HTF, you can select a repainting or non-repainting signal.
• When using both MAs and Oscillators groups to calculate the rating, you can vary the weight of each group in the calculation. The default is 50/50.
Because the MAs group uses longer periods for some of its components, its value is not as jumpy as the Oscillators value.
Increasing the weight of the MAs group will thus have a calming effect on the signal.
• Alerts can be created on the indicator using the conditions configured to control the display of markers.
Display
The calculated rating is displayed as columns, but you can change the style in the inputs. The color of the signal can be one of three colors: bull, bear, or neutral. You can choose from a few presets, or check one and edit its color. The color is determined from the rating's value. Between 0.1 and -0.1 it is in the neutral color. Above/below 0.1/-0.1 it will appear in the bull/bear color. The intensity of the bull/bear color is determined by cumulative advances/declines in the rating. It is capped to 5, so there are five intensities for each of the bull/bear colors.
The "Strong Buy", "Buy", "Neutral", "Sell" or "Strong Sell" state of the last calculated value is displayed to the right of the last bar for each of the three groups: All, MAs and Oscillators. The first value always reflects your selection in the "Rating uses" field and is the one used to display the signal. A "Strong Buy" or "Strong Sell" state appears when the signal is above/below the 0.5/-0.5 level. A "Buy" or "Sell" state appears when the signal is above/below the 0.1/-0.1 level. The "Neutral" state appears when the signal is between 0.1 and -0.1 inclusively.
Five levels are always displayed: 0.5 and 0.1 in the bull color, zero in the neutral color, and -0.1 and - 0.5 in the bull color.
█ CALCULATIONS
The indicator calculates the aggregate value of two groups of indicators: moving averages and oscillators.
The "MAs" group is comprised of 15 different components:
• Six Simple Moving Averages of periods 10, 20, 30, 50, 100 and 200
• Six Exponential Moving Averages of the same periods
• A Hull Moving Average of period 9
• A Volume-weighed Moving Average of period 20
• Ichimoku
The "Oscillators" group includes 11 components:
• RSI
• Stochastic
• CCI
• ADX
• Awesome Oscillator
• Momentum
• MACD
• Stochastic RSI
• Wiliams %R
• Bull Bear Power
• Ultimate Oscillator
Technical Ratings█ OVERVIEW
This indicator calculates TradingView's well-known "Strong Buy", "Buy", "Neutral", "Sell" or "Strong Sell" states using the aggregate biases of 26 different technical indicators.
█ FEATURES
Differences with the built-in version
• You can adjust the weight of the Oscillators and MAs components of the rating here.
• The built-in version produces values matching the states displayed in the "Technicals" ratings gauge; this one does not always, where weighting is used.
• A strategy version is also available as a built-in; this script is an indicator—not a strategy.
• This indicator will show a slightly different vertical scale, as it does not use a fixed scale like the built-in.
• This version allows control over repainting of the signal when you do not use a higher timeframe. Higher timeframe (HTF) information from this version does not repaint.
• You can configure markers on signal breaches of configurable levels, or on advances declines of the signal.
The indicator's settings allow you to:
• Choose the timeframe you want calculations to be made on.
• When not using a HTF, you can select a repainting or non-repainting signal.
• When using both MAs and Oscillators groups to calculate the rating, you can vary the weight of each group in the calculation. The default is 50/50.
Because the MAs group uses longer periods for some of its components, its value is not as jumpy as the Oscillators value.
Increasing the weight of the MAs group will thus have a calming effect on the signal.
• Alerts can be created on the indicator using the conditions configured to control the display of markers.
Display
The calculated rating is displayed as columns, but you can change the style in the inputs. The color of the signal can be one of three colors: bull, bear, or neutral. You can choose from a few presets, or check one and edit its color. The color is determined from the rating's value. Between 0.1 and -0.1 it is in the neutral color. Above/below 0.1/-0.1 it will appear in the bull/bear color. The intensity of the bull/bear color is determined by cumulative advances/declines in the rating. It is capped to 5, so there are five intensities for each of the bull/bear colors.
The "Strong Buy", "Buy", "Neutral", "Sell" or "Strong Sell" state of the last calculated value is displayed to the right of the last bar for each of the three groups: All, MAs and Oscillators. The first value always reflects your selection in the "Rating uses" field and is the one used to display the signal. A "Strong Buy" or "Strong Sell" state appears when the signal is above/below the 0.5/-0.5 level. A "Buy" or "Sell" state appears when the signal is above/below the 0.1/-0.1 level. The "Neutral" state appears when the signal is between 0.1 and -0.1 inclusively.
Five levels are always displayed: 0.5 and 0.1 in the bull color, zero in the neutral color, and -0.1 and - 0.5 in the bull color.
The levels that can be used to determine the breaches displaying long/short markers will only be visible when their respective long/short markers are turned on in the "Direction" input. The levels appear as a bright dotted line in bull/bear colors. You can control both levels separately through the "Longs Level" and "Shorts Level" inputs.
If you specify a higher timeframe that is not greater than the chart's timeframe, an error message will appear and the indicator's background will turn red, as it doesn't make sense to use a lower timeframe than the chart's.
Markers
Markers are small triangles that appear at the bottom and top of the indicator's pane. The marker settings define the conditions that will trigger an alert when you configure an alert on the indicator. You can:
• Choose if you want long, short or both long and short markers.
• Determine the signal level and/or the number of cumulative advances/declines in the signal which must be reached for either a long or short marker to appear.
Reminder: the number of advances/declines is also what controls the brightness of the plotted signal.
• Decide if you want to restrict markers to ones that alternate between longs and shorts, if you are displaying both directions.
This helps to minimize the number of markers, e.g., only the first long marker will be displayed, and then no more long markers will appear until a short comes in, then a long, etc.
Alerts
When you create an alert from this indicator, that alert will trigger whenever your marker conditions are confirmed. Before creating your alert, configure the makers so they reflect the conditions you want your alert to trigger on.
The script uses the alert() function, which entails that you select the "Any alert() function call" condition from the "Create Alert" dialog box when creating alerts on the script. The alert messages can be configured in the inputs. You can safely disregard the warning popup that appears when you create alerts from this script. Alerts will not repaint. Markers will appear, and thus alerts will trigger, at the opening of the bar following the confirmation of the marker condition. Markers will never disappear from the bar once they appear.
Repainting
This indicator uses a two-pronged approach to control repainting. The repainting of the displayed signal is controlled through the "Repainting" field in the script's inputs. This only applies when you have "Same as chart" selected in the "Timeframe" field, as higher timeframe data never repaints. Regardless of that setting, markers and thus alerts never repaint.
When using the chart's timeframe, choosing a non-repainting signal makes the signal one bar late, so that it only displays a value once the bar it was calculated has elapsed. When using a higher timeframe, new values are only displayed once the higher timeframe completes.
Because the markers never repaint, their logic adapts to the repainting setting used for the signal. When the signal repaints, markers will only appear at the close of a realtime bar. When the signal does not repaint (or if you use a higher timeframe), alerts will appear at the beginning of the realtime bar, since they are calculated on values that already do not repaint.
█ CALCULATIONS
The indicator calculates the aggregate value of two groups of indicators: moving averages and oscillators.
The "MAs" group is comprised of 15 different components:
• Six Simple Moving Averages of periods 10, 20, 30, 50, 100 and 200
• Six Exponential Moving Averages of the same periods
• A Hull Moving Average of period 9
• A Volume-weighed Moving Average of period 20
• Ichimoku
The "Oscillators" group includes 11 components:
• RSI
• Stochastic
• CCI
• ADX
• Awesome Oscillator
• Momentum
• MACD
• Stochastic RSI
• Wiliams %R
• Bull Bear Power
• Ultimate Oscillator
The state of each group's components is evaluated to a +1/0/-1 value corresponding to its bull/neutral/bear bias. The resulting value for each of the two groups are then averaged to produce the overall value for the indicator, which oscillates between +1 and -1. The complete conditions used in the calculations are documented in the Help Center .
█ NOTES
Accuracy
When comparing values to the other versions of the Rating, make sure you are comparing similar timeframes, as the "Technicals" gauge in the chart's right pane, for example, uses a 1D timeframe by default.
For coders
We use a handy characteristic of array.avg() which, contrary to avg() , does not return na when one of the averaged values is na . It will average only the array elements which are not na . This is useful in the context where the functions used to calculate the bull/neutral/bear bias for each component used in the rating include special checks to return na whenever the dataset does not yet contain enough data to provide reliable values. This way, components gradually kick in the calculations as the script calculates on more and more historical data.
We also use the new `group` and `tooltip` parameters to input() , as well as dynamic color generation of different transparencies from the bull/bear/neutral colors selected by the user.
Our script was written using the PineCoders Coding Conventions for Pine .
The description was formatted using the techniques explained in the How We Write and Format Script Descriptions PineCoders publication.
Bits and pieces were lifted from the PineCoders' MTF Selection Framework .
Look first. Then leap.
CT Moving Average Crossover IndicatorMoving Average Crossover Indicator
Here I present a moving average indicator with 9 user definable moving averages from which up to 5 pairs can be selected to show what prices would need to be closed at on the current bar to cross each individual pair.
I have put much emphasis here on simplicity of setting the parameters of the moving averages, selecting the crossover pairs and on the clarity of the displayed information in the optional “Moving Average Crossover Level” Information Box.
What Is a Moving Average (MA)?
According to Investopedia - “In statistics, a moving average is a calculation used to analyze data points by creating a series of averages of different subsets of the full data set.
In finance, a moving average (MA) is a stock indicator that is commonly used in technical analysis. The reason for calculating the moving average of a stock is to help smooth out the price data by creating a constantly updated average price.
By calculating the moving average, the impacts of random, short-term fluctuations on the price of a stock over a specified time-frame are mitigated.”
The user can set the color, type (SMA/EMA) and length of each of the 9 moving averages.
Then the user may choose 5 pairs of moving averages from the set of 9.
The script will then calculate the price needed to be crossed by the close of the current bar in order to crossover each of the user defined pairs and outputs the results as optional lineplots and/or an Infobox which shows the relevant information in a very clear way.
The user may switch the moving averages, crossover lineplots and infobox on and off easily with one click boxes in the settings menu.
The number of decimal places shown in the Infobox can be altered in the settings menu.
If the price required to cross a pair of moving averages is zero or less, the crossover level will display “Impossible” and the plots will plot at zero. (this helps ameliorate chart auto-focus issues)
Quoting a variety of online resources …….
Understanding Moving Averages (MA)
Moving averages are a simple, technical analysis tool. Moving averages are usually calculated to identify the trend direction of a stock or to determine its support and resistance levels. It is a trend-following—or lagging—indicator because it is based on past prices.
The longer the time period for the moving average, the greater the lag. So, a 200-day moving average will have a much greater degree of lag than a 20-day MA because it contains prices for the past 200 days. The 50-day and 200-day moving average figures for stocks are widely followed by investors and traders and are considered to be important trading signals.
Moving averages are a totally customizable indicator, which means that an investor can freely choose whatever time frame they want when calculating an average. The most common time periods used in moving averages are 15, 20, 30, 50, 100, and 200 days. The shorter the time span used to create the average, the more sensitive it will be to price changes. The longer the time span, the less sensitive the average will be.
Investors may choose different time periods of varying lengths to calculate moving averages based on their trading objectives. Shorter moving averages are typically used for short-term trading, while longer-term moving averages are more suited for long-term investors.
There is no correct time frame to use when setting up your moving averages. The best way to figure out which one works best for you is to experiment with a number of different time periods until you find one that fits your strategy.
Predicting trends in the stock market is no simple process. While it is impossible to predict the future movement of a specific stock, using technical analysis and research can help you make better predictions.
A rising moving average indicates that the security is in an uptrend, while a declining moving average indicates that it is in a downtrend. Similarly, upward momentum is confirmed with a bullish crossover, which occurs when a short-term moving average crosses above a longer-term moving average. Conversely, downward momentum is confirmed with a bearish crossover, which occurs when a short-term moving average crosses below a longer-term moving average.
Types of Moving Averages
Simple Moving Average (SMA)
The simplest form of a moving average, known as a simple moving average (SMA), is calculated by taking the arithmetic mean of a given set of values. In other words, a set of numbers–or prices in the case of financial instruments–are added together and then divided by the number of prices in the set.
Exponential Moving Average (EMA)
The exponential moving average is a type of moving average that gives more weight to recent prices in an attempt to make it more responsive to new information.
To calculate an EMA, you must first compute the simple moving average (SMA) over a particular time period. Next, you must calculate the multiplier for weighting the EMA (referred to as the "smoothing factor"), which typically follows the formula: 2/(selected time period + 1). So, for a 20-day moving average, the multiplier would be 2/(20+1)= 0.0952. Then you use the smoothing factor combined with the previous EMA to arrive at the current value.
The EMA thus gives a higher weighting to recent prices, while the SMA assigns equal weighting to all values.
QEMA - 9 EMAs (10, 20, 50 - 400) / CryptoprospaBy adding this one indicator to your chart, you save time and effort for the EMAs you want.
You can add this and then modify which ones you want visible in the settings.
It covers the 10, 20, 50, 100, 150, 200, 250, 300, 400 EMAs
Enjoy.
Cryptoprospa.
5 Adaptable MA [BVCC]A slight evolution to the ideas presented in the original 7-28-50 BVCC overlay. This version allows you to switch between a custom 5 MA set up of your own choosing and the BVCC recommended 7-28-50-100-200 combo. Additionally, you can choose to mix the SMA and EMA components of the combo in any way that you wish.
Single Indicator 5 EMAS 12/26/50/100/200Hey guys. Here's a basic script that puts 5 EMAs on your screen at once without having to use multiple indicator slots. The colors and bandwidths are customizable, and you can can even hide EMAs which you are not currently using, say if you wanted 12/26 only or 50/200. Happy trading!
Seven Exponential Moving Averages
By default, this script shows 7 different EMAs set to 5, 10, 20, 50, 100, 150, 200 intervals. If a bar closes below one of these EMAs, the respective EMA will turn red otherwise it will be green. 50 and 200 EMAs have double the linewidth of others.
Shaded EMA CrossIndicator included 5 EMA's ( 9,20,50,100,200 ) with EMA cross marker
and shaded area between EMAs.
Shaded EMA100 and EMA200 to see market trend.
Shaded EMA20 and EMA50 to see market short trend.
EMA's Rainbow: 5/10/20/50/100/150/200/250All major EMA's color coded to look like a rainbow, and configurable
All-in-One EMA & BBThis script combines Bollinger Bands and multiple EMAs into one powerful tool. It includes:
1) Bollinger Bands with customizable MA type and colors.
2) EMA 21 on Daily and Weekly timeframes.
3) EMA 21, 50, 100, 200 on current chart timeframe.
4) Toggle options for each indicator for a clean, flexible view.
Ideal for traders seeking multi-timeframe trend analysis and volatility insights.
Wickless Tap Signals Wickless Tap Signals — TradingView Indicator (v6)
A precision signal-only tool that marks BUY/SELL events when price “retests” the base of a very strong impulse candle (no wick on the retest side) in the direction of trend.
What it does (in plain English)
Finds powerful impulse candles:
Bull case: a green candle with no lower wick (its open ≈ low).
Bear case: a red candle with no upper wick (its open ≈ high).
Confirms trend with an EMA filter:
Only looks for bullish bases while price is above the EMA.
Only looks for bearish bases while price is below the EMA.
Waits for the retest (“tap”):
Later, if price revisits the base of that wickless candle
Bullish: taps the candle’s low/open → BUY signal
Bearish: taps the candle’s high/open → SELL signal
Optional level “consumption” so each base can trigger one signal, not many.
The idea: a wickless impulse often marks strong initiative order flow. The first retest of that base frequently acts as a springboard (bull) or ceiling (bear).
Exact rules (formal)
Let tick = syminfo.mintick, tol = tapTicks * tick.
Trend filter
inUp = close > EMA(lenEMA)
inDn = close < EMA(lenEMA)
Wickless impulse candles (confirmed on bar close)
Bullish wickless: close > open and abs(low - open) ≤ tol
Bearish wickless: close < open and abs(high - open) ≤ tol
When such a candle closes with trend alignment:
Store bullTapLevel = low (for bull case) and its bar index.
Store bearTapLevel = high (for bear case) and its bar index.
Signals (must happen on a later bar than the origin)
BUY: low ≤ bullTapLevel + tol and inUp and bar_index > bullBarIdx
SELL: high ≥ bearTapLevel - tol and inDn and bar_index > bearBarIdx
One-shot option
If enabled, once a signal fires, the stored level is cleared so it won’t trigger again.
Inputs (Settings)
Trend EMA Length (lenEMA): Default 200.
Use 50–100 for intraday, 200 for swing/position.
Tap Tolerance (ticks) (tapTicks): Default 1.
Helps account for tiny feed discrepancies. Set 0 for strict equality.
One Signal per Level (oneShot): Default ON.
If OFF, multiple taps can create multiple signals.
Plot Tap Levels (plotLevels): Draws horizontal lines at active bases.
Show Pattern Labels (showLabels): Marks the origin wickless candles.
Plots & Visuals
EMA trend line for context.
Tap Levels:
Green line at bullish base (origin candle’s low/open).
Red line at bearish base (origin candle’s high/open).
Signals:
BUY: triangle-up below the bar on the tap.
SELL: triangle-down above the bar on the tap.
Labels (optional):
Marks the original wickless impulse candle that created each level.
Alerts
Two alert conditions are built in:
“BUY Signal” — fires when a bullish tap occurs.
“SELL Signal” — fires when a bearish tap occurs.
How to set:
Add the indicator to your chart.
Click Alerts (⏰) → Condition = this indicator.
Choose BUY Signal or SELL Signal.
Set your alert frequency and delivery method.
Recommended usage
Timeframes: Works on any; start with 5–15m intraday, or 1H–1D for swing.
Markets: Equities, futures, FX, crypto. For thin/illiquid assets, consider a slightly larger Tap Tolerance.
Confluence ideas (optional, but helpful):
Higher-timeframe trend agreeing with your chart timeframe.
Volume surge on the origin wickless candle.
S/R, order blocks, or SMC structures near the tap level.
Avoid major news moments when slippage is high.
No-repaint behavior
Origin patterns are detected only on bar close (barstate.isconfirmed), so bases are created with confirmed data.
Signals come after the origin bar, on subsequent taps.
There is no lookahead; lines and shapes reflect information known at the time.
(As with all real-time indicators, an intrabar tap can trigger an alert during the live bar; the signal then remains if that condition held at bar close.)
Known limitations & design choices
Single active level per side: The script tracks only the most recent bullish base and most recent bearish base.
Want a queue of multiple simultaneous bases? That’s possible with arrays; ask and we’ll extend it.
Heikin Ashi / non-standard candles: Wick definitions change; for consistent behavior use regular OHLC candles.
Gaps: On large gaps, taps can occur instantly at the open. Consider one-shot ON to avoid rapid repeats.
This is an indicator, not a strategy: It does not place trades or compute PnL. For backtesting, we can convert it into a strategy with SL/TP logic (ATR or structure-based).
Practical tips
Tap Tolerance:
If you miss obvious taps by a hair, increase to 1–2 ticks.
For FX/crypto with tiny ticks, even 0 or 1 is often enough.
EMA length:
Shorten for faster signals; lengthen for cleaner trend selection.
Risk management (manual suggestion):
For BUY signals, consider a stop slightly below the tap level (or ATR-based).
For SELL signals, consider a stop slightly above the tap level.
Scale out or trail using structure or ATR.
Quick checklist
✅ Price above EMA → watch for a green no-lower-wick candle → store its low → BUY on tap.
✅ Price below EMA → watch for a red no-upper-wick candle → store its high → SELL on tap.
✅ Use Tap Tolerance to avoid missing precise touches by one tick.
✅ Consider One Signal per Level to keep trades uncluttered.
FAQ
Q: Why did I not get a signal even though price touched the level?
A: Check Tap Tolerance (maybe too strict), trend alignment at the tap bar, and that the tap happened after the origin candle. Also confirm you’re on regular candles.
Q: Can I see multiple bases at once?
A: This version tracks the latest bull and bear bases. We can extend to arrays to keep N recent bases per side.
Q: Will it repaint?
A: No. Bases form on confirmed closes, and signals only on later bars.
Q: Can I backtest it?
A: This is a study. Ask for the strategy variant and we’ll add entries, exits, SL/TP, and stats.
Sigma Expected Movement [D/W/M] - Jez WhitakerThis indicator aims to help those with lower levels of TradingView add day trading indicators without going over their limits. You can toggle on and off the indicators you want and change the settings but you should see:
MAs - 5, 20, 50, 100, 200
VWAPS - daily, WTD, MTD, YTD
Previous close, previous highs, previous lows etc.
Multi-Tool Nasdaq US100 IndikatorA combination of several tools such as moving averages (EMA 50, 100, 200), Fibonacci retracements, pivot points, RSI (Relative Strength Index), order blocks, fair value gaps, supply and demand zones, and a simple volume profile.
The indicator is designed to enable high profitability by combining various established technical analysis approaches into one tool, facilitating decision-making regarding entry and exit points.
The script can be integrated and used directly in TradingView by creating a new indicator script and pasting the code there.
Moving Average Shift [Quantora]Title: Moving Average Shift
Description:
The Moving Average Shift is a dynamic technical analysis tool designed to help traders better visualize trend strength and direction using a combination of customizable moving averages and a volatility-adjusted oscillator.
🔧 Features:
Multi-Type Moving Average Selection
Choose from SMA, EMA, SMMA (RMA), WMA, and VWMA for your main signal line.
ZLSMA Trio
Three Zero-Lag Smoothed Moving Averages (ZLSMA) with adjustable lengths and colors provide a smoother trend-following structure without the delay of traditional MAs.
EMA Ribbon (50/100/200)
Add clarity to long-term trend direction with layered Exponential Moving Averages in key institutional periods.
Volatility-Adjusted Oscillator
A color-changing oscillator calculated from the normalized deviation between price and the selected MA. This helps identify trend shifts and momentum buildups.
Custom MA Line Widths and Styling
Full control over the width and appearance of all MA lines for visual clarity.
Bar & Candle Coloring
Bars and candles dynamically change color based on the relationship between price and the selected MA — helping you quickly assess bullish/bearish conditions.
📈 How It Helps:
Spot early trend shifts through the oscillator.
Confirm trades using the alignment between ZLSMAs and EMAs.
Quickly assess current trend conditions using color-coded price bars.
Bollinger Bands + LWMA + EMA ComboThe BBMA strategy from Omaly Ally, this contains all the MA 5/ 10 high and MA 5/ 10 low, it also has EMA 50, 100 and 200