TSI + DivergencesTrue Strength Indicator (TSI) + Divergences + Alerts + Lookback periods.
This version of the True Strength Indicator adds the following 3 additional features to the stock TSI by Tradingview:
- Optional divergence lines drawn directly onto the oscillator.
- Configurable alerts to notify you when divergences occur.
- Configurable lookback periods to fine tune the divergences drawn in order to suit different trading styles and timeframes.
This indicator adds additional features onto the stock TSI by Tradingview, whose core calculations remain unchanged. Namely the configurable option to automatically, quickly and clearly draw divergence lines onto the oscillator for you as they occur, with minimal delay. It also has the addition of unique alerts, so you can be notified when divergences occur without spending all day watching the charts. Furthermore, this version of the TSI comes with configurable lookback periods, which can be configured in order to adjust the sensitivity of the divergences, in order to suit shorter or higher timeframe trading approaches.
The True Strength Indicator
Tradingview describes the True Strength Indicator as follows:
“The True Strength Index (TSI) is a momentum oscillator that ranges between limits of -100 and +100 and has a base value of 0. Momentum is positive when the oscillator is positive (pointing to a bullish market bias) and vice versa. It was developed by William Blau and consists of 2 lines: the index line and an exponential moving average of the TSI, called the signal line. Traders may look for any of the following 5 types of conditions: overbought, oversold, centerline crossover, divergence and signal line crossover. The indicator is often used in combination with other signals..”
What are divergences?
Divergence is when the price of an asset is moving in the opposite direction of a technical indicator, such as an oscillator, or is moving contrary to other data. Divergence warns that the current price trend may be weakening, and in some cases may lead to the price changing direction.
There are 4 main types of divergence, which are split into 2 categories;
regular divergences and hidden divergences. Regular divergences indicate possible trend reversals, and hidden divergences indicate possible trend continuation.
Regular bullish divergence: An indication of a potential trend reversal, from the current downtrend, to an uptrend.
Regular bearish divergence: An indication of a potential trend reversal, from the current uptrend, to a downtrend.
Hidden bullish divergence: An indication of a potential uptrend continuation.
Hidden bearish divergence: An indication of a potential downtrend continuation.
Setting alerts.
With this indicator you can set alerts to notify you when any/all of the above types of divergences occur, on any chart timeframe you choose.
Configurable lookback values.
You can adjust the default lookback values to suit your prefered trading style and timeframe. If you like to trade a shorter time frame, lowering the default lookback values will make the divergences drawn more sensitive to short term price action.
How do traders use divergences in their trading?
A divergence is considered a leading indicator in technical analysis, meaning it has the ability to indicate a potential price move in the short term future.
Hidden bullish and hidden bearish divergences, which indicate a potential continuation of the current trend are sometimes considered a good place for traders to begin, since trend continuation occurs more frequently than reversals, or trend changes.
When trading regular bullish divergences and regular bearish divergences, which are indications of a trend reversal, the probability of it doing so may increase when these occur at a strong support or resistance level. A common mistake new traders make is to get into a regular divergence trade too early, assuming it will immediately reverse, but these can continue to form for some time before the trend eventually changes, by using forms of support or resistance as an added confluence, such as when price reaches a moving average, the success rate when trading these patterns may increase.
Typically, traders will manually draw lines across the swing highs and swing lows of both the price chart and the oscillator to see whether they appear to present a divergence, this indicator will draw them for you, quickly and clearly, and can notify you when they occur.
Disclaimer : This script includes code from the stock TSI by Tradingview as well as the RSI divergence indicator.
在脚本中搜索"tradingview+筹码结构"
Ultimate Oscillator + DivergencesUltimate Oscillator (UO) + Divergences + Alerts + Lookback periods.
This version of the Ultimate Oscillator adds the following 3 additional features to the stock UO by Tradingview:
- Optional divergence lines drawn directly onto the oscillator.
- Configurable alerts to notify you when divergences occur.
- Configurable lookback periods to fine tune the divergences drawn in order to suit different trading styles and timeframes.
This indicator adds additional features onto the stock Ultimate Oscillator by Tradingview, whose core calculations remain unchanged. Namely the configurable option to automatically, quickly and clearly draw divergence lines onto the oscillator for you as they occur, with minimal delay. It also has the addition of unique alerts, so you can be notified when divergences occur without spending all day watching the charts. Furthermore, this version of the Ultimate Oscillator comes with configurable lookback periods, which can be configured in order to adjust the sensitivity of the divergences, in order to suit shorter or higher timeframe trading approaches.
The Ultimate Oscillator
Tradingview describes the Ultimate Oscillator as follows:
“The Ultimate Oscillator indicator (UO) indicator is a technical analysis tool used to measure momentum across three varying timeframes. The problem with many momentum oscillators is that after a rapid advance or decline in price, they can form false divergence trading signals. For example, after a rapid rise in price, a bearish divergence signal may present itself, however price continues to rise. The ultimate Oscillator attempts to correct this by using multiple timeframes in its calculation as opposed to just one timeframe which is what is used in most other momentum oscillators.”
More information on the history, use cases and calculations of the Ultimate Oscillator can be found here: www.tradingview.com
What are divergences?
Divergence is when the price of an asset is moving in the opposite direction of a technical indicator, such as an oscillator, or is moving contrary to other data. Divergence warns that the current price trend may be weakening, and in some cases may lead to the price changing direction.
There are 4 main types of divergence, which are split into 2 categories;
regular divergences and hidden divergences . Regular divergences indicate possible trend reversals, and hidden divergences indicate possible trend continuation.
Regular bullish divergence: An indication of a potential trend reversal, from the current downtrend, to an uptrend.
Regular bearish divergence: An indication of a potential trend reversal, from the current uptrend, to a downtrend.
Hidden bullish divergence: An indication of a potential uptrend continuation.
Hidden bearish divergence: An indication of a potential downtrend continuation.
Setting alerts.
With this indicator you can set alerts to notify you when any/all of the above types of divergences occur, on any chart timeframe you choose.
Configurable lookback values.
You can adjust the default lookback values to suit your prefered trading style and timeframe. If you like to trade a shorter time frame, lowering the default lookback values will make the divergences drawn more sensitive to short term price action.
How do traders use divergences in their trading?
A divergence is considered a leading indicator in technical analysis, meaning it has the ability to indicate a potential price move in the short term future.
Hidden bullish and hidden bearish divergences, which indicate a potential continuation of the current trend are sometimes considered a good place for traders to begin, since trend continuation occurs more frequently than reversals, or trend changes.
When trading regular bullish divergences and regular bearish divergences, which are indications of a trend reversal, the probability of it doing so may increase when these occur at a strong support or resistance level. A common mistake new traders make is to get into a regular divergence trade too early, assuming it will immediately reverse, but these can continue to form for some time before the trend eventually changes, by using forms of support or resistance as an added confluence, such as when price reaches a moving average, the success rate when trading these patterns may increase.
Typically, traders will manually draw lines across the swing highs and swing lows of both the price chart and the oscillator to see whether they appear to present a divergence, this indicator will draw them for you, quickly and clearly, and can notify you when they occur.
Disclaimer : This script includes code from the stock UO by Tradingview as well as the RSI divergence indicator.
Silen's Financials P/E & P/S[x10] RatesThis script aims to give a better visualization of P/E and P/S rates compared to the build-in "Price to earnings ratio" and "Price to sales ratio" in the "Financials" Section of Tradingview. For those of you don't know, those rates compare earnings and sales with your share price in regard to market cap and outstanding shares.
The scripts differs to the build-in versions in the following points:
- P/E & P/S rates are combined in one indicator
- Negative P/E rates are displayed better: Positive P/E rates are green, Negative P/E rates are red
- For visualization reasons, the indicator will cap positive and negative P/E rates at 100. (P/E rates above those levels are not siginificant either way)
- P/E & P/S rate are directly displayed on the graph
- Both P/E and P/S rates are combined on one left scale
- For visualization reasons, P/S rate is showing 10x the actual P/S rate. Using the standard P/S rate would result in hard-to-recognize changes of the P/S line.
To sum up:
- Positive P/E rates are green
- Negative P/E rate are red
- P/S rates are multiplied by 1 0
- P/S rates are yellow
How to use P/E and P/S rates:
The US market average for P/E rates is roughly ~18 in the US right now (10/2022) while the market average for P/S rates is roughly ~3 in the US. Note that average P/E and P/S can change when the market situation changes.
P/E and P/S rates help you value your stock better and help you decide whether your stock is undervalued or overvalued compared to the market or the industry when it comes to earnings and sales. If you compare to Market averages, a positive P/E of less than 18 means that your stock is likely unvervalued. A P/S rate below 3 (30 in the chart!) means that your stock is likely undervalued as well. If your stock shows rates above those, it is likely that it is overvalued compared to market averages.
Please note that P/E and P/S rates are not the only factors that make up a stock valuation. Valuations are complex and subjective.
A positive P/E rate also means that your company is profitable.
A Negative P/E rate means that your company is unprofitable.
If you have any questions or feedback let me know!
Disclaimer: This script doesn't show the actual P/S rate. It shows the P/S rate multiplied by 10, due to visualization issues. Positive P/E Rates above 100 are displayed as 100. Positive P/E rates are green, Negative P/E rates are red and multiplied by -1.
Disclaimer2: @Tradingview_Team: I couldn't find the right category for this script but categories are mandatory. I assume that "Breadth Indicators" is still the closest there is. Please let me know if you want me to change the category.
Disclaimer3: For visualization, the opacity of the displayed image is 70%. The standard opacity for the P/E and P/S lines is 50% and can be changed in the indicator settings. I found this setting more useful when working together with other indicators on the same chart
Disclaimer4: Earnings Per Share, Total Revenue used are TTM. Total Shares Outstanding used are FQ.
Line breakI decided to help TradingView programmers and wrote code that converts a standard candles / bars to a line break chart. The built-in linebreak() and security() functions for constructing a Linear Break chart are bad, the chart is not built correctly, and does not correspond to the Line Breakout chart built into TradingView. I’m talking about simulating the Linear Break lines using the plotcandle() annotation, because these are the same candles without shadows. When you try to use the market simulator, when the gaps are turned on in the security() function, nothing is added to the chart, and when turned off, a completely different line break chart is drawn. Do not try to write strategies based on the built-in linebreak() function! The developers write in the manual: "Please note that you cannot plot Line Break boxes from Pine script exactly as they look. You can only get a series of numbers similar to OHLC values for Line Break charts and use them in your algorithms." However, it is possible to build a “Linear Breakthrough” chart exactly like the “Linear Breakthrough" chart built into TradingView. Personally, I had enough Pine Script functionality.
For a complete understanding of how such a graph is built, you can refer to Steve Nison's book “BEYOND JAPANESE CANDLES” and see the instructions for creating a “Three-Line Breakthrough” chart (the number of lines for a breakthrough is three):
Rule 1: if today's price is above the base price (closing the first candle), draw a white line from the base price to the new maximum price (before closing).
or Rule 2: if today's price is below the base price, draw a black line from the base price to the new low of prices (before closing).
Rule 3: if today's price is no different from the base, do not draw any line.
Rule 4: if today's price rises above the maximum of the first line, shift to the column to the right and draw a new white line from the previous maximum to the new maximum of prices.
Rule 5: if the price is below the low of the first line, move one column to the right and draw a new black line down from the previous low to the new low of prices.
Rule 6: if the price is kept in the range of the first line, nothing is applied to the chart.
Rule 7: if the market reaches a new maximum, surpassing the maximum of previous lines, move to the column to the right and draw a new white line up to a new maximum.
Rule 8: if today's price is below the low of previous lines (i.e. there is a new low), move to the right column and draw a new black line down to a new low.
Rule 9: if the price is in the range of the first two lines, nothing is applied to the chart.
Rule 10: if there is a series of three white lines, a new white line is drawn when a new maximum is reached (even if it is only one tick higher than the old one). Under the same conditions, for drawing a black reversal line, the price should fall below the minimum of the series of the last three white lines. Such a black line is called a black reversal line. It runs from the base of the highest white line to a new low of price.
Rule 11: if there is a series of three black lines, a new black line is drawn when a new minimum is reached. Under the same conditions, for drawing a white line, called a white reversal line, the price must exceed the maximum of the previous three black lines. This line is drawn from the top of the lowest black line to a new high of the price.
So, the script was not small, but the idea is extremely simple: if you need to break n lines to build a line, then among these n lines (or less, if this is the beginning of the chart), the maximum or minimum of closures and openings will be searched. If the current candles closed above or below these highs or lows, then a new line is added to the chart on the current candles (trend or breakout). According to my observations, this script draws a chart that is completely identical to the Line Breakout chart built into TradingView, but of course with gaps, as there is time in the candles / bar chart. I stuffed all the logic into a wrapper in the form of the get_linebreak() function, which returns a tuple of OHLC values. And these series with the help of the plotcandle() annotation can be converted to the "Linear Breakthrough" chart. I also want to note that with a large number of candles on the chart, outrages about the buffer size uncertainty are heard from the TradingView black box. Because of this, in the annotation study() set the value to the max_bars_back parameter.
In general, use it (for example, to write strategies)!
Cycle Phase & ETA Tracker [Robust v4]
Cycle Phase & ETA Tracker
Description
The Cycle Phase & ETA Tracker is a powerful tool for analyzing market cycles and predicting the completion of the current cycle (Estimated Time of Arrival, or ETA). It visualizes the cycle phase (0–100%) using a smoothed signal and displays the forecasted completion date with an optional confidence band based on cycle length variability. Ideal for traders looking to time their trades based on cyclical patterns, this indicator offers flexible settings for robust cycle analysis.
Key Features
Cycle Phase Visualization: Tracks the current cycle phase (0–100%) with color-coded zones: green (0–33%), blue (33–66%), orange (66–100%).
ETA Forecast: Shows a vertical line and label indicating the estimated date of cycle completion.
Confidence Band (±σ): Displays a band around the ETA to reflect uncertainty, calculated using the standard deviation of cycle lengths.
Multiple Averaging Methods: Choose from three methods to calculate average cycle length:
Median (Robust): Uses the median for resilience against outliers.
Weighted Mean: Prioritizes recent cycles with linear or quadratic weights.
Simple Mean: Applies equal weights to all cycles.
Adaptive Cycle Length: Automatically adjusts cycle length based on the timeframe or allows a fixed length.
Debug Histogram: Optionally displays the smoothed signal for diagnostic purposes.
Setup and Usage
Add the Indicator:
Search for "Cycle Phase & ETA Tracker " in TradingView’s indicator library and apply it to your chart.
Configure Parameters:
Core Settings:
Track Last N Cycles: Sets the number of recent cycles used to calculate the average cycle length (default: 20). Higher values provide stability but may lag market shifts.
Source: Selects the data source for analysis (e.g., close, open, high; default: close price).
Use Adaptive Cycle Length?: Enables automatic cycle length adjustment based on timeframe (e.g., shorter for intraday, longer for daily) or uses a fixed length if disabled.
Fixed Cycle Length: Defines the cycle length in bars when adaptive mode is off (default: 14). Smaller values increase sensitivity to short-term cycles.
Show Debug Histogram: Enables a histogram of the smoothed signal for debugging signal behavior.
Cycle Length Estimation:
Average Mode: Selects the method for calculating average cycle length: "Median (Robust)", "Weighted Mean", or "Simple Mean".
Weights (for Weighted Mean): For "Weighted Mean", chooses "linear" (moderate emphasis on recent cycles) or "quadratic" (strong emphasis on recent cycles).
ETA Visualization:
Show ETA Line & Label: Toggles the display of the ETA line and date label.
Show ETA Confidence Band (±σ): Toggles the confidence band around the ETA, showing the uncertainty range.
Band Transparency: Adjusts the transparency of the confidence band (0 = fully transparent, 100 = fully opaque; default: 85).
ETA Color: Sets the color for the ETA line, label, and confidence band (default: orange).
Interpretation:
The cycle phase (0–100%) indicates progress: green for the start, blue for the middle, and orange for the end of the cycle.
The ETA line and label show the predicted cycle completion date.
The confidence band reflects the uncertainty range (±1 standard deviation) of the ETA.
If a warning "Insufficient cycles for ETA" appears, wait for the indicator to collect at least 3 cycles.
Limitations
Requires at least 3 cycles for reliable ETA and confidence band calculations.
On low timeframes or low-volatility markets, zero-crossings may be infrequent, delaying ETA updates.
Accuracy depends on proper cycle length settings (adaptive or fixed).
Notes
Test the indicator across different assets and timeframes to optimize settings.
Use the debug histogram to troubleshoot if the ETA appears inaccurate.
For feedback or suggestions, contact the author via TradingView.
Cycle Phase & ETA Tracker
Описание
Индикатор Cycle Phase & ETA Tracker предназначен для анализа рыночных циклов и прогнозирования времени завершения текущего цикла (ETA — Estimated Time of Arrival). Он отслеживает фазы цикла (0–100%) на основе сглаженного сигнала и отображает предполагаемую дату завершения цикла с опциональной доверительной полосой, основанной на стандартном отклонении длин циклов. Индикатор идеально подходит для трейдеров, которые хотят выявлять циклические закономерности и планировать свои действия на основе прогнозируемого времени.
Ключевые особенности
Фазы цикла: Визуализирует текущую фазу цикла (0–100%) с цветовой кодировкой: зеленый (0–33%), синий (33–66%), оранжевый (66–100%).
Прогноз ETA: Показывает вертикальную линию и метку с предполагаемой датой завершения цикла.
Доверительная полоса (±σ): Отображает зону неопределенности вокруг ETA, основанную на стандартном отклонении длин циклов.
Гибкие методы усреднения: Поддерживает три метода расчета средней длины цикла:
Median (Robust): Медиана, устойчивая к выбросам.
Weighted Mean: Взвешенное среднее, где недавние циклы имеют больший вес (линейный или квадратичный).
Simple Mean: Простое среднее с равными весами.
Адаптивная длина цикла: Автоматически подстраивает длину цикла под таймфрейм или позволяет задать фиксированную длину.
Отладочная гистограмма: Опционально отображает сглаженный сигнал для анализа.
Настройка и использование
Добавьте индикатор:
Найдите "Cycle Phase & ETA Tracker " в библиотеке индикаторов TradingView и добавьте его на график.
Настройте параметры:
Core Settings:
Track Last N Cycles: Количество последних циклов для расчета средней длины (по умолчанию 20). Большие значения дают более стабильные результаты, но могут запаздывать.
Source: Источник данных (по умолчанию цена закрытия).
Use Adaptive Cycle Length?: Включите для автоматической настройки длины цикла по таймфрейму или отключите для использования фиксированной длины.
Fixed Cycle Length: Длина цикла в барах, если адаптивная длина отключена (по умолчанию 14).
Show Debug Histogram: Включите для отображения сглаженного сигнала (полезно для отладки).
Cycle Length Estimation:
Average Mode: Выберите метод усреднения: "Median (Robust)", "Weighted Mean" или "Simple Mean".
Weights (for Weighted Mean): Для режима "Weighted Mean" выберите "linear" (умеренный вес для новых циклов) или "quadratic" (сильный вес для новых циклов).
ETA Visualization:
Show ETA Line & Label: Включите для отображения линии и метки ETA.
Show ETA Confidence Band (±σ): Включите для отображения доверительной полосы.
Band Transparency: Прозрачность полосы (0 — полностью прозрачная, 100 — полностью непрозрачная, по умолчанию 85).
ETA Color: Цвет для линии, метки и полосы (по умолчанию оранжевый).
Интерпретация:
Фаза цикла (0–100%) показывает прогресс текущего цикла: зеленый — начало, синий — середина, оранжевый — конец.
Линия и метка ETA указывают предполагаемую дату завершения цикла.
Доверительная полоса показывает диапазон неопределенности (±1 стандартное отклонение).
Если отображается предупреждение "Insufficient cycles for ETA", дождитесь, пока индикатор соберет минимум 3 цикла.
Ограничения
Требуется минимум 3 цикла для надежного расчета ETA и доверительной полосы.
На низких таймфреймах или рынках с низкой волатильностью пересечения нуля могут быть редкими, что замедляет обновление ETA.
Эффективность зависит от правильной настройки длины цикла (fixedL или адаптивной).
Примечания
Протестируйте индикатор на разных таймфреймах и активах, чтобы подобрать оптимальные параметры.
Используйте отладочную гистограмму для анализа сигнала, если ETA кажется неточным.
Для вопросов или предложений по улучшению свяжитесь через TradingView.
Footprint-Style Order Flow by Kalibea📊 Indicator: "Footprint-Style Order Flow by Kalibea"
Simplified Order Flow Analysis for TradingView
This indicator was created by Kalibea to bring you the power of Order Flow analysis in a clear, practical way—without technical complexity and fully compatible with TradingView.
While TradingView doesn’t support traditional footprint charts, this tool simulates institutional market reading using a smart calculation of estimated volume delta, helping you make more informed trading decisions.
🔍 What does this indicator do?
Estimated Delta: Calculates the difference between buying and selling pressure per candle, based on price movement and volume.
Smart Visual Signals:
🔼 Green Triangle: Potential buy entry (buyer dominance).
🔽 Red Triangle: Potential sell entry (seller dominance).
Delta Histogram: Displays whether each candle was driven more by buyers or sellers.
Live Labels: Shows real-time delta values above each candle for quick interpretation.
🧠 How does it help your trading?
Detects real-time market imbalances (who's in control: buyers or sellers).
Improves entry and exit timing, especially on lower timeframes.
Helps you confirm other strategies such as supply/demand zones, support/resistance, or candlestick patterns.
Provides an institutional-style reading simplified for use within TradingView.
⚙️ Fully Customizable to Your Style
Adjust the delta sensitivity to suit any market: Forex, Crypto, Indices, and more.
Turn on/off visual signals and histogram as needed.
🔑 Recommended by Kalibea for:
✅ Intraday traders and scalpers
✅ Traders looking to take the next step into institutional-style analysis
✅ Those seeking precise entries without overcomplicating their charts
💬 “Order Flow is the market’s internal voice. This indicator helps you hear it—no expensive footprint software required.”
— Kalibea
Fibonacci retracementHi all!
This indicator will show you the most recent Fibonacci retracement in the current trend. So if the trend is bullish the Fibonacci retracement will be drawn from swing low to high and from swing high to low in a bearish trend.
The uniqueness in this script lies in the adaptation to trend. To only plot the Fibonacci retracements according to the current market trend.
The trend is determined through break of structures (BOS) and change of characters (CHoCH). A change of character can be of type change of character plus (with a failed swing) and will then be shown as CHoCH+. This is possible through my library 'MarketStructure' (). It only uses break of structures and change of characters to be able to determine the trend, if you want a more detailed picture of the market structure you can use my script 'Market structure' ().
History and what to look for
Fibonacci retracement levels are used by many traders and are levels that are not Fibonacci sequence numbers themselves but they deriver from them. Some examples are:
23,6% - Divide a number by one three places ahead (e.g. 13/55)
38,2% - Divide a number by the one two places ahead (e.g. 21/55)
50% - Not from the Fibonacci sequence, but it's a number that price has reacted from in the past. Markets tend to retrace half a move before continuing
61,8% - The "golden retracement level". It derives from the "golden ratio" and is a core component of the Fibonacci sequence. The further you go in the Fibonacci sequence the preceding number divided by the current number will get closer and closer to this "golden ratio". This level is considered the most important Fibonacci retracement level by many traders
78,6% - Square root of 61.8%. This is often considered a deep correction (but not a trend reversal) and are often used for late entries
These levels are considered "key" and most significant. You want to look for a retracement of the price (down in a bullish trend and up in a bearish trend) to give you good entries.
Settings
For the trend you can set the pivot/swing lengths (right and left) and use the checkbox if you want these pivots to have labels. This can be done in the 'Market strucure' section.
In the 'Fibonacci retracement' section there is settings for the actual Fibonacci retracement. You can enable the trendline, set the color and the style of it. You can select which levels that should be shown by the indicator. There are 11 levels enabled by default, they are; 0-4.236. All settings in this section tries to be as similar to the "Fib Retracement" tool in Tradingview. You can also select the style of these lines (solid, dashed or dotted) and if you want them to extend to the right or not.
After this you can select if the Fibonacci retracement should be reversed or not, if prices should be displayed, if levels should be displayed and if to show the decimal levels or percentages and lastly the font size of these labels.
All defaults are based on the "Fib Retracement" tool by Tradingview.
Visualization
This indicator aims to be as visually similar to the default ("Fib Retracement") tool here on Tradingview. It will plot the Fibonacci retracement (called Auto Fibonacci/Auto fib) according to the trend from the library 'MarketStrucure'. The big differences from the "Fib Retracement" tool by Tradingview is that it's automatic (that adapts to trend), the market structure is visualized through lines and labels (showing 'BOS' for break of structures and 'CHoCH'/'CHoCH+' for change of characters) and that the labels showing information about the levels are positioned to be highly visible (left if <50% otherwise right if in a bullish trend, vice versa in a bearish trend or if reversed).
Don't hesitate if you have any feedback or nice feature suggestions!
Best of trading luck!
Sharpe & Sortino Ratio PROSharpe & Sortino Ratio PRO offers an advanced and more precise way to calculate and visualize the Sharpe and Sortino Ratios for financial assets on TradingView. Its main goal is to provide a scientifically accurate method for assessing the risk-adjusted performance of assets, both in the short and long term. Unlike TradingView’s built-in metrics, this script correctly handles periodic returns, uses optional logarithmic returns, properly annualizes both returns and volatility, and adjusts for the risk-free rate — all critical factors for truly meaningful Sharpe and Sortino calculations.
Users can customize the rolling analysis window (e.g., 252 periods for one year on daily data) and the long-term smoothing period (e.g., 1260 periods for five years). There’s also an option to select between linear and logarithmic returns and to manually input a risk-free rate if real-time data from FRED (the 3-Month T-Bill Rate via FRED:DGS3MO) is unavailable. Based on the chart’s timeframe (daily, weekly, or monthly), the script automatically adjusts the risk-free rate to a per-period basis.
The Sharpe Ratio is calculated by first determining the asset’s excess returns (returns after subtracting the risk-free return per period), then computing the average and standard deviation of those excess returns over the specified window, and finally annualizing these figures separately — in line with best scientific practices (Sharpe, 1994). The Sortino Ratio follows a similar approach but only considers negative returns, focusing specifically on downside risk (Sortino & Van der Meer, 1991).
To enhance readability, the script visualizes the ratios using a color gradient: strong negative values are shown in red, neutral values in yellow, and strong positive values in green. Additionally, the long-term averages for both Sharpe and Sortino are plotted with steady colors (teal and orange, respectively), making it easier to spot enduring performance trends.
Why calculating Sharpe and Sortino Ratios manually on TradingView is necessary?
While TradingView provides basic Sharpe and Sortino Ratios, they come with significant methodological flaws that can lead to misleading conclusions about an asset’s true risk-adjusted performance.
First, TradingView often computes volatility based on the standard deviation of price levels rather than returns (TradingView, 2023). This method is problematic because it causes the volatility measure to be directly dependent on the asset’s absolute price. For instance, a stock priced at $1,000 will naturally show larger absolute daily price moves than a $10 stock, even if their percentage changes are similar. This artificially inflates the measured standard deviation and, as a result, depresses the calculated Sharpe Ratio.
Second, TradingView frequently neglects to adjust for the risk-free rate. By treating all returns as risky returns, the computed Sharpe Ratio may significantly underestimate risk-adjusted performance, especially when interest rates are high (Sharpe, 1994).
Third, and perhaps most critically, TradingView doesn’t properly annualize the mean excess return and the standard deviation separately. In correct financial math, the mean excess return should be multiplied by the number of periods per year, while the standard deviation should be multiplied by the square root of the number of periods per year (Cont, 2001; Fabozzi et al., 2007). Incorrect annualization skews the Sharpe and Sortino Ratios and can lead to under- or overestimating investment risk.
These flaws lead to three major issues:
• Overstated volatility for high-priced assets.
• Incorrect scaling between returns and risk.
• Sharpe Ratios that are systematically biased downward, especially in high-price or high-interest environments.
How to properly calculate Sharpe and Sortino Ratios in Pine Script?
To get accurate results, the Sharpe and Sortino Ratios must be calculated using the correct methodology:
1. Use returns, not price levels, to calculate volatility. Ideally, use logarithmic returns for better mathematical properties like time additivity (Cont, 2001).
2. Adjust returns by subtracting the risk-free rate on a per-period basis to obtain true excess returns.
3. Annualize separately:
• Multiply the mean excess return by the number of periods per year (e.g., 252 for daily data).
• Multiply the standard deviation by the square root of the number of periods per year.
4. Finally, divide the annualized mean excess return by the annualized standard deviation to calculate the Sharpe Ratio.
The Sortino Ratio follows the same structure but uses downside deviations instead of standard deviations.
By following this scientifically sound method, you ensure that your Sharpe and Sortino Ratios truly reflect the asset’s real-world risk and return characteristics.
References
• Cont, R. (2001). Empirical properties of asset returns: stylized facts and statistical issues. Quantitative Finance, 1(2), pp. 223–236.
• Fabozzi, F.J., Gupta, F. and Markowitz, H.M. (2007). The Legacy of Modern Portfolio Theory. Journal of Investing, 16(3), pp. 7–22.
• Sharpe, W.F. (1994). The Sharpe Ratio. Journal of Portfolio Management, 21(1), pp. 49–58.
• Sortino, F.A. and Van der Meer, R. (1991). Downside Risk: Capturing What’s at Stake in Investment Situations. Journal of Portfolio Management, 17(4), pp. 27–31.
• TradingView (2023). Help Center - Understanding Sharpe and Sortino Ratios. Available at: www.tradingview.com (Accessed: 25 April 2025).
ICT FVG & Swing Detector Basic by Trader RiazICT FVG & Swing Detector Basic by Trader Riaz
Unlock Precision Trading with the Ultimate Fair Value Gap (FVG) and Swing Detection Tool!
Developed by Trader Riaz , the ICT FVG and Swing Detector Basic is a powerful Pine Script indicator designed to help traders identify key market structures with ease. Whether you're a day trader, swing trader, or scalper, this indicator provides actionable insights by detecting Bullish and Bearish Fair Value Gaps (FVGs) and Swing Highs/Lows on any timeframe. Perfect for trading forex, stocks, crypto, and more on TradingView!
Key Features:
1: Bullish and Bearish FVG Detection
- Automatically identifies Bullish FVGs (highlighted in green) and Bearish FVGs (highlighted in red) to spot potential reversal or continuation zones.
- Displays FVGs as shaded boxes with a dashed midline at 70% opacity, making it easy to see the midpoint of the gap for precise entries and exits.
- Labels are placed inside the FVG boxes at the extreme right for clear visibility.
2: Customizable FVG Display
- Control the number of Bullish and Bearish FVGs displayed on the chart with user-defined inputs (fvg_bull_count and fvg_bear_count).
- Toggle the visibility of Bullish and Bearish FVGs with simple checkboxes (show_bull_fvg and show_bear_fvg) to declutter your chart.
3: Swing High and Swing Low Detection
- Detects Swing Highs (blue lines) and Swing Lows (red lines) to identify key market turning points.
- Labels are positioned at the extreme right edge of the lines for better readability and alignment.
- Customize the number of Swing Highs and Lows displayed (swing_high_count and swing_low_count) to focus on the most recent market structures.
4: Fully Customizable Display
- Toggle visibility for Swing Highs and Lows (show_swing_high and show_swing_low) to suit your trading style.
- Adjust the colors of Swing High and Low lines (swing_high_color and swing_low_color) to match your chart preferences.
5: Clean and Efficient Design
- Built with Pine Script v6 for optimal performance on TradingView.
- Automatically removes older FVGs and Swing points when the user-defined count is exceeded, keeping your chart clean and focused.
- Labels are strategically placed to avoid clutter while providing clear information.
Why Use This Indicator?
Precision Trading: Identify high-probability setups with FVGs and Swing points, commonly used in Smart Money Concepts (SMC) and Institutional Trading strategies.
User-Friendly: Easy-to-use inputs allow traders of all levels to customize the indicator to their needs.
Versatile: Works on any market (Forex, Stocks, Crypto, Commodities) and timeframe (1M, 5M, 1H, 4H, Daily, etc.).
Developed by Trader Riaz: Backed by the expertise of Trader Riaz, a seasoned trader dedicated to creating tools that empower the TradingView community.
How to Use:
- Add the Custom FVG and Swing Detector to your chart on TradingView.
- Adjust the input settings to control the number of FVGs and Swing points displayed.
- Toggle visibility for Bullish/Bearish FVGs and Swing Highs/Lows as needed.
- Use the identified FVGs and Swing points to plan your trades, set stop-losses, and target key levels.
Ideal For:
- Traders using Smart Money Concepts (SMC), Price Action, or Market Structure strategies.
- Those looking to identify liquidity grabs, imbalances, and trend reversals.
- Beginners and advanced traders seeking a reliable tool to enhance their technical analysis.
Happy trading!
Footprint Chart by Th16rryDescription of the "Footprint Chart" Indicator
This indicator is an approximation of a true **Footprint Chart** adapted for TradingView, which does not provide access to tick-by-tick data or detailed order book information. It relies on **heuristics** to estimate the distribution of volume between buyers and sellers for each candlestick.
Key Features:
- Estimation of Buy/Sell Volume:
The indicator splits the total volume of a candlestick into two parts based on the candle's nature:
- For a bullish candle (close > open), it assumes that **60% of the volume** is executed on the ask (buys) and **40% on the bid** (sells).
- For a bearish candle (close < open), the estimation is reversed (40% buys, 60% sells).
- For a neutral candle (close = open), the volume is evenly distributed at 50% for each side.
- Calculation of a Simplified Delta:
The delta is defined as the difference between the estimated buy volume and sell volume. This delta helps quickly identify the dominant market pressure—positive for buyer dominance and negative for seller dominance.
- Visual Display:
- A label is placed on each candlestick displaying the delta value, with a green background for a positive delta (indicating buying pressure) and red for a negative delta (indicating selling pressure).
- A table in the top-right corner of the chart summarizes the estimated volumes for the current candle: buy volume, sell volume, and total volume.
#### How to Use the Indicator:
- Analyzing Buy/Sell Pressure:
By observing the label's color and the delta value, a trader can quickly assess whether the market shows a dominant buying or selling pressure during a given candle.
- Complementing Other Tools:
This indicator can be used alongside other technical analysis tools, such as the Volume Profile or trend indicators, to gain a more comprehensive understanding of market behavior.
- Supporting Decision Making:
By providing a visual estimate of the volume distribution, it can help identify divergences between price movement and volume activity, which may signal potential reversals or confirm ongoing trends.
Limitations:
- Heuristic Approximation:
The method of volume distribution is based on simple assumptions and does not reflect the actual order flow, which would require tick-by-tick data to be accurately represented.
- Data Limitations on TradingView:
Due to TradingView’s restrictions on accessing detailed order book data, this indicator can only approximate a Footprint Chart and does not replace specialized tools.
In summary, the "Footprint Chart" indicator provides a visual and quick estimation of the volume distribution between buyers and sellers for each candlestick, offering valuable insights into order flow dynamics while remaining aware of its heuristic limitations.
Dual Keltner ChannelsDual Keltner Channels (DKC) Indicator 📊
🔹 About This Indicator
This indicator is an enhanced version of the original Keltner Channel available in TradingView. The Keltner Channel was initially designed as a volatility-based envelope around a moving average, helping traders identify trends, breakouts, and potential reversal zones.
💡 Original Creator: The Keltner Channel concept is based on the work of Chester W. Keltner and was later implemented in various trading platforms, including TradingView’s built-in Keltner Channel indicator.
This script builds upon the TradingView version of the Keltner Channel, adding:
✅ Dual Keltner Bands (Inner & Outer) for better trend and volatility analysis.
✅ Customizable Moving Averages (EMA/SMA) for flexibility.
✅ Multiple Band Calculation Methods (ATR, True Range, Range) for improved accuracy.
✅ Shaded Zones Between the Bands for enhanced visual clarity.
⚡ Credit: This indicator is an enhancement of the original Keltner Channel Indicator in TradingView. All improvements and modifications are made to provide deeper market insights while maintaining the core principles of the original Keltner concept.
🔹 Overview
The Dual Keltner Channels (DKC) indicator overlays two Keltner Channels on the price chart, helping traders spot trends, breakouts, and reversals with greater precision.
Inner Keltner Band (Multiplier 1): Captures normal price movements.
Outer Keltner Band (Multiplier 2): Highlights extreme price movements and potential breakouts.
🔹 Features & Inputs
📌 Main Inputs:
Keltner Channel Length: Defines the lookback period for the moving average calculation.
Source Price: Selects the price type (close, open, high, low) to calculate the bands.
Exponential Moving Average (EMA) Option: Choose between Exponential (EMA) or Simple (SMA) as the basis for calculations.
Bands Style: Selects how the volatility is measured:
Average True Range (ATR) (default)
True Range (TR)
Range (High - Low)
ATR Length: Determines the length of ATR calculations.
Enable Multiplier 1 & 2: Toggle to display/hide inner (multiplier 1) and outer (multiplier 2) bands.
📌 Keltner Channels Calculation:
Moving Average (MA): Uses either EMA or SMA for the midline.
Volatility Band Calculation:
Upper Band 1 (Inner Band): MA + (Multiplier 1 × Volatility Measure)
Lower Band 1 (Inner Band): MA - (Multiplier 1 × Volatility Measure)
Upper Band 2 (Outer Band): MA + (Multiplier 2 × Volatility Measure)
Lower Band 2 (Outer Band): MA - (Multiplier 2 × Volatility Measure)
📌 Visuals & Plotting:
Inner Bands (Multiplier 1): Blue upper & lower lines.
Outer Bands (Multiplier 2): Darker blue upper & lower lines.
Basis Line: White moving average.
Shaded Areas:
Between Upper 1 & Upper 2 (Light Brown Area): Identifies the upper Keltner region.
Between Lower 1 & Lower 2 (Light Brown Area): Identifies the lower Keltner region.
🔹 How to Use the Dual Keltner Channels Indicator
✅ 1. Trend Identification
Price above the upper outer band (Multiplier 2): Strong uptrend – potential continuation.
Price below the lower outer band (Multiplier 2): Strong downtrend – potential continuation.
Price within the inner bands (Multiplier 1): Sideways market – possible consolidation.
✅ 2. Breakout Trading
Break above outer upper band: Indicates a bullish breakout – consider long trades.
Break below outer lower band: Indicates a bearish breakdown – consider short trades.
✅ 3. Overbought & Oversold Conditions
Price touching/exceeding outer bands (Multiplier 2): Potential reversal zones.
Reversal confirmation: Look for candlestick patterns (e.g., Doji, Engulfing) or divergence signals.
✅ 4. Pullback & Entry Zones
Price bouncing from inner bands (Multiplier 1): Good re-entry point in trend direction.
Inner band as support/resistance: Helps in setting stop-loss and profit targets.
🔹 Effective Trading Strategies Using DKC
📌 1. Trend Following Strategy (Using Moving Average & Bands)
✅ Look for price staying above/below the basis line (MA) within the outer bands.
✅ Use pullbacks to the inner bands as re-entry points for trend continuation.
✅ Confirm trend strength with momentum indicators like RSI, MACD.
📌 2. Breakout Trading Strategy
✅ Identify a tight consolidation phase within the inner Keltner bands.
✅ Wait for a strong breakout beyond the outer bands.
✅ Enter long/short trades based on breakout direction.
✅ Place stop-loss at the previous inner band to manage risk.
📌 3. Reversal Strategy (Mean Reversion)
✅ When price extends beyond the outer band (Multiplier 2), look for reversal signals (candlestick patterns, RSI divergence).
✅ Enter counter-trend trades with tight stop-loss beyond the band.
✅ Target the moving average (basis line) as take-profit.
🔹 Final Thoughts 💡
The Dual Keltner Channels (DKC) is a powerful upgrade to the standard Keltner Channel, providing:
✅ Greater clarity on trend strength
✅ More precise breakout & reversal signals
✅ Better visual insights for dynamic market conditions
📌 Best Used With: RSI, MACD, Volume Profile, Price Action Signals.
📌 Works on: Stocks, Forex, Crypto, Commodities, Indices.
Poisson Projection of Price Levels### **Poisson Projection of Price Levels**
**Overview:**
The *Poisson Projection of Price Levels* is a cutting-edge technical indicator designed to identify and visualize potential support and resistance levels based on historical price interactions. By leveraging the Poisson distribution, this tool dynamically adjusts the significance of each price level's past "touches" to project future interactions with varying degrees of probability. This probabilistic approach offers traders a nuanced view of where price levels may hold or react in upcoming bars, enhancing both analysis and trading strategies.
---
**🔍 **Math & Methodology**
1. **Strata Levels:**
- **Definition:** Strata are horizontal lines spaced evenly around the current closing price.
- **Calculation:**
\
where \(i\) ranges from 0 to \(\text{Strata Count} - 1\).
2. **Forecast Iterations:**
- **Structure:** The indicator projects five forecast iterations into the future, each spaced by a Fibonacci sequence of bars: 2, 3, 5, 8, and 13 bars ahead. This spacing is inspired by the Fibonacci sequence, which is prevalent in financial market analysis for identifying key levels.
- **Purpose:** Each iteration represents a distinct forecast point where the price may interact with the strata, allowing for a multi-step projection of potential price levels.
3. **Touch Counting:**
- **Definition:** A "touch" occurs when the closing price of a bar is within half the increment of a stratum level.
- **Process:** For each stratum and each forecast iteration, the indicator counts the number of touches within a specified lookback window (e.g., 80 bars), offset by the forecasted position. This ensures that each iteration's touch count is independent and contextually relevant to its forecast horizon.
- **Adjustment:** Each forecast iteration analyzes a unique segment of the lookback window, offset by its forecasted position to ensure independent probability calculations.
4. **Poisson Probability Calculation:**
- **Formula:**
\
\
- **Interpretation:** \(p(k=1)\) represents the probability of exactly one touch occurring within the lookback window for each stratum and iteration.
- **Application:** This probability is used to determine the transparency of each stratum line, where higher probabilities result in more opaque (less transparent) lines, indicating stronger historical significance.
5. **Transparency Mapping:**
- **Calculation:**
\
- **Purpose:** Maps the Poisson probability to a visual transparency level, enhancing the readability of significant strata levels.
- **Outcome:** Strata with higher probabilities (more historical touches) appear more opaque, while those with lower probabilities appear fainter.
---
**📊 **Comparability to Standard Techniques**
1. **Support and Resistance Levels:**
- **Traditional Approach:** Traders identify support and resistance based on historical price reversals, pivot points, or psychological price levels.
- **Poisson Projection:** Automates and quantifies this process by statistically analyzing the frequency of price interactions with specific levels, providing a probabilistic measure of significance.
2. **Statistical Modeling:**
- **Standard Models:** Techniques like Moving Averages, Bollinger Bands, or Fibonacci Retracements offer dynamic and rule-based levels but lack direct probabilistic interpretation.
- **Poisson Projection:** Introduces a discrete event probability framework, offering a unique blend of statistical rigor and visual clarity that complements traditional indicators.
3. **Event-Based Analysis:**
- **Financial Industry Practices:** Event studies and high-frequency trading models often use Poisson processes to model order arrivals or price jumps.
- **Indicator Application:** While not identical, the use of Poisson probabilities in this indicator draws inspiration from event-based modeling, applying it to the context of price level interactions.
---
**💡 **Strengths & Advantages**
1. **Innovative Visualization:**
- Combines statistical probability with traditional support/resistance visualization, offering a fresh perspective on price level significance.
2. **Dynamic Adaptability:**
- Parameters like strata increment, lookback window, and probability threshold are user-defined, allowing customization across different markets and timeframes.
3. **Independent Probability Calculations:**
- Each forecast iteration calculates its own Poisson probability, ensuring that projections are contextually relevant and independent of other iterations.
4. **Clear Visual Cues:**
- Transparency-based coloring intuitively highlights significant price levels, making it easier for traders to identify key areas of interest at a glance.
---
**⚠️ **Limitations & Considerations**
1. **Poisson Assumptions:**
- Assumes that touches occur independently and at a constant average rate (\(\lambda\)), which may not always align with market realities characterized by trends and volatility clustering.
2. **Computational Intensity:**
- Managing multiple iterations and strata can be resource-intensive, potentially affecting performance on lower-powered devices or with very high lookback windows.
3. **Interpretation Complexity:**
- While transparency offers visual clarity, understanding the underlying probability calculations requires a basic grasp of Poisson statistics, which may be a barrier for some traders.
---
**📢 **How to Use It**
1. **Add to TradingView:**
- Open TradingView and navigate to the Pine Script Editor.
- Paste the script above and click **Add to Chart**.
2. **Configure Inputs:**
- **Strata Increment:** Set the desired price step between strata (e.g., `0.1` for 10 cents).
- **Lookback Window:** Define how many past bars to consider for calculating Poisson probabilities (e.g., `80`).
- **Probability Transparency Threshold (%):** Set the threshold percentage to map probabilities to line transparency (e.g., `25%`).
3. **Understand the Forecast Iterations:**
- The indicator projects five forecast points into the future at bar spacings of 2, 3, 5, 8, and 13 bars ahead.
- Each iteration independently calculates its Poisson probability based on the touch counts within its specific lookback window offset by its forecasted position.
4. **Interpret the Visualization:**
- **Opaque Lines:** Indicate higher Poisson probabilities, suggesting historically significant price levels that are more likely to interact again.
- **Fainter Lines:** Represent lower probabilities, indicating less historically significant levels that may be less likely to interact.
- **Forecast Spacing:** The spacing of 2, 3, 5, 8, and 13 bars ahead aligns with Fibonacci principles, offering a natural progression in forecast horizons.
5. **Apply to Trading Strategies:**
- **Support/Resistance Identification:** Use the opaque lines as potential support and resistance levels for placing trades.
- **Entry and Exit Points:** Anticipate price interactions at forecasted levels to plan strategic entries and exits.
- **Risk Management:** Utilize the transparency mapping to determine where to place stop-loss and take-profit orders based on the probability of price interactions.
6. **Customize as Needed:**
- Adjust the **Strata Increment** to fit different price ranges or volatility levels.
- Modify the **Lookback Window** to capture more or fewer historical touches, adapting to different timeframes or market conditions.
- Tweak the **Probability Transparency Threshold** to control the sensitivity of transparency mapping to Poisson probabilities.
**📈 **Practical Applications**
1. **Identifying Key Levels:**
- Quickly visualize which price levels have historically had significant interactions, aiding in the identification of potential support and resistance zones.
2. **Forecasting Price Reactions:**
- Use the forecast iterations to anticipate where price may interact in the near future, assisting in planning entry and exit points.
3. **Risk Management:**
- Determine areas of high probability for price reversals or consolidations, enabling better placement of stop-loss and take-profit orders.
4. **Market Analysis:**
- Assess the strength of market levels over different forecast horizons, providing a multi-layered understanding of market structure.
---
**🔗 **Conclusion**
The *Poisson Projection of Price Levels* bridges the gap between statistical modeling and traditional technical analysis, offering traders a sophisticated tool to quantify and visualize the significance of price levels. By integrating Poisson probabilities with dynamic transparency mapping, this indicator provides a unique and insightful perspective on potential support and resistance zones, enhancing both analysis and trading strategies.
---
**📞 **Contact:**
For support or inquiries, please contact me on TradingView!
---
**📢 **Join the Conversation!**
Have questions, feedback, or suggestions for further enhancements? Feel free to comment below or reach out directly. Your input helps refine and evolve this tool to better serve the trading community.
---
**Happy Trading!** 🚀
TradingView.To Strategy Template (with Dyanmic Alerts)Hello traders,
If you're tired of manual trading and looking for a solid strategy template to pair with your indicators, look no further.
This Pine Script v5 strategy template is engineered for maximum customization and risk management.
Best part?
This Pine Script v5 template facilitates the dynamic construction of TradingView.TO alerts, sparing users the time and effort of mastering the TradingView.TO syntax and manually create alert commands.
This powerful tool gives much power to those who don't know how to code in Pinescript and want to automate their indicators' signals via TradingView.TO bot.
IMPORTANT NOTES
TradingView.TO is a trading bot software that forwards TradingView alerts to your brokers (examples: Binance, Oanda, Coinbase, Bybit, Metatrader 4/5, ...) for automating trading.
Many traders don't know how to create TradingView.TO dynamically-compatible alerts using the data from their TradingView scripts.
Traders using trading bots want their alerts to reflect the stop-loss/take-profit/trailing-stop/stop-loss to break options from your script and then create the orders accordingly.
This script showcases how to create TradingView.TO alerts dynamically.
TRADINGVIEW ALERTS
1) You'll have to create one alert per asset X timeframe = 1 chart.
Example: 1 alert for BTC/USDT on the 5 minutes chart, 1 alert for BTC/USDT on the 15-minute chart (assuming you want your bot to trade the BTC/USDT on the 5 and 15-minute timeframes)
2) Select the Order fills and alert() function calls condition
3) For each alert, the alert message is pre-configured with the text below
{{strategy.order.alert_message}}
Please leave it as it is.
It's a TradingView native variable that will fetch the alert text messages built by the script.
4) TradingView.TO uses webhook technology - setting a webhook URL from the alerts notifications tab is required.
KEY FEATURES
I) Modular Indicator Connection
* plug your existing indicator into the template.
* Only two lines of code are needed for full compatibility.
Step 1: Create your connector
Adapt your indicator with only 2 lines of code and then connect it to this strategy template.
To do so:
1) Find in your indicator where the conditions print the long/buy and short/sell signals.
2) Create an additional plot as below
I'm giving an example with a Two moving averages cross.
Please replicate the same methodology for your indicator, whether a MACD , ZigZag, Pivots , higher-highs, lower-lows or whatever indicator with clear buy and sell conditions.
//@version=5
indicator("Supertrend", overlay = true, timeframe = "", timeframe_gaps = true)
atrPeriod = input.int(10, "ATR Length", minval = 1)
factor = input.float(3.0, "Factor", minval = 0.01, step = 0.01)
= ta.supertrend(factor, atrPeriod)
supertrend := barstate.isfirst ? na : supertrend
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend = plot(direction < 0 ? na : supertrend, "Down Trend", color = color.red, style = plot.style_linebr)
fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps = false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps = false)
buy = ta.crossunder(direction, 0)
sell = ta.crossunder(direction, 0)
//////// CONNECTOR SECTION ////////
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title = "Signal", display = display.data_window)
//////// CONNECTOR SECTION ////////
Important Notes
🔥 The Strategy Template expects the value to be exactly 1 for the bullish signal and -1 for the bearish signal
Now, you can connect your indicator to the Strategy Template using the method below or that one.
Step 2: Connect the connector
1) Add your updated indicator to a TradingView chart
2) Add the Strategy Template as well to the SAME chart
3) Open the Strategy Template settings, and in the Data Source field, select your 🔌Connector🔌 (which comes from your indicator)
Note it doesn’t have to be named 🔌Connector🔌 - you can name it as you want - however, I recommend an explicit name you can easily remember.
From then, you should start seeing the signals and plenty of other stuff on your chart.
🔥 Note that whenever you update your indicator values, the strategy statistics and visuals on your chart will update in real-time
II) BOT Risk Management:
- Max Drawdown:
Mode: Select whether the max drawdown is calculated in percentage (%) or USD.
Value: If the max drawdown reaches this specified value, set a value to halt the bot.
- Max Consecutive Days:
Use Max Consecutive Days BOT Halt: Enable/Disable halting the bot if the max consecutive losing days value is reached.
- Max Consecutive Days: Set the maximum number of consecutive losing days allowed before halting the bot.
- Max Losing Streak:
Use Max Losing Streak: Enable/Disable a feature to prevent the bot from taking too many losses in a row.
- Max Losing Streak Length: Set the maximum length of a losing streak allowed.
Margin Call:
- Use Margin Call: Enable/Disable a feature to exit when a specified percentage away from a margin call to prevent it.
Margin Call (%): Set the percentage value to trigger this feature.
- Close BOT Total Loss:
Use Close BOT Total Loss: Enable/Disable a feature to close all trades and halt the bot if the total loss is reached.
- Total Loss ($): Set the total loss value in USD to trigger this feature.
Intraday BOT Risk Management:
- Intraday Losses:
Use Intraday Losses BOT Halt: Enable/Disable halting the bot on reaching specified intraday losses.
Mode: Select whether the intraday loss is calculated in percentage (%) or USD.
- Max Intraday Losses (%): Set the value for maximum intraday losses.
Limit Intraday Trades:
- Use Limit Intraday Trades: Enable/Disable a feature to limit the number of intraday trades.
- Max Intraday Trades: Set the maximum number of intraday trades allowed.
Restart Intraday EA:
III) Order Types and Position Sizing
- Choose between market or limit orders.
- Set your position size directly in the template.
Please use the position size from the “Inputs” and not the “Properties” tab.
I know it's redundant. - the template needs this value from the "Inputs" tab to build the alerts, and the Backtester needs it from the "Properties" tab.
IV) Advanced Take-Profit and Stop-Loss Options
- Choose to set your SL/TP in either USD or percentages.
- Option for multiple take-profit levels and trailing stop losses.
- Move your stop loss to break even +/- offset in USD for “risk-free” trades.
V) Miscellaneous:
Retry order openings if they fail.
Order Types:
Select and specify order type and price settings.
Position Size:
Define the type and size of positions.
Leverage:
Leverage settings, including margin type and hedge mode.
Session:
Limit trades to specific sessions.
Dates:
Limit trades to a specific date range.
Trades Direction:
Direction: Specify the market direction for opening positions.
VI) Logger
The TradingView.TO commands are logged in the TradingView logger.
You'll find more information about it in this TradingView blog post .
WHY YOU MIGHT NEED THIS TEMPLATE
1) Transform your indicator into a TradingView.TO trading bot more easily than before
Connect your indicator to the template
Create your alerts
Set your EA settings
2) Save Time
Auto-generated alert messages for TradingView.TO.
I tested them all and checked with the support team what could/couldn’t be done.
3) Be in Control
Manage your trading risks with advanced features.
4) Customizable
Fits various trading styles and asset classes.
REQUIREMENTS
* Make sure you have your TradingView.TO account
* If there is any issue with the template, ask me in the comments section - I’ll answer quickly.
BACKTEST RESULTS FROM THIS POST
1) I connected this strategy template to a dummy Supertrend script.
I could have selected any other indicator or concept for this script post.
I wanted to share an example of how you can quickly upgrade your strategy, making it compatible with TradingView.TO.
2) The backtest results aren't relevant for this educational script publication.
I used realistic backtesting data but didn't look too much into optimizing the results, as this isn't the point of why I'm publishing this script.
This strategy is a template to be connected to any indicator - the sky is the limit. :)
3) This template is made to take 1 trade per direction at any given time.
Pyramiding is set to 1 on TradingView.
The strategy default settings are:
* Initial Capital: 100000 USD
* Position Size: 1%
* Commission Percent: 0.075%
* Slippage: 1 tick
* No margin/leverage used
ProfitView Strategy TemplateHello traders,
This script took me a full week of coding/testing, sweat, and tears - and I’m too nice as I’m giving it for free to the community.
If you're tired of manual trading and looking for a solid strategy template to pair with your indicators, look no further.
This Pine Script v5 strategy template is engineered for maximum customization and risk management.
Best part?
This Pine Script v5 template facilitates the dynamic construction of ProfitView alerts, sparing users the time and effort of mastering the ProfitView syntax and manually creating alert commands.
This powerful tool gives much power to those who don't know how to code in Pinescript and want to automate their indicators' signals via the ProfitView Chrome extension.
IMPORTANT NOTES
ProfitView is a trading bot software that forwards TradingView alerts to your brokers (examples: Binance, Oanda, Coinbase, Bybit, etc.) for automating trading.
Many traders don't know how to dynamically create ProfitView-compatible alerts using the data from their TradingView scripts.
Traders using trading bots want their alerts to reflect the stop-loss/take-profit/trailing-stop/stop-loss to break options from your script and then create the orders accordingly.
This script showcases how to create ProfitView alerts dynamically.
TRADINGVIEW ALERTS
1) You'll have to create one alert per asset X timeframe = 1 chart.
Example: 1 alert for EUR/USD on the 5 minutes chart, 1 alert for EUR/USD on the 15-minute chart (assuming you want your bot to trade the EUR/USD on the 5 and 15-minute timeframes)
2) Select the Order fills and alert() function calls condition
3) For each alert, the alert message is pre-configured with the text below
{{strategy.order.alert_message}}
Please leave it as it is.
It's a TradingView native variable that will fetch the alert text messages built by the script.
4) ProfitView doesn't use webhook technology, so setting a webhook URL from the alerts notifications tab is unnecessary.
KEY FEATURES
I) Modular Indicator Connection
* plug your existing indicator into the template.
* Only two lines of code are needed for full compatibility.
Step 1: Create your connector
Adapt your indicator with only 2 lines of code and then connect it to this strategy template.
To do so:
1) Find in your indicator where the conditions print the long/buy and short/sell signals.
2) Create an additional plot as below
I'm giving an example with a Two moving averages cross.
Please replicate the same methodology for your indicator, whether a MACD , ZigZag, Pivots , higher-highs, lower-lows or whatever indicator with clear buy and sell conditions.
//@version=5
indicator("Supertrend", overlay = true, timeframe = "", timeframe_gaps = true)
atrPeriod = input.int(10, "ATR Length", minval = 1)
factor = input.float(3.0, "Factor", minval = 0.01, step = 0.01)
= ta.supertrend(factor, atrPeriod)
supertrend := barstate.isfirst ? na : supertrend
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend = plot(direction < 0 ? na : supertrend, "Down Trend", color = color.red, style = plot.style_linebr)
fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps = false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps = false)
buy = ta.crossunder(direction, 0)
sell = ta.crossunder(direction, 0)
//////// CONNECTOR SECTION ////////
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title = "Signal", display = display.data_window)
//////// CONNECTOR SECTION ////////
Important Notes
🔥 The Strategy Template expects the value to be exactly 1 for the bullish signal and -1 for the bearish signal
Now, you can connect your indicator to the Strategy Template using the method below or that one.
Step 2: Connect the connector
1) Add your updated indicator to a TradingView chart
2) Add the Strategy Template as well to the SAME chart
3) Open the Strategy Template settings, and in the Data Source field, select your 🔌Connector🔌 (which comes from your indicator)
Note it doesn’t have to be named 🔌Connector🔌 - you can name it as you want - however, I recommend an explicit name you can easily remember.
From then, you should start seeing the signals and plenty of other stuff on your chart.
🔥 Note that whenever you update your indicator values, the strategy statistics and visuals on your chart will update in real-time
II) BOT Risk Management:
- Max Drawdown:
Mode: Select whether the max drawdown is calculated in percentage (%) or USD.
Value: If the max drawdown reaches this specified value, set a value to halt the bot.
- Max Consecutive Days:
Use Max Consecutive Days BOT Halt: Enable/Disable halting the bot if the max consecutive losing days value is reached.
- Max Consecutive Days: Set the maximum number of consecutive losing days allowed before halting the bot.
- Max Losing Streak:
Use Max Losing Streak: Enable/Disable a feature to prevent the bot from taking too many losses in a row.
- Max Losing Streak Length: Set the maximum length of a losing streak allowed.
Margin Call:
- Use Margin Call: Enable/Disable a feature to exit when a specified percentage away from a margin call to prevent it.
Margin Call (%): Set the percentage value to trigger this feature.
- Close BOT Total Loss:
Use Close BOT Total Loss: Enable/Disable a feature to close all trades and halt the bot if the total loss is reached.
- Total Loss ($): Set the total loss value in USD to trigger this feature.
Intraday BOT Risk Management:
- Intraday Losses:
Use Intraday Losses BOT Halt: Enable/Disable halting the bot on reaching specified intraday losses.
Mode: Select whether the intraday loss is calculated in percentage (%) or USD.
- Max Intraday Losses (%): Set the value for maximum intraday losses.
Limit Intraday Trades:
- Use Limit Intraday Trades: Enable/Disable a feature to limit the number of intraday trades.
- Max Intraday Trades: Set the maximum number of intraday trades allowed.
Restart Intraday EA:
- Use Restart Intraday EA: Enable/Disable a feature to restart the bot at the first bar of the next day if it has been stopped with an intraday risk management safeguard.
III) Order Types and Position Sizing
- Choose between market, limit, or stop orders.
- Set your position size directly in the template.
Please use the position size from the “Inputs” and not the “Properties” tab.
I know it's redundant. - the template needs this value from the "Inputs" tab to build the alerts, and the Backtester needs it from the "Properties" tab.
IV) Advanced Take-Profit and Stop-Loss Options
- Choose to set your SL/TP in either pips or percentages.
- Option for multiple take-profit levels and trailing stop losses.
- Move your stop loss to break even +/- offset in pips for “risk-free” trades.
V) Miscellaneous
Retry order openings if they fail.
Order Types:
Select and specify order type and price settings.
Position Size:
Define the type and size of positions.
Leverage:
Leverage settings, including margin type and hedge mode.
Session:
Limit trades to specific sessions.
Dates:
Limit trades to a specific date range.
Trades Direction:
Direction: Specify the market direction for opening positions.
VI) Notifications (Telegram/Discord/Email/IFTTT/Twilio/SMS)
Customize notifications sent to Telegram, Discord, Email, IFTTT, Twilio, and ProfitView Logger.
VII) Logger
The ProfitView commands are logged in the TradingView logger.
You'll find more information about it in this TradingView blog post .
WHY YOU MIGHT NEED THIS TEMPLATE
1) Transform your indicator into a ProfitView trading bot more easily than before
Connect your indicator to the template
Create your alerts
Set your EA settings
2) Save Time
Auto-generated alert messages for ProfitView.
I tested them all and checked with the support team what could/couldn’t be done.
3) Be in Control
Manage your trading risks with advanced features.
4) Customizable
Fits various trading styles and asset classes.
REQUIREMENTS
* Make sure you have your ProfitView account and do the settings correctly in your Chrome extension. If you don't know how to do it, read the documentation + ask for help in the ProfitView Discord support channel.
* If there is any issue with the template, ask me in the comments section - I’ll answer quickly.
BACKTEST RESULTS FROM THIS POST
1) I connected this strategy template to a dummy Supertrend script.
I could have selected any other indicator or concept for this script post.
I wanted to share an example of how you can quickly upgrade your strategy, making it compatible with ProfitView.
2) The backtest results aren't relevant for this educational script publication.
I used realistic backtesting data but didn't look too much into optimizing the results, as this isn't the point of why I'm publishing this script.
This strategy is a template to be connected to any indicator - the sky is the limit. :)
3) This template is made to take 1 trade per direction at any given time.
Pyramiding is set to 1 on TradingView.
The strategy default settings are:
* Initial Capital: 100000 USD
* Position Size: 1%
* Commission Percent: 0.075%
* Slippage: 1 tick
* No margin/leverage used
Best regards,
Dave
PineUnitPineUnit by Guardian667
A comprehensive testing framework for Pine Script on TradingView. Built with well-known testing paradigms like Assertions, Units and Suites. It offers the ability to log test results in TradingView's built-in Pine Protocol view, as well as displaying them in a compact table directly on your chart, ensuring your scripts are both robust and reliable.
Unit testing Pine Script indicators, libraries, and strategies becomes seamless, ensuring the precision and dependability of your TradingView scripts. Beyond standard function testing based on predefined input values, PineUnit supports series value testing. This means a test can run on every bar, taking into account its specific values. Moreover, you can specify the exact conditions under which a test should execute, allowing for series-based testing only on bars fitting a designated scenario.
Detailed Guide & Source Code
Quick Start
To get started swiftly with PineUnit, follow this minimalistic example.
import Guardian667/PineUnit/1 as PineUnit
var testSession = PineUnit.createTestSession()
var trueTest = testSession.createSimpleTest("True is always True")
trueTest.assertTrue(true)
testSession.report()
After running your script, you'll notice a table on your chart displaying the test results. For a detailed log output, you can also utilize the Pine Protocol view in TradingView.
--------------------------------------------------------------
T E S T S
--------------------------------------------------------------
Running Default Unit
Tests run: 1, Failures: 0, Not executed: 0, Skipped: 0
To further illustrate, let's introduce a test that's destined to fail:
var bullTest = testSession.createSeriesTest("It's allways Bull Market")
bullTest.assertTrue(close > open, "Uhoh... it's not always bullish")
After executing, the test results will reflect this intentional discrepancy:
--------------------------------------------------------------
T E S T S
--------------------------------------------------------------
Running Default Unit
Tests run: 2, Failures: 1, Not executed: 0, Skipped: 0 <<< FAILURE! - in
It's allways Bull Market
Uhoh... it's not always bullish ==> expected: , but was
This shows how PineUnit efficiently captures and reports discrepancies in test expectations.
It's important to recognise the difference between `createSimpleTest()` and `createSeriesTest()`. In contrast to a simple test, a series-based test is executed on each bar, making assertions on series values.
License
This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
@ Guardian667
A Personal Note
As a software developer experienced in OO-based languages, diving into Pine Script is a unique journey. While many aspects of it are smooth and efficient, there are also notable gaps, particularly in the realm of testing. We've all been there: using `plotchar()` for debugging, trying to pinpoint those elusive issues in our scripts. I've come to appreciate the value of writing tests, which often obviates the need for such debugging. My hope is that this Testing Framework serves you well and saves you a significant amount of time, more that I invested into developing this "baby."
Pineconnector Strategy Template (Connect Any Indicator)Hello traders,
If you're tired of manual trading and looking for a solid strategy template to pair with your indicators, look no further.
This Pine Script v5 strategy template is engineered for maximum customization and risk management.
Best part?
It’s optimized for Pineconnector, allowing seamless integration with MetaTrader 4 and 5.
This powerful tool gives a lot of power to those who don't know how to code in Pinescript and are looking to automate their indicators' signals on Metatrader 4/5.
IMPORTANT NOTES
Pineconnector is a trading bot software that forwards TradingView alerts to your Metatrader 4/5 for automating trading.
Many traders don't know how to dynamically create Pineconnector-compatible alerts using the data from their TradingView scripts.
Traders using trading bots want their alerts to reflect the stop-loss/take-profit/trailing-stop/stop-loss to break options from your script and then create the orders accordingly.
This script showcases how to create Pineconnector alerts dynamically.
Pineconnector doesn't support alerts with multiple Take Profits.
As a workaround, for 2 TPs, I had to open two trades.
It's not optimal, as we end up paying more spreads for that extra trade - however, depending on your trading strategy, it may not be a big deal.
TRADINGVIEW ALERTS
1) You'll have to create one alert per asset X timeframe = 1 chart.
Example: 1 alert for EUR/USD on the 5 minutes chart, 1 alert for EUR/USD on the 15-minute chart (assuming you want your bot to trade the EUR/USD on the 5 and 15-minute timeframes)
2) Select the Order fills and alert() function calls condition
3) For each alert, the alert message is pre-configured with the text below
{{strategy.order.alert_message}}
Please leave it as it is.
It's a TradingView native variable that will fetch the alert text messages built by the script.
4) Don't forget to set the Pineconnector webhook URL in the Notifications tab of the TradingView alerts UI.
You’ll find the URL on the Pineconnector documentation website.
EA CONFIGURATION
1) The Pyramiding in the EA on Metatrader must be set to 2 if you want to trade with 2 TPs => as it's opening 2 trades.
If you only want 1 TP, set the EA Pyramiding to 1.
Regarding the other EA settings, please refer to the Pineconnector documentation on their website.
2) In the EA, you can set a risk (= position size type) in %/lots/USD, as in the TradingView backtest settings.
KEY FEATURES
I) Modular Indicator Connection
* plug in your existing indicator into the template.
* Only two lines of code are needed for full compatibility.
Step 1: Create your connector
Adapt your indicator with only 2 lines of code and then connect it to this strategy template.
To do so:
1) Find in your indicator where the conditions print the long/buy and short/sell signals.
2) Create an additional plot as below
I'm giving an example with a Two moving averages cross.
Please replicate the same methodology for your indicator, whether it's a MACD , ZigZag , Pivots , higher-highs, lower-lows, or whatever indicator with clear buy and sell conditions.
//@version=5
indicator("Supertrend", overlay = true, timeframe = "", timeframe_gaps = true)
atrPeriod = input.int(10, "ATR Length", minval = 1)
factor = input.float(3.0, "Factor", minval = 0.01, step = 0.01)
= ta.supertrend(factor, atrPeriod)
supertrend := barstate.isfirst ? na : supertrend
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend = plot(direction < 0 ? na : supertrend, "Down Trend", color = color.red, style = plot.style_linebr)
fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps = false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps = false)
buy = ta.crossunder(direction, 0)
sell = ta.crossunder(direction, 0)
//////// CONNECTOR SECTION ////////
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title = "Signal", display = display.data_window)
//////// CONNECTOR SECTION ////////
Important Notes
🔥 The Strategy Template expects the value to be exactly 1 for the bullish signal and -1 for the bearish signal
Now, you can connect your indicator to the Strategy Template using the method below or that one.
Step 2: Connect the connector
1) Add your updated indicator to a TradingView chart
2) Add the Strategy Template as well to the SAME chart
3) Open the Strategy Template settings, and in the Data Source field, select your 🔌Connector🔌 (which comes from your indicator)
Note it doesn’t have to be named 🔌Connector🔌 - you can name it as you want - however, I recommend an explicit name you can easily remember.
From then, you should start seeing the signals and plenty of other stuff on your chart.
🔥 Note that whenever you update your indicator values, the strategy statistics and visuals on your chart will update in real-time
II) Customizable Risk Management
- Choose between percentage or USD modes for maximum drawdown.
- Set max consecutive losing days and max losing streak length.
- I used the code from my friend @JosKodify for the maximum losing streak. :)
Will halt the EA and backtest orders fill whenever either of the safeguards above are “broken”
III) Intraday Risk Management
- Limit the maximum intraday losses both in percentage or USD.
- Option to set a maximum number of intraday trades.
- If your EA gets halted on an intraday chart, auto-restart it the next day.
IV) Spread and Account Filters
- Trade only if the spread is below a certain pip value.
- Set requirements based on account balance or equity.
V) Order Types and Position Sizing
- Choose between market, limit, or stop orders.
- Set your position size directly in the template.
Please use the position size from the “Inputs” and not the “Properties” tab.
Reason : The template sends the order on the same candle as the entry signals - at those entry signals candles, the position size isn’t computed yet, and the template can’t then send it to Pineconnector.
However, you can use the position size type (USD, contracts, %) from the “Properties” tab for backtesting.
In the EA, you can define the position size type for your orders in USD or lots or %.
VI) Advanced Take-Profit and Stop-Loss Options
- Choose to set your SL/TP in either pips or percentages.
- Option for multiple take-profit levels and trailing stop losses.
- Move your stop loss to break even +/- offset in pips for “risk-free” trades.
VII) Logger
The Pineconnector commands are logged in the TradingView logger.
You'll find more information about it in this TradingView blog post .
WHY YOU MIGHT NEED THIS TEMPLATE
1) Transform your indicator into a Pineconnector trading bot more easily than before
Connect your indicator to the template
Create your alerts
Set your EA settings
2) Save Time
Auto-generated alert messages for Pineconnector.
I tested them all, and I checked with the support team what could/can’t be done
3) Be in Control
Manage your trading risks with advanced features.
4) Customizable
Fits various trading styles and asset classes.
REQUIREMENTS
* Make sure you have your Pineconnector license ID.
* Create your alerts with the Pineconnector webhook URL
* If there is any issue with the template, ask me in the comments section - I’ll answer quickly.
BACKTEST RESULTS FROM THIS POST
1) I connected this strategy template to a dummy Supertrend script.
I could have selected any other indicator or concept for this script post.
I wanted to share an example of how you can quickly upgrade your strategy, making it compatible with Pineconnector.
2) The backtest results aren't relevant for this educational script publication.
I used realistic backtesting data but didn't look too much into optimizing the results, as this isn't the point of why I'm publishing this script.
This strategy is a template to be connected to any indicator - the sky is the limit. :)
3) This template is made to take 1 trade per direction at any given time.
Pyramiding is set to 1 on TradingView.
The strategy default settings are:
* Initial Capital: 100000 USD
* Position Size: 1 contract
* Commission Percent: 0.075%
* Slippage: 1 tick
* No margin/leverage used
WHAT’S COMING NEXT FOR YOU GUYS?
I’ll make the same template for ProfitView, then for AutoView, and then for Alertatron.
All of those are free and open-source.
I have no affiliations with any of those companies - I'm publishing those templates as they will be useful to many of you.
Dave
Heatmap MACD Strategy - Pineconnector (Dynamic Alerts)Hello traders
This script is an upgrade of this template script.
Heatmap MACD Strategy
Pineconnector
Pineconnector is a trading bot software that forwards TradingView alerts to your Metatrader 4/5 for automating trading.
Many traders don't know how to dynamically create Pineconnector-compatible alerts using the data from their TradingView scripts.
Traders using trading bots want their alerts to reflect the stop-loss/take-profit/trailing-stop/stop-loss to breakeven options from your script and then create the orders accordingly.
This script showcases how to create Pineconnector alerts dynamically.
Pineconnector doesn't support alerts with multiple Take Profits.
As a workaround, for 2 TPs, I had to open two trades.
It's not optimal, as we end up paying more spreads for that extra trade - however, depending on your trading strategy, it may not be a big deal.
TradingView Alerts
1) You'll have to create one alert per asset X timeframe = 1 chart.
Example : 1 alert for EUR/USD on the 5 minutes chart, 1 alert for EUR/USD on the 15-minute chart (assuming you want your bot to trade the EUR/USD on the 5 and 15-minute timeframes)
2) For each alert, the alert message is pre-configured with the text below
{{strategy.order.alert_message}}
Please leave it as it is.
It's a TradingView native variable that will fetch the alert text messages built by the script.
3) Don't forget to set the webhook URL in the Notifications tab of the TradingView alerts UI.
EA configuration
The Pyramiding in the EA on Metatrader must be set to 2 if you want to trade with 2 TPs => as it's opening 2 trades.
If you only want 1 TP, set the EA Pyramiding to 1.
Regarding the other EA settings, please refer to the Pineconnector documentation on their website.
Logger
The Pineconnector commands are logged in the TradingView logger.
You'll find more information about it from this TradingView blog post
Important Notes
1) This multiple MACDs strategy doesn't matter much.
I could have selected any other indicator or concept for this script post.
I wanted to share an example of how you can quickly upgrade your strategy, making it compatible with Pineconnector.
2) The backtest results aren't relevant for this educational script publication.
I used realistic backtesting data but didn't look too much into optimizing the results, as this isn't the point of why I'm publishing this script.
3) This template is made to take 1 trade per direction at any given time.
Pyramiding is set to 1 on TradingView.
The strategy default settings are:
Initial Capital: 100000 USD
Position Size: 1 contract
Commission Percent: 0.075%
Slippage: 1 tick
No margin/leverage used
For example, those are realistic settings for trading CFD indices with low timeframes but not the best possible settings for all assets/timeframes.
Concept
The Heatmap MACD Strategy allows selecting one MACD in five different timeframes.
You'll get an exit signal whenever one of the 5 MACDs changes direction.
Then, the strategy re-enters whenever all the MACDs are in the same direction again.
It takes:
long trades when all the 5 MACD histograms are bullish
short trades when all the 5 MACD histograms are bearish
You can select the same timeframe multiple times if you don't need five timeframes.
For example, if you only need the 30min, the 1H, and 2H, you can set your timeframes as follow:
30m
30m
30m
1H
2H
Risk Management Features
All the features below are pips-based.
Stop-Loss
Trailing Stop-Loss
Stop-Loss to Breakeven after a certain amount of pips has been reached
Take Profit 1st level and closing X% of the trade
Take Profit 2nd level and close the remaining of the trade
Custom Exit
I added the option ON/OFF to close the opened trade whenever one of the MACD diverges with the others.
Help me help the community
If you see any issue when adding your strategy logic to that template regarding the orders fills on your Metatrader, please let me know in the comments.
I'll use your feedback to make this template more robust. :)
What's next?
I'll publish a more generic template built as a connector so you can connect any indicator to that Pineconnector template.
Then, I'll publish a template for Capitalise AI, ProfitView, AutoView, and Alertatron.
Thank you
Dave
HTF Oscillators RSI/ROC/MFI/CCI/AO - Dynamic SmoothingThe Interplay of Time Frames: A Balanced View
Navigating the markets often involves interpreting trends from multiple angles. The HTF Oscillators with Dynamic Smoothing indicator enables you to do just that. This tool provides the option to integrate smoothed oscillator readings from Higher Time Frames (HTF) into lower time frame charts, such as a 1-minute chart. By doing so, the indicator offers a balanced viewpoint that bridges the gap between micro and macro perspectives, helping you make informed decisions without losing sight of the broader market context.
Features
Multi-Oscillator Support
Choose from a range of popular oscillators like the Relative Strength Index (RSI), Rate of Change (ROC), Money Flow Index (MFI), Commodity Channel Index (CCI), and Awesome Oscillator (AO). These oscillators are commonly used as foundational building blocks in trading strategy scripts by traders worldwide. Switch effortlessly between them, depending on your trading strategy and requirements. To maintain consistency and a familiar user experience, our script adopts the same visual aesthetics that you'll find in Pine Script indicators on TradingView: a sleek purple line for the oscillator and a transparent band filling. These visual elements are not only pleasing to the eye but also widely appreciated by the trading community.
Dynamic Smoothing
The unique dynamic smoothing feature calculates a smoothing factor based on the ratio of minutes between the Higher Time Frame (HTF) and your current time frame. This provides a sleek and responsive oscillator line that still holds the weight of the longer trend. One of the significant advantages of this feature is user experience; when you change your time frame, the HTF-values in your settings will remain consistent. This ensures that you can easily switch between different time frames without losing the insights provided by your selected HTF.
Visual Aids
Visual cues are an essential part of any trading strategy. The indicator not only plots signals to mark overbought and oversold conditions based on the dynamically smoothed oscillator but also provides you with the flexibility to customize your visual experience. You have the option to toggle on/off the display of these signals depending on your specific needs. Additionally, bands can be displayed at overbought and oversold levels, along with a reference middle line. If you switch between different oscillators (available in the parameter settings), remember to manually adjust the bands in the input settings to ensure signals matches with the type of oscillator to your liking.
User-Friendly Settings
We've grouped related settings together, making it easier for you to find what you're looking for. Adjust the oscillator type, length of bars, smoothing settings, and more with just a few clicks.
Information Table
A standout feature of this indicator is the real-time information table, which displays the values of all selected oscillators based on your specified Higher Time Frame (HTF) settings. This can be particularly useful for traders who depend on multiple indicators for their decision-making process. The data presented in the table is synchronized with the HTF options you've configured in the input settings, allowing for a more efficient and quick scan of values from higher time frames.
Educational Corner: The Power of the Information Table and Customization
The table incorporated into this indicator isn't just eye-candy; it's a practical tool designed to elevate your trading strategy. It dynamically displays real-time values of various oscillators for the HTF you've chosen. This is an exemplary use of TradingView's scripting capabilities to blend multiple indicators into a single visual panel, streamlining your analysis and decision-making process.
But here's the best part: You're not limited to what we've created. With some basic understanding of TradingView's scripting language, Pine Script, you can easily adapt this table to include different indicators that suit your unique trading style. The logic in the script is modular and can serve as a foundation for your own customized trading dashboard. So, go ahead, get creative and explore new combinations of indicators that will help you excel in your trading endeavors!
You no longer have to toggle between different charts or indicators to get the information you need; it's all there in one neatly organized table. We encourage you to tap into this feature and make it your own, empowering your trading like never before.
By doing so, you not only gain a more comprehensive toolset, but you also engage more deeply with your trading strategy, understanding its nuances and, ultimately, making more informed decisions.
Conclusion
The HTF Oscillators with Dynamic Smoothing is a versatile and powerful tool that brings together the best of both worlds: the perspective of higher time frames and the granularity of shorter ones. Its feature-rich setting options and real-time information table make it a potential useful addition to your trading toolkit.
Remember, while this indicator offers a comprehensive and smarter way to look at the markets, it is not a foolproof method for predicting market movements. Always use it in conjunction with other analysis methods and risk management strategies.
ATR+ Advanced Sessions ATR for DaterangeATR+ Advanced Sessions ATR for Daterange
The ATR+ adds the following additional filters to the stock ATR indicator by Tradingview:
- Calculates the overall average ATR for a user defined daterange, optionally filtered by trading session and selected weekdays, presented as a secondary line over the standard ATR line.
- Basic ATR line, with colour highlight to indicate the selected sessions, days and timeframe being calculated by the average ATR+ line.
- Average ATR+ line indicating the average of all ATRs within the defined timeframe, optionally filtered by instances of a selected trading session and selected weekdays.
- Customisable appearance.
- The ATR+ also includes the basic ATR configuration options typically found in the standard ATR by Tradingview, including period length and smoothing type. Defaults are set to the factory standards: 14 length, RMA smoothing type.
What Is the Average True Range (ATR)?
The ATR is a technical analysis tool that measures market volatility by decomposing the entire range asset price for that period. Investopedia describes the ATR as follows:
"The average true range (ATR) is a technical analysis indicator, introduced by market technician J. Welles Wilder Jr. in his book New Concepts in Technical Trading Systems, that measures market volatility by decomposing the entire range of an asset price for that period.
The true range indicator is taken as the greatest of the following: current high less the current low; the absolute value of the current high less the previous close; and the absolute value of the current low less the previous close. The ATR is then a moving average, generally using 14 days, of the true ranges."
For more information on the ATR and its calculations and use cases, see here:
Investopedia link here.
Tradingview link here.
Note
The indicator may time out if the number of bars being calculated is too long. If this happens, you will need to reduce the datetime range, or increase the chart timeframe in order to reduce the number of bars being calculated and the indicator will attempt to recalculate.
Delta Volume Candles [LucF]█ OVERVIEW
This indicator plots on-chart volume delta information using candles that can replace your normal candles, tops and bottoms appended to normal candles, optional MAs of those tops and bottoms levels, a divergence channel and a chart background. The indicator calculates volume delta using intrabar analysis, meaning that it uses the lower timeframe bars constituting each chart bar.
█ CONCEPTS
Volume Delta
The volume delta concept divides a bar's volume in "up" and "down" volumes. The delta is calculated by subtracting down volume from up volume. Many calculation techniques exist to isolate up and down volume within a bar. The simplest use the polarity of interbar price changes to assign their volume to up or down slots, e.g., On Balance Volume or the Klinger Oscillator . Others such as Chaikin Money Flow use assumptions based on a bar's OHLC values. The most precise calculation method uses tick data and assigns the volume of each tick to the up or down slot depending on whether the transaction occurs at the bid or ask price. While this technique is ideal, it requires huge amounts of data on historical bars, which considerably limits the historical depth of charts and the number of symbols for which tick data is available. Furthermore, historical tick data is not yet available on TradingView.
This indicator uses intrabar analysis to achieve a compromise between the simplest and most precise methods of calculating volume delta. It is currently the most precise method usable on TradingView charts. TradingView's Volume Profile built-in indicators use it, as do the CVD - Cumulative Volume Delta Candles and CVD - Cumulative Volume Delta (Chart) indicators published from the TradingView account . My Delta Volume Channels and Volume Delta Columns Pro indicators also use intrabar analysis. Other volume delta indicators such as my Realtime 5D Profile use realtime chart updates to calculate volume delta without intrabar analysis, but that type of indicator only works in real time; they cannot calculate on historical bars.
This is the logic I use to determine the polarity of intrabars, which determines the up or down slot where its volume is added:
• If the intrabar's open and close values are different, their relative position is used.
• If the intrabar's open and close values are the same, the difference between the intrabar's close and the previous intrabar's close is used.
• As a last resort, when there is no movement during an intrabar, and it closes at the same price as the previous intrabar, the last known polarity is used.
Once all intrabars making up a chart bar have been analyzed and the up or down property of each intrabar's volume determined, the up volumes are added, and the down volumes subtracted. The resulting value is volume delta for that chart bar, which can be used as an estimate of the buying/selling pressure on an instrument. Not all markets have volume information. Without it, this indicator is useless.
Intrabar analysis
Intrabars are chart bars at a lower timeframe than the chart's. The timeframe used to access intrabars determines the number of intrabars accessible for each chart bar. On a 1H chart, each chart bar of an active market will, for example, usually contain 60 bars at the lower timeframe of 1min, provided there was market activity during each minute of the hour.
This indicator automatically calculates an appropriate lower timeframe using the chart's timeframe and the settings you use in the script's "Intrabars" section of the inputs. As it can access lower timeframes as small as seconds when available, the indicator can be used on charts at relatively small timeframes such as 1min, provided the market is active enough to produce bars at second timeframes.
The quantity of intrabars analyzed in each chart bar determines:
• The precision of calculations (more intrabars yield more precise results).
• The chart coverage of calculations (there is a 100K limit to the quantity of intrabars that can be analyzed on any chart,
so the more intrabars you analyze per chart bar, the less chart bars can be calculated by the indicator).
The information box displayed at the bottom right of the chart shows the lower timeframe used for intrabars, as well as the average number of intrabars detected for chart bars and statistics on chart coverage.
Balances
This indicator calculates five balances from volume delta values. The balances are oscillators with a zero centerline; positive values are bullish, and negative values are bearish. It is important to understand the balances as they can be used to:
• Color candle bodies.
• Calculate body and top and bottom divergences.
• Color an EMA channel.
• Color the chart's background.
• Configure markers and alerts.
The five balances are:
1 — Bar Balance : This is the only balance using instant values; it is simply the subtraction of the down volume from the up volume on the bar, so the instant volume delta for that bar.
2 — Average Balance : Calculates a distinct EMA for both the up and down volumes, and subtracts the down EMA from the up EMA.
The result is akin to MACD's histogram because it is the subtraction of two moving averages.
3 — Momentum Balance : Starts by calculating, separately for both up and down volumes, the difference between the same EMAs used in "Average Balance" and
an SMA of twice the period used for the "Average Balance" EMAs. The difference for the up side is subtracted from the difference for the down side,
and an RSI of that value is calculated and brought over the −50/+50 scale.
4 — Relative Balance : The reference values used in the calculation are the up and down EMAs used in the "Average Balance".
From those, we calculate two intermediate values using how much the instant up and down volumes on the bar exceed their respective EMA — but with a twist.
If the bar's up volume does not exceed the EMA of up volume, a zero value is used. The same goes for the down volume with the EMA of down volume.
Once we have our two intermediate values for the up and down volumes exceeding their respective MA, we subtract them. The final value is an ALMA of that subtraction.
The rationale behind using zero values when the bar's up/down volume does not exceed its EMA is to only take into account the more significant volume.
If both instant volume values exceed their MA, then the difference between the two is the signal's value.
The signal is called "relative" because the intermediate values are the difference between the instant up/down volumes and their respective MA.
This balance flatlines when the bar's up/down volumes do not exceed their EMAs, which makes it useful to spot areas where trader interest dwindles, such as consolidations.
The smaller the period of the final value's ALMA, the more easily it will flatline. These flat zones should be considered no-trade zones.
5 — Percent Balance : This balance is the ALMA of the ratio of the "Bar Balance" over the total volume for that bar.
From the balances and marker conditions, two more values are calculated:
1 — Marker Bias : This sums the up/down (+1/‒1) occurrences of the markers 1 to 4 over a period you define, so it ranges from −4 to +4, times the period.
Its calculation will depend on the modes used to calculate markers 3 and 4.
2 — Combined Balances : This is the sum of the bull/bear (+1/−1) states of each of the five balances, so it ranges from −5 to +5.
The periods for all of these balances can be configured in the "Periods" section at the bottom of the script's inputs. As you cannot see the balances on the chart, you can use my Volume Delta Columns Pro indicator in a pane; it can plot the same balances, so you will be able to analyze them.
Divergences
In the context of this indicator, a divergence is any bar where the bear/bull state of a balance (above/below its zero centerline) diverges from the polarity of a chart bar. No directional bias is assigned to divergences when they occur. Candle bodies and tops/bottoms can each be colored differently on divergences detected from distinct balances.
Divergence Channel
The divergence channel is the space between two levels (by default, the bar's open and close ) saved when divergences occur. When price (by default the close ) has breached a channel and a new divergence occurs, a new channel is created. Until that new channel is breached, bars where additional divergences occur will expand the channel's levels if the bar's price points are outside the channel.
Prices breaches of the divergence channel will change its state. Divergence channels can be in one of three different states:
• Bull (green): Price has breached the channel to the upside.
• Bear (red): Price has breached the channel to the downside.
• Neutral (gray): The channel has not yet been breached.
█ HOW TO USE THE INDICATOR
I do not make videos to explain how to use my indicators. I do, however, try hard to include in their description everything one needs to understand what they do. From there, it's up to you to explore and figure out if they can be useful in your trading practice. Communicating in videos what this description and the script's tooltips contain would make for very long videos that would likely exceed the attention span of most people who find this description too long. There is no quick way to understand an indicator such as this one because it uses many different concepts and has quite a bit of settings one can use to modify its visuals and behavior — thus how one uses it. I will happily answer questions on the inner workings of the indicator, but I do not answer questions like "How do I trade using this indicator?" A useful answer to that question would require an in-depth analysis of who you are, your trading methodology and objectives, which I do not have time for. I do not teach trading.
Start by loading the indicator on an active chart containing volume information. See here if you need help.
The default configuration displays:
• Normal candles where the bodies are only colored if the bar's volume has increased since the last bar.
If you want to use this indicator's candles, you may want to disable your chart's candles by clicking the eye icon to the right of the symbol's name in the top left of the chart.
• A top or bottom appended to the normal candles. It represents the difference between up and down volume for that bar
and is positioned at the top or bottom, depending on its polarity. If up volume is greater than down volume, a top is displayed. If down volume is greater, a bottom is plotted.
The size of tops and bottoms is determined by calculating a factor which is the proportion of volume delta over the bar's total volume.
That factor is then used to calculate the top or bottom size relative to a baseline of the average candle body size of the last 100 bars.
• An information box in the bottom right displaying intrabar and chart coverage information.
• A light red background when the intrabar volume differs from the chart's volume by more than 1%.
The script's inputs contain tooltips explaining most of the fields. I will not repeat them here. Following is a brief description of each section of the indicator's inputs which will give you an idea of what the indicator can do:
Normal Candles is where you configure the replacement candles plotted by the script. You can choose from different coloring schemes for their bodies and specify a unique color for bodies where a divergence calculated using the method you choose occurs.
Volume Tops & Botttoms is where you configure the display of tops and bottoms, and their EMAs. The EMAs are calculated from the high point of tops and the low point of bottoms. They can act as a channel to evaluate price, and you can choose to color the channel using a gradient reflecting the advances/declines in the balance of your choice.
Divergence Channel is where you set up the appearance and behavior of the divergence channel. These areas represent levels where price and volume delta information do not converge. They can be interpreted as regions with no clear direction from where one will look for breaches. You can configure the channel to take into account one or both types of divergences you have configured for candle bodies and tops/bottoms.
Background allows you to configure a gradient background color that reflects the advances/declines in the balance of your choice. You can use this to provide context to the volume delta values from bars. You can also control the background color displayed on volume discrepancies between the intrabar and the chart's timeframe.
Intrabars is where you choose the calculation mode determining the lower timeframe used to access intrabars. The indicator uses the chart's timeframe and the type of market you are on to calculate the lower timeframe. Your setting there should reflect which compromise you prefer between the precision of calculations and chart coverage. This is also where you control the display of the information box in the lower right corner of the chart.
Markers allows you to control the plotting of chart markers on different conditions. Their configuration determines when alerts generated from the indicator will fire. Note that in order to generate alerts from this script, they must be created from your chart. See this Help Center page to learn how. Only the last 500 markers will be visible on the chart, but this will not affect the generation of alerts.
Periods is where you configure the periods for the balances and the EMAs used in the indicator.
The raw values calculated by this script can be inspected using the Data Window.
█ INTERPRETATION
Rightly or wrongly, volume delta is considered by many a useful complement to the interpretation of price action. I use it extensively in an attempt to find convergence between my read of volume delta and price movement — not so much as a predictor of future price movement. No system or person can predict the future. Accordingly, I consider people who speak or act as if they know the future with certainty to be dangerous to themselves and others; they are charlatans, imprudent or blissfully ignorant.
I try to avoid elaborate volume delta interpretation schemes involving too many variables and prefer to keep things simple:
• Trends that have more chances of continuing should be accompanied by VD of the same polarity.
In trends, I am looking for "slow and steady". I work from the assumption that traders and systems often overreact, which translates into unproductive volatility.
Wild trends are more susceptible to overreactions.
• I prefer steady VD values over wildly increasing ones, as large VD increases often come with increased price volatility, which can backfire.
Large VD values caused by stopping volume will also often occur on trend reversals with abnormally high candles.
• Prices escaping divergence channels may be leading a trend in that direction, although there is no telling how long that trend will last; could be just a few bars or hundreds.
When price is in a channel, shifts in VD balances can sometimes give us an idea of the direction where price has the most chance of breaking.
• Dwindling VD will often indicate trend exhaustion and predate reversals by many bars, but the problem is that mere pauses in a trend will often produce the same behavior in VD.
I think it is too perilous to infer rigidly from VD decreases.
Divergence Channel
Here I have configured the divergence channels to be visible. First, I set the bodies to display divergences on the default Bar Balance. They are indicated by yellow bodies. Then I activated the divergence channels by choosing to draw levels on body divergences and checked the "Fill" checkbox to fill the channel with the same color as the levels. The divergence channel is best understood as a direction-less area from where a breach can be acted on if other variables converge with the breach's direction:
Tops and Bottoms EMAs
I find these EMAs rather interesting. They have no equivalent elsewhere, as they are calculated from the top and bottom values this indicator plots. The only similarity they have with volume-weighted MAs, including VWAP, is that they use price and volume. This indicator's Tops and Bottoms EMAs, however, use the price and volume delta. While the channel differs from other channels in how it is calculated, it can be used like others, as a baseline from which to evaluate price movement or, alternatively, as stop levels. Remember that you can change the period used for the EMAs in the "Periods" section of the inputs.
This chart shows the EMAs in action, filled with a gradient representing the advances/decline from the Momentum balance. Notice the anomaly in the chart's latest bars where the Momentum balance gradient has been indicating a bullish bias for some time, during which price was mostly below the EMAs. Price has just broken above the channel on positive VD. My interpretation of this situation would be that it is a risky opportunity for a long trade in the larger context where the market has been in a downtrend since the 5th. Intrepid traders choosing to enter here could do so with a "make or break" tight stop that will minimize their losses should the market continue its downtrend while hopefully preserving the potential upside of price continuing on the longer-term uptrend prevalent since the 28th:
█ NOTES
Volume
If you use indicators such as this one which depends on volume information, it is important to realize that the volume data they consume comes from data feeds, and that all data feeds are NOT created equally. Those who create the data feeds we use must make decisions concerning the nature of the transactions they tally and the way they are tallied in each feed, and these decisions affect the nature of our volume data. My Volume X-ray publication discusses some of the reasons why volume information from different timeframes, brokers/exchanges or sectors may vary considerably. I encourage you to read it. This indicator's display of a warning through a background color on volume discrepancies between the timeframe used to access intrabars and the chart's timeframe is an attempt to help you realize these variations in feeds. Don't take things for granted, and understand that the quality of a given feed's volume information affects the quality of the results this indicator calculates.
Markets as ecosystems
I believe it is perilous to think that behavioral patterns you discover in one market through the lens of this or any other indicator will necessarily port to other markets. While this may sometimes be the case, it will often not. Why is that? Because each market is its own ecosystem. As cities do, all markets share some common characteristics, but they also all have their idiosyncrasies. A proportion of a city's inhabitants is always composed of outsiders who come and go, but a core population of regulars and systems is usually the force that actually defines most of the city's observable characteristics. I believe markets work somewhat the same way; they may look the same, but if you live there for a while and pay attention, you will notice the idiosyncrasies. Some things that work in some markets will, accordingly, not work in others. Please keep that in mind when you draw conclusions.
On Up/Down or Buy/Sell Volume
Buying or selling volume are misnomers, as every unit of volume transacted is both bought and sold by two different traders. While this does not keep me from using the terms, there is no such thing as “buy only” or “sell only” volume. Trader lingo is riddled with peculiarities. Without access to order book information, traders work with the assumption that when price moves up during a bar, there was more buying pressure than selling pressure, just as when buy market orders take out limit ask orders in the order book at successively higher levels. The built-in volume indicator available on TradingView uses this logic to color the volume columns green or red. While this script’s calculations are more precise because it analyses intrabars to calculate its information, it uses pretty much the same imperfect logic. Until Pine scripts can have access to how much volume was transacted at the bid/ask prices, our volume delta calculations will remain a mere proxy.
Repainting
• The values calculated on the realtime bar will update as new information comes from the feed.
• Historical values may recalculate if the historical feed is updated or when calculations start from a new point in history.
• Markers and alerts will not repaint as they only occur on a bar's close. Keep this in mind when viewing markers on historical bars,
where one could understandably and incorrectly assume they appear at the bar's open.
To learn more about repainting, see the Pine Script™ User Manual's page on the subject .
Superfluity
In "The Bed of Procrustes", Nassim Nicholas Taleb writes: To bankrupt a fool, give him information . This indicator can display a lot of information. The inevitable adaptation period you will need to figure out how to use it should help you eliminate all the visuals you do not need. The more you eliminate, the easier it will be to focus on those that are the most useful to your trading practice. Don't be a fool.
█ THANKS
Thanks to alexgrover for his Dekidaka-Ashi indicator. His volume plots on candles were the inspiration for my top/bottom plots.
Kudos to PineCoders for their libraries. I use two of them in this script: Time and lower_tf .
The first versions of this script used functionality that I would not have known about were it not for these two guys:
— A guy called Kuan who commented on a Backtest Rookies presentation of their Volume Profile indicator.
— theheirophant , my partner in the exploration of the sometimes weird abysses of request.security() ’s behavior at lower timeframes.
Nifty50 Swing Trading Super Indicator# 🚀 Nifty50 Swing Trading Super Indicator - Complete Guide
**Created by:** Gaurav
**Date:** August 8, 2025
**Version:** 1.0 - Optimized for Indian Markets
---
## 📋 Table of Contents
1. (#quick-start-guide)
2. (#indicator-overview)
3. (#installation-instructions)
4. (#parameter-settings)
5. (#signal-interpretation)
6. (#trading-strategy)
7. (#risk-management)
8. (#optimization-tips)
9. (#troubleshooting)
---
## 🎯 Quick Start Guide
### What You Get
✅ **2 Complete Pine Script Indicators:**
- `swing_trading_super_indicator.pine` - Universal version for all markets
- `nifty_optimized_super_indicator.pine` - Specifically optimized for Nifty50 & Indian stocks
✅ **Key Features:**
- Multi-component signal confirmation system
- Optimized for daily and 3-hour timeframes
- Built-in risk management with dynamic stops and targets
- Real-time signal strength monitoring
- Gap analysis for Indian market characteristics
### Immediate Setup
1. Copy the Pine Script code from `nifty_optimized_super_indicator.pine`
2. Paste into TradingView Pine Editor
3. Add to chart on daily or 3-hour timeframe
4. Look for 🚀BUY and 🔻SELL signals
5. Use the information table for signal confirmation
---
## 🔍 Indicator Overview
### Core Components Integration
**🎯 Range Filter (35% Weight)**
- Primary trend identification using adaptive volatility filtering
- Optimized sampling period: 21 bars for Indian market volatility
- Enhanced range multiplier: 3.0 to handle market gaps
- Provides trend direction and strength measurement
**⚡ PMAX (30% Weight)**
- Volatility-adjusted trend confirmation using ATR-based calculations
- Dynamic multiplier adjustment based on market volatility
- 14-period ATR with 2.5 multiplier for swing trading sensitivity
- Offers trailing stop functionality
**🏗️ Support/Resistance (20% Weight)**
- Dynamic level identification using pivot point analysis
- Tighter channel width (3%) for precise Indian market levels
- Enhanced strength calculation with historical interaction weighting
- Provides entry/exit timing and breakout signals
**📊 EMA Alignment (15% Weight)**
- Multi-timeframe moving average confirmation
- Key EMAs: 9, 21, 50, 200 (popular in Indian markets)
- Hierarchical alignment scoring for trend strength
- Additional trend validation layer
### Advanced Features
**🌅 Gap Analysis**
- Automatic detection of significant price gaps (>2%)
- Gap strength measurement and impact on signals
- Specific optimization for Indian market overnight gaps
- Visual gap markers on chart
**⏰ Multi-Timeframe Integration**
- Higher timeframe bias from daily/weekly data
- Configurable daily bias weight (default 70%)
- 3-hour confirmation for precise entry timing
- Prevents counter-trend trades against major timeframe
**🛡️ Risk Management**
- Dynamic stop-loss calculation using multiple methods
- Automatic profit target identification
- Position sizing guidance based on signal strength
- Anti-whipsaw logic to prevent false signals
---
## 📥 Installation Instructions
### Step 1: Access TradingView
1. Open TradingView.com
2. Navigate to Pine Editor (bottom panel)
3. Create a new indicator
### Step 2: Copy the Code
**For Nifty50 & Indian Stocks (Recommended):**
```pinescript
// Copy entire content from nifty_optimized_super_indicator.pine
```
**For Universal Use:**
```pinescript
// Copy entire content from swing_trading_super_indicator.pine
```
### Step 3: Configure and Apply
1. Click "Add to Chart"
2. Select daily or 3-hour timeframe
3. Adjust parameters if needed (defaults are optimized)
4. Enable alerts for signal notifications
### Step 4: Verify Installation
- Check that all components are visible
- Confirm information table appears in top-right
- Test with known trending stocks for signal validation
---
## ⚙️ Parameter Settings
### 🎯 Range Filter Settings
```
Sampling Period: 21 (optimized for Indian market volatility)
Range Multiplier: 3.0 (handles overnight gaps effectively)
Source: Close (most reliable for swing trading)
```
### ⚡ PMAX Settings
```
ATR Length: 14 (standard for daily/3H timeframes)
ATR Multiplier: 2.5 (balanced for swing trading sensitivity)
Moving Average Type: EMA (responsive to price changes)
MA Length: 14 (matches ATR period for consistency)
```
### 🏗️ Support/Resistance Settings
```
Pivot Period: 8 (shorter for Indian market dynamics)
Channel Width: 3% (tighter for precise levels)
Minimum Strength: 3 (higher quality levels only)
Maximum Levels: 4 (focus on strongest levels)
Lookback Period: 150 (sufficient historical data)
```
### 🚀 Super Indicator Settings
```
Signal Sensitivity: 0.65 (balanced for swing trading)
Trend Strength Requirement: 0.75 (high quality signals)
Gap Threshold: 2.0% (significant gap detection)
Daily Bias Weight: 0.7 (strong higher timeframe influence)
```
### 🎨 Display Options
```
Show Range Filter: ✅ (trend visualization)
Show PMAX: ✅ (trailing stops)
Show S/R Levels: ✅ (key price levels)
Show Key EMAs: ✅ (trend confirmation)
Show Signals: ✅ (buy/sell alerts)
Show Trend Background: ✅ (visual trend state)
Show Gap Markers: ✅ (gap identification)
```
---
## 📊 Signal Interpretation
### 🚀 BUY Signals
**Requirements for BUY Signal:**
- Price above Range Filter with upward trend
- PMAX showing bullish direction (MA > PMAX line)
- Support/resistance breakout or favorable positioning
- EMA alignment supporting upward movement
- Higher timeframe bias confirmation
- Overall signal strength > 75%
**Signal Strength Indicators:**
- **90-100%:** Extremely strong - Maximum position size
- **80-89%:** Very strong - Large position size
- **75-79%:** Strong - Standard position size
- **65-74%:** Moderate - Reduced position size
- **<65%:** Weak - Wait for better opportunity
### 🔻 SELL Signals
**Requirements for SELL Signal:**
- Price below Range Filter with downward trend
- PMAX showing bearish direction (MA < PMAX line)
- Resistance breakdown or unfavorable positioning
- EMA alignment supporting downward movement
- Higher timeframe bias confirmation
- Overall signal strength > 75%
### ⚖️ NEUTRAL Signals
**Characteristics:**
- Conflicting signals between components
- Low overall signal strength (<65%)
- Range-bound market conditions
- Wait for clearer directional bias
### 📈 Information Table Guide
**Component Status:**
- **BULL/BEAR:** Current signal direction
- **Strength %:** Component contribution strength
- **Status:** Additional context (STRONG/WEAK/ACTIVE/etc.)
**Overall Signal:**
- **🚀 STRONG BUY:** All systems aligned bullish
- **🔻 STRONG SELL:** All systems aligned bearish
- **⚖️ NEUTRAL:** Mixed or weak signals
---
## 💼 Trading Strategy
### Daily Timeframe Strategy
**Setup:**
1. Apply indicator to daily chart of Nifty50 or Indian stocks
2. Wait for 🚀BUY or 🔻SELL signal with >75% strength
3. Confirm higher timeframe bias alignment
4. Check for significant support/resistance levels
**Entry:**
- Enter on signal bar close or next bar open
- Use 3-hour chart for precise entry timing
- Avoid entries during major news events
- Consider gap analysis for overnight positions
**Position Sizing:**
- **>90% Strength:** 3-4% of portfolio
- **80-89% Strength:** 2-3% of portfolio
- **75-79% Strength:** 1-2% of portfolio
- **<75% Strength:** Avoid or minimal size
### 3-Hour Timeframe Strategy
**Setup:**
1. Confirm daily timeframe bias first
2. Apply indicator to 3-hour chart
3. Look for signals aligned with daily trend
4. Use for entry/exit timing optimization
**Entry Refinement:**
- Wait for 3H signal confirmation
- Enter on pullbacks to key levels
- Use tighter stops for better risk/reward
- Monitor intraday support/resistance
### Risk Management Rules
**Stop Loss Placement:**
1. **Primary:** Use indicator's dynamic stop level
2. **Secondary:** Below/above nearest support/resistance
3. **Maximum:** 2-3% of portfolio per trade
4. **Trailing:** Move stops with PMAX line
**Profit Taking:**
1. **Target 1:** First resistance/support level (50% position)
2. **Target 2:** Second resistance/support level (30% position)
3. **Runner:** Trail remaining 20% with PMAX
**Position Management:**
- Review positions at daily close
- Adjust stops based on new signals
- Exit if trend changes to opposite direction
- Reduce size during high volatility periods
---
## 🎯 Optimization Tips
### For Nifty50 Trading
- Use daily timeframe for primary signals
- Monitor sector rotation impact
- Consider index futures for better liquidity
- Watch for RBI policy and global cues impact
### For Individual Stocks
- Verify stock follows Nifty correlation
- Check sector-specific news and events
- Ensure adequate liquidity for position size
- Monitor earnings calendar for volatility
### Market Condition Adaptations
**Trending Markets:**
- Increase position sizes for strong signals
- Use wider stops to avoid whipsaws
- Focus on trend continuation signals
- Reduce counter-trend trading
**Range-Bound Markets:**
- Reduce position sizes
- Use tighter stops and quicker profits
- Focus on support/resistance bounces
- Increase signal strength requirements
**High Volatility Periods:**
- Reduce overall exposure
- Use smaller position sizes
- Increase stop-loss distances
- Wait for clearer signals
### Performance Monitoring
- Track win rate and average profit/loss
- Monitor signal quality over time
- Adjust parameters based on market changes
- Keep trading journal for pattern recognition
---
## 🔧 Troubleshooting
### Common Issues
**Q: Signals appear too frequently**
A: Increase "Trend Strength Requirement" to 0.8-0.9
**Q: Missing obvious trends**
A: Decrease "Signal Sensitivity" to 0.5-0.6
**Q: Too many false signals**
A: Enable "3H Confirmation" and increase strength requirements
**Q: Indicator not loading**
A: Check Pine Script version compatibility (requires v5)
### Parameter Adjustments
**For More Sensitive Signals:**
- Decrease Signal Sensitivity to 0.5-0.6
- Decrease Trend Strength Requirement to 0.6-0.7
- Increase Range Filter multiplier to 3.5-4.0
**For More Conservative Signals:**
- Increase Signal Sensitivity to 0.7-0.8
- Increase Trend Strength Requirement to 0.8-0.9
- Enable all confirmation features
### Performance Issues
- Reduce lookback periods if chart loads slowly
- Disable some visual elements for better performance
- Use on liquid stocks/indices for best results
---
## 📞 Support & Updates
This super indicator combines the best of Range Filter, PMAX, and Support/Resistance analysis specifically optimized for Indian market swing trading. The multi-component approach significantly improves signal quality while the built-in risk management features help protect capital.
**Remember:** No indicator is 100% accurate. Always combine with proper risk management, market analysis, and your trading experience for best results.
**Happy Trading! 🚀**
MSTY-WNTR Rebalancing SignalMSTY-WNTR Rebalancing Signal
## Overview
The **MSTY-WNTR Rebalancing Signal** is a custom TradingView indicator designed to help investors dynamically allocate between two YieldMax ETFs: **MSTY** (YieldMax MSTR Option Income Strategy ETF) and **WNTR** (YieldMax Short MSTR Option Income Strategy ETF). These ETFs are tied to MicroStrategy (MSTR) stock, which is heavily influenced by Bitcoin's price due to MSTR's significant Bitcoin holdings.
MSTY benefits from upward movements in MSTR (and thus Bitcoin) through a covered call strategy that generates income but caps upside potential. WNTR, on the other hand, provides inverse exposure, profiting from MSTR declines but losing in rallies. This indicator uses Bitcoin's momentum and MSTR's relative strength to signal when to hold MSTY (bullish phases), WNTR (bearish phases), or stay neutral, aiming to optimize returns by switching allocations at key turning points.
Inspired by strategies discussed in crypto communities (e.g., X posts analyzing MSTR-linked ETFs), this indicator promotes an active rebalancing approach over a "set and forget" buy-and-hold strategy. In simulated backtests over the past 12 months (as of August 4, 2025), the optimized version has shown potential to outperform holding 100% MSTY or 100% WNTR alone, with an illustrative APY of ~125% vs. ~6% for MSTY and ~-15% for WNTR in one scenario.
**Important Disclaimer**: This is not financial advice. Past performance does not guarantee future results. Always consult a financial advisor. Trading involves risk, and you could lose money. The indicator is for educational and informational purposes only.
## Key Features
- **Momentum-Based Signals**: Uses a Simple Moving Average (SMA) on Bitcoin's price to detect bullish (price > SMA) or bearish (price < SMA) trends.
- **RSI Confirmation**: Incorporates MSTR's Relative Strength Index (RSI) to filter signals, avoiding overbought conditions for MSTY and oversold for WNTR.
- **Visual Cues**:
- Green upward triangle for "Hold MSTY".
- Red downward triangle for "Hold WNTR".
- Yellow cross for "Switch" signals.
- Background color: Green for MSTY, red for WNTR.
- **Information Panel**: A table in the top-right corner displays real-time data: BTC Price, SMA value, MSTR RSI, and current Allocation (MSTY, WNTR, or Neutral).
- **Alerts**: Configurable alerts for holding MSTY, holding WNTR, or switching.
- **Optimized Parameters**: Defaults are tuned (SMA: 10 days, RSI: 15 periods, Overbought: 80, Oversold: 20) based on simulations to reduce whipsaws and capture trends effectively.
## How It Works
The indicator's logic is straightforward yet effective for volatile assets like Bitcoin and MSTR:
1. **Primary Trigger (Bitcoin Momentum)**:
- Calculate the SMA of Bitcoin's closing price (default: 10-day).
- Bullish: Current BTC price > SMA → Potential MSTY hold.
- Bearish: Current BTC price < SMA → Potential WNTR hold.
2. **Secondary Filter (MSTR RSI Confirmation)**:
- Compute RSI on MSTR stock (default: 15-period).
- For bullish signals: If RSI > Overbought (80), signal Neutral (avoid overextended rallies).
- For bearish signals: If RSI < Oversold (20), signal Neutral (avoid capitulation bottoms).
3. **Allocation Rules**:
- Hold 100% MSTY if bullish and not overbought.
- Hold 100% WNTR if bearish and not oversold.
- Neutral otherwise (e.g., during choppy or extreme markets) – consider holding cash or avoiding trades.
4. **Rebalancing**:
- Switch signals trigger when the hold changes (e.g., from MSTY to WNTR).
- Recommended frequency: Weekly reviews or on 5% BTC moves to minimize trading costs (aim for 4-6 trades/year).
This approach leverages Bitcoin's influence on MSTR while mitigating the risks of MSTY's covered call drag during downtrends and WNTR's losses in uptrends.
## Setup and Usage
1. **Chart Requirements**:
- Apply this indicator to a Bitcoin chart (e.g., BTCUSD on Binance or Coinbase, daily timeframe recommended).
- Ensure MSTR stock data is accessible (TradingView supports it natively).
2. **Adding to TradingView**:
- Open the Pine Editor.
- Paste the script code.
- Save and add to your chart.
- Customize inputs if needed (e.g., adjust SMA/RSI lengths for different timeframes).
3. **Interpretation**:
- **Green Background/Triangle**: Allocate 100% to MSTY – Bitcoin is in an uptrend, MSTR not overbought.
- **Red Background/Triangle**: Allocate 100% to WNTR – Bitcoin in downtrend, MSTR not oversold.
- **Yellow Switch Cross**: Rebalance your portfolio immediately.
- **Neutral (No Signal)**: Panel shows "Neutral" – Hold cash or previous position; reassess weekly.
- Monitor the panel for key metrics to validate signals manually.
4. **Backtesting and Strategy Integration**:
- Convert to a strategy script by changing `indicator()` to `strategy()` and adding entry/exit logic for automated testing.
- In simulations (e.g., using Python or TradingView's backtester), it has outperformed buy-and-hold in volatile markets by ~100-200% relative APY, but results vary.
- Factor in fees: ETF expense ratios (~0.99%), trading commissions (~$0.40/trade), and slippage.
5. **Risk Management**:
- Use with a diversified portfolio; never allocate more than you can afford to lose.
- Add stop-losses (e.g., 10% trailing) to protect against extreme moves.
- Rebalance sparingly to avoid over-trading in sideways markets.
- Dividends: Reinvest MSTY/WNTR payouts into the current hold for compounding.
## Performance Insights (Simulated as of August 4, 2025)
Based on synthetic backtests modeling the last 12 months:
- **Optimized Strategy APY**: ~125% (by timing switches effectively).
- **Hold 100% MSTY APY**: ~6% (gains from BTC rallies offset by downtrends).
- **Hold 100% WNTR APY**: ~-15% (losses in bull phases outweigh bear gains).
In one scenario with stronger volatility, the strategy achieved ~4533% APY vs. 10% for MSTY and -34% for WNTR, highlighting its potential in dynamic markets. However, these are illustrative; real results depend on actual BTC/MSTR movements. Test thoroughly on historical data.
## Limitations and Considerations
- **Data Dependency**: Relies on accurate BTC and MSTR data; delays or gaps can affect signals.
- **Market Risks**: Bitcoin's volatility can lead to false signals (whipsaws); the RSI filter helps but isn't perfect.
- **No Guarantees**: This indicator doesn't predict the future. MSTR's correlation to BTC may change (e.g., due to regulatory events).
- **Not for All Users**: Best for intermediate/advanced traders familiar with ETFs and crypto. Beginners should paper trade first.
- **Updates**: As of August 4, 2025, this is version 1.0. Future updates may include volume filters or EMA options.
If you find this indicator useful, consider leaving a like or comment on TradingView. Feedback welcome for improvements!
CandelaCharts - HTF Sweeps📝 Overview
This indicator lets you overlay a higher timeframe (HTF) onto your current chart, giving you a clearer view of broader market movements without switching timeframes.
This indicator also detects liquidity sweeps and plots them on both the higher timeframe (HTF) and the current lower timeframe (LTF), helping traders clearly spot potential reversal points. It adds LTF dividers for better structure clarity, making it easier to align with HTF shifts and refine entry timing with greater precision.
📦 Features
This indicator identifies price sweeps and their invalidations, helping traders spot potential liquidity grabs and failed breakout attempts.
Overlay a configurable higher timeframe (HTF) on the current chart
Detects and plots liquidity sweeps on both HTF and LTF
Adds lower timeframe (LTF) dividers for improved structure clarity
Ideal for ICT-style top-down analysis and precision entries without switching charts
⚙️ Settings
Customize the indicator to suit your strategy. Alert options are also available, so you can stay informed when key market events are triggered.
Timeframes: Select the higher timeframe (HTF) to overlay on your current chart.
HTF Coloring: Customize the color scheme for HTF candles.
HTF Offset: Space of HTF Candles and current chart.
HTF Size: Adjust the size of HTF candles.
HTF Labels: Toggle labels for HTF.
LTF H/L Line: Show or hide high/low lines from the lower timeframe.
LTF O/C Line: Display open/close lines from the lower timeframe.
Sweep: Enable detection and plotting of liquidity sweeps.
I-sweep: Toggle invalidated sweep detection.
Alerts: Enable Sweep Formation or Invalidation alerts
⚡️ Showcase
See the indicator applied in live market scenarios, illustrating how sweep detections and invalidations unfold on various charts.
HTF Candles
HTF Sweeps
LTF Sweeps
Invalidated Sweeps
🚨 Alerts
This indicator includes built-in alert functionality to keep you informed of key market events in real time. It supports the following customizable alerts on TradingView:
Sweep Detection: Notifies you when a price sweep is detected—either a liquidity sweep above recent highs or below recent lows. This can be a strong signal of potential reversals or liquidity grabs by larger market participants.
Sweep Invalidation: Alerts you when a previously detected sweep becomes invalidated due to price action moving beyond a defined threshold. This helps traders stay adaptive and avoid acting on outdated signals.
These alerts are fully integrated with TradingView’s native alert system, so you can receive notifications via app, email, or pop-up—ensuring you're always up to date, even when you're away from the chart.
⚠️ Disclaimer
Trading involves significant risk, and many participants may incur losses. The content on this site is not intended as financial advice and should not be interpreted as such. Decisions to buy, sell, hold, or trade securities, commodities, or other financial instruments carry inherent risks and are best made with guidance from qualified financial professionals. Past performance is not indicative of future results.