Highs & Lows - Multi TimeFrame### **📌 HL-MWD (Highs & Lows - Multi Timeframe Indicator) – Community Release**
#### **🔹 Overview**
The **HL-MWD Indicator** is a **multi-timeframe support & resistance tool** that plots **historical highs and lows** from **daily, weekly, and monthly timeframes** onto an intraday chart. It helps traders **identify key levels of support and resistance** that have influenced price action over different timeframes.
This indicator is useful for **day traders, swing traders, and position traders** who rely on **multi-timeframe analysis** to spot critical price levels.
---
### **🔥 Key Features**
✅ **Plots Highs & Lows for Daily, Weekly, and Monthly Timeframes**
✅ **Customizable Lookback Periods for Each Timeframe**
✅ **Adjustable Line Colors, Styles (Solid, Dotted, Dashed), and Widths**
✅ **Extend Lines into the Future to Identify Key Price Levels**
✅ **Option to Display Price Labels for Each Level**
✅ **Gradient Option to Highlight Recent Highs & Lows (Disabled by Default)**
✅ **Compatible with Intraday, Daily, and Weekly Charts**
---
### **📈 How It Works**
- **Daily Highs & Lows:** Captures the **highest and lowest prices** within the selected lookback period (default: **14 bars**).
- **Weekly Highs & Lows:** Marks the **highest and lowest prices** within the chosen weekly lookback (default: **52 bars**).
- **Monthly Highs & Lows:** Displays the **high and low points** from the monthly timeframe (default: **36 bars**).
- **Extended Lines:** Project past highs and lows **into the future** to help identify **potential support & resistance zones**.
---
### **⚠️ TradingView Lookback Limitations**
🔹 **TradingView has a limit on how many historical bars can be accessed per timeframe**, which affects how far back the indicator can retrieve data.
🔹 **Intraday charts (e.g., 5m, 15m) have a limited number of past bars**, meaning:
- **You won’t be able to view 36 months' worth of monthly levels** on a **5-minute chart**, because TradingView doesn’t store that much data in lower timeframes.
- **If multiple timeframes (e.g., weekly + monthly) are enabled at the same time**, some historical data may **not be available on shorter timeframes**.
🔹 **Recommendation:**
- If using **monthly lookbacks (36 months+), view them on a daily or higher timeframe**.
- If using **weekly lookbacks (52 weeks+), higher intraday timeframes (e.g., 1-hour, 4-hour) are better suited**.
- **Lower timeframes (1m, 5m, 15m) may miss some levels** if TradingView's bar limit is exceeded.
---
### **⚙️ Customization Options**
| **Setting** | **Default Value** | **Description** |
|------------------|----------------|----------------|
| **Daily Lookback** | `14` | Number of bars used to calculate daily highs/lows. |
| **Weekly Lookback** | `52` | Number of bars used to calculate weekly highs/lows. |
| **Monthly Lookback** | `36` | Number of bars used to calculate monthly highs/lows. |
| **Line Colors** | Daily: `Blue` Weekly: `Green` Monthly: `Red` | Customizable colors for each timeframe. |
| **Line Style** | `Solid` | Options: Solid, Dashed, Dotted. |
| **Line Width** | `1` | Thickness of the plotted lines. |
| **Extend Line** | `1` | Controls how far the highs/lows extend into the future. |
| **Display Price Labels** | `Enabled` | Shows price labels on each level. |
---
### **🛠️ How to Use It**
- **Enable/disable different timeframes** based on your strategy.
- **Customize colors, line styles, and widths** to match your charting style.
- **Use extended lines to identify support & resistance zones.**
- **Watch price reactions at these levels** for potential entries, exits, and stop-loss placements.
---
### **🚀 Final Thoughts**
The **HL-MWD Indicator** is a **powerful multi-timeframe tool** that helps traders **visualize key support & resistance levels** from higher timeframes on an intraday chart.
⚠️ **However, TradingView’s lookback limits apply—so for longer-term levels, higher timeframes are recommended.**
📌 **Now published for the community!** Let me know if you need any last-minute tweaks! 🔥
Cerca negli script per "bar"
[TehThomas] - ICT Volume ImbalanceThis script is a Volume Imbalance (VI) detector and visualizer for use on the TradingView platform. The goal of the script is to automatically identify areas where there are significant imbalances in the volume of trades between consecutive candlesticks and visually highlight these areas. These imbalances can provide traders with valuable insights about the market’s current condition, often signaling potential reversal or continuation points based on price and volume action.
ICT (Inner Circle Trader) Concept of Volume Imbalances
Volume imbalances are a critical concept in the ICT trading methodology. They refer to situations where there is an unusual or significant difference in volume between two consecutive candlesticks, which might indicate institutional or large player activity. According to ICT principles, these imbalances can show us areas of market inefficiency or potential price manipulation. By identifying these imbalances, traders can gain an edge in understanding where the market is likely to move next.
Bullish and Bearish Volume Imbalances:
Bullish Volume Imbalance: This occurs when there is a strong increase in buying pressure, typically indicated by a higher volume on a candle that closes significantly above the previous one, often leaving a gap or larger price movement. The market could be preparing to push higher, and the volume shows a clear shift in buying demand.
Bearish Volume Imbalance:
Conversely, a bearish imbalance occurs when there is a strong increase in selling pressure, typically signaled by a candle that closes significantly lower than the previous one, again with higher volume. This could indicate that large players are offloading positions, and the price is likely to drop further.
Key Features and Functions of the Script
The script automates the process of detecting these volume imbalances and visually marking them on a price chart. Let’s explore its functionality in detail.
1. Inputs Section
The script allows for significant customization through its input options, which help traders adjust the detection and visualization of volume imbalances based on their individual preferences and trading style. Below are the details:
lookback (250 bars): This input specifies the number of bars (or candles) the script should look back when analyzing the volume imbalance. By setting this to 250, the user is looking at the last 250 bars on the chart to detect any significant volume imbalances. This period is adjustable between 50 to 500 bars.
volumeThreshold (1.0 multiplier): This input helps set the sensitivity for identifying volume imbalances. The script compares the volume of the current candle with the previous one, and if the current volume exceeds the previous volume by this threshold multiplier (in this case, 1.0 means at least equal to the previous volume), then it triggers an imbalance. Users can adjust the multiplier to suit different market conditions.
showBoxes (true/false): This toggle determines whether the boxes representing volume imbalances are drawn on the chart. When enabled, the script visually highlights the imbalances with colored boxes.
fillBaseColor (orange with 80% opacity): This is the color setting for the background of the imbalance boxes. A softer color (like orange with opacity) ensures the imbalance is highlighted without obscuring the price action.
borderColor (gray): The color of the border around the imbalance boxes. This adds a visual distinction to make the imbalance areas more visible.
borderWidth (1 pixel): This controls the width of the box's border to adjust how prominent it appears.
rightOffset (30 bars): This input controls how far the imbalance box extends to the right on the chart. It helps users anticipate the potential continuation of the imbalance beyond the current candle.
allowWickOverlap (true/false): This setting allows imbalances to be identified even if the wicks of the two consecutive candlesticks overlap. If set to false, only imbalances where the bodies of the candlesticks don’t overlap are considered.
showBrokenBoxes (true/false): If enabled, once a volume imbalance no longer holds true (i.e., the price breaks through the box), the box is marked as "broken." If disabled, the box is deleted when the imbalance condition no longer applies.
brokenBoxColor (red): This controls the color of the box when it is broken, which can be used as a visual cue that the imbalance was invalidated or no longer valid for analysis.
2. Volume Imbalance Function
This is the core function of the script, where the logic to detect bullish and bearish volume imbalances is implemented.
Bullish Imbalance Condition:
The first condition checks if the low of the current candle is greater than the high of the previous candle. This suggests that the market is moving upward with buying pressure.
The second condition checks whether the volume of the current candle is higher than the previous candle by the volumeThreshold multiplier. If both conditions are satisfied, a bullish imbalance is detected.
Bearish Imbalance Condition:
The first condition checks if the high of the current candle is lower than the low of the previous candle. This suggests downward price action with selling pressure.
The second condition checks whether the current volume exceeds the previous volume by the threshold
Allow Wick Overlap: If allowWickOverlap is set to true, the script will still detect imbalances if the wicks of the two candles overlap (common in volatile markets). If false, imbalances are only considered if the wicks do not overlap.
3. Box Creation and Management
When a volume imbalance is detected, the script creates a box on the chart:
The bullish imbalance box is drawn using the minimum of the open and close of the current bar as the top boundary and the maximum of the open and close of the previous bar as the bottom boundary.
Conversely, the bearish imbalance box is drawn in reverse, using the maximum of the current bar’s open and close as the top boundary and the minimum of the previous bar’s open and close as the bottom boundary.
Once the box is created, it is displayed on the chart with the specified background color, border color, and width.
4. Processing Existing Boxes
After detecting a new imbalance and drawing a box, the script checks whether the box should still remain on the chart:
If the price moves beyond the boundaries of the imbalance box, the box is marked as broken (if showBrokenBoxes is enabled), and its color is changed to red, signifying that the imbalance is no longer valid.
If the box remains intact (i.e., the price has not broken the defined boundaries), the script keeps the box extended to the right as the market continues to evolve.
5. Removing Outdated Boxes
Lastly, the script removes boxes that are older than the specified lookback period. For example, if a box was created 250 bars ago, it will be deleted after that period. This ensures the chart stays clean and only focuses on relevant imbalances.
Why This Script is Useful for Traders
This script is extremely valuable for traders, especially those following the ICT methodology, because it automates the process of detecting market inefficiencies or imbalances that might signal future price action. Here’s why it’s particularly useful:
Identifying Key Areas of Interest: Volume imbalances often point to areas where institutional or large-scale traders have entered the market. These areas could provide clues about the next significant move in the market.
Visualizing Market Structure: By automatically drawing boxes around volume imbalances, the script helps traders visually identify potential areas of support, resistance, or turning points, enabling them to make informed trading decisions.
Time Efficiency: Instead of manually analyzing each candlestick and volume spike, this script does the heavy lifting, saving traders valuable time and allowing them to focus on other aspects of their strategy.
Enhanced Trade Entries and Exits: By understanding where volume imbalances are occurring, traders can time their entries (buying during bullish imbalances and selling during bearish ones) and exits (as imbalances break) more effectively, thus improving their chances of success.
Conclusion
In summary, this script is a powerful tool for traders looking to implement volume imbalance strategies based on the ICT methodology. It automates the identification and visualization of significant imbalances in price and volume, offering traders a clear visual representation of potential market turning points. By customizing the settings, traders can tailor the script to their preferred timeframes and sensitivity, making it a flexible and effective tool for any trading strategy.
__________________________________________
Thanks for your support!
If you found this idea helpful or learned something new, drop a like 👍 and leave a comment, I’d love to hear your thoughts! 🚀
Make sure to follow me for more price action insights, free indicators, and trading guides. Let’s grow and trade smarter together! 📈
ATR Table with Average [filatovlx]ATR indicator with advanced analytics
Description:
The ATR (Average True Range) indicator is a powerful tool for analyzing market volatility. Our indicator not only calculates the classic ATR, but also provides additional metrics that will help traders make more informed decisions. The indicator displays key values in a convenient table, which makes it ideal for trading in any market: stocks, forex, cryptocurrencies and others.
Main functions:
Current ATR value:
Current ATR (Points) — the current ATR value in points. It shows the absolute level of volatility.
Current ATR (%) — the current ATR value as a percentage of the price. It helps to estimate the volatility relative to the current price of an asset.
The ATR value on the previous bar:
ATR 1 Bar Ago (Points) — the ATR value on the previous bar in points. Allows you to compare the current volatility with the previous one.
ATR 1 Bar Ago (%) — the ATR value on the previous bar as a percentage. It is convenient for analyzing changes in volatility
Индикатор ATR с расширенной аналитикой
Описание:
Индикатор ATR (Average True Range) — это мощный инструмент для анализа волатильности рынка. Наш индикатор не только рассчитывает классический ATR, но и предоставляет дополнительные метрики, которые помогут трейдерам принимать более обоснованные решения. Индикатор отображает ключевые значения в удобной таблице, что делает его идеальным для использования в торговле на любых рынках: акции, форекс, криптовалюты и другие.
Основные функции:
Текущее значение ATR:
Current ATR (Points) — текущее значение ATR в пунктах. Показывает абсолютный уровень волатильности.
Current ATR (%) — текущее значение ATR в процентах от цены. Помогает оценить волатильность относительно текущей цены актива.
Значение ATR на предыдущем баре:
ATR 1 Bar Ago (Points) — значение ATR на предыдущем баре в пунктах. Позволяет сравнить текущую волатильность с предыдущей.
ATR 1 Bar Ago (%) — значение ATR на предыдущем баре в процентах. Удобно для анализа изменения волатильности.
Среднее значение ATR за последние 5 баров:
ATR Avg (5 Bars) (Points) — среднее значение ATR за последние 5 баров в пунктах. Показывает сглаженный уровень волатильности.
ATR Avg (5 Bars) (%) — среднее значение ATR за последние 5 баров в процентах. Помогает оценить общий тренд волатильности.
Преимущества индикатора:
Удобство использования: Все ключевые значения выводятся в компактной таблице, что экономит время на анализ.
Гибкость: Возможность настройки периода ATR и длины скользящего среднего под ваши торговые стратегии.
Универсальность: Подходит для любых рынков и таймфреймов.
Наглядность: Процентные значения ATR помогают быстро оценить уровень волатильности относительно цены актива.
Повышение точности: Дополнительные метрики (например, среднее значение ATR) позволяют лучше понимать текущую рыночную ситуацию.
Для кого этот индикатор?
Трейдеры, которые хотят лучше понимать волатильность рынка.
Скальперы и внутридневные трейдеры, которым важно быстро оценивать изменения волатильности.
Инвесторы, которые используют ATR для определения стоп-лоссов и тейк-профитов.
Разработчики торговых стратегий, которым нужны точные данные для тестирования и оптимизации.
Как это работает?
Индикатор автоматически рассчитывает все значения и выводит их в таблицу на графике. Вам не нужно вручную считать или анализировать данные — просто добавьте индикатор на график, и вся информация будет перед вами.
Volume Trend Signals | iSolani
Volume Trend Signals | iSolani: Syncing Price Momentum with Volume Confirmation
In the dance between price action and volume, discerning true trend commitment requires seeing how institutional players vote with their capital. The Volume Trend Signals | iSolani illuminates this interplay by generating precise crossover signals when volume-accelerated price movements gain sustained traction. Unlike conventional volume oscillators, it employs a two-layered confirmation system —blending volatility-adjusted thresholds with adaptive smoothing—to spotlight high-probability entries aligned with smart-money activity.
Core Methodology
The indicator executes a five-phase process to filter meaningful trends:
Logarithmic Price Scaling: Measures percentage-based price changes via HLC3 typical price, reducing large-value bias in volatile markets.
Volatility Dynamic Filter: Uses a 30-bar standard deviation of price changes, scaled by user sensitivity (default 2x), to set momentum thresholds.
Volume Governance: Caps raw volume at 3x its 40-bar SMA, neutralizing outlier spikes while preserving institutional footprints.
Directional Flow Accumulation: Sums volume as positive/negative based on whether price movement breaches volatility-derived boundaries.
Signal Refinement: Smooths the Volume Flow Indicator (VFI) with a 3-bar SMA, then triggers alerts via crosses over a 20-bar EMA signal line.
Breaking New Ground
This tool introduces three evolutionary improvements over traditional volume indicators:
EMA Convergence Signals: Unlike basic zero-cross systems, it requires VFI to overtake its own EMA, confirming sustained momentum shifts.
Context-Aware Volume: The 3x volume cap adapts to current market activity, preventing false signals during news-driven liquidity spikes.
Minimalist Visual Alerts: Uses and symbols below/above candles, reducing chart clutter while emphasizing pivotal moments.
Engine Under the Hood
The script’s logic flows through four computational stages:
Data Conditioning: Computes HLC3 and its log-based rate of change for normalized price analysis.
Threshold Calibration: Derives dynamic entry/exit levels from 30-period volatility multiplied by user sensitivity.
Volume Processing: Filters and signs volume based on price meeting threshold criteria.
Signal Generation: Triggers buy/sell labels when the 3-bar SMA of cumulative flow crosses the 20-bar EMA.
Standard Configuration
Optimized defaults balance responsiveness and reliability:
VFI Length: 40-bar accumulation window
Sensitivity: 2.0 (double the volatility-derived threshold)
Signal Smoothing: 20-bar EMA
Volume Cap: 3x average (hidden parameter)
Smoothing: Enabled (3-bar SMA on VFI)
By fusing adaptive volume filtering with EMA-confirmed momentum, the Volume Trend Signals | iSolani cuts through market noise to reveal institutional-grade trend inflection points. Its unique crossover logic—prioritizing confirmation over speed—makes it particularly effective in swing trading and trend-following strategies across equities, commodities, and forex markets.
AO/AC Trading Zones Strategy [Skyrexio] Overview
AO/AC Trading Zones Strategy leverages the combination of Awesome Oscillator (AO), Acceleration/Deceleration Indicator (AC), Williams Fractals, Williams Alligator and Exponential Moving Average (EMA) to obtain the high probability long setups. Moreover, strategy uses multi trades system, adding funds to long position if it considered that current trend has likely became stronger. Combination of AO and AC is used for creating so-called trading zones to create the signals, while Alligator and Fractal are used in conjunction as an approximation of short-term trend to filter them. At the same time EMA (default EMA's period = 100) is used as high probability long-term trend filter to open long trades only if it considers current price action as an uptrend. More information in "Methodology" and "Justification of Methodology" paragraphs. The strategy opens only long trades.
Unique Features
No fixed stop-loss and take profit: Instead of fixed stop-loss level strategy utilizes technical condition obtained by Fractals and Alligator to identify when current uptrend is likely to be over. In some special cases strategy uses AO and AC combination to trail profit (more information in "Methodology" and "Justification of Methodology" paragraphs)
Configurable Trading Periods: Users can tailor the strategy to specific market windows, adapting to different market conditions.
Multilayer trades opening system: strategy uses only 10% of capital in every trade and open up to 5 trades at the same time if script consider current trend as strong one.
Short and long term trend trade filters: strategy uses EMA as high probability long-term trend filter and Alligator and Fractal combination as a short-term one.
Methodology
The strategy opens long trade when the following price met the conditions:
1. Price closed above EMA (by default, period = 100). Crossover is not obligatory.
2. Combination of Alligator and Williams Fractals shall consider current trend as an upward (all details in "Justification of Methodology" paragraph)
3. Both AC and AO shall print two consecutive increasing values. At the price candle close which corresponds to this condition algorithm opens the first long trade with 10% of capital.
4. If combination of Alligator and Williams Fractals shall consider current trend has been changed from up to downtrend, all long trades will be closed, no matter how many trades has been opened.
5. If AO and AC both continue printing the rising values strategy opens the long trade on each candle close with 10% of capital while number of opened trades reaches 5.
6. If AO and AC both has printed 5 rising values in a row algorithm close all trades if candle's low below the low of the 5-th candle with rising AO and AC values in a row.
Script also has additional visuals. If second long trade has been opened simultaneously the Alligator's teeth line is plotted with the green color. Also for every trade in a row from 2 to 5 the label "Buy More" is also plotted just below the teeth line. With every next simultaneously opened trade the green color of the space between teeth and price became less transparent.
Strategy settings
In the inputs window user can setup strategy setting:
EMA Length (by default = 100, period of EMA, used for long-term trend filtering EMA calculation).
User can choose the optimal parameters during backtesting on certain price chart.
Justification of Methodology
Let's explore the key concepts of this strategy and understand how they work together. We'll begin with the simplest: the EMA.
The Exponential Moving Average (EMA) is a type of moving average that assigns greater weight to recent price data, making it more responsive to current market changes compared to the Simple Moving Average (SMA). This tool is widely used in technical analysis to identify trends and generate buy or sell signals. The EMA is calculated as follows:
1.Calculate the Smoothing Multiplier:
Multiplier = 2 / (n + 1), Where n is the number of periods.
2. EMA Calculation
EMA = (Current Price) × Multiplier + (Previous EMA) × (1 − Multiplier)
In this strategy, the EMA acts as a long-term trend filter. For instance, long trades are considered only when the price closes above the EMA (default: 100-period). This increases the likelihood of entering trades aligned with the prevailing trend.
Next, let’s discuss the short-term trend filter, which combines the Williams Alligator and Williams Fractals. Williams Alligator
Developed by Bill Williams, the Alligator is a technical indicator that identifies trends and potential market reversals. It consists of three smoothed moving averages:
Jaw (Blue Line): The slowest of the three, based on a 13-period smoothed moving average shifted 8 bars ahead.
Teeth (Red Line): The medium-speed line, derived from an 8-period smoothed moving average shifted 5 bars forward.
Lips (Green Line): The fastest line, calculated using a 5-period smoothed moving average shifted 3 bars forward.
When the lines diverge and align in order, the "Alligator" is "awake," signaling a strong trend. When the lines overlap or intertwine, the "Alligator" is "asleep," indicating a range-bound or sideways market. This indicator helps traders determine when to enter or avoid trades.
Fractals, another tool by Bill Williams, help identify potential reversal points on a price chart. A fractal forms over at least five consecutive bars, with the middle bar showing either:
Up Fractal: Occurs when the middle bar has a higher high than the two preceding and two following bars, suggesting a potential downward reversal.
Down Fractal: Happens when the middle bar shows a lower low than the surrounding two bars, hinting at a possible upward reversal.
Traders often use fractals alongside other indicators to confirm trends or reversals, enhancing decision-making accuracy.
How do these tools work together in this strategy? Let’s consider an example of an uptrend.
When the price breaks above an up fractal, it signals a potential bullish trend. This occurs because the up fractal represents a shift in market behavior, where a temporary high was formed due to selling pressure. If the price revisits this level and breaks through, it suggests the market sentiment has turned bullish.
The breakout must occur above the Alligator’s teeth line to confirm the trend. A breakout below the teeth is considered invalid, and the downtrend might still persist. Conversely, in a downtrend, the same logic applies with down fractals.
In this strategy if the most recent up fractal breakout occurs above the Alligator's teeth and follows the last down fractal breakout below the teeth, the algorithm identifies an uptrend. Long trades can be opened during this phase if a signal aligns. If the price breaks a down fractal below the teeth line during an uptrend, the strategy assumes the uptrend has ended and closes all open long trades.
By combining the EMA as a long-term trend filter with the Alligator and fractals as short-term filters, this approach increases the likelihood of opening profitable trades while staying aligned with market dynamics.
Now let's talk about the trading zones concept and its signals. To understand this we need to briefly introduce what is AO and AC. The Awesome Oscillator (AO), developed by Bill Williams, is a momentum indicator designed to measure market momentum by contrasting recent price movements with a longer-term historical perspective. It helps traders detect potential trend reversals and assess the strength of ongoing trends.
The formula for AO is as follows:
AO = SMA5(Median Price) − SMA34(Median Price)
where:
Median Price = (High + Low) / 2
SMA5 = 5-period Simple Moving Average of the Median Price
SMA 34 = 34-period Simple Moving Average of the Median Price
The Acceleration/Deceleration (AC) Indicator, introduced by Bill Williams, measures the rate of change in market momentum. It highlights shifts in the driving force of price movements and helps traders spot early signs of trend changes. The AC Indicator is particularly useful for identifying whether the current momentum is accelerating or decelerating, which can indicate potential reversals or continuations. For AC calculation we shall use the AO calculated above is the following formula:
AC = AO − SMA5(AO) , where SMA5(AO)is the 5-period Simple Moving Average of the Awesome Oscillator
When the AC is above the zero line and rising, it suggests accelerating upward momentum.
When the AC is below the zero line and falling, it indicates accelerating downward momentum.
When the AC is below zero line and rising it suggests the decelerating the downtrend momentum. When AC is above the zero line and falling, it suggests the decelerating the uptrend momentum.
Now let's discuss the trading zones concept and how it can create the signal. Zones are created by the combination of AO and AC. We can divide three zone types:
Greed zone: when the AO and AC both are rising
Red zone: when the AO and AC both are decreasing
Gray zone: when one of AO or AC is rising, the other is falling
Gray zone is considered as uncertainty. AC and AO are moving in the opposite direction. Strategy skip such price action to decrease the chance to stuck in the losing trade during potential sideways. Red zone is also not interesting for the algorithm because both indicators consider the trend as bearish, but strategy opens only long trades. It is waiting for the green zone to increase the chance to open trade in the direction of the potential uptrend. When we have 2 candles in a row in the green zone script executes a long trade with 10% of capital.
Two green zone candles in a row is considered by algorithm as a bullish trend, but now so strong, that's the reason why trade is going to be closed when the combination of Alligator and Fractals will consider the the trend change from bullish to bearish. If id did not happens, algorithm starts to count the green zone candles in a row. When we have 5 in a row script change the trade closing condition. Such situation is considered is a high probability strong bull market and all trades will be closed if candle's low will be lower than fifth green zone candle's low. This is used to increase probability to secure the profit. If long trades are initiated, the strategy continues utilizing subsequent signals until the total number of trades reaches a maximum of 5. Each trade uses 10% of capital.
Why we use trading zones signals? If currently strategy algorithm considers the high probability of the short-term uptrend with the Alligator and Fractals combination pointed out above and the long-term trend is also suggested by the EMA filter as bullish. Rising AC and AO values in the direction of the most likely main trend signaling that we have the high probability of the fastest bullish phase on the market. The main idea is to take part in such rapid moves and add trades if this move continues its acceleration according to indicators.
Backtest Results
Operating window: Date range of backtests is 2023.01.01 - 2024.12.31. It is chosen to let the strategy to close all opened positions.
Commission and Slippage: Includes a standard Binance commission of 0.1% and accounts for possible slippage over 5 ticks.
Initial capital: 10000 USDT
Percent of capital used in every trade: 10%
Maximum Single Position Loss: -9.49%
Maximum Single Profit: +24.33%
Net Profit: +4374.70 USDT (+43.75%)
Total Trades: 278 (39.57% win rate)
Profit Factor: 2.203
Maximum Accumulated Loss: 668.16 USDT (-5.43%)
Average Profit per Trade: 15.74 USDT (+1.37%)
Average Trade Duration: 60 hours
How to Use
Add the script to favorites for easy access.
Apply to the desired timeframe and chart (optimal performance observed on 4h BTC/USDT).
Configure settings using the dropdown choice list in the built-in menu.
Set up alerts to automate strategy positions through web hook with the text: {{strategy.order.alert_message}}
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test strategies in a simulated environment before live implementation
These results are obtained with realistic parameters representing trading conditions observed at major exchanges such as Binance and with realistic trading portfolio usage parameters.
Volatility-Adjusted Momentum Oscillator (VAMO)Concept & Rationale: This indicator combines momentum and volatility into one oscillator. The idea is that a price move accompanied by high volatility has greater significance. We use Rate of Change (ROC) for momentum and Average True Range (ATR) for volatility, multiplying them to gauge “volatility-weighted momentum.” This concept is inspired by the Weighted Momentum & Volatility Indicator, which multiplies normalized ROC and ATR values. The result is shown as a histogram oscillating around zero – rising green bars indicate bullish momentum, while falling red bars indicate bearish momentum. When the histogram crosses above or below zero, it provides clear buy/sell signals. Higher magnitude bars suggest a stronger trend move. Crypto markets often see volatility spikes preceding big moves, so VAMO aims to capture those moments when momentum and volatility align for a powerful breakout.
Key Features:
Momentum-Volatility Fusion: Measures momentum (price ROC) adjusted by volatility (ATR). Strong trends register prominently only when price change is significant and volatility is elevated.
Intuitive Histogram: Plotted as a color-coded histogram around a zero line – green bars above zero for bullish trends, red bars below zero for bearish. This makes it easy to visualize trend strength and direction at a glance.
Clear Signals: A cross above 0 signals a buy, and below 0 signals a sell. Traders can also watch for the histogram peaking and then shrinking as an early sign of a trend reversal (e.g. bars switching from growing to shrinking while still positive could mean bullish momentum is waning).
Optimized for Volatility: Because ATR is built-in, the oscillator naturally adapts to crypto volatility. In calm periods, signals will be smaller (reducing noise), whereas during volatile swings the indicator accentuates the move, helping predict big price swings.
Customization: The lookback period is adjustable. Shorter periods (e.g. 5-10) make it more sensitive for scalping, while longer periods (20+) smooth it out for swing trading.
How to Use: When VAMO bars turn green and push above zero, it indicates bullish momentum with strong volatility – a cue that price is likely to rally in the near term. Conversely, red bars below zero signal bearish pressure. For example, if a coin’s price has been flat and then VAMO spikes green above zero, it suggests an explosive upward move is brewing. Traders can enter on the zero-line cross (or on the first green bar) and consider exiting when the histogram peaks and starts shrinking (signaling momentum slowdown). In sideways markets, VAMO will hover near zero – staying out during those low-volatility periods helps avoid false signals. This indicator’s strength is catching the moment when a quiet market turns volatile in one direction, which often precedes the next few candlesticks of sustained movement.
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!** 🚀
Volume Standard Deviation Alert GusPurpose
The script detects and alerts traders when the volume of a trading asset significantly exceeds a calculated threshold based on the standard deviation of volume over a specified lookback period. It optionally filters these alerts based on whether the price action is bullish or bearish.
Key Components
Inputs
lookback (default: 20)
The number of bars to consider when calculating the moving average and standard deviation of volume.
stdDevFactor (default: 2.0)
The multiplier for the standard deviation to determine the threshold for a volume spike.
alertOnClose (default: true)
Determines whether alerts should only be triggered after the bar has closed.
checkBullBear (default: false)
Enables filtering of alerts based on the bullishness or bearishness of the bar.
Calculations
volSMA
The simple moving average (SMA) of the volume over the lookback period.
volStd
The standard deviation of the volume over the lookback period.
threshold
The alert threshold is calculated as:
Threshold
=
volSMA
+
(
stdDevFactor
×
volStd
)
Threshold=volSMA+(stdDevFactor×volStd)
isBullish & isBearish
Determines whether the current bar is bullish (close > open) or bearish (close < open).
volumeSpikeCondition
A condition that triggers when the current volume exceeds the calculated threshold.
bullishCondition & bearishCondition
Refines the spike condition by requiring the bar to be bullish or bearish when checkBullBear is enabled.
finalCondition
The ultimate alert condition based on the user’s preference for bullish/bearish filtering.
finalTrigger
Ensures the alert only triggers at bar close if alertOnClose is set to true.
Visualization
Plots the SMA of the volume (volSMA) and the threshold line (threshold), helping traders visually understand the conditions.
Histograms the current volume and colors the bars:
Red: Volume exceeds the threshold.
Blue: Volume is below the threshold.
Alerts
The script generates an alert message when the finalTrigger condition is met:
"Bullish Volume Spike!" if the bar is bullish.
"Bearish Volume Spike!" if the bar is bearish.
"High Volume Spike!" if no bull/bear filter is applied.
Alerts are sent using alert() with the message and set to trigger once per bar close.
Usage
Traders can use this script to identify unusual volume activity, which often precedes significant price movements.
Customizability allows traders to tune the lookback period, standard deviation multiplier, and whether to filter for bullish/bearish spikes.
Visual and audible cues help in identifying important market events in real time.
This indicator is particularly useful for spotting market breakouts or breakdowns driven by high trading activity.
Filtered ATR with EMA OverlayFiltered ATR with EMA Overlay is an advanced volatility indicator designed to provide a more accurate representation of market conditions by smoothing the standard Average True Range (ATR). This is achieved by filtering out extreme price movements and abnormal bars that can distort traditional ATR calculations.
The indicator applies an Exponential Moving Average (EMA) to the filtered ATR, creating a dual-layered system that highlights periods of increased or decreased volatility.
Key Features:
Filtered ATR: Filters out extreme bars, reducing noise and making the ATR line more reliable.
EMA Overlay: An EMA (default period of 10) is applied to the filtered ATR, allowing traders to track average volatility trends.
Volatility Signals:
Filtered ATR > EMA(10): Indicates higher-than-average volatility. This often correlates with trend breakouts or strong price movements.
Filtered ATR < EMA(10): Suggests reduced volatility, signaling potential consolidation or sideways price action.
Parameters:
atrLength (Default: 5):
The number of bars used to calculate the ATR. A shorter period (e.g., 3-5) responds faster to price changes, while a longer period (e.g., 10-14) provides smoother results.
multiplier (Default: 1.8):
Controls the sensitivity of the filter. A lower multiplier (e.g., 1.5) filters out more bars, resulting in smoother ATR. Higher values (e.g., 2.0) allow more bars to pass through, retaining more price volatility.
maxIterations (Default: 20):
The maximum number of bars processed to detect abnormal values. Increasing this may improve accuracy at the cost of performance.
ema10Period (Default: 10):
The period for the Exponential Moving Average applied to the filtered ATR. Shorter periods provide faster signals, while longer periods give smoother, lagging signals.
Trading Strategies:
1. Breakout Strategy:
When filtered ATR crosses above EMA(10):
Enter long positions when price breaks above a key resistance level.
Higher volatility suggests strong price action and momentum.
When filtered ATR drops below EMA(10):
Exit positions or tighten stop-loss orders as volatility decreases.
Lower volatility may indicate consolidation or trend exhaustion.
2. Trend Following Strategy:
Use the filtered ATR line to track overall volatility.
If filtered ATR consistently stays above EMA: Hold positions or add to trades.
If filtered ATR remains below EMA: Reduce position size or stay out of trades.
3. Mean Reversion Strategy:
When filtered ATR spikes significantly above EMA, it may indicate market overreaction.
Look for price to revert to the mean once ATR returns below the EMA.
4. Stop-Loss Adjustment:
As volatility increases (ATR above EMA), widen stop-loss levels to avoid being stopped out by random fluctuations.
In low volatility (ATR below EMA), tighten stop-losses to minimize losses during low activity periods.
Benefits:
Reduced Noise: By filtering abnormal bars, the indicator provides cleaner signals.
Better Trend Detection: EMA smoothing highlights volatility trends.
Adaptable: The indicator can be customized for scalping, day trading, or swing trading.
Intuitive Visualization: Traders can visually see volatility shifts and adjust strategies in real-time.
Best Practices:
Timeframes: Works effectively on all timeframes, but higher timeframes (e.g., 1H, 4H, Daily) yield more reliable signals.
Markets: Suitable for forex, crypto, stocks, and commodities.
Combining Indicators: Use in combination with RSI, Moving Averages, Bollinger Bands, or price action analysis for stronger signals.
How It Works (Under the Hood):
The script calculates the Daily Range (High - Low) for each bar.
The largest and smallest bars are filtered out if their difference exceeds the multiplier (default 1.8).
The remaining bars are averaged to generate the filtered ATR.
An EMA(10) is then applied to the filtered ATR for smoother visualization.
Alerts█ OVERVIEW
This library is a Pine Script™ programmers tool that provides functions to simplify the creation of compound conditions and alert messages. With these functions, scripts can use comma-separated "string" lists to specify condition groups from arbitrarily large "bool" arrays , offering a convenient way to provide highly flexible alert creation to script users without requiring numerous inputs in the "Settings/Inputs" menu.
█ CONCEPTS
Compound conditions
Compound conditions are essentially groups of two or more conditions, where each required condition must occur to produce a `true` result. Traders often combine conditions, including signals from various indicators, to drive and reinforce trade decisions. Similarly, programmers use compound conditions in logical operations to create scripts that respond dynamically to groups of events.
Condition conundrum
Providing flexible condition combinations to script users for signals and alerts often poses a significant challenge: input complexity . Conventionally, such flexibility comes at the cost of an extensive list of separate inputs for toggling individual conditions and customizing their properties, often resulting in complicated input menus that are difficult for users to navigate effectively. Furthermore, managing all those inputs usually entails tediously handling many extra variables and logical expressions, making such projects more complex for programmers.
Condensing complexity
This library introduces a technique using parsed strings to reference groups of elements from "bool" arrays , helping to simplify and streamline the construction of compound conditions and alert messages. With this approach, programmers can provide one or more "string" inputs in their scripts where users can list numbers corresponding to the conditions they want to combine.
For example, suppose you have a script that creates alert triggers based on a combination of up to 20 individual conditions, and you want to make inputs for users to choose which conditions to combine. Instead of creating 20 separate checkboxes in the "Settings/Inputs" tab and manually adding associated logic for each one, you can store the conditional values in arrays, make one or more "string" inputs that accept values listing the array item locations (e.g., "1,4,8,11"), and then pass the inputs to these functions to determine the compound conditions formed by the specified groups.
This approach condenses the input space, improving navigability and utility. Additionally, it helps provide high-level simplicity to complex conditional code, making it easier to maintain and expand over time.
█ CALCULATIONS AND USE
This library contains three functions for evaluating compound conditions: `getCompoundConditon()`, `getCompoundConditionsArray()`, and `compoundAlertMessage()`. Each function has two overloads that evaluate compound conditions based on groups of items from one or two "bool" arrays . The sections below explain the functions' calculations and how to use them.
Referencing conditions using "string" index lists
Each function processes "string" values containing comma-separated lists of numerals representing the indices of the "bool" array items to use in its calculations (e.g., "4, 8, 12"). The functions split each supplied "string" list by its commas, then iterate over those specified indices in the "bool" arrays to determine each group's combined `true` or `false` state.
For convenience, the numbers in the "string" lists can represent zero-based indices (where the first item is at index 0) or one-based indices (where the first item is at index 1), depending on the function's `zeroIndex` parameter. For example, an index list of "0, 2, 4" with a `zeroIndex` value of `true` specifies that the condition group uses the first , third , and fifth "bool" values in the array, ignoring all others. If the `zeroIndex` value is `false`, the list "1, 3, 5" also refers to those same elements.
Zero-based indexing is convenient for programmers because Pine arrays always use this index format. However, one-based indexing is often more convenient and familiar for script users, especially non-programmers.
Evaluating one or many condition groups
The `getCompoundCondition()` function evaluates singular condition groups determined by its `indexList` parameter, returning `true` values whenever the specified array elements are `true`. This function is helpful when a script has to evaluate specific groups of conditions and does not require many combinations.
In contrast, the `getCompoundConditionsArray()` function can evaluate numerous condition groups, one for each "string" included in its `indexLists` argument. It returns arrays containing `true` or `false` states for each listed group. This function is helpful when a script requires multiple condition combinations in additional calculations or logic.
The `compoundAlertMessage()` function is similar to the `getCompoundConditionsArray()` function. It also evaluates a separate compound condition group for each "string" in its `indexLists` array, but it returns "string" values containing the marker (name) of each group with a `true` result. You can use these returned values as the `message` argument in alert() calls, display them in labels and other drawing objects, or even use them in additional calculations and logic.
Directional condition pairs
The first overload of each function operates on a single `conditions` array, returning values representing one or more compound conditions from groups in that array. These functions are ideal for general-purpose condition groups that may or may not represent direction information.
The second overloads accept two arrays representing upward and downward conditions separately: `upConditions` and `downConditions`. These overloads evaluate opposing directional conditions in pairs (e.g., RSI is above/below a level) and return upward and downward condition information separately in a tuple .
When using the directional overloads, ensure the `upConditions` and `downConditions` arrays are the same size, with the intended condition pairs at the same indices . For instance, if you have a specific upward RSI condition's value at the first index in the `upConditions` array, include the opposing downward RSI condition's value at that same index in the `downConditions` array. If a condition can apply to both directions (e.g., rising volume), include its value at the same index in both arrays.
Group markers
To simplify the generation of informative alert messages, the `compoundAlertMessage()` function assigns "string" markers to each condition group, where "marker" refers to the group's name. The `groupMarkers` parameter allows you to assign custom markers to each listed group. If not specified, the function generates default group markers in the format "M", where "M" is short for "Marker" and "" represents the group number starting from 1. For example, the default marker for the first group specified in the `indexLists` array is "M1".
The function's returned "string" values contain a comma-separated list with markers for each activated condition group (e.g., "M1, M4"). The function's second overload, which processes directional pairs of conditions, also appends extra characters to the markers to signify the direction. The default for upward groups is "▲" (e.g., "M1▲") and the default for downward ones is "▼" (e.g., "M1▼"). You can customize these appended characters with the `upChar` and `downChar` parameters.
Designing customizable alerts
We recommend following these primary steps when using this library to design flexible alerts for script users:
1. Create text inputs for users to specify comma-separated lists of conditions with the input.string() or input.text_area() functions, and then collect all the input values in a "string" array . Note that each separate "string" in the array will represent a distinct condition group.
2. Create arrays of "bool" values representing the possible conditions to choose from. If your script will process pairs of upward and downward conditions, ensure the related elements in the arrays align at the same indices.
3. Call `compoundAlertMessage()` using the arrays from steps 1 and 2 as arguments to get the alert message text. If your script will use the text for alerts only, not historical display or calculation purposes, the call is necessary only on realtime bars .
4. Pass the calculated "string" values as the `message` argument in alert() calls. We recommend calling the function only when the "string" is not empty (i.e., `messageText != ""`). To avoid repainting alerts on open bars, use barstate.isconfirmed in the condition to allow alert triggers only on each bar's close .
5. Test the alerts. Open the "Create Alert" dialog box and select "Any alert() function call" in the "Condition" field. It is also helpful to inspect the strings with Pine Logs .
NOTE: Because the techniques in this library use lists of numbers to specify conditions, we recommend including a tooltip for the "string" inputs that lists the available numbers and the conditions they represent. This tooltip provides a legend for script users, making it simple to understand and utilize. To create the tooltip, declare a "const string" listing the options and pass it to the `input.*()` call's `tooltip` parameter. See the library's example code for a simple demonstration.
█ EXAMPLE CODE
This library's example code demonstrates one possible way to offer a selection of compound conditions with "string" inputs and these functions. It uses three input.string() calls, each accepting a comma-separated list representing a distinct condition group. The title of each input represents the default group marker that appears in the label and alert text. The code collects these three input values in a `conditionGroups` array for use with the `compoundAlertMessage()` function.
In this code, we created two "bool" arrays to store six arbitrary condition pairs for demonstration:
1. Bar up/down: The bar's close price must be above the open price for upward conditions, and vice versa for downward conditions.
2. Fast EMA above/below slow EMA : The 9-period Exponential Moving Average of close prices must be above the 21-period EMA for upward conditions, and vice versa for downward conditions.
3. Volume above average : The bar's volume must exceed its 20-bar average to activate an upward or downward condition.
4. Volume rising : The volume must exceed that of the previous bar to activate an upward or downward condition.
5. RSI trending up/down : The 14-period Relative Strength Index of close prices must be between 50 and 70 for upward conditions, and between 30 and 50 for downward conditions.
6. High volatility : The 7-period Average True Range (ATR) must be above the 40-period ATR to activate an upward or downward condition.
We included a `tooltip` argument for the third input.string() call that displays the condition numbers and titles, where 1 is the first condition number.
The `bullConditions` array contains the `true` or `false` states of all individual upward conditions, and the `bearConditions` array contains all downward condition states. For the conditions that filter either direction because they are non-directional, such as "High volatility", both arrays contain the condition's `true` or `false` value at the same index. If you use these conditions alone, they activate upward and downward alert conditions simultaneously.
The example code calls `compoundAlertMessage()` using the `bullConditions`, `bearConditions`, and `conditionGroups` arrays to create a tuple of strings containing the directional markers for each activated group. On confirmed bars, it displays non-empty strings in labels and uses them in alert() calls. For the text shown in the labels, we used str.replace_all() to replace commas with newline characters, aligning the markers vertically in the display.
Look first. Then leap.
█ FUNCTIONS
This library exports the following functions:
getCompoundCondition(conditions, indexList, minRequired, zeroIndex)
(Overload 1 of 2) Determines a compound condition based on selected elements from a `conditions` array.
Parameters:
conditions (array) : (array) An array containing the possible "bool" values to use in the compound condition.
indexList (string) : (series string) A "string" containing a comma-separated list of whole numbers representing the group of `conditions` elements to use in the compound condition. For example, if the value is `"0, 2, 4"`, and `minRequired` is `na`, the function returns `true` only if the `conditions` elements at index 0, 2, and 4 are all `true`. If the value is an empty "string", the function returns `false`.
minRequired (int) : (series int) Optional. Determines the minimum number of selected conditions required to activate the compound condition. For example, if the value is 2, the function returns `true` if at least two of the specified `conditions` elements are `true`. If the value is `na`, the function returns `true` only if all specified elements are `true`. The default is `na`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the `indexList` represents zero-based array indices. If `true`, a value of "0" in the list represents the first array index. If `false`, a `value` of "1" represents the first index. The default is `true`.
Returns: (bool) `true` if `conditions` elements in the group specified by the `indexList` are `true`, `false` otherwise.
getCompoundCondition(upConditions, downConditions, indexList, minRequired, allowUp, allowDown, zeroIndex)
(Overload 2 of 2) Determines upward and downward compound conditions based on selected elements from `upConditions` and `downConditions` arrays.
Parameters:
upConditions (array) : (array) An array containing the possible "bool" values to use in the upward compound condition.
downConditions (array) : (array) An array containing the possible "bool" values to use in the downward compound condition.
indexList (string) : (series string) A "string" containing a comma-separated list of whole numbers representing the `upConditions` and `downConditions` elements to use in the compound conditions. For example, if the value is `"0, 2, 4"` and `minRequired` is `na`, the function returns `true` for the first value only if the `upConditions` elements at index 0, 2, and 4 are all `true`. If the value is an empty "string", the function returns ` `.
minRequired (int) : (series int) Optional. Determines the minimum number of selected conditions required to activate either compound condition. For example, if the value is 2, the function returns `true` for its first value if at least two of the specified `upConditions` elements are `true`. If the value is `na`, the function returns `true` only if all specified elements are `true`. The default is `na`.
allowUp (bool) : (series bool) Optional. Controls whether the function considers upward compound conditions. If `false`, the function ignores the `upConditions` array, and the first item in the returned tuple is `false`. The default is `true`.
allowDown (bool) : (series bool) Optional. Controls whether the function considers downward compound conditions. If `false`, the function ignores the `downConditions` array, and the second item in the returned tuple is `false`. The default is `true`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the `indexList` represents zero-based array indices. If `true`, a value of "0" in the list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
Returns: ( ) A tuple containing two "bool" values representing the upward and downward compound condition states, respectively.
getCompoundConditionsArray(conditions, indexLists, zeroIndex)
(Overload 1 of 2) Creates an array of "bool" values representing compound conditions formed by selected elements from a `conditions` array.
Parameters:
conditions (array) : (array) An array containing the possible "bool" values to use in each compound condition.
indexLists (array) : (array) An array of strings containing comma-separated lists of whole numbers representing the `conditions` elements to use in each compound condition. For example, if an item is `"0, 2, 4"`, the corresponding item in the returned array is `true` only if the `conditions` elements at index 0, 2, and 4 are all `true`. If an item is an empty "string", the item in the returned array is `false`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the "string" lists in the `indexLists` represent zero-based array indices. If `true`, a value of "0" in a list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
Returns: (array) An array of "bool" values representing compound condition states for each condition group. An item in the array is `true` only if all the `conditions` elements specified by the corresponding `indexLists` item are `true`. Otherwise, the item is `false`.
getCompoundConditionsArray(upConditions, downConditions, indexLists, allowUp, allowDown, zeroIndex)
(Overload 2 of 2) Creates two arrays of "bool" values representing compound upward and
downward conditions formed by selected elements from `upConditions` and `downConditions` arrays.
Parameters:
upConditions (array) : (array) An array containing the possible "bool" values to use in each upward compound condition.
downConditions (array) : (array) An array containing the possible "bool" values to use in each downward compound condition.
indexLists (array) : (array) An array of strings containing comma-separated lists of whole numbers representing the `upConditions` and `downConditions` elements to use in each compound condition. For example, if an item is `"0, 2, 4"`, the corresponding item in the first returned array is `true` only if the `upConditions` elements at index 0, 2, and 4 are all `true`. If an item is an empty "string", the items in both returned arrays are `false`.
allowUp (bool) : (series bool) Optional. Controls whether the function considers upward compound conditions. If `false`, the function ignores the `upConditions` array, and all elements in the first returned array are `false`. The default is `true`.
allowDown (bool) : (series bool) Optional. Controls whether the function considers downward compound conditions. If `false`, the function ignores the `downConditions` array, and all elements in the second returned array are `false`. The default is `true`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the "string" lists in the `indexLists` represent zero-based array indices. If `true`, a value of "0" in a list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
Returns: ( ) A tuple containing two "bool" arrays:
- The first array contains values representing upward compound condition states determined using the `upConditions`.
- The second array contains values representing downward compound condition states determined using the `downConditions`.
compoundAlertMessage(conditions, indexLists, zeroIndex, groupMarkers)
(Overload 1 of 2) Creates a "string" message containing a comma-separated list of markers representing active compound conditions formed by specified element groups from a `conditions` array.
Parameters:
conditions (array) : (array) An array containing the possible "bool" values to use in each compound condition.
indexLists (array) : (array) An array of strings containing comma-separated lists of whole numbers representing the `conditions` elements to use in each compound condition. For example, if an item is `"0, 2, 4"`, the corresponding marker for that item appears in the returned "string" only if the `conditions` elements at index 0, 2, and 4 are all `true`.
zeroIndex (bool) : (series bool) Optional. Specifies whether the "string" lists in the `indexLists` represent zero-based array indices. If `true`, a value of "0" in a list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
groupMarkers (array) : (array) Optional. If specified, sets the marker (name) for each condition group specified in the `indexLists` array. If `na`, the function uses the format `"M"` for each group, where "M" is short for "Marker" and `` represents the one-based index for the group (e.g., the marker for the first listed group is "M1"). The default is `na`.
Returns: (string) A "string" containing a list of markers corresponding to each active compound condition.
compoundAlertMessage(upConditions, downConditions, indexLists, allowUp, allowDown, zeroIndex, groupMarkers, upChar, downChar)
(Overload 2 of 2) Creates two "string" messages containing comma-separated lists of markers representing active upward and downward compound conditions formed by specified element groups from `upConditions` and `downConditions` arrays.
Parameters:
upConditions (array) An array containing the possible "bool" values to use in each upward compound condition.
downConditions (array) An array containing the possible "bool" values to use in each downward compound condition.
indexLists (array) An array of strings containing comma-separated lists of whole numbers representing the `upConditions` and `downConditions` element groups to use in each compound condition. For example, if an item is `"0, 2, 4"`, the corresponding group marker for that item appears in the first returned "string" only if the `upConditions` elements at index 0, 2, and 4 are all `true`.
allowUp (bool) Optional. Controls whether the function considers upward compound conditions. If `false`, the function ignores the `upConditions` array and returns an empty "string" for the first tuple element. The default is `true`.
allowDown (bool) Optional. Controls whether the function considers downward compound conditions. If `false`, the function ignores the `downConditions` array and returns an empty "string" for the second tuple element. The default is `true`.
zeroIndex (bool) Optional. Specifies whether the "string" lists in the `indexLists` represent zero-based array indices. If `true`, a value of "0" in a list represents the first array index. If `false`, a value of "1" represents the first index. The default is `true`.
groupMarkers (array) Optional. If specified, sets the name (marker) of each condition group specified in the `indexLists` array. If `na`, the function uses the format `"M"` for each group, where "M" is short for "Marker" and `` represents the one-based index for the group (e.g., the marker for the first listed group is "M1"). The default is `na`.
upChar (string) Optional. A "string" appended to all group markers for upward conditions to signify direction. The default is "▲".
downChar (string) Optional. A "string" appended to all group markers for downward conditions to signify direction. The default is "▼".
Returns: ( ): A tuple of "string" values containing lists of markers corresponding to active upward and downward compound conditions, respectively.
Open-Close Absolute Difference with Threshold CountsThe Open-Close Absolute Difference with Threshold Counts indicator is a versatile tool designed to help traders analyze the volatility and price movements within any given timeframe on their charts. This indicator calculates the absolute difference between the open and close prices for each bar, providing a clear visualization through a color-coded histogram.
Key features include:
• Timeframe Flexibility: Utilizes the current chart’s timeframe, whether it’s a 5-minute, hourly, or daily chart.
• Custom Thresholds: Allows you to set up to four custom threshold levels (Thresholds A, B, C, and D) with default values of 10, 15, 25, and 35, respectively.
• Period Customization: Enables you to define the number of bars (N) over which the indicator calculates the counts, with a default of 100 bars.
• Visual Threshold Lines: Plots horizontal dashed lines on the histogram representing each threshold for easy visual reference.
• Dynamic Counting: Counts and displays the number of times the absolute difference is less than or greater than each threshold within the specified period.
• Customizable Table Position: Offers the flexibility to position the results table anywhere on the chart (e.g., Top Right, Bottom Left).
How It Works:
1. Absolute Difference Calculation:
• For each bar on the chart, the indicator calculates the absolute difference between the open and close prices.
• This difference is plotted as a histogram:
• Green Bars: Close price is higher than the open price.
• Red Bars: Close price is lower than the open price.
2. Threshold Comparison and Counting:
• Compares the absolute difference to each of the four thresholds.
• Determines whether the difference is less than or greater than each threshold.
• Utilizes the ta.sum() function to count occurrences over the specified number of bars (N).
3. Results Table:
• Displays a table with three columns:
• Left Column: Counts where the absolute difference is less than the threshold.
• Middle Column: The threshold value.
• Right Column: Counts where the absolute difference is greater than the threshold.
• The table updates dynamically and can be positioned anywhere on the chart according to your preference.
4. Threshold Lines on Histogram:
• Plots horizontal dashed lines at each threshold level.
• Each line is color-coded for distinction:
• Threshold A: Yellow
• Threshold B: Orange
• Threshold C: Purple
• Threshold D: Blue
How to Use:
1. Add the Indicator to Your Chart:
• Open the Pine Editor on TradingView.
• Copy and paste the provided code into the editor.
• Click “Add to Chart.”
2. Configure Settings:
• Number of Bars (N):
• Set the period over which you want to calculate the counts (default is 100).
• Thresholds A, B, C, D:
• Input your desired threshold values (defaults are 10, 15, 25, 35).
• Table Position:
• Choose where you want the results table to appear on the chart:
• Options include “Top Left,” “Top Center,” “Top Right,” “Bottom Left,” “Bottom Center,” “Bottom Right.”
3. Interpret the Histogram:
• Observe the absolute differences plotted as a histogram.
• Use the color-coded bars to quickly assess whether the close price was higher or lower than the open price.
4. Analyze the Counts Table:
• Review the counts of occurrences where the absolute difference was less than or greater than each threshold.
• Use this data to gauge volatility and price movement intensity over the specified period.
5. Visual Reference with Threshold Lines:
• Refer to the horizontal dashed lines on the histogram to see how the absolute differences align with your thresholds.
Example Use Case:
Suppose you’re analyzing a 5-minute chart for a particular stock and want to understand its short-term volatility:
• Set the Number of Bars (N) to 50 to analyze the recent 50 bars.
• Adjust Thresholds based on the typical price movements of the stock, e.g., Threshold A: 0.5, Threshold B: 1.0, Threshold C: 1.5, Threshold D: 2.0.
• Position the Table at the “Top Right” for easy viewing.
By doing so, you can:
• Quickly see how often the stock experiences significant price movements within 5-minute intervals.
• Make informed decisions about entry and exit points based on the volatility patterns.
• Customize the thresholds and periods as market conditions change.
Benefits:
• Customizable Analysis: Tailor the indicator to fit various trading styles and timeframes.
• Quick Visualization: Instantly assess market volatility and price movement direction.
• Enhanced Decision-Making: Use the counts and visual cues to make more informed trading decisions.
• User-Friendly Interface: Simple configuration and clear display of information.
Note: Always test the indicator with different settings to find the configuration that best suits your trading strategy. This indicator should be used as part of a comprehensive analysis and not as the sole basis for trading decisions.
COMBINED EMA & SMA + DOUBLE DEMA, $TOTAL 1W / 5D -- Ruslan CRYPTOCAP:TOTAL
This Pine Script indicator, **"EMAS"**, provides an enhanced visualization of multiple types of moving averages, including both **Exponential Moving Averages (EMA)**, **Simple Moving Averages (SMA)**, and **Double Exponential Moving Averages (DEMA)**. It allows the user to observe the relationship between these different types of moving averages and apply regime-based coloring to price bars based on the comparison between the EMAs and DEMAs.
#### Key Features:
1. **EMA & SMA:**
- **EMA (Exponential Moving Average):** Calculated using a customizable lookback period (default 17), the EMA places greater weight on more recent prices, making it react faster to price changes.
- **SMA (Simple Moving Average):** Uses an equal-weighted average over a customizable lookback period (default 14), providing a slower-moving average compared to the EMA.
2. **DEMA (Double Exponential Moving Average):**
- Two separate DEMA lines are plotted using different lookback periods (default 2 and 14). The DEMA is a smoother and faster-responding version of the EMA, intended to reduce lag while retaining trend-following characteristics.
3. **Combined Signals:**
- The script calculates ratios between EMA/SMA (`comb`) and DEMA1/DEMA2 (`combd`) to generate a **regime-based bar coloring system**:
- If `combd > comb`: The bars are colored **green**, indicating that DEMAs are outperforming the EMAs, potentially signaling a stronger trend or momentum.
- If `comb > combd`: The bars are colored **red**, suggesting that the EMAs are dominant, which may indicate a different phase of the market.
4. **Signal SMA:**
- A 21-period **SMA** is plotted as a general trend-following signal. It provides a broader perspective on the current price trend, helping to smooth out short-term fluctuations.
5. **Customizable Options:**
- **"Show MAs?"**: The user has the option to toggle the display of the EMA, SMA, and DEMA lines on or off.
- **Custom Period Inputs**: Each type of moving average can have its period length customized via the input settings for better adaptability to different market conditions.
#### How to Use the Indicator:
- **Trend Following**:
The **EMA, SMA, and DEMA** values can help you determine the direction of the trend. When the EMA is above the SMA, it could indicate a stronger, more recent upward momentum. Similarly, DEMA comparisons provide smoother and faster trend signals.
- **Bar Coloring Regime**:
The **bar color** gives a quick visual cue of the regime:
- **Green bars** suggest that DEMAs are indicating stronger bullish or bearish signals compared to the EMAs.
- **Red bars** imply the opposite, where EMAs may be showing stronger signals, but possibly with more noise or lag.
- **Signal SMA**:
The **21-period SMA** line can be used as a simple trend indicator. When the price is above this line, it could signify an uptrend, while price movement below the line might indicate a downtrend.
#### Custom Inputs:
- **EMA Length**: Default is 17, but can be adjusted to fit your trading style.
- **SMA Length**: Default is 14.
- **DEMA Lengths**: Two customizable inputs for DEMA (default 2 and 14).
- **Source Selection**: You can choose which price source (close, open, high, low, etc.) to use for each calculation (default is the closing price).
#### Conclusion:
This indicator is useful for traders who wish to blend **trend-following strategies** (using EMA, SMA, and DEMA) with **visual regime indicators** (bar coloring). It is highly customizable, allowing traders to adjust settings based on their market approach. The combination of EMAs and DEMAs provides a nuanced view of price dynamics, potentially leading to better-informed trading decisions.
Uptrick: Dynamic AMA RSI Indicator### **Uptrick: Dynamic AMA RSI Indicator**
**Overview:**
The **Uptrick: Dynamic AMA RSI Indicator** is an advanced technical analysis tool designed for traders who seek to optimize their trading strategies by combining adaptive moving averages with the Relative Strength Index (RSI). This indicator dynamically adjusts to market conditions, offering a nuanced approach to trend detection and momentum analysis. By leveraging the Adaptive Moving Average (AMA) and Fast Adaptive Moving Average (FAMA), along with RSI-based overbought and oversold signals, traders can better identify entry and exit points with higher precision and reduced noise.
**Key Components:**
1. **Source Input:**
- The source input is the price data that forms the basis of all calculations. Typically set to the closing price, traders can customize this to other price metrics such as open, high, low, or even the output of another indicator. This flexibility allows the **Uptrick** indicator to be tailored to a wide range of trading strategies.
2. **Adaptive Moving Average (AMA):**
- The AMA is a moving average that adapts its sensitivity based on the dominant market cycle. This adaptation allows the AMA to respond swiftly to significant price movements while smoothing out minor fluctuations, making it particularly effective in trending markets. The AMA adjusts its responsiveness dynamically using a calculated phase adjustment from the dominant cycle, ensuring it remains responsive to the current market environment without being overly reactive to market noise.
3. **Fast Adaptive Moving Average (FAMA):**
- The FAMA is a more sensitive version of the AMA, designed to react faster to price changes. It serves as a signal line in the crossover strategy, highlighting shorter-term trends. The interaction between the AMA and FAMA forms the core of the signal generation, with crossovers between these lines indicating potential buy or sell opportunities.
4. **Relative Strength Index (RSI):**
- The RSI is a momentum oscillator that measures the speed and change of price movements, providing insights into whether an asset is overbought or oversold. In the **Uptrick** indicator, the RSI is used to confirm the validity of crossover signals between the AMA and FAMA, adding an additional layer of reliability to the trading signals.
**Indicator Logic:**
1. **Dominant Cycle Calculation:**
- The indicator starts by calculating the dominant market cycle using a smoothed price series. This involves applying exponential moving averages to a series of price differences, extracting cycle components, and determining the instantaneous phase of the cycle. This phase is then adjusted to provide a phase adjustment factor, which plays a critical role in determining the adaptive alpha.
2. **Adaptive Alpha Calculation:**
- The adaptive alpha, a key feature of the AMA, is computed based on the fast and slow limits set by the trader. This alpha is clamped within these limits to ensure the AMA remains appropriately sensitive to market conditions. The dynamic adjustment of alpha allows the AMA to be highly responsive in volatile markets and more conservative in stable markets.
3. **Crossover Detection:**
- The indicator generates trading signals based on crossovers between the AMA and FAMA:
- **CrossUp:** When the AMA crosses above the FAMA, it indicates a potential bullish trend, suggesting a buy opportunity.
- **CrossDown:** When the AMA crosses below the FAMA, it signals a potential bearish trend, indicating a sell opportunity.
4. **RSI Confirmation:**
- To enhance the reliability of these crossover signals, the indicator uses the RSI to confirm overbought and oversold conditions:
- **Buy Signal:** A buy signal is generated only when the AMA crosses above the FAMA and the RSI confirms an oversold condition, ensuring that the signal aligns with a momentum reversal from a low point.
- **Sell Signal:** A sell signal is triggered when the AMA crosses below the FAMA and the RSI confirms an overbought condition, indicating a momentum reversal from a high point.
5. **Signal Management:**
- To prevent signal redundancy during strong trends, the indicator tracks the last generated signal (buy or sell) and ensures that the next signal is only issued when there is a genuine reversal in trend direction.
6. **Signal Visualization:**
- **Buy Signals:** The indicator plots a "BUY" label below the bar when a buy signal is generated, using a green color to clearly mark the entry point.
- **Sell Signals:** A "SELL" label is plotted above the bar when a sell signal is detected, marked in red to indicate an exit or shorting opportunity.
- **Bar Coloring (Optional):** Traders have the option to enable bar coloring, where green bars indicate a bullish trend (AMA above FAMA) and red bars indicate a bearish trend (AMA below FAMA), providing a visual representation of the market’s direction.
**Customization Options:**
- **Source:** Traders can select the price data input that best suits their strategy (e.g., close, open, high, low, or custom indicators).
- **Fast Limit:** Adjustable sensitivity for the fast response of the AMA, allowing traders to tailor the indicator to different market conditions.
- **Slow Limit:** Sets the slower boundary for the AMA’s sensitivity, providing stability in less volatile markets.
- **RSI Length:** The period for the RSI calculation can be adjusted to fit different trading timeframes.
- **Overbought/Oversold Levels:** These thresholds can be customized to define the RSI levels that trigger buy or sell confirmations.
- **Enable Bar Colors:** Traders can choose whether to enable bar coloring based on the AMA/FAMA relationship, enhancing visual clarity.
**How Different Traders Can Use the Indicator:**
1. **Day Traders:**
- **Uptrick: Dynamic AMA RSI Indicator** is highly effective for day traders who need to make quick decisions in fast-moving markets. The adaptive nature of the AMA and FAMA allows the indicator to respond rapidly to intraday price swings. Day traders can use the buy and sell signals generated by the crossover and RSI confirmation to time their entries and exits with greater precision, minimizing exposure to false signals often prevalent in high-frequency trading environments.
2. **Swing Traders:**
- Swing traders can benefit from the indicator’s ability to identify and confirm trend reversals over several days or weeks. By adjusting the RSI length and sensitivity limits, swing traders can fine-tune the indicator to catch longer-term price movements, helping them to ride trends and maximize profits over medium-term trades. The dual confirmation of crossovers with RSI ensures that swing traders enter trades that have a higher probability of success.
3. **Position Traders:**
- For position traders who hold trades over longer periods, the **Uptrick** indicator offers a reliable method to stay in trades that align with the dominant trend while avoiding premature exits. By adjusting the slow limit and extending the RSI length, position traders can smooth out the indicator’s sensitivity, allowing them to focus on major market shifts rather than short-term volatility. The bar coloring feature also provides a clear visual indication of the overall trend, aiding in trade management decisions.
4. **Scalpers:**
- Scalpers, who seek to profit from small price movements, can use the fast responsiveness of the FAMA in conjunction with the RSI to identify micro-trends within larger market moves. The indicator’s ability to adapt quickly to changing conditions makes it a valuable tool for scalpers looking to execute numerous trades in a short period, capturing profits from minor price fluctuations while avoiding prolonged exposure.
5. **Algorithmic Traders:**
- Algorithmic traders can incorporate the **Uptrick** indicator into automated trading systems. The precise crossover signals combined with RSI confirmation provide clear and actionable rules that can be coded into algorithms. The adaptive nature of the indicator ensures that it can be used across different market conditions and timeframes, making it a versatile component of algorithmic strategies.
**Usage:**
The **Uptrick: Dynamic AMA RSI Indicator** is a versatile tool that can be integrated into various trading strategies, from short-term day trading to long-term investing. Its ability to adapt to changing market conditions and provide clear buy and sell signals makes it an invaluable asset for traders seeking to improve their trading performance. Whether used as a standalone indicator or in conjunction with other technical tools, **Uptrick** offers a dynamic approach to market analysis, helping traders to navigate the complexities of financial markets with greater confidence.
**Conclusion:**
The **Uptrick: Dynamic AMA RSI Indicator** offers a comprehensive and adaptable solution for traders across different styles and timeframes. By combining the strengths of adaptive moving averages with RSI confirmation, it delivers robust signals that help traders capitalize on market trends while minimizing the risk of false signals. This indicator is a powerful addition to any trader’s toolkit, enabling them to make informed decisions with greater precision and confidence. Whether you're a day trader, swing trader, or long-term investor, the **Uptrick** indicator can enhance your trading strategy and improve your market outcomes.
Swing Trend AnalysisIntroducing the Swing Trend Analyzer: A Powerful Tool for Swing and Positional Trading
The Swing Trend Analyzer is a cutting-edge indicator designed to enhance your swing and positional trading by providing precise entry points based on volatility contraction patterns and other key technical signals. This versatile tool is packed with features that cater to traders of all timeframes, offering flexibility, clarity, and actionable insights.
Key Features:
1. Adaptive Moving Averages:
The Swing Trend Analyzer offers multiple moving averages tailored to the timeframe you are trading on. On the daily chart, you can select up to four different moving average lengths, while all other timeframes provide three moving averages. This flexibility allows you to fine-tune your analysis according to your trading strategy. Disabling a moving average is as simple as setting its value to zero, making it easy to customize the indicator to your needs.
2. Dynamic Moving Average Colors Based on Relative Strength:
This feature allows you to compare the performance of the current ticker against a major index or any symbol of your choice. The moving average will change color based on whether the ticker is outperforming or underperforming the selected index over the chosen period. For example, on a daily chart, if the 21-day moving average turns blue, it indicates that the ticker has outperformed the selected index over the last 21 days. This visual cue helps you quickly identify relative strength, a key factor in successful swing trading.
3. Visual Identification of Price Contractions:
The Swing Trend Analyzer changes the color of price bars to white (on a dark theme) or black (on a light theme) when a contraction in price is detected. Price contractions are highlighted when either of the following conditions is met: a) the current bar is an inside bar, or b) the price range of the current bar is less than the 14-period Average Daily Range (ADR). This feature makes it easier to spot price contractions across all timeframes, which is crucial for timing entries in swing trading.
4. Overhead Supply Detection with Automated Resistance Lines:
The indicator intelligently detects the presence of overhead supply and draws a single resistance line to avoid clutter on the chart. As price breaches the resistance line, the old line is automatically deleted, and a new resistance line is drawn at the appropriate level. This helps you focus on the most relevant resistance levels, reducing noise and improving decision-making.
5. Buyable Gap Up Marker: The indicator highlights bars in blue when a candle opens with a gap that remains unfilled. These bars are potential Buyable Gap Up (BGU) candidates, signaling opportunities for long-side entries.
6. Comprehensive Swing Trading Information Table:
The indicator includes a detailed table that provides essential data for swing trading:
a. Sector and Industry Information: Understand the sector and industry of the ticker to identify stocks within strong sectors.
b. Key Moving Averages Distances (10MA, 21MA, 50MA, 200MA): Quickly assess how far the current price is from key moving averages. The color coding indicates whether the price is near or far from these averages, offering vital visual cues.
c. Price Range Analysis: Compare the current bar's price range with the previous bar's range to spot contraction patterns.
d. ADR (20, 10, 5): Displays the Average Daily Range over the last 20, 10, and 5 periods, crucial for identifying contraction patterns. On the weekly chart, the ADR continues to provide daily chart information.
e. 52-Week High/Low Data: Shows how close the stock is to its 52-week high or low, with color coding to highlight proximity, aiding in the identification of potential breakout or breakdown candidates.
f. 3-Month Price Gain: See the price gain over the last three months, which helps identify stocks with recent momentum.
7. Pocket Pivot Detection with Visual Markers:
Pocket pivots are a powerful bullish signal, especially relevant for swing trading. Pocket pivots are crucial for swing trading and are effective across all timeframes. The indicator marks pocket pivots with circular markers below the price bar:
a. 10-Day Pocket Pivot: Identified when the volume exceeds the maximum selling volume of the last 10 days. These are marked with a blue circle.
b. 5-Day Pocket Pivot: Identified when the volume exceeds the maximum selling volume of the last 5 days. These are marked with a green circle.
The Swing Trend Analyzer is designed to provide traders with the tools they need to succeed in swing and positional trading. Whether you're looking for precise entry points, analyzing relative strength, or identifying key price contractions, this indicator has you covered. Experience the power of advanced technical analysis with the Swing Trend Analyzer and take your trading to the next level.
Get intraday extended dataIf you have interacted with Pine for some time, you probably noticed that if you are using DWM resolutions, you will not be able to obtain complete data from the extended intraday ticker using the usual functions request.security() and request.security_lower_tf(). This is quite logical if you understand the principle of mapping data from the secure context to the main one. The main reason is the different opening and closing times of the intraday data with extended clocks and DWM.
This script visualizes one of the approaches to solving this problem. I will briefly describe the principle of operation:
For example, take the symbol NASDAQ:AAPL.
Our main resolution is 1D, but we want to receive extended data from a 4-hour interval. The daytime bar opens at 09:30 and closes at 16:00. The same period at a resolution of 4 hours covers 4 bars:
04:00 - 08:00
08:00 - 12:00
12:00 - 16:00
16:00 - 20:00
So, if we use the request.security_lower_tf() function, we will not get the bars 04:00 - 08:00 and 16:00 - 20:00 because their closing times are not within the range of the main context (09:30 - 16:00).
If we use the request.security() function, we will get the bar 04:00 - 08:00, but we will not get the bar 16:00 - 20:00 because its closing time will be in the future, and it is impossible to get values from the future.
So, what I propose is to use the upgraded request.security() function, inside which another function will be executed, storing all the bars in a var array and putting the post-market bars in the array of the next day. Next, all we have to do is isolate these bars, place them in the previous array, and remove them from the current one.
I visualized the received data simply as text, but you can do it differently using the proposed mechanism.
In order for everything to work, you need to fill in the inputs correctly:
"Symbol for calculate" - This is the symbol from which we will receive extended data.
"Intraday data period" - The period from which we will receive extended data.
"Specify your chart timeframe here" - This is an input that allows you to operate with data from the main context while being inside the secure one. Enter your current chart timeframe here. If there are problems, a warning will appear informing you about this.
If you want to use these developments, take the get_data() function, it will return:
1. the number of past items - it is useful for outputting values in real time, because it is not possible to simply delete them there, because they will always arrive and it is easier to make a slice with an indentation for this number
2. cleared object of type Inner_data containing arrays of open, high, low, close, volume, time, time_close intraday data
3. its same value from the previous bar
Range Average Retest Model [LuxAlgo]The Range Average Retest Model tool highlights setups from the range average retest entry model, a model using the retest of the average between two opposite swing points as an entry.
This tool uses long-term volatility coupled with user-defined multipliers to filter out swing areas and set take profit and stop loss levels for all trades.
Key features include:
Draw up to 165 swing areas and their associated trades
Filter out swing areas using Pivot Length , Selection Mode and Threshold parameters
Filter out trades with Maximum Distance and Minimum Distance parameters
Enable or disable swing areas and select default colors
Enable or disable overlapping trades and change the default colors for Take Profit and Stop Loss zones
🔶 USAGE
The "Range Average Retest Model" is an entry model that enters a position when the price retests the average made between two swing points. Users can determine the period of the detected swing points from the "Pivot Length" setting.
The conditions for long or short trades, regardless of whether the swing area is bullish or bearish, are as follows:
Long positions: the current bar close is below the swing area average and the last bar close was above it.
Short positions: the current bar close is above the swing area average price and the last bar close was below it.
Each trade is displayed on the chart with a line connecting it to its swing area highlighting the range average, a green area for the take profit, and a red area for the stop loss.
Both the Take Profit and Stop Loss levels are calculated by applying your own multiplier in the settings panel to the long-term volatility measure, in this case, the average true range over the last 200 bars.
Trades will remain open until they reach either the Stop Loss or Take Profit price levels.
🔹 Filtering Swing Areas
The daily chart of the Nasdaq-100 futures (NQ) with pivot length 2 and bullish selection mode: it only detects bullish swing areas, but they are smaller and more numerous.
Traders can manipulate the behavior of the swing areas from the settings panel.
The Selection mode will filter areas by bias: it will detect bullish areas, bearish areas, or both.
The Threshold parameter is applied to the long-term volatility to filter out areas where the average prices are too close together; the higher the value, the greater the difference between the average prices must be.
🔹 Trades
3-minute chart of the Nasdaq-100 futures (NQ) with pivot length 5, bearish selection mode maximum distance 4, and stop loss 2: many trades detected with very asymmetric risk/reward.
The behavior of the trades is also manipulated from the settings panel.
The maximum and minimum distance parameters specify the number of bars a trade must be away from a swing area.
The Take Profit and Stop Loss parameters are applied to the long-term volatility to obtain their respective price levels.
🔹 Overlapping Trades
Same chart as before, but with overlapping trades: messy, right?
By default the tool does not show overlapping trades, this allows for a cleaner chart.
In the settings panel traders can enable overlapping mode, in which case the tool will show all available trades.
Traders must be aware that the chart can be very crowded.
🔶 SETTINGS
🔹 Swings
Pivot Length: How many bars are used to confirm a swing point. The larger this parameter is, the larger and fewer swing areas will be detected.
Selection Mode: Swing area detection mode, detect only bullish swings, only bearish swings, or both.
Threshold: Swing area comparator. This threshold is multiplied by a measure of volatility (average true range over the last 200 bars), for a new swing area to be detected it must have an average level that is sufficiently distant from the average level of any untouched swing area, this parameter controls that distance.
🔹 Trades
Maximum distance: Maximum distance allowed between a swing area and a trade.
Minimum distance: Minimum distance allowed between a swing area and a trade.
Take profit: The size of the take profit - this threshold is multiplied by a measure of volatility (the average true range over the last 200 bars).
Stop loss: The size of the stop-loss: this threshold is multiplied by a measure of volatility (the average true range over the last 200 bars).
SentinelsSentinels is a playful variation on combining different mean averages (MA).
A cross of 2 user-defined MA's (MA 1 & MA 2) initiates the drawing of a sentinel with tentacles, which, on its turn can provide potential support/resistance or entry/stop-loss/take profit zones.
The type of each MA (MA 1, MA 2 and tentacles) can be chosen from following options:
SMA
EMA
SMMA (RMA)
HullMA
WMA
VWMA
DEMA
TEMA
🔹 Examples
Fast & slow MA: HullMA, Tentacles: TEMA
Fast & slow MA: SMA, Tentacles: WMA
Fast & slow MA: WMA, Tentacles: WMA
Fast & slow MA: TEMA, Tentacles: TEMA
🔶 DETAILS
🔹 Head-Body
The head-body is formed by:
the slow MA when there is a crossunder.
the fast MA when there is a crossover.
The color of the head-body is a gradient which can be set. The color of the tentacles (non-gradient) can be set as well.
The head-body of the sentinel will be visible for maximum 60 bars after a cross has occured.
🔹 Tentacles
The length of the 'Tentacles' is calculated by taking the difference between the length of MA 1 and MA 2 , and dividing this by 6 -> diff .
The length of each tentacle is MA 1 + a multiple of diff .
The tentacles will only begin to show from 2 bars after a cross.
Each tentacle will be shown maximum x bars after the cross:
Tentacle 1: 15 bars
Tentacle 2: 20 bars
Tentacle 3: 25 bars
Tentacle 4: 30 bars
Tentacle 5: 35 bars
Tentacle 6: 40 bars
🔹 Switch lengths
By switching lengths the colors get switched too.
Note that the tentacles act differently though.
In that way, this can be an extra option to visualize the tentacles .
🔶 Happy Holidays
Merry Christmas and a Happy New Year!
Market Trend Indicator (FinnoVent)The Market Trend Indicator (FinnoVent) is a comprehensive trading tool designed to provide clear visual cues for market trends on TradingView charts. This indicator combines the principles of Exponential Moving Averages (EMAs), Bollinger Bands, the Average Directional Index (ADX), and the Relative Strength Index (RSI) to offer a nuanced view of market movements.
How It Works:
Trend Identification with EMAs: The indicator uses two EMAs (3-period and 30-period) to identify the primary trend. An upward trend is signaled when the 3-period EMA crosses above the 30-period EMA, while a downward trend is indicated when the 3-period EMA crosses below the 30-period EMA.
Sideways Market Detection: To identify sideways trends, the indicator employs Bollinger Bands, ADX, and RSI. A sideways (or consolidating) market condition is identified when:
The price is between the middle 60% of the Bollinger Bands (avoiding the top and bottom 20%).
The ADX is below 30, indicating a lack of a strong trend.
The RSI is between 40 and 60, suggesting a neutral market momentum.
Visual Representation:
Bar Colors: The indicator colors the price bars on the chart based on the identified trend:
Green Bars: Indicate an upward trend.
Red Bars: Indicate a downward trend.
Grey Bars: Indicate a sideways or consolidating market.
How to Use:
Trend Following: Use the colored bars as a guide for trend following. Green bars suggest a potential entry for a long position, while red bars may indicate opportunities for short positions.
Sideways Market Caution: Grey bars signal a sideways market. In such conditions, traders might exercise caution and avoid trend-following strategies, as the market lacks a clear direction.
Complementary Analysis: While the Market Trend Indicator (FinnoVent) provides valuable insights, it's recommended to use it in conjunction with other forms of analysis (like fundamental analysis, other technical indicators, or price action) for comprehensive decision-making.
Suitable for: This indicator is versatile and can be applied to various timeframes and trading instruments, including stocks, forex, commodities, and indices.
Important Notes:
The indicator is designed to minimize repainting but always consider the latest data for the most accurate analysis.
Like all indicators, it is not foolproof. It works best when combined with a solid trading plan and risk management strategies.
Volume Spike Analysis [Trendoscope]The Volume Spike Analysis is designed to detect volume spikes in a trading instrument's data. Rather than relying on the traditional method of comparing volume to its moving average, this indicator employs a distinctive approach to ensure accuracy.
Methodology
Historical Volume Comparison: The indicator first assesses the current bar's volume, say 100k, and looks back historically to determine the last instance when the volume was equal to or exceeded this level.
High Volume Bar Gap Calculation: The intervals or gaps between high volume bars are recorded. These gaps help in determining how common or rare a particular volume spike is.
Spike Magnitude Determination: Here, the extent of the volume spike is gauged in relation to either the median, lowest, or average volume of the intervening bars. The reference metric (median, lowest, or average) can be chosen by the user through the "Volume Spike Reference" input parameter.
Spike Percentile Analysis: The calculated spike magnitude (as a percentage of the reference volume) is cataloged. This collection aids in understanding the relative intensity of the current volume spike when compared to previous spikes.
Threshold Comparisons: The indicator then compares the calculated "High Volume Distance Percentile" to the "Last High Volume Distance Percentile" and the "Volume Spike Percentile" to the "Volume Spike Threshold". If these values surpass the preset thresholds, the current bar is flagged as a high volume or volume spike bar.
Visual Components
Bar Highlighting : High volume or volume spike bars are accentuated with bright colors for easy identification. All other bars have increased transparency to reduce visual clutter.
Distance from the High Volume Bar: Indication of the number of bars since the last high volume occurrence and its respective percentile.
Comparative Factors: A factor representing the magnitude by which the current volume surpasses the lowest, median, and average volumes.
Lowest, Median and Average Volumes: The lowest and median volumes are indicated by tooltips on lines marking the respective bars. The average volume is depicted as a dotted horizontal line, with a triangle marker tooltip revealing its value.
This indicator offers a nuanced analysis of volume spikes, aiding traders in making more informed decisions.
Supply Demand Profiles [LuxAlgo]The Supply Demand Profiles is a charting tool that measures the traded volume at all price levels on the market over a specified time period and highlights the relationship between the price of a given asset and the willingness of traders to either buy or sell it, in other words, highlights key concepts as significant supply & demand zones, the distribution of the traded volume, and market sentiment at specific price levels within a specified time period, allowing traders to reveal dominant and/or significant price levels and to analyze the trading activity of a particular user-selected range.
In other words, this tool highlights key concepts as significant supply & demand zones, the distribution of the traded volume, and market sentiment at specific price levels within a specified time period, allowing traders to reveal dominant and/or significant price levels and to analyze the trading activity of a particular user-selected range.
Besides having the tool as a combo tool, the uniqueness of this version of the tool compared to its early versions is its ability to benefit from different volume data sources and its ability to use a variety of different polarity methods, where polarity is a measure used to divide the total volume into either up volume (trades that moved the price up) or down volume (trades that moved the price down).
🔶 USAGE
Supply & demand zones are presented as horizontal zones across the selected range, hence adding the ability to visualize the price interaction with them
By default, the right side of the profile is the volume profile which highlights the distribution of the traded activity at different price levels, emphasizing the value area, the range of price levels in which the specified percentage of all volume was traded during the time period, and levels of significance, such as developing point of control line, value area high/low lines, and profile high/low labels
The left side of the profile is the sentiment profile which highlights the market sentiment at specific price levels
🔶 DETAILS
🔹 Volume data sources
The users have the option to select volume data sources as either 'volume' (regular volume) or 'volume delta', where volume represents all the recorded trades that occur at a given bar and volume delta is the difference between the buying and the selling volume, that is, the net demand at a given bar
🔹 Polarity methods
The users are able to choose the methods of how the tool to take into consideration the polarity of the bar (the direction of a bar, green (bullish) or red (bearish) bar) among a variety of different options, such as 'bar polarity', 'bar buying/selling pressure', 'intrabar (chart bars at a lower timeframe than the chart's) polarity', 'intrabar buying/selling pressure', and 'heikin ashi bar polarity'.
Finally, the interactive mode of the tool is activated, as such users can easily modify the intervals of their interest just by selecting the indicator and moving the points on the chart
🔶 SETTINGS
The script takes into account user-defined parameters and plots the profiles and zones
🔹 Calculation Settings
Volume Data Source and Polarity: This option is to set the desired volume data source and polarity method
Lower Timeframe Precision: This option is applicable in case any of the 'Intrabar (LTF)' options are selected, please check the tooltip for further details
Value Area Volume %: Specifies the percentage for the value area calculation
🔹 Presentation Settings
Supply & Demand Zones: Toggles the visibility of the supply & demand zones
Volume Profile: Toggles the visibility of the volume profile
Sentiment Profile: Toggles the visibility of the sentiment profile
🔹 Presentation, Others
Value Area High (VAH): Toggles the visibility of the VAH line and color customization option
Point of Control (POC): Toggles the visibility of the developing POC line and color customization option
Value Area Low (VAL): Toggles the visibility of the VAL line and color customization option
🔹 Supply & Demand, Others
Supply & Demand Threshold %: This option is used to set the threshold value to determine supply & demand zones
Supply/Demand Zones: Color customization option
🔹 Volume Profile, Others
Profile, Up/Down Volume: Color customization option
Value Area, Up/Down Volume: Color customization option
🔹 Sentiment Profile, Others
Sentiment, Bullish/Bearish: Color customization option
Value Area, Bullish/Bearish: Color customization option
🔹 Others
Number of Rows: Specify how many rows the profile will have
Placment: Specify where to display the profile
Profile Width %: Alters the width of the rows in the profile, relative to the profile range
Profile Price Levels: Toggles the visibility of the profile price levels
Profile Background, Color: Fills the background of the profile range
Value Area Background, Color: Fills the background of the value area range
Start Calculation/End Calculation: The tool is interactive, where the user may modify the range by selecting the indicator and moving the points on the chart or can set the start/end time using these options
🔶 RELATED SCRIPTS
Volume-Profile
Volume-Profile-Maps
Volume-Delta
Are stop orders making money? [yohtza]Who is this indicator for and what does it do?
This is an indicator that helps price action traders in determining the strength of the trend and potential counter trend traps that present themselves during the move. It highlights the background of the bar at which counter trend traders that trade with stop orders (breakout entries) were able to achieve the same amount of reward as was their risk for that trade.
What is it based on?
When there is a strong trend in effect, the counter trend traders are unable to buy above(in bear trend) or sell below (in bull trend) a bar with a stop order and get an equal reward for the risk they are taking.
The first time counter trend traders are able to buy and make money in bear or sell and make money in bull it is a warning sign that market is likely transitioning into trading range phase of the market cycle.
Another application of the indicator is for discovering potential traps. If market comes very close to the take profit level of counter trend traders and reverses, they will usually try to get out with as much profit or as small of a loss as possible and that will often create a fast move (also called giving up) and a good with trend entry.
How does it work?
The indicator is using exponential moving average as a filter for when the market is trending and then scans for signals where counter trend traders enter. Next it looks if the stoploss or profit target was hit for that trade. If the profit target was hit it draws a box around the bar on which the traders entered, the box height is based on stoploss and profit target price levels.
Indicator inputs
- Scan for doji signal bars
When this option is selected, bars that have small bodies (less than 50% of their height) are also included as bars on which counter traders enter. If the option is not selected it only looks for bull trend bars (bodies are greater than 50% of their height) below the moving average and bear trend bars above the moving average.
- Border and background colors and border style
It is possible to select different colors and chose between solid, dashed and dotted borders
- Ema period
Default setting is 20 bar exponential moving average but feel free to use which you prefer
- Tick value
This is the value of the minimal movement of the chart you are trading on. For example for S&P 500 E-mini futures the value is 0.25 and that is the default setting.
Volume Delta Compare [Ticks ~ LTF data]
The "Volume Delta Compare " publication shows 2 different techniques to show into-depth details of Volume, using Tick and Lower-Time-Frame (LTF) data.
🔶 USAGE
Check for divergences between price and volume movement
Check details (why and when a ΔV developed)
Or if you want to see a lot of data stacked on each other )
🔶 CONCEPTS
🔹 Tick vs. LTF data
a Tick is an measure of (upward or downward) movement in price OR volume.
We can use this data by using varip in the code.
Advantage:
• Detail, detail, detail
• Accurate, per tick
Disadvantage:
• Only realtime
• Can reset 'easily' -> loss of data
• Will reset when settings are changed
LTF data, through the request.security_lower_tf() function, measures the OHLCV data per LTF bar
Advantage:
• Access to history when loading a chart
• No 'loss' of data when chart resets
Disadvantage:
• Less detailed
• Less accurate
This script makes it possible to compare the 2 techniques and enables you to show different values.
🔹 Values
There are mainly 3 important values:
• UP volume (uV): volume when price rises
• DOWN volume (dV): volume when price falls
• NEUTRAL volume (nV): volume when price stays the same
From this, additional data is calculated:
• Volume Delta (ΔV): uV minus dV
• Cumulative Delta Volume (cΔV): sum of ΔV
One typical nV is at open: at that moment there isn't a base price to compare with,
so when the first trade doesn't fully fill the first supply (up or down), volume will rise, but price just is 'open', no movement -> no uV or dV.
• Tick data: every volume changement per tick will be added to the concerning variable (uV, dV or nV)
• LTF data: every volume changement of each bar will be added to the concerning variable (uV, dV or nV)
-> this can easily give a difference, for example (Tick vs. 1 minute LTF), when most of the ticks caused a rise of price, but at the last few seconds, a few ticks causes the close to come below open, with Tick data this could give more UP Volume, while LTF data will show 1 value of DOWN Volume.
🔶 EXAMPLES
🔹 Details
In these examples you can see:
• grey line: Total volume (higher precision)
• UP/DOWN/NEUTRAL Volume
• green columns: uV
• orange columns: dV
• blue pillars: nV
• coloured stepline: reflects ΔV
• close > open and positive ΔV -> green
• close > open but negative ΔV -> fuchsia
• close < open and negative ΔV -> orange
• close < open but positive ΔV -> bright lime green
• Right side -> indication of used data (Tick/LTF data) + last ΔV
• labels (can be disabled)
Above 0 (only with Tick data): data from EVERY tick (ΔV ):
• first the amount of Volume (0 when the amount is very minimal)
• between brackets: price movement
Below 0:
• Σ V: sum of uV, dV and nV, for that bar
• Σ up: sum of uV for that bar
• Σ dn: sum of dV for that bar
• Σ nt: sum of nV for that bar
• Σ P: sum of price movement, for that bar (only at Tick data)
(At the right you'll see a new bar just started)
Here is a detail of the first second at opening:
🔹 Cumulative Volume Delta (CVD)
Difference CVD based on Tick vs. LTF data :
(horizontal lines added for reference)
🔶 FEATURES
🔹 Minimal plotting of na values
Data window and status line only show what is applicable (tick or LTF data) to diminish clutter of data values:
The Tick option has a label above 0 which includes details of every Tick.
If data is added every tick, that label on a 10 minute chart will be filled beyond limitations pretty quickly (string max_length = 4096 limit).
To prevent the script stopping to execute, at a certain limit, this label will stop updating and show the message "Too much data".
The label below the 0-line won't reach that limit, so it will keep on updating.
Timeframes closer to 1 second will have less risk to reach that 4096 limit. Details will remain to show in this case.
🔹 Automatic label colour adaption when changing between dark/light mode values
Label background/text-colour will adapt according to the dark/light-mode by using chart.fg_color / chart.bg_color
🔶 SETTINGS
🔹 Data from: Ticks vs. LTF data
🔹 LTF: Lower Time-Frame for when LTF option is chosen: 1, 5, 10, 15, 30 Seconds or 1 minute
🔹 Also start when bar already has data: only for tick data -> when disabled calculations only start on a new bar.
🔹 CVD, Only show Cumulative Delta Volume: enable to just display CVD
🔹 Colours: colour at the right is for price/volume direction divergences
🔹 Label: choose what you want to display + size labels
🔹 0-line: The label under the 0-line sometimes goes below the chart. this can be adjusted with this setting.
Devs Cumulative Delta candles with Moving Average and DivergenceDELTA = BUY Volume – SELL Volumes
Delta = Positive => Aggressiveness on the Buy side
Delta = Negative => Aggressiveness on the Sell side
If delta is greater than 0 you have more buying than selling pressure. If delta is less than 0, you have more selling than buying pressure.
When there is more Buying than Selling (Delta=Positive), the price candle is Green and when there is more Selling than Buying (Delta=Negative), the price candle is Red. We use delta to understand the relationship between buying or selling pressure and price.
Let’s imagine a price bar that reached the low for the day but delta was actually positive and the bar closed higher than it opened.
In simple terms we can describe this as:
Price made a new low
The bar closed higher
Delta demonstrated more buying than selling : Volume delta is a key metric to understand when making trading decisions based on volume and order flow. However, on its own it can be too much information to interpret quickly when trading in a volatile market.
What are Delta Bars?
Delta Bars is a candlestick representation of Delta. In other words, it has an Open, High (also called Delta Max), Low (also called Delta Min) and Close point in every candle (1min, 5min, 30min etc.)
The Delta Open in every candle is always 0
The Delta Close is the cumulative BUY less cumulative SELL at the close if the candle
The Delta Max is the maximum value of Delta during the candle session (lowest Delta Max possible = 0)
The Delta Min is the minimum value of Delta during the candle session (highest Delta Min possible = 0) The Delta bars are uncorrelated to the Tick Multiplier of the symbol.
Generally you would expect Price to move UP when Delta is positive and Price to move DOWN when Delta is negative. So what happens when the above rule is not followed. We have Divergence
Divergence:
Any two parameters that should be in sync (Price and Delta in this case) towards supporting a particular move (Up or Down) but are in reality not (in sync) form a Divergence
Cumulative volume delta takes the delta values for every bar and successively adds them together to visually provide as seen in the chart.
While volume delta is great for comparing delta bar to bar, cumulative volume delta is useful when determining buying or selling pressure at different price levels such as swing highs or lows. I just gave you a details regarding delta and delta bars.
What details would you see in the indicator??
When you apply this indicator on the chart, you will find the CD(Cumulative delta) candles, which move up and down the way price moves in a chart. Moreover, in case of a divergence, you will find a change in colour of delta candles. If the price is still green but the delta is negative, you will find a bullish divergence, marked with Yellow colour and if the price is red and you have a positive delta, you will have a bearish divergence, marked with blue coloured delta candle. Usually it has been seen that a repeated divergence generally depicts end of a trend or slow down of a trend.
Moreover, I have placed 2 moving averages in the script which you can customize as per your needs. I prefer 20 and 50 day MA for better accuracy as most reversals happen at 20 and 50 day MA.
This indicator works in almost all index, stocks, currencies excepting few where the volume past is invisible. This indicator purely works taking the buying and selling volume into consideration. Sometimes when you change the timeframe in chart, you may have to manually adjust for the display in chart.