TV Community AlgoTV Community Algo is a free TradingView script that I designed from the ground to benefit the traders of this community. It has plenty of features that you will enjoy, and I have included documentation for how to use this below!
Settings:
Basic:
Turn the Void Lines on or off
Turn the Dashboard on or off
Turn the Signal Bars on or off
Turn the Support & Resistance Lines on or off
Turn the EMA 8 and EMA 200 on or off
Turn the Buy & Sell Signals on or off
Turn the Fibonacci Retracement Tool on or off
Style:
Change the Dashboard's distance from the price action
Change the Dashboard's Color and Transparency
Change the Dashboard Text Color
Change the Fibonacci Deviation
Make the Fibonacci Retracement Tool reverse
Make the Fibonacci Lines extend left, right, both directions, or none
Turn Fibonacci Prices on or off
Turn Fibonacci Levels on or off and change between percent or value
Change Fibonacci Label Position from the left or the right
Usage:
This algo has many uses including but not limited to:
Finding entries and exits using the EMA 8 and EMA 200 crossovers
Using the Void Lines to identify bounces or reversals
Using the Signal Bars to identify trend and confirmation for entries and exits
Using the Dashboard information for confirmation and informational purposes
In the images below, I give a few examples of the many uses of the TV Community Algo!
VOID LINES
The Void Lines are very helpful when it comes to identifying reversals.
TV COMMUNITY ALGO DASHBOARD
The Dashboard is filled with useful information that all traders can benefit from!
SIGNAL BARS
The colored candles known as Signal Bars inform you of when the price action is above or below the midpoint of the Void Lines.
AUTO SUPPORT & RESISTANCE LINES
These lines help traders find accurate levels of support & resistance on all time frames, and the lines change color depending on if the price is above or below them.
EMA 8 AND 200
The EMA 8 and EMA 200 crossovers can be used as entry and exit signals.
BUY & SELL SIGNALS
The BUY & SELL signals can be used to find optimal entries and exits for trades on any time frame. Smaller time frames are best for scalping, while larger time frames are more suited for longer trades. When combined with the EMA lines and Dashboard information, these signals can produce incredibly profitable trades.
AUTO FIBONACCI RETRACEMENT TOOL
The Auto Fibonacci Retracement Tool allows you to plot perfect Fib Lines every time.
Conclusion:
I truly hope that the TV Community Algo benefits the TradingView community and that you all find some value in it. I worked very hard on this product and I would love to see it put to good use.
with love,
-Lemon 🍋
This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
在脚本中搜索"200元+股票大盘"
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.
Structure AnalyzerA momentum indicator that uses the highest and lowest values for price in three different lookback lengths to find the performance relative to three timeframes.
- The yellow line is the product of the price performance in three different timeframes.
- The red line is 200 EMA of the performance.
- The blue columns represent the same calculation or the volume(OBV based).
- The aqua line is the 200 EMA of the volume performance.
How to use: Whenever the performance crosses above the 200 EMA, the price is in an uptrend.
Important: When in a downtrend, the performance will stay below the 200 EMA for a long time; hence it is important o wait until the crossover.
Minervini Trend TemplateMinervini Trend Template
1. Stock price is above MA 150 and 200
2. MA 150 is above MA 200
3. MA 200 is trending at least 1 month(22 days)
4. MA 50 is above both MA 150 and MA 200
5. Current stock price is 25% above 52 weeks low
6. Current Price is within 25% of 52 week high
7. RS Ratings
Xiang Stoch MACD 200EMAStochastic + MACD + 200 EMA indicator
Green flag
1) MACD crossover Signal line
2) Stochastic in oversold region (=80)
3) Below 200 EMA (direction of trend)
I use 200 EMA to determine the direction of the trend, (can ignore point 3 for both flag if you got other ways).
If green flag, high possibility of market going up.
If red flag, high possibility of market going down.
ARI-DPO TrendThis is a new indicator that uses DPO (Detrended Price Oscillator) and calculating its HMA 200 and EMA 200 is able to show the current price direction.
if the line is below 0 the market is in a downtrend in the short term, otherwise, the market is in an uptrend.
if the line is red, the market is in a downtrend in the long term (bearish), otherwise, the market is in a long term uptrend (bullish)
a sequence of red/green lines means that the market is choppy
Currently, I'm using it with cryptocurrencies to assess if the short term price action.
How it works:
the indicator calculates the DPO (default 21 periods) and its HMA (default 200 periods) and EMA (default 200 periods) and shows if the DPO is above both HMA and SMA (indicator line above 0 and green), below both (indicator line below 0 and red) or between (the indicator line and the colour are not matching: e.g. red line above the zero or green line below zero). the latter is the classic situation of a choppy market or a possible short term reversal.
The aim of this indicator is to find a good entry point for long/short positions.
I'm still testing and improving it, please
let me know in the comments if you find this useful. Cheers!
GAURs Polynomial Regression ChannelsThanks to The Sweet Lord , here is the Gaur's Polynomial Regression Channel.
Its a Polynomial Regression Channel but applied a little differently. Wont go into technical details much. Overview of options is as follows-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Channel Options
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1. Degree of Polynomial: 1/2/3
Default = 3
Defines the degree of polynomials - 1,2,3. Note here, degree 1 will not be a straight line since its applied differently.
Try different degrees for different fits and market conditions.
2. Channel Length:
Default 30 (candles)
You can go beyond 100 or 200 candle lengths but smaller is the usual preference of Poly-Reg-channel traders. It all depends on market conditions and your style of trading. Do your research. I am usually comfortable with a range of 20-50 (in crypto markets).
3. Basis of Channel height/boundries: ATR/Manual
Default: ATR
ATR provides a dynamically adjusted entry/exit bounds of the channels. As ATR changes, the channel bounds also changes its height. It can also be fixed manually. Manual heights wont change automatically.
4. Basis of Y-Value: open/close/ sma / ema / wma /hilow
Default: close
Y- value is the y value of the (x,y) coordinates used while calculating the regression coefficients. Dont worry about it, its nothing serious.
5. Apply channel smoothning using sma?: Yes/No
Default: Yes
Without smoothning, the channel does not "look" good.
6. Shaded Area Height Percentage:
Its the extra margin for the channel. Its in percentage of the total height (defined 3 above) of channels. The shaded area provides an extra allowance for your entries or exits beyond the ATR or manual heights.
7. Plot RSI?: Yes/No
Default: Yes
Plots RSI (orange line in between the channel - its different from the dotted center line) considering the downbound of channels as 0 (oversold) and upbound of channels as 100 (overbought)
8. Plot 200 sma?: Yes/No
Default: Yes
It plots a 200 period fast (green) and 225 period slow (red) sma . I usually use two MAs. Its visually very easy to understand.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sample Strategy
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
You can develop your own strategy with the channels. But following is just one of the ways you can trade.
Best Application: Ranging markets. But can be happily used in volatile conditions, with a little experience.
1. SMA: -- (this condition is optional really)
If green (200) is above red (225) go only long. If red is above green go only short. Defines long term trend of the market.
2. Channel slope: -- (this stuff needs practice/experience)
Depending on the channel slope, like if its tending to go up or down, you can choose to take only short or long trades. It defines short term momentum of the market.
3. ATR based heights:
Since its ATR based, the channel height are our natural entry and exit points.
Long:
When price touches lower shaded area, consider possible long entry. Exit on price entering the upper shaded area.
Short:
Enter on upper bound shaded area, exit on lower.
4. RSI:
For additional conformations. Again note, the RSI considers the lower bound of channel as 0 and upper as 100. But since, the channel moves up and down, the RSI will also move not only as RSI but also with the channel. Meaning, say if the RSI is valued at 50, then it will be near the center of the channel but since the center changes as time and price changes, the RSI valued at 50 at different times will not be at the same horizontal level respect to the graph, although it will be at the same level (center) respect to the channel.
5. PRC Channel Percentage label:
This label is at the lower side a bit ahead of the current candle. Provides you info on what is the channel percentage. This is especially helpful in crypto markets to gauge your possible percentage profit where profits can be much higher than forex or other instruments. It can also helps you select a suitable market/instrument if the channels are based on ATR.
6. Extra indicators:
I usually use stochastic along with this setup for extra conformations.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Donate
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Use freely and donate generously if you find value. Your help will really help.
I had earlier provided BTC addresses for donations but it seems to violate TV House rules.
Hope they make TV coins redeemable in future.
- Pranav Joshi
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Extra Info
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// © cpranavjoshi
// special thanks to the "Trading View" people for providing this great platform for free
// ------------------------
// MATH
// ------------------------
// special thanks to an article on the web that provided layman friendly explanation of the maths
// unfortunately i wont be able to provide the link to that article owing to TV restrictions, though i sincerely would have liked to credit the author.
// Google search this phrase, and you should be able to get it in one of the first results - "polynomialregression Mathematics of Polynomial Regression"
// my regression math calculation is a further resolution upon the generalized matrix formula given in the that article.
// the generalized matrix looks scary but in fact its much simpler than one may assume
// the summation sign things are just float numbers that can be easily found out
// so we get a matrix with number of equations equal to the number of unknowns.
// e.g. if its a 3rd degree poly, it has 4 unknowns (c0,c1,c2,c3) with 4 equations as in the generalized matrix
// it can be resolved by simple algebra
// Note: the results have been verified with excel using same input data points.
// pine was difficult for me so i coded it in python first to verify
// ------------------------
// WHY
// ------------------------
// this script was coded because Pranav badly needed Polynomial channels (had used them in mt4 earlier)
// and at the time of this coding, i could not find any readily available script in the trading view public library ( tnx public)
// the complex math was probably the hurdle
// i m not good in maths, but by the Will of the Lord, i could resolve the issue with simple algebra and logic
// ------------------------
// PINE
// ------------------------
// i am just an average (even poor probably) programmer and pine script is not my language
// this is a humble attempt to write my first pine with whatever i could do quickly
// experts - feel free to develop if needed. have used some workarounds in drawings/plottings. rectify them if possible
//
//
// - Pranav Joshi
Trading Rush Signals & AlertsThis is an unofficial script for strategies tested on TRADING RUSH Youtube channel. Over time, most successful strategies will be added with an option to set strategy-specific alerts . Trading Rush Signals & Alerts will draw signals on the chart when the entry conditions are met. You can also opt for displaying indicators .
My script is meant for beginners but can be used by veterans too. Just pick only one or two strategies, you don't want to flood your chart with conflicting signals. You may want to support your trades with a proper analysis. If a new signal occurs when there is still an open position, you are not supposed to take another.
The current version includes MACD and Donchian Channels.
MACD strategy:
►Buy, when MACD crosses below the signal line when it is negative. The price must also be above 200 EMA.
►Sell, when MACD crosses above the signal line when it is positive. The price must also be below 200 EMA.
►This strategy was tested on 30-minute charts of EURUSD and EURJPY with reward-to-risk ratio 1,5 and win rate of 62% over 100 trades .
►►►MACD has to be added to your chart separately because it needs a new window. Indicators displaying will not add this indicator to the chart.
Donchian Channels strategy:
►Buy, when the price breaches Donchian to the upside after making a new low. The price must also be above 200 EMA.
►Sell, when the price breaches Donchian to the downside after making a new high. The price must also be below 200 EMA.
►Stop-loss is Donchian bottom for long and Donchian top for shorts. Check the channel for more information.
►This strategy was tested on 30-minute charts of EURUSD with reward-to-risk ratio 1,5 and win rate of 58% over 100 trades .
►►►I programmed alerts for Donchians to come ahead of an actual breach. If you often leave the screen when trading, this will help you. The necessary downside for that is the alerts might come when the signal doesn't trigger in the end. You will see a mark on the chart if the conditions are truly met.
Bear in mind that backtesting performance doesn't guarantee future profitability. • Most systematic strategies are not suitable for any timeframe. • You should perform your own backtest to base your trades on more data & to establish confidence in the selected strategy.
New strategies will be added when I have time. If I see multiple people asking for the same new feature, I might agree to release it with a new version. I am not going to add input options in this script, it could come as a separate script though. I am in no way affiliated with the Youtubechannel , so if you find the script helpful, shot me a message or send me some TradingView coins >)
If you encounter any bug, you can report it in a message or in comments. Support it with screenshot and relevant information such as a time when it occurred and what options were on etc.
Moving average Two ColoursExponential moving average of 200 periods, which changes color according to the position of the candles.
(200 periods: default configuration Option to change periods allowed)
If the candles are on the EMA, this will have green color, otherwise red color (colors, thickness configurable).
**********************************************************************************************************************************************
Descripción en Español:
Media móvil Exponencial de 200 periodos, la cuál cambia de color según posición de las velas.
(200 periodos: configuración default. Opción de cambio de periodos permitida)
Si las velas están sobre la EMA , esta tendrá color verde, caso contrario color rojo (colores, grosor configurables).
cci based potential buy/sell signal
Commodity Channel Index Potential Buy Signal
Commodity Channel Index (CCI) is below oversold line (-200).
CCI then crosses above -100 line
Commodity Channel Index Potential Sell Signal
Commodity Channel Index (CCI) is above overbought line (+200).
CCI then crosses below +100 line.
Türkçe Açıklama;
CCI Potansiyel Al Sinyali
CCI indikatörünün -200 altında bulunduğu bölgeler aşırı satış bölgeleri,
Sonrasında aşağıdan gelerek -100 çizgisinin üzerine çıktığı yada çıkmak üzere olduğu noktalar al sinyali
CCI Potansiyel Satl Sinyali
CCI indikatörünün +200 üzerinde bulunduğu bölgeler aşırı alım bölgeleri,
Sonrasında yukarıdan inerek +100 çizgisinin altına indiği yada inmek üzere olduğu noktalar sat sinyali
Not: Tek başına kullanılması son derece hatalı sonuçlar verebilir. Sadece olabilirlik potansiyeli taşımaktadır.
Exponential Moving Average (Set of 3) [Krypt] + 13/34 EMAsI took Krypt's script and essentially added on to it.
the 20/50/100/200 EMAs should be used together as support and resistance as normal.
Wait for price to break 200 EMA
Wait for 50 EMA to cross 200 EMA
Wait for pullback to 50 EMA to open position
20 and 100 EMAs are for extra information about moving support and resistance
and 13/34 EMAs should be used in conjunction
When 13 EMA crosses 34 EMA, open position
When price gets far from 13/34, close position (because price will attempt to revert back to mean)
This is better for scalping and swing trades than the 20/50/100/200 setup.
Twitter: @AzorAhai06
ST_Trend_ReversalSTRONG TREND REVERSAL INDICATOR
The code is the percentage difference between the spot price of a given financial asset and its 200-day MA of that period. My standard setup is Daily, and I think it's got very good predictive power at that timeframe.
It can be read in two ways:
1. Values extremely above or below the 200-period MA present chances of buying/selling agains the prevailing trend.
2. Values closely above or below the 200-period MA are make-or-break market periods, where a medium-term trend becomes evident. Breaks above or below the MA are associated with strong chances of directional movements. But it's not fool-proof as false breaks have become commonplace nowadays.
Other way to use it is as confirmation of breakdowns: For example, an asset that loses its 200-day MA and then can't rally above it becomes exposed to steep losses afterwards.
It's also helpful to use in volatility trading: the closer the asset goes to its MA, the lower goes implied vol, and thus better opportiunities to be long volatility on those occasions where direction is hard to predict.
STRI = close/(200dMA)
Values over 100 indicate percentage premiums of spot vs its moving average.
Values below indicate percentage discounts of spot vs its moving average.
HeikenAshi[1]This is the alert script so you can automate this strategy using AutoView:
Make sure to use
crossing down value 0.9 once per bar (on condition) for this.
For the alert Message if you're using AutoView:
Long GBPUSD
c=order b=short
c=position b=short l=200 t=market
b=long q=0.01 l=200 t=market tp=60 sl=60
Short GBPUSD
c=order b=long
c=position b=long l=200 t=market
b=short q=0.01 l=200 t=market tp=60 sl=60
How to automate this strategy for free using a chrome extension.Hey everyone,
Recently we developed a chrome extension for automating TradingView strategies using the alerts they provide. Initially we were charging a monthly fee for the extension, but we have now decided to make it FREE for everyone. So to display the power of automating strategies via TradingView, we figured we would also provide a profitable strategy along with the custom alert script and commands for the alerts so you can easily cut and paste to begin trading for profit while you sleep.
Step 1:
You are going to need to download the Chrome Extension called AutoView. You can get the extension for free by following this link: bit.ly ( I had to shorten the link as it contains Google and TV automatically converts it to a symbol)
Step 2: Go to your chrome extension page, and under the new extension you'll see a "settings" button. In the setting you will have to connect and give permission to the exchange 1broker allowing the extension to place your orders automatically when triggered by an alert.
Step 3: Setup the strategy and custom script for the alerts in TradingView. The attached script is the strategy, you can play with the settings yourself to try and get better numbers/performance if you please.
This following script is for the custom alerts:
//@version=2
study("4All-Alert", shorttitle="Alerts")
src = close
len = input(4, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsin = input(5)
sn = 100 - rsin
ln = 0 + rsin
short = crossover(rsi, sn) ? 1 : 0
long = crossunder(rsi, ln) ? 1 : 0
plot(long, "Long", color=green)
plot(short, "Short", color=red)
Now that you have the extension installed, the custom strategy and alert scripts in place, you simply need to create the alerts.
To get the alerts to communicate with the extension properly, there is a specific syntax that you will need to put in the message of the alert. You can find more details about the syntax here : gist.github.com
For this specific strategy, I use the Alerts script, long/short greater than 0.9 on close.
In the message for a long place this as your message:
Long
c=order b=short
c=position b=short l=200 t=market
b=long q=0.01 l=200 t=market tp=13 sl=25
and for the short...
Short
c=order b=long
c=position b=long l=200 t=market
b=short q=0.01 l=200 t=market tp=13 sl=25
If you'll notice in my above messages, compared to the strategy my tp and sl (take profit and stop loss) vary by a few pips. This is to cover the market opens and spread on 1broker. You can change the tp and sl in the strategy to the above and see that the overall profit will not vary much at all.
I hope this all makes sense and it is enough to not only make some people money, but to show the power of coming up with your own strategy and automating it using TradingView alerts and the free Chrome Extension AutoView.
ps. I highly recommend upgrading your TradingView account so you have access to back testing and multiple alerts.
There is really no reason you won't cover the cost and then some on a monthly basis using the tools provided.
Best of luck and happy trading.
Note: The extension currently allows for automation on 2 exchanges; 1broker and Okcoin. If you do not have accounts there, we'd appreciate you signing up using our referral links.
www.okcoin.com
1broker.com
BTC TOPperThe BTC TOPper indicator is a sophisticated technical analysis tool designed to identify critical price levels where Bitcoin's weekly Simple Moving Average (SMA) intersects with historically significant All-Time High (ATH) levels. This indicator is particularly valuable for long-term trend analysis and identifying potential reversal zones in Bitcoin's price action.
Key Features:
🔹 Weekly SMA Analysis: Uses a 200-period Simple Moving Average on weekly timeframe to smooth out short-term volatility and focus on long-term trends
🔹 Persistent Historical ATH Tracking: Automatically detects and "freezes" ATH levels that have been held for more than one year, creating persistent reference levels
🔹 Multi-Level Cross Detection: Tracks up to 10 different frozen ATH levels simultaneously, providing comprehensive historical context
🔹 Visual Cross Alerts: Highlights entire weeks with red background when the weekly SMA crosses any frozen ATH level, making signals impossible to miss
🔹 Advanced Smoothing Options: Includes optional secondary moving averages (SMA, EMA, SMMA, WMA, VWMA) with Bollinger Bands for enhanced analysis
🔹 Customizable Parameters: Adjustable SMA length, offset, and smoothing settings to fit different trading strategies
How It Works:
ATH Detection: Continuously monitors for new all-time highs
Level Freezing: After an ATH is held for 1+ year, it becomes a "frozen" historical level
Cross Monitoring: Watches for intersections between the 200-week SMA and any frozen ATH level
Signal Generation: Highlights the entire week when a cross occurs, providing clear visual alerts
Trading Applications:
Long-term Trend Analysis: Identify when Bitcoin approaches historically significant resistance levels
Reversal Zone Detection: Spot potential areas where price might reverse based on historical context
Support/Resistance Confirmation: Use frozen ATH levels as dynamic support and resistance zones
Market Structure Analysis: Understand how current price relates to historical market cycles
Best Practices:
Use on weekly timeframe for optimal results
Combine with other technical indicators for confirmation
Pay attention to multiple frozen levels clustering in the same price range
Consider market context and fundamentals alongside technical signals
Settings:
Length: 200 (default) - SMA period
Source: Close price
Smoothing: Optional secondary MA with multiple types available
Bollinger Bands: Optional volatility bands around secondary MA
This indicator is ideal for Bitcoin traders and analysts who want to understand the relationship between current price action and historical market structure, particularly useful for identifying potential major reversal zones based on historical ATH levels.
Previous candle - D-T.R.A.D.I.N.G//@version=6
indicator("Previous candle - byDen (Body % line & Wick size) ", overlay=true, max_boxes_count=200, max_lines_count=200, max_labels_count=200)
// ---------------- Inputs ----------------
showHighLow = input.bool(true, "Show High/Low lines")
showHLBox = input.bool(true, "Show High-Low Box (full range)")
showMidLine = input.bool(true, "Show Middle Line")
showCloseLine = input.bool(true, "Show Close Line")
showBodyPct = input.bool(true, "Show Body % Line")
enableWickBox = input.bool(true, "Show Wick-Body Box (previous candle)")
keepLastWick = input.bool(false, "Keep last Wick-Box when disabled")
bodyPct = input.float(25.0, "Body % Level", step=0.1, minval=0.0, maxval=100.0)
// colors / styles
cHighLow = input.color(color.white, "H/L Line Color")
hlStyleStr = input.string("solid", "H/L Style", options= )
hlWidth = input.int(1, "H/L Width", minval=1, maxval=5)
cMid = input.color(color.yellow, "Mid Line Color")
midStyleStr = input.string("dashed", "Mid Style", options= )
midWidth = input.int(1, "Mid Width", minval=1, maxval=5)
cClose = input.color(color.yellow, "Close Line Color")
closeStyleStr = input.string("dotted", "Close Style", options= )
closeWidth = input.int(1, "Close Width", minval=1, maxval=5)
cBoxBorder = input.color(color.red, "HL Box Border")
cBoxFill = color.new(input.color(color.gray, "HL Box Fill"), 85)
cBullBox = color.new(input.color(color.green, "Bull WickBox"), 80)
cBearBox = color.new(input.color(color.red, "Bear WickBox"), 80)
cWboxBorder = input.color(color.white, "WickBox Border")
cBodyPct = input.color(color.blue, "Body % Line Color")
bodyPctStyle = input.string("dashed", "Body % Line Style", options= )
bodyPctWidth = input.int(1, "Body % Line Width", minval=1, maxval=5)
// table colors / pip size
cPipBox = input.color(color.new(color.blue, 80), "Table Background Color")
cPipText = input.color(color.white, "Table Text Color")
pipSize = input.float(0.1, "Pip size (XAUUSD=0.1)", step=0.01)
wickLabelText = input.string("Wick", "Opis za wick")
bodyLabelText = input.string("H/L-Body%", "Opis za H/L-Body%")
descFontSizeStr = input.string("small", "Table Description Font Size", options= )
valFontSizeStr = input.string("normal", "Table Value Font Size", options= )
// custom texts for line labels
txtHigh = input.string("High", "Label Text - High")
txtLow = input.string("Low", "Label Text - Low")
txtMid = input.string("Mid", "Label Text - Mid")
txtClose = input.string("Close", "Label Text - Close")
txtBody = input.string("Body%", "Label Text - Body %")
lineFontSizeStr = input.string("small", "Line Label Font Size", options= )
lineLabelPos = input.string("above", "Line Label Position", options= )
lineLabelAlign = input.string("center", "Line Label Align", options= )
// ---------------- Candle Display Options ----------------
highDisplay = input.string("Both", "High Line Display", options= )
lowDisplay = input.string("Both", "Low Line Display", options= )
midDisplay = input.string("Both", "Mid Line Display", options= )
closeDisplay = input.string("Both", "Close Line Display", options= )
bodyDisplay = input.string("Both", "Body % Line Display", options= )
hlBoxDisplay = input.string("Both", "HL Box Display", options= )
wickBoxDisplay = input.string("Both", "Wick Box Display", options= )
// timeframe filter
enabledTFs = input.string("1,5,15,30,60,240,D", "Enable on timeframes")
// ---------------- Helpers ----------------
is_tf_enabled(tfStr) =>
str.contains("," + enabledTFs + ",", "," + tfStr + ",")
line_style_from_str(s) =>
s == "dotted" ? line.style_dotted : s == "dashed" ? line.style_dashed : line.style_solid
get_font_size(fs) =>
fs == "tiny" ? size.tiny : fs == "small" ? size.small : fs == "large" ? size.large : fs == "huge" ? size.huge : size.normal
get_label_style(a) =>
a == "left" ? label.style_label_left : a == "right" ? label.style_label_right : label.style_label_center
get_y_pos(basePrice, pos) =>
pos == "above" ? basePrice + (syminfo.mintick * 10) : basePrice - (syminfo.mintick * 10)
// ---------------- Data ----------------
tf = timeframe.period
= request.security(syminfo.tickerid, tf, , lookahead=barmerge.lookahead_off)
midLevel = (prevH + prevL) / 2
isBull = prevC > prevO
// ---------------- Persistent ----------------
var line lHigh = na
var line lLow = na
var line lMid = na
var line lClose = na
var line lBodyPct = na
var box bHL = na
var box wickBox = na
var table wickTable = na
var label labHigh = na
var label labLow = na
var label labMid = na
var label labClose = na
var label labBodyPct = na
offsetBars = input.int(20, "Bars right", minval=1, maxval=500)
leftX_base = bar_index
rightX_base = bar_index + offsetBars
if na(wickTable)
wickTable := table.new(position.bottom_right, 2, 2, border_width=1, frame_color=color.white)
// ---------------- DRAW ----------------
if barstate.isconfirmed and is_tf_enabled(tf)
// delete previous labels
if not na(labHigh)
label.delete(labHigh)
labHigh := na
if not na(labLow)
label.delete(labLow)
labLow := na
if not na(labMid)
label.delete(labMid)
labMid := na
if not na(labClose)
label.delete(labClose)
labClose := na
if not na(labBodyPct)
label.delete(labBodyPct)
labBodyPct := na
// --- DRAW HIGH ---
drawHigh = (highDisplay=="Both") or (highDisplay=="Bullish" and isBull) or (highDisplay=="Bearish" and not isBull)
if showHighLow and drawHigh
if not na(lHigh)
line.delete(lHigh)
lHigh := line.new(leftX_base, prevH, rightX_base, prevH, xloc=xloc.bar_index, color=cHighLow, width=hlWidth, style=line_style_from_str(hlStyleStr))
labHigh := label.new(rightX_base, get_y_pos(prevH,lineLabelPos), txtHigh, xloc=xloc.bar_index, yloc=yloc.price, style=get_label_style(lineLabelAlign), textcolor=cHighLow, size=get_font_size(lineFontSizeStr))
// --- DRAW LOW ---
drawLow = (lowDisplay=="Both") or (lowDisplay=="Bullish" and isBull) or (lowDisplay=="Bearish" and not isBull)
if showHighLow and drawLow
if not na(lLow)
line.delete(lLow)
lLow := line.new(leftX_base, prevL, rightX_base, prevL, xloc=xloc.bar_index, color=cHighLow, width=hlWidth, style=line_style_from_str(hlStyleStr))
labLow := label.new(rightX_base, get_y_pos(prevL,lineLabelPos), txtLow, xloc=xloc.bar_index, yloc=yloc.price, style=get_label_style(lineLabelAlign), textcolor=cHighLow, size=get_font_size(lineFontSizeStr))
// --- DRAW MID ---
drawMid = (midDisplay=="Both") or (midDisplay=="Bullish" and isBull) or (midDisplay=="Bearish" and not isBull)
if showMidLine and drawMid
if not na(lMid)
line.delete(lMid)
lMid := line.new(leftX_base, midLevel, rightX_base, midLevel, xloc=xloc.bar_index, color=cMid, width=midWidth, style=line_style_from_str(midStyleStr))
labMid := label.new(rightX_base, get_y_pos(midLevel,lineLabelPos), txtMid, xloc=xloc.bar_index, yloc=yloc.price, style=get_label_style(lineLabelAlign), textcolor=cMid, size=get_font_size(lineFontSizeStr))
// --- DRAW CLOSE ---
drawClose = (closeDisplay=="Both") or (closeDisplay=="Bullish" and isBull) or (closeDisplay=="Bearish" and not isBull)
if showCloseLine and drawClose
if not na(lClose)
line.delete(lClose)
lClose := line.new(leftX_base, prevC, rightX_base, prevC, xloc=xloc.bar_index, color=cClose, width=closeWidth, style=line_style_from_str(closeStyleStr))
labClose := label.new(rightX_base, get_y_pos(prevC,lineLabelPos), txtClose, xloc=xloc.bar_index, yloc=yloc.price, style=get_label_style(lineLabelAlign), textcolor=cClose, size=get_font_size(lineFontSizeStr))
// --- DRAW BODY% ---
float bodySize = math.abs(prevC-prevO)
float levelPct = na
drawBody = (bodyDisplay=="Both") or (bodyDisplay=="Bullish" and isBull) or (bodyDisplay=="Bearish" and not isBull)
if showBodyPct and bodySize>0 and drawBody
if not na(lBodyPct)
line.delete(lBodyPct)
levelPct := isBull ? (prevC - (bodyPct/100)*bodySize) : (prevC + (bodyPct/100)*bodySize)
lBodyPct := line.new(leftX_base, levelPct, rightX_base, levelPct, xloc=xloc.bar_index, color=cBodyPct, width=bodyPctWidth, style=line_style_from_str(bodyPctStyle))
labBodyPct := label.new(rightX_base, get_y_pos(levelPct,lineLabelPos), txtBody, xloc=xloc.bar_index, yloc=yloc.price, style=get_label_style(lineLabelAlign), textcolor=cBodyPct, size=get_font_size(lineFontSizeStr))
// --- BOXES ---
drawHLBox = (hlBoxDisplay=="Both") or (hlBoxDisplay=="Bullish" and isBull) or (hlBoxDisplay=="Bearish" and not isBull)
if showHLBox and drawHLBox
if not na(bHL)
box.delete(bHL)
bHL := box.new(leftX_base, prevH, rightX_base, prevL, xloc=xloc.bar_index, border_color=cBoxBorder, bgcolor=cBoxFill)
drawWickBox = (wickBoxDisplay=="Both") or (wickBoxDisplay=="Bullish" and isBull) or (wickBoxDisplay=="Bearish" and not isBull)
if enableWickBox and drawWickBox
float topP = isBull ? prevH : prevC
float botP = isBull ? prevC : prevL
if not na(topP) and not na(botP)
if not na(wickBox)
box.delete(wickBox)
wickBox := box.new(leftX_base, topP, rightX_base, botP, xloc=xloc.bar_index, border_color=cWboxBorder, bgcolor=(isBull?cBullBox:cBearBox))
else if not enableWickBox and not keepLastWick and not na(wickBox)
box.delete(wickBox)
wickBox := na
// --- TABLE (vedno na obeh) ---
float wickPips = isBull ? prevH-prevC : prevC-prevL
float bodyPips = na
if not na(levelPct)
bodyPips := isBull ? math.round((prevH-levelPct)/pipSize) : math.round((levelPct-prevL)/pipSize)
table.cell(wickTable, 0, 0, wickLabelText, text_color=cPipText, bgcolor=cPipBox, text_size=get_font_size(descFontSizeStr))
table.cell(wickTable, 1, 0, str.tostring(wickPips/pipSize), text_color=cPipText, bgcolor=cPipBox, text_size=get_font_size(valFontSizeStr))
if not na(bodyPips)
table.cell(wickTable, 0, 1, bodyLabelText, text_color=cPipText, bgcolor=cPipBox, text_size=get_font_size(descFontSizeStr))
table.cell(wickTable, 1, 1, str.tostring(bodyPips), text_color=cPipText, bgcolor=cPipBox, text_size=get_font_size(valFontSizeStr))
Previous candle - byDen (Body % line & Wick size)
//@version=6
indicator("Previous candle - byDen (Body % line & Wick size) ", overlay=true, max_boxes_count=200, max_lines_count=200, max_labels_count=200)
// ---------------- Inputs ----------------
showHighLow = input.bool(true, "Show High/Low lines")
showHLBox = input.bool(true, "Show High-Low Box (full range)")
showMidLine = input.bool(true, "Show Middle Line")
showCloseLine = input.bool(true, "Show Close Line")
showBodyPct = input.bool(true, "Show Body % Line")
enableWickBox = input.bool(true, "Show Wick-Body Box (previous candle)")
keepLastWick = input.bool(false, "Keep last Wick-Box when disabled")
bodyPct = input.float(25.0, "Body % Level", step=0.1, minval=0.0, maxval=100.0)
// colors / styles
cHighLow = input.color(color.white, "H/L Line Color")
hlStyleStr = input.string("solid", "H/L Style", options= )
hlWidth = input.int(1, "H/L Width", minval=1, maxval=5)
cMid = input.color(color.yellow, "Mid Line Color")
midStyleStr = input.string("dashed", "Mid Style", options= )
midWidth = input.int(1, "Mid Width", minval=1, maxval=5)
cClose = input.color(color.yellow, "Close Line Color")
closeStyleStr = input.string("dotted", "Close Style", options= )
closeWidth = input.int(1, "Close Width", minval=1, maxval=5)
cBoxBorder = input.color(color.red, "HL Box Border")
cBoxFill = color.new(input.color(color.gray, "HL Box Fill"), 85)
cBullBox = color.new(input.color(color.green, "Bull WickBox"), 80)
cBearBox = color.new(input.color(color.red, "Bear WickBox"), 80)
cWboxBorder = input.color(color.white, "WickBox Border")
cBodyPct = input.color(color.blue, "Body % Line Color")
bodyPctStyle = input.string("dashed", "Body % Line Style", options= )
bodyPctWidth = input.int(1, "Body % Line Width", minval=1, maxval=5)
// wick label
cPipBox = input.color(color.new(color.blue, 80), "Wick Box Color")
cPipText = input.color(color.white, "Wick Text Color")
pipSize = input.float(0.1, "Pip size (XAUUSD=0.1)", step=0.01)
// Label settings
showLabels = input.bool(true, "Show Line Labels")
labelAbove = input.bool(true, "Labels Above Line?")
fontSizeStr = input.string("normal", "Label Font Size", options= )
labelAlignX = input.string("center", "Label Alignment", options= )
// custom texts for labels
txtHigh = input.string("High", "Label Text - High")
txtLow = input.string("Low", "Label Text - Low")
txtMid = input.string("Mid", "Label Text - Mid")
txtClose = input.string("Close", "Label Text - Close")
txtBody = input.string("Body %", "Label Text - Body %")
// Wick pips font size (same options)
wickFontSizeStr = input.string("normal", "Wick Pips Font Size", options= )
// timeframe filter
enabledTFs = input.string("1,5,15,30,60,240,D", "Enable on timeframes")
// ---------------- Helpers ----------------
is_tf_enabled(tfStr) =>
str.contains("," + enabledTFs + ",", "," + tfStr + ",")
line_style_from_str(s) =>
s == "dotted" ? line.style_dotted : s == "dashed" ? line.style_dashed : line.style_solid
get_label_style(_align) =>
_align == "left" ? label.style_label_left : _align == "right" ? label.style_label_right : label.style_label_center
get_font_size(fs) =>
if fs == "tiny"
size.tiny
else if fs == "small"
size.small
else if fs == "large"
size.large
else if fs == "huge"
size.huge
else
size.normal
// ---------------- Data ----------------
tf = timeframe.period
= request.security(syminfo.tickerid, tf, , lookahead=barmerge.lookahead_off)
midLevel = (prevH + prevL) / 2
isBull = prevC > prevO
// ---------------- Persistent ----------------
var line lHigh = na
var line lLow = na
var line lMid = na
var line lClose = na
var line lBodyPct = na
var box bHL = na
var box wickBox = na
var table wickTable = na
// labels
var label labHigh = na
var label labLow = na
var label labMid = na
var label labClose = na
var label labBody = na
offsetBars = input.int(20, "Bars right", minval=1, maxval=500)
leftX_base = bar_index
rightX_base = bar_index + offsetBars
if na(wickTable)
wickTable := table.new(position.bottom_right, 1, 1, border_width=1, frame_color=color.white)
// ---------------- DRAW ----------------
if barstate.isconfirmed and is_tf_enabled(tf)
// clean old labels
if not na(labHigh)
label.delete(labHigh)
if not na(labLow)
label.delete(labLow)
if not na(labMid)
label.delete(labMid)
if not na(labClose)
label.delete(labClose)
if not na(labBody)
label.delete(labBody)
// style for labels
labStyle = get_label_style(labelAlignX)
labSize = get_font_size(fontSizeStr)
wickSize = get_font_size(wickFontSizeStr)
yOffset = labelAbove ? 1 : -1
if showHighLow
if not na(lHigh)
line.delete(lHigh)
if not na(lLow)
line.delete(lLow)
lHigh := line.new(leftX_base, prevH, rightX_base, prevH, xloc=xloc.bar_index, color=cHighLow, width=hlWidth, style=line_style_from_str(hlStyleStr))
lLow := line.new(leftX_base, prevL, rightX_base, prevL, xloc=xloc.bar_index, color=cHighLow, width=hlWidth, style=line_style_from_str(hlStyleStr))
if showLabels
labHigh := label.new(rightX_base, prevH + yOffset*syminfo.mintick, txtHigh, xloc=xloc.bar_index, yloc=yloc.price, style=labStyle, textcolor=cHighLow, size=labSize)
labLow := label.new(rightX_base, prevL + yOffset*syminfo.mintick, txtLow, xloc=xloc.bar_index, yloc=yloc.price, style=labStyle, textcolor=cHighLow, size=labSize)
if showMidLine
if not na(lMid)
line.delete(lMid)
lMid := line.new(leftX_base, midLevel, rightX_base, midLevel, xloc=xloc.bar_index, color=cMid, width=midWidth, style=line_style_from_str(midStyleStr))
if showLabels
labMid := label.new(rightX_base, midLevel + yOffset*syminfo.mintick, txtMid, xloc=xloc.bar_index, yloc=yloc.price, style=labStyle, textcolor=cMid, size=labSize)
if showCloseLine
if not na(lClose)
line.delete(lClose)
lClose := line.new(leftX_base, prevC, rightX_base, prevC, xloc=xloc.bar_index, color=cClose, width=closeWidth, style=line_style_from_str(closeStyleStr))
if showLabels
labClose := label.new(rightX_base, prevC + yOffset*syminfo.mintick, txtClose, xloc=xloc.bar_index, yloc=yloc.price, style=labStyle, textcolor=cClose, size=labSize)
if showBodyPct
if not na(lBodyPct)
line.delete(lBodyPct)
float bodySize = math.abs(prevC - prevO)
if bodySize > 0
float levelPct = isBull ? (prevC - (bodyPct/100.0) * bodySize) : (prevC + (bodyPct/100.0) * bodySize)
lBodyPct := line.new(leftX_base, levelPct, rightX_base, levelPct, xloc=xloc.bar_index, color=cBodyPct, width=bodyPctWidth, style=line_style_from_str(bodyPctStyle))
if showLabels
labBody := label.new(rightX_base, levelPct + yOffset*syminfo.mintick, txtBody + " " + str.tostring(bodyPct), xloc=xloc.bar_index, yloc=yloc.price, style=labStyle, textcolor=cBodyPct, size=labSize)
if showHLBox
if not na(bHL)
box.delete(bHL)
bHL := box.new(leftX_base, prevH, rightX_base, prevL, xloc=xloc.bar_index, border_color=cBoxBorder, bgcolor=cBoxFill)
if not enableWickBox
if not na(wickBox) and not keepLastWick
box.delete(wickBox)
wickBox := na
else
float topP = isBull ? prevH : prevC
float botP = isBull ? prevC : prevL
if not na(topP) and not na(botP)
if not na(wickBox)
box.delete(wickBox)
wickBox := box.new(leftX_base, topP, rightX_base, botP, xloc=xloc.bar_index, border_color=cWboxBorder, bgcolor=(isBull ? cBullBox : cBearBox))
// wick izračun (v pipih)
float wickPips = isBull ? prevH - prevC : prevC - prevL
float wickInPips = math.round(wickPips / pipSize)
// prikaži samo številko v desnem spodnjem kotu (z nastavljivo velikostjo)
table.cell(wickTable, 0, 0, str.tostring(wickInPips), text_color=cPipText, bgcolor=cPipBox, text_size=wickSize)
Yasser Buy/Sell Signal Indicator 001Coded by: Yasser Mahmoud (YWMAAAWORLD):
For any assistance contact me at: yarm.global@gmail.com
# 🚀 **EMA Trend & Signal Indicator - The Ultimate Anti-Chop Trading System**
## **Finally! An Indicator That Eliminates False Signals and Maximizes Trending Profits**
Are you tired of getting whipsawed in choppy markets? Frustrated by indicators that give you 10 signals when you need just 1 good one? **This changes everything.**
---
## 🎯 **What Makes This Indicator Revolutionary?**
### **🔥 INNOVATIVE 7-FILTER CONFIRMATION SYSTEM**
This isn't just another EMA crossover indicator. It's a **complete trading system** that combines:
✅ **Multi-EMA Trend Analysis** (8, 13, 21, 50, 200 EMAs)
✅ **Volume Surge Detection** (1.5x average volume confirmation)
✅ **RSI Momentum Filter** (Avoids overbought/oversold traps)
✅ **EMA Slope Confirmation** (All short-term EMAs must align)
✅ **Advanced Anti-Chop Technology** (Patent-pending 5-filter system)
### **🚫 REVOLUTIONARY ANTI-CHOP FILTERS**
**The game-changer that separates amateurs from professionals:**
1. **Trend Strength Analyzer** - Measures EMA separation strength
2. **EMA Bunching Detector** - Prevents signals when EMAs are too close
3. **Market Structure Scanner** - Identifies genuine trending vs ranging markets
4. **Enhanced Volatility Filter** - Waits for sufficient market movement
5. **Smart Chop Detection** - Multi-timeframe chopiness analysis
**Result: 3 out of 5 filters must pass = Only HIGH-PROBABILITY setups trigger signals!**
---
## 📈 **TRADING RULES - COPY & PASTE STRATEGY**
### **🟢 BUY SIGNALS (Long Entry)**
**When ALL conditions align:**
- Price above 50 EMA **AND** 50 EMA above 200 EMA (Uptrend confirmed)
- 8 EMA > 13 EMA > 21 EMA (Perfect alignment)
- Volume > 1.5x average (Institutional participation)
- RSI between 50-70 (Bullish momentum, not overbought)
- All EMA slopes positive (True trending, not fake breakout)
- Anti-Chop Score ≥ 3/5 (Market conditions suitable)
**📍 Entry:** When green "BUY" label appears
**🛡️ Stop Loss:** Below nearest swing low or 50 EMA
**🎯 Take Profit:** 2:1 or 3:1 risk/reward ratio
### **🔴 EXIT BUY SIGNALS (Risk Management)**
**Automatic protection when:**
- EMAs lose perfect alignment (8>13>21 breaks)
- Trend remains intact but short-term weakness detected
**📍 Action:** Exit position when "EXIT BUY" appears
**💡 Strategy:** Wait for "BUY" signal to re-enter if trend continues
### **🟥 SELL SIGNALS (Short Entry)**
**Mirror logic for downtrends:**
- Price below 50 EMA **AND** 50 EMA below 200 EMA
- 8 EMA < 13 EMA < 21 EMA (Perfect bearish alignment)
- Same volume, RSI, and anti-chop confirmations
### **🔸 EXIT SELL SIGNALS**
**Smart exit when bearish alignment breaks**
---
## 💰 **PROFIT-MAXIMIZING FEATURES**
### **📊 REAL-TIME STATUS DASHBOARD**
Never guess market conditions again! Live display shows:
- Current trend direction
- Signal state (BUY/SELL/EXIT/NONE)
- EMA alignment status
- Volume surge detection
- RSI level with color coding
- Anti-chop score (X/5)
- **Signal quality assessment**
### **🎨 CLEAN VISUAL SYSTEM**
- **Large, clear text labels** (no tiny arrows to miss)
- **Color-coded status panel** (optimized for white backgrounds)
- **Only long-term EMAs visible** (reduces chart clutter)
- **Smart sizing** (signals visible but not overwhelming)
### **🔔 BUILT-IN ALERTS**
Set and forget! Get notified instantly when:
- New BUY/SELL signals trigger
- EXIT signals protect your profits
- All confirmations align for high-probability setups
---
## 🏆 **WHY TRADERS CHOOSE THIS OVER EVERYTHING ELSE**
### ❌ **OTHER INDICATORS:**
- Give signals in every market condition
- Generate 50+ signals per day (analysis paralysis)
- No differentiation between high/low probability setups
- Leave you guessing about market structure
### ✅ **THIS SYSTEM:**
- **Selective Excellence** - Only 3-7 high-quality signals per week
- **Built-in Intelligence** - Automatically avoids choppy markets
- **Complete Transparency** - Shows you exactly why each signal triggers
- **Professional Grade** - Used by institutional-level confirmation methods
---
## 🎓 **PERFECT FOR:**
✅ **Swing Traders** - Clean entries on major trend moves
✅ **Day Traders** - High-probability intraday setups
✅ **Position Traders** - Long-term trend following
✅ **Beginners** - Clear, unambiguous signals with built-in education
✅ **Professionals** - Advanced filtering reduces noise, maximizes edge
---
## ⚡ **QUICK SETUP GUIDE**
1. **Add indicator to chart**
2. **Enable all default filters** (optimized settings included)
3. **Watch the status panel** - Wait for Chop Score ≥ 3/5
4. **Enter on BUY/SELL signals** - Exit on EXIT signals
5. **Profit from trending moves** while avoiding choppy losses!
---
## 🌟 **THE BOTTOM LINE**
**Stop fighting the market. Start trading WITH institutional-grade intelligence.**
This isn't just an indicator - it's your **competitive advantage** in a market where 90% of traders lose money due to poor timing and choppy market entries.
**Join the 10% who consistently profit by trading only when conditions are optimal.**
---
### 🔥 **"Finally, an indicator that thinks like a professional trader - selective, patient, and deadly accurate when it matters most."**
**Download now and experience the difference between trading signals and trading INTELLIGENCE.**
*Results may vary. Past performance does not guarantee future results. Always use proper risk management.*
[delta2win] Liquidity Zone Map🔥 Liquidity Zone Map — Volume‑normalized pivot zones with adaptive ATR scaling
📊 What it does:
• Detects potential liquidity/liquidation zones above confirmed highs and below confirmed lows
• Draws dynamic zones whose height scales with ATR and whose color intensity scales with volume
• Zones extend right and terminate on rule‑based events (midline cross)
🔬 How it works (core formulas):
• Pivot detection: ta.pivothigh/ta.pivotlow with length L
• Zone height: H = max(ATR(T) × M, MinTicks)
• Intensity (volume‑normalized):
– Z‑Score mode: I = clamp((V − μ) / (σ + ε), 0..1)
– Piecewise mode: I = clamp(V ≤ μ ? V/μ : (V − μ) / (Vmax − μ + ε), 0..1)
• Gradient color: col = Gradient(I) (start → mid → end)
• Zone life‑cycle:
– Creation on new pivot (top/bottom)
– Right edge follows bar_index
– Termination when with Mid = (Top+Bottom)/2, or optional TTL timeout
• Analysis range: global or constrained (Bars Back or ±% price window). Color scaling can be global or range‑scoped.
🆕 What’s new/different:
• Selectable volume normalization (Z‑Score or Piecewise)
• Timeframe‑adaptive ATR multiplier
• Range‑scoped vs. global color scaling
• Optional midlines, borders, info legend, scale legend
• Optional TTL termination for zones (lifetime in bars)
• Object management (cleanup/pooling) for performance
🧭 How to use (suggested presets):
• 1–5m: L=2, T=200, M=0.25, Range=Bars Back 1000, Intensity=Piecewise
• 15–60m: L=3, T=200, M=0.20, Range=Bars Back 1500, Intensity=Piecewise
• 4h+: L=4, T=200, M=0.20, Range=Off, Intensity=Z‑Score
⚙️ Settings:
• Pivot length L, ATR length T, multiplier M, MinTicks
• Opacity: base/auto (min/max)
• Range: Bars Back | Price Range ±% | Off
• Scaling: global vs. range‑scoped
• Midlines/borders/legends on/off
💡 Usage notes:
• Smaller L → more reactive, less robust
• Larger M → longer‑lasting zones
• On higher TFs, constrain "Bars Back" for performance
⚠️ Limitations:
• Non‑predictive; regime/volatility dependent
• Data quality impacts intensity computation
TRI - Multi-Timeframe BIASTRI - MULTI-TIMEFRAME BIAS INDICATOR
DESCRIPTION:
Advanced multi-timeframe bias indicator that analyzes market sentiment across
5 different timeframes (15m, 1h, 4h, 1d, 1w) using adaptive technical analysis.
Provides clear directional bias signals to help determine market momentum.
KEY FEATURES:
ADAPTIVE PARAMETERS: Uses different EMA lengths and weights for each timeframe
EMA TREND ANALYSIS: Fast/slow EMA crossovers with slope analysis for momentum
RSI MOMENTUM: Adaptive overbought/oversold levels based on timeframe
ADX STRENGTH: Directional movement confirmation with DI+/DI- analysis
COMPOSITE SCORING: Weighted combination of trend, momentum, and strength
TIMEFRAME ANALYSIS:
15m: EMA9/21 + High momentum weight (45%) - Ultra-responsive for scalping
1h: EMA21/50 + Medium momentum weight (35%) - Balanced for day trading
4h: EMA50/200 + Lower momentum weight (25%) - Swing trading focus
1d: EMA50/200 + Trend focused (55%) - Position trading signals
1w: EMA50/200 + Maximum trend weight (60%) - Long-term bias
BIAS SIGNALS:
STRONG BULLISH/BEARISH: Score ≥ 0.5 - Very strong directional momentum
BULLISH/BEARISH: Score ≥ 0.25 - Clear directional signals
WEAK BULLISH/BEARISH: Score ≥ 0.1 - Mild directional bias
NEUTRAL: Score < 0.1 - No clear directional preference
ALERTS:
Major Bullish/Bearish: When 4H and 1D timeframes align
High confidence signals for strategic decision making
USAGE:
Higher timeframes (1d, 1w) show primary market direction
Lower timeframes (15m, 1h) provide entry timing
Look for alignment across multiple timeframes for stronger signals
Use confidence levels to assess signal reliability
TECHNICAL COMPONENTS:
Exponential Moving Averages (EMA) for responsive trend detection
Relative Strength Index (RSI) for momentum analysis
Average Directional Index (ADX) with DI+/DI- for trend strength
Volume ratio confirmation for signal validation
Adaptive thresholds optimized for each timeframe's characteristics
Smart Breadth [smartcanvas]Overview
This indicator is a market breadth analysis tool focused on the S&P 500 index. It visualizes the percentage of S&P 500 constituents trading above their 50-day and 200-day moving averages, integrates the McClellan Oscillator for advance-decline analysis, and detects various breadth-based signals such as thrusts, divergences, and trend changes. The indicator is displayed in a separate pane and provides visual cues, a summary label with tooltip, and alert conditions to highlight potential market conditions.
The tool uses data symbols like S5FI (percentage above 50-day MA), S5TH (percentage above 200-day MA), ADVN/DECN (S&P advances/declines), and optionally NYSE advances/declines for certain calculations. If primary data is unavailable, it falls back to calculated breadth from advance-decline ratios.
This indicator is intended for educational and analytical purposes to help users observe market internals. My intention was to pack in one indicator things you will only find in a few. It does not provide trading signals as financial advice, and users are encouraged to use it in conjunction with their own research and risk management strategies. No performance guarantees are implied, and historical patterns may not predict future market behavior.
Key Components and Visuals
Plotted Lines:
Aqua line: Percentage of S&P 500 stocks above their 50-day MA.
Purple line: Percentage of S&P 500 stocks above their 200-day MA.
Optional orange line (enabled via "Show Momentum Line"): 10-day momentum of the 50-day MA breadth, shifted by +50 for scaling.
Optional line plot (enabled via "Show McClellan Oscillator"): McClellan Oscillator, colored green when positive and red when negative. Can use actual scale or normalized to fit breadth percentages (0-100).
Horizontal Levels:
Dotted green at 70%: "Strong" level.
Dashed green at user-defined green threshold (default 60%): "Buy Zone".
Dashed yellow at user-defined yellow threshold (default 50%): "Neutral".
Dotted red at 30%: "Oversold" level.
Optional dotted lines for McClellan (when shown and not using actual scale): Overbought (red), Oversold (green), and Zero (gray), scaled to fit.
Background Coloring:
Green shades for bullish/strong bullish states.
Yellow for neutral.
Orange for caution.
Red for bearish.
Signal Shapes:
Rocket emoji (🚀) at bottom for Zweig Breadth Thrust trigger.
Green circle at bottom for recovery signal.
Red triangle down at top for negative divergence warning.
Green triangle up at bottom for positive divergence.
Light green triangle up at bottom for McClellan oversold bounce.
Green diamond at bottom for capitulation signal.
Summary Label (Right Side):
Displays current action (e.g., "BUY", "HOLD") with emoji, breadth percentages with colored circles, McClellan value with emoji, market state, risk/reward stars, and active signals.
Hover tooltip provides detailed breakdown: action priority, breadth metrics, McClellan status, momentum/trend, market state, active signals, data quality, thresholds, recent changes, and a general recommendation category.
Calculations and Logic
Breadth Percentages: Derived from S5FI/S5TH or calculated from advances/(advances + declines) * 100, with fallback adjustments.
McClellan Oscillator: Difference between fast (default 19) and slow (default 39) EMAs of net advances (advances - declines).
Momentum: 10-day change in 50-day MA breadth percentage.
Trend Analysis: Counts consecutive rising days in breadth to detect upward trends.
Breadth Thrust (Zweig): 10-day EMA of advances/total issues crossing from below a bottom level (default 40) to above a top level (default 61.5). Can use S&P or NYSE data.
Divergences: Compares S&P 500 price highs/lows with breadth or McClellan over a lookback period (default 20) to detect positive (bullish) or negative (bearish) divergences.
Market States: Determined by breadth levels relative to thresholds, trend direction, and McClellan conditions (e.g., strong bullish if above green threshold, rising, and McClellan supportive).
Actions: Prioritized logic (0-10) selects an action like "BUY" or "AVOID LONGS" based on signals, states, and conditions. Higher priority (e.g., capitulation at 10) overrides lower ones.
Alerts: Triggered on new occurrences of key conditions, such as breadth thrust, divergences, state changes, etc.
Input Parameters
The indicator offers customization through grouped inputs, but the use of defaults is encouraged.
Usage Notes
Add the indicator to a chart of any symbol (though designed around S&P 500 data; works best on daily or higher timeframes). Monitor the label and tooltip for a consolidated view of conditions. Set up alerts for specific events.
This script relies on external security requests, which may have data availability issues on certain exchanges or timeframes. The fallback mechanism ensures continuity but may differ slightly from primary sources.
Disclaimer
This indicator is provided for informational and educational purposes only. It does not constitute investment advice, financial recommendations, or an endorsement of any trading strategy. Market conditions can change rapidly, and users should not rely solely on this tool for decision-making. Always perform your own due diligence, consult with qualified professionals if needed, and be aware of the risks involved in trading. The author and TradingView are not responsible for any losses incurred from using this script.
EMA/VWAP SuiteEMA/VWAP Suite
Overview
The EMA/VWAP Suite is a versatile and customizable Pine Script indicator designed for traders who want to combine Exponential Moving Averages (EMAs) and Volume Weighted Average Prices (VWAPs) in a single, powerful tool. It overlays up to eight EMAs and six VWAPs (three anchored, three rolling) on the chart, each with percentage difference labels to show how far the current price is from these key levels. This indicator is perfect for technical analysis, supporting strategies like trend following, mean reversion, and VWAP-based trading.
By default, the indicator displays eight EMAs and a session-anchored VWAP (AVWAP 1, in fuchsia) with their respective percentage difference labels, keeping the chart clean yet informative. Other VWAPs and their bands are disabled by default but can be enabled and customized as needed. The suite is designed to minimize clutter while providing maximum flexibility for traders.
Features
- Eight Customizable EMAs: Plot up to eight EMAs with user-defined lengths (default: 3, 9, 19, 38, 50, 65, 100, 200), each with a unique color for easy identification.
- EMA Percentage Difference Labels: Show the percentage difference between the current price and each EMA, displayed only for visible EMAs when enabled.
- Three Anchored VWAPs: Plot VWAPs anchored to the start of a session, week, or month, with customizable source, offset, and band multipliers. AVWAP 1 (session-anchored, fuchsia) is enabled by default.
- Three Rolling VWAPs: Plot VWAPs calculated over fixed periods (default: 20, 50, 100), with customizable source, offset, and band multipliers.
- VWAP Bands: Optional upper and lower bands for each VWAP, based on standard deviation with user-defined multipliers.
- VWAP Percentage Difference Labels: Display the percentage difference between the current price and each VWAP, shown only for visible VWAPs. Enabled by default to show the AVWAP 1 label.
- Customizable Colors: Each VWAP has a user-defined color via input settings, with labels matching the VWAP line colors (e.g., AVWAP 1 defaults to fuchsia).
Flexible Display Options: Toggle individual EMAs, VWAPs, bands, and labels on or off to reduce chart clutter.
Settings
The indicator is organized into intuitive setting groups:
EMA Settings
Show EMA 1–8 : Toggle each EMA on or off (default: all enabled).
EMA 1–8 Length : Set the period for each EMA (default: 3, 9, 19, 38, 50, 65, 100, 200).
Show EMA % Difference Labels : Enable/disable percentage difference labels for all EMAs (default: enabled).
EMA Label Font Size (8–20) : Adjust the font size for EMA labels (default: 10, mapped to “tiny”).
Anchored VWAP 1–3 Settings
Show AVWAP 1–3 : Toggle each anchored VWAP on or off (default: AVWAP 1 enabled, others disabled).
AVWAP 1–3 Color : Set the color for each VWAP line and its label (default: fuchsia for AVWAP 1, purple for AVWAP 2, teal for AVWAP 3).
AVWAP 1–3 Anchor : Choose the anchor period (“Session,” “Week,” “Month”; default: Session for AVWAP 1, Week for AVWAP 2, Month for AVWAP 3).
AVWAP 1–3 Source : Select the price source (default: hlc3).
AVWAP 1–3 Offset : Set the horizontal offset for the VWAP line (default: 0).
Show AVWAP 1–3 Bands : Toggle upper/lower bands (default: disabled).
AVWAP 1–3 Band Multiplier : Adjust the standard deviation multiplier for bands (default: 1.0).
Rolling VWAP 1–3 Settings
Show RVWAP 1–3 : Toggle each rolling VWAP on or off (default: disabled).
RVWAP 1–3 Color : Set the color for each VWAP line and its label (default: navy for RVWAP 1, maroon for RVWAP 2, fuchsia for RVWAP 3).
RVWAP 1–3 Period Length : Set the period for the rolling VWAP (default: 20, 50, 100).
RVWAP 1–3 Source : Select the price source (default: hlc3).
RVWAP 1–3 Offset : Set the horizontal offset (default: 0).
Show RVWAP 1–3 Bands : Toggle upper/lower bands (default: disabled).
RVWAP 1–3 Band Multiplier : Adjust the standard deviation multiplier for bands (default: 1.0).
VWAP Label Settings
Show VWAP % Difference Labels : Enable/disable percentage difference labels for all VWAPs (default: enabled, showing AVWAP 1 label).
VWAP Label Font Size (8–20) : Adjust the font size for VWAP labels (default: 10, mapped to “tiny”).
How It Works
EMAs : Calculated using ta.ema(close, length) for each user-defined period. Percentage differences are computed as ((close - ema) / close) * 100 and displayed as labels for visible EMAs when show_ema_labels is enabled.
Anchored VWAPs : Calculated using ta.vwap(source, anchor, 1), where the anchor is determined by the selected timeframe (Session, Week, or Month). Bands are computed using the standard deviation from ta.vwap.
Rolling VWAPs : Calculated using ta.vwap(source, length), with bands based on ta.stdev(source, length).
Labels : Updated on each new bar (ta.barssince(ta.change(time) != 0) == 0) to show percentage differences. Labels are only displayed for visible EMAs/VWAPs to avoid clutter.
Color Matching: VWAP labels use the same color as their corresponding VWAP lines, set via input settings (e.g., avwap1_color for AVWAP 1).
Example Use Cases
- Trend Following: Use longer EMAs (e.g., 100, 200) to identify trends and shorter EMAs (e.g., 3, 9) for entry/exit signals.
- Mean Reversion: Monitor percentage difference labels to spot overbought/oversold conditions relative to EMAs or VWAPs.
- VWAP Trading: Use the default session-anchored AVWAP 1 for intraday trading, adding weekly/monthly VWAPs or rolling VWAPs for broader context.
- Intraday Analysis: Leverage the session-anchored AVWAP 1 (enabled by default) for day trading, with bands as support/resistance zones.
Optimized Trend-Momentum SignalsThis indicator combines trend, momentum, and volume-strength factors into a single buy/sell signal system. It integrates:
SMA 200 → Identifies the long-term trend (price above = bullish bias, below = bearish bias).
MACD (12,26,9) → Confirms momentum direction with line crossovers.
RSI (7) → Filters strength (above 50 = bullish, below 50 = bearish).
ROC (45) → Validates positive or negative rate of change.
Signal Logic:
Buy Signal → Price above SMA 200, MACD bullish, RSI > 50, and ROC > 0.
Sell Signal → Price below SMA 200, MACD bearish, RSI < 50, and ROC < 0.
Features:
Clear arrows for BUY and SELL signals.
Long-term SMA plotted for trend visualization.
Alerts built-in for real-time notifications.
This tool helps traders filter out noise and act only when all major confirmation factors align, reducing false signals and improving decision-making.