CRT candles Multi-Timeframe Intrabar(open Source ) # CRT candles Multi-Timeframe Intrabar Indicator( open source )
This advanced indicator visualizes Candle Range Theory (CRT) across multiple timeframes, providing traders with a comprehensive view of market structure and potential high-probability setups.
## Key Features:
- Supports 7 timeframes: 30 minutes, 1 hour, 2 hours, 4 hours, daily, weekly, and monthly
- Customizable color schemes for each timeframe
- Options to display mid-level (50%) lines for each range
- Bullish and bearish touch detection with customizable label display
- End-of-line labels for easy identification of CRT levels
- Flexible alert system for touch detections on each timeframe
- Adjustable minimum and maximum bar count for range validity
- Options for wick touch and body touch detection
## How It Works:
The indicator plots CRT ranges for each selected timeframe, identifying potential accumulation, manipulation, and distribution phases. It detects when price touches these levels, providing visual cues and optional alerts for potential trade setups.
snapshot
## Customization:
Users can fine-tune the indicator's appearance and functionality through various input options, including:
- Toggling timeframes on/off
snapshot
- Adjusting colors for range lines and mid-levels
- Controlling label display and count
- Setting alert preferences
- Adjusting line widths and label offsets
## Usage:
This indicator is designed for traders familiar with Candle Range Theory and multi-timeframe analysis. It can be used to identify potential entry and exit points, confirm trends, and spot potential reversals across different timeframes.
## Note:
This indicator is for educational and informational purposes only. Always combine with other forms of analysis and proper risk management when making trading decisions.
## Credits:
Inspired by Romeo's Candle Range Theory and developed to provide a comprehensive multi-timeframe analysis tool.
Trend Analysis
[MAD] Fibonacci Bands with SmoothingHi, this is just an easy script, nothing special, it was a request from a community member and was finished in just 40 minutes :D
This indicator offers a approach to tracking market price movements by utilizing Fibonacci-based levels combined with customizable smoothing options for both the bands and the high/low values.
Key Features:
Customizable Moving Averages: Choose from a variety of smoothing methods, including SMA, EMA, WMA, HMA, VWMA, and advanced Ehlers-based methods.
This allows for flexible adaptation to different assets.
Multiple Fibonacci Band Multipliers: The user can define six different multipliers for both the upper and lower Fibonacci bands, allowing for granular customization of the indicator. The middle line serves as the central reference, and the multipliers extend the bands outward based on price range dynamics.
High/Low Smoothing: In addition to smoothing the Fibonacci bands, users can apply smoothing to the high and low prices that form the basis for calculating the Fibonacci bands. This ensures that the indicator responds smoothly to market movements, reducing noise while capturing key trends.
Forward Shift Option: Allows for projecting the bands into the future by shifting the calculated levels forward by a user-specified number of periods. This feature is particularly useful for those interested in anticipating price actions and future trends.
Visual Enhancements: The indicator features filled regions between bands to clearly visualize the zones of price movement. The fills between the bands offer insight into potential support and resistance zones, based on price levels defined by the Fibonacci ratios.
How It Works:
The indicator uses the highest and lowest closing prices over a specified lookback period to establish a price range. Based on this range, it calculates the middle line (0.5 level) and applies user-defined Fibonacci multipliers to generate both upper and lower bands. Users have control over the smoothing method for both the high/low prices and the bands themselves, allowing for an adaptive experience that can be tailored to different timeframes or market conditions.
For visualization, areas between the upper and lower bands are filled with distinct colors, providing an intuitive view of the potential price zones where the market might react or consolidate.
These fills highlight the zones created by the Fibonacci bands, helping users identify critical market levels with ease.
have fun
p.s.: @frankchef hope that suits your needs & expectations ;-)
Trend Following Regression CloudTrend Following Regression Cloud Indicator
The Trend Following Regression Cloud is a versatile trading tool designed to help you effortlessly identify the market's prevailing trend. By analyzing price movements over multiple time frames, it provides a clear visual representation of whether the market is trending upwards or downwards.
How It Works:
- Adaptive Analysis: The indicator calculates linear regression lines over various periods ranging from short-term to long-term (e.g., 10, 20, 50, up to 500 periods). This means it adapts quickly to recent market changes, capturing new trends as they develop.
- Noise Reduction: By comparing and weighting the slopes of these regression lines, it filters out insignificant price fluctuations (market noise). This ensures that the signals you receive are more reliable and less prone to false alarms.
- Cloud Calculation: The cloud is generated by first calculating the slopes of multiple linear regression lines over different lengths. The differences between the slopes of shorter-term and longer-term regressions are then computed and weighted by their respective lengths. By summing up these weighted differences, the indicator produces a "total distance" value. This value is applied to a baseline (such as a 100-period simple moving average) to create the cloud line. The area between the baseline and the cloud line is filled, and its color changes based on whether the total distance is positive or negative, providing a visual cue of the market's trend direction.
- Visual Representation: The indicator plots two lines—a base line and a cloud line—creating a shaded area (the "cloud") between them. The color of this cloud changes based on market conditions:
- Green Cloud: Indicates that short-term trends are stronger than long-term trends, suggesting an upward market movement. This could be a good time to consider buying.
- Red Cloud: Signifies that the market may be trending downwards, as long-term trends overpower short-term ones. This could be an opportune moment to consider selling.
Session Range Breakouts With Targets [AlgoAlpha]⛓️💥Session Range Breakouts With Targets 🚀
Introducing the "Session Range Breakouts With Targets" indicator by AlgoAlpha, a powerful tool for traders to capitalize on session-based range breakouts and identify precise target zones using ATR-based calculations! Whether you trade the Asian, American, European, or Oceanic sessions, this script highlights key breakout levels and targets that adapt to market volatility, ensuring you're always prepared for those crucial price movements. 🕒📊
Session-based Trading : The indicator highlights session-specific ranges, offering clear breakouts for Asian, American, European, Oceanic, and even custom sessions 🌍.
Adaptive Volatility Zones : Uses ATR to determine dynamic zone widths, filtering out fakeouts and adjusting to market conditions ⚡.
Precise Take-Profit Targets : Set multiple levels of take-profits based on ATR multipliers, ensuring you can manage both aggressive and conservative trades 🎯.
Customizable Appearance : Tailor the look with customizable colors for session highlights and breakout zones to fit your chart style 🎨.
Alerts on Key Events : Built-in alert conditions for breakouts and take-profit hits, so you never miss a trading opportunity 🔔.
🚀 Quick Guide to Using the Indicator
🛠 Add the Indicator : Add the indicator to favorites by pressing the star icon. Choose your session (Asia, America, Europe, Oceana, or Custom) and adjust the ATR length, zone width multiplier, and target multipliers to suit your strategy.
📊 Analyze Breakouts : Watch for the indicator to plot upper and lower range boxes based on session highs and lows. Price breaking through these boxes will signal a potential entry.
📈 Monitor Targets : Track bullish and bearish targets as price moves, with up to three take-profit levels based on ATR multipliers.
🔔 Set Alerts : Enable alerts for session breakouts or when price hits your designated take-profit targets.
🔍 How It Works
This script operates by identifying session-specific ranges based on highs and lows from the beginning of the selected session (Asia, America, Europe, or others). After a user-defined wait period (default: 120 bars), it calculates the highest and lowest points and creates upper and lower zones using the Average True Range (ATR) to adapt to market volatility. If the price breaks above or below these zones, it is identified as a breakout, and the script dynamically calculates up to three take-profit targets for both bullish and bearish scenarios using an ATR multiplier. The indicator also includes alerts for breakouts and take-profit hits, providing real-time trading signals.
Unlock the Power of Seasonality: Monthly Performance StrategyThe Monthly Performance Strategy leverages the power of seasonality—those cyclical patterns that emerge in financial markets at specific times of the year. From tax deadlines to industry-specific events and global holidays, historical data shows that certain months can offer strong opportunities for trading. This strategy was designed to help traders capture those opportunities and take advantage of recurring market patterns through an automated and highly customizable approach.
The Inspiration Behind the Strategy:
This strategy began with the idea that market performance is often influenced by seasonal factors. Historically, certain months outperform others due to a variety of reasons, like earnings reports, holiday shopping, or fiscal year-end events. By identifying these periods, traders can better time their market entries and exits, giving them an advantage over those who solely rely on technical indicators or news events.
The Monthly Performance Strategy was built to take this concept and automate it. Instead of manually analyzing market data for each month, this strategy enables you to select which months you want to focus on and then executes trades based on predefined rules, saving you time and optimizing the performance of your trades.
Key Features:
Customizable Month Selection: The strategy allows traders to choose specific months to test or trade on. You can select any combination of months—for example, January, July, and December—to focus on based on historical trends. Whether you’re targeting the historically strong months like December (often driven by the 'Santa Rally') or analyzing quieter months for low volatility trades, this strategy gives you full control.
Automated Monthly Entries and Exits: The strategy automatically enters a long position on the first day of your selected month(s) and exits the trade at the beginning of the next month. This makes it perfect for traders who want to benefit from seasonal patterns without manually monitoring the market. It ensures precision in entering and exiting trades based on pre-set timeframes.
Re-entry on Stop Loss or Take Profit: One of the standout features of this strategy is its ability to re-enter a trade if a position hits the stop loss (SL) or take profit (TP) level during the selected month. If your trade reaches either a SL or TP before the month ends, the strategy will automatically re-enter a new trade the next trading day. This feature ensures that you capture multiple trading opportunities within the same month, instead of exiting entirely after a successful or unsuccessful trade. Essentially, it keeps your capital working for you throughout the entire month, not just when conditions align perfectly at the beginning.
Built-in Risk Management: Risk management is a vital part of this strategy. It incorporates an Average True Range (ATR)-based stop loss and take profit system. The ATR helps set dynamic levels based on the market’s volatility, ensuring that your stops and targets adjust to changing market conditions. This not only helps limit potential losses but also maximizes profit potential by adapting to market behavior.
Historical Performance Testing: You can backtest this strategy on any period by setting the start year. This allows traders to analyze past market data and optimize their strategy based on historical performance. You can fine-tune which months to trade based on years of data, helping you identify trends and patterns that provide the best trading results.
Versatility Across Asset Classes: While this strategy can be particularly effective for stock market indices and sector rotation, it’s versatile enough to apply to other asset classes like forex, commodities, and even cryptocurrencies. Each asset class may exhibit different seasonal behaviors, allowing you to explore opportunities across various markets with this strategy.
How It Works:
The trader selects which months to test or trade, for example, January, April, and October.
The strategy will automatically open a long position on the first trading day of each selected month.
If the trade hits either the take profit or stop loss within the month, the strategy will close the current position and re-enter a new trade on the next trading day, provided the month has not yet ended. This ensures that the strategy continues to capture any potential gains throughout the month, rather than stopping after one successful trade.
At the start of the next month, the position is closed, and if the next month is also selected, a new trade is initiated following the same process.
Risk Management and Dynamic Adjustments:
Incorporating risk management with this strategy is as easy as turning on the ATR-based system. The strategy will automatically calculate stop loss and take profit levels based on the market’s current volatility, adjusting dynamically to the conditions. This ensures that the risk is controlled while allowing for flexibility in capturing profits during both high and low volatility periods.
Maximizing the Seasonal Edge:
By automating entries and exits based on specific months and combining that with dynamic risk management, the Ultimate Monthly Performance Strategy takes advantage of seasonal patterns without requiring constant monitoring. The added re-entry feature after hitting a stop loss or take profit ensures that you are always in the game, maximizing your chances to capture profitable trades during favorable seasonal periods.
Who Can Benefit from This Strategy?
This strategy is perfect for traders who:
Want to exploit the predictable, recurring patterns that occur during specific months of the year.
Prefer a hands-off, automated trading approach that allows them to focus on other aspects of their portfolio or life.
Seek to manage risk effectively with ATR-based stop losses and take profits that adjust to market conditions.
Appreciate the ability to re-enter trades when a take profit or stop loss is hit within the month, ensuring that they don't miss out on multiple opportunities during a favorable period.
In summary, the Ultimate Monthly Performance Strategy provides traders with a comprehensive tool to capitalize on seasonal trends, optimize their trading opportunities throughout the year, and manage risk effectively. The built-in re-entry system ensures you continue to benefit from the market even after hitting targets within the same month, making it a robust strategy for traders looking to maximize their edge in any market.
Risk Disclaimer:
Trading financial markets involves significant risk and may not be suitable for all investors. The Monthly Performance Strategy is designed to help traders identify seasonal trends, but past performance does not guarantee future results. It is important to carefully consider your risk tolerance, financial situation, and trading goals before using any strategy. Always use appropriate risk management and consult with a professional financial advisor if necessary. The use of this strategy does not eliminate the risk of losses, and traders should be prepared for the possibility of losing their entire investment. Be sure to test the strategy on a demo account before applying it in live markets.
Directional Targets & POC TableThe "Directional Targets & POC Table" Pine Script™ is a comprehensive tool designed to help traders identify directional bias, potential price targets, and important levels like the Point of Control (POC). Additionally, it detects fair value gaps (FVGs) and order blocks, which are crucial concepts in Smart Money Concepts (SMC) trading. Here's an overview of its functionality:
1. Indicator Overview:
The script combines multiple technical tools into a single visual aid:
Directional Targets: Fibonacci-based upper and lower targets that provide a forecast of where the price might move.
Point of Control (POC): Midpoint of the daily range, displayed visually on the chart.
Fair Value Gaps (FVGs): Areas of imbalance in the market, potentially leading to price reversals.
Order Blocks: Areas where institutional traders might have entered large positions, potentially serving as support or resistance.
2. Key Features:
Directional Targets & POC Table:
A table is displayed in the top-right corner of the chart, showing:
Direction: Based on whether the price is above or below the POC.
Target ↑: The upper target, calculated using Fibonacci's 0.618 level, which acts as a potential resistance.
POC: The midpoint between the daily high and low, serving as the central level of interest.
Target ↓: The lower target, also calculated using the 0.618 Fibonacci level, which serves as potential support.
The table uses colors to make each level easily distinguishable, with green for bullish targets, red for bearish, and yellow for the POC.
POC Visualization:
The Point of Control (POC) is drawn on the chart as a box that stretches horizontally. It highlights the central price range where the highest volume or interest may have occurred, providing a key level for traders to watch.
The POC can act as a support or resistance area, with price frequently reacting at or near this level.
FVG Detection:
Fair Value Gaps are identified when there’s a price imbalance between two bars. These gaps occur when the high of one bar is lower than the low of a bar two periods earlier, or vice versa.
The script draws lines at the boundaries of these gaps, helping traders spot potential areas where the price may return to fill the gap.
If the price revisits and fills the gap, the FVG lines are automatically deleted, signaling the gap is no longer relevant.
Order Blocks Detection:
Bullish Order Blocks are detected when a strong bullish candle forms, where the close equals the high, and it’s higher than the previous bar’s low. This represents potential institutional buying interest.
Bearish Order Blocks are detected when a strong bearish candle forms, where the close equals the low, and it’s lower than the previous bar’s high, representing potential selling interest.
The order blocks are drawn as rectangles on the chart, marking significant price zones that may act as future support (bullish) or resistance (bearish).
3. Direction Determination:
The script calculates the daily high, low, and mid-point (POC). If the current price is above the POC, the market is deemed bullish; if it’s below, the market is bearish. If it’s near the POC, the market is considered neutral.
This directional bias is then displayed in the table, giving traders an easy way to assess whether they should be looking for long or short opportunities.
4. Use Case:
This script is particularly useful for traders who:
Want to identify key levels like the POC and potential price targets based on Fibonacci retracement.
Follow Smart Money Concepts (SMC) and need tools to detect FVGs and order blocks, which can signal areas of market imbalance or institutional involvement.
Need a simple visual aid to determine market direction and structure, helping them make informed trading decisions.
5. Additional Features:
The script is highly visual, providing both numeric information in a table and plotted elements (lines, boxes) directly on the chart.
The automatic detection and clearing of FVGs and order blocks make this tool dynamic and easy to follow.
The script helps identify areas where price might react, giving traders a roadmap to follow for potential entries, exits, or take-profit levels.
This indicator is designed for traders looking to incorporate both conventional and advanced concepts like Fibonacci targets, POC, and SMC principles (FVGs and Order Blocks) into their strategy.
Gann Square of 9Understanding the Gann Square of 9
Delve into the fascinating realm of W.D. Gann’s Square of 9, a tool that has intrigued traders for generations. As we explore the insights behind this unique structure, we’ll show you how our Gann Square of 9 Indicator can become a valuable asset in your trading toolkit.
The History of the Gann Square of 9
The story behind the Gann Square of 9 is as fascinating as the man who created it. W.D. Gann, a pioneering trader from the early 20th century, introduced a method that highlighted the connection between time and price. Rooted in ancient mathematics and geometry, Gann’s theory suggests that financial markets follow cyclical patterns, which are captured in the design of the Square of 9.
Core Principles of the Gann Square of 9
At its heart, the Gann Square of 9 is based on a numerical system that spirals outward from a central point. This unique arrangement allows traders to identify potential support and resistance levels in the market. Each number represents a possible pivot point, indicating shifts in market direction, aligned with Gann’s time-price equilibrium theory.
Applying the Gann Square in Market Analysis
The strength of the Gann Square of 9 lies in its ability to predict key moments in the market where significant price movements may occur. By utilizing our Gann Square of 9 Indicator, traders can easily pinpoint these crucial points, applying Gann’s principles to anticipate both market highs and lows. This section will guide you through practical applications of the Gann Square for making both short-term and long-term trading decisions.
Market Timing with the Gann Square of 9 Indicator
Unlock the potential of market timing and price prediction using our Gann Square of 9 Indicator. This versatile tool brings Gann’s trading insights into the modern world of finance. Here, you’ll find a detailed walkthrough on how to use the indicator to enhance your trading strategies.
Step-by-Step Guide
Input the Source Price: Open, High, Low, Close on specific Timeframe.
Set the Pip Value: Adjust the pip value according to the scale of your trades. The pip value helps define the precision of the price levels the calculator will generate.
Analyze Results: The generated grid displays a central value (your input price) surrounded by numbers representing possible support and resistance levels.
Use the Support and Resistance Levels: Below the grid, you’ll find specific support and resistance points. These are key price levels that can help you plan your trading strategy, such as entry or exit points.
Apply Gann's Trading Entries: At the bottom, suggested long and short trade entries, with targets and stop-loss levels, giving you essential tools for managing risk effectively.
By following these steps, you can effectively incorporate Gann’s time-tested techniques into modern market analysis. Our Gann Square of 9 Indicator simplifies complex calculations while offering powerful insights, helping you make informed trading decisions rooted in one of market analysis’s most influential theories.
Whether you’re new to Gann’s approach or a seasoned trader, this indicator is designed to provide valuable insights aligned with Gann’s original concepts while delivering a seamless user experience for today’s traders. With just a few clicks, you can transform market data into a geometric pattern of time and price, setting the stage for strategic trading based on the cyclical nature of financial markets.
SMC Liquidity ZonesThis script implements a "Smart Money Concept (SMC) Liquidity Zones" indicator in Pine Script™ for TradingView. It helps identify key liquidity zones, detect potential order blocks, and highlight market structure breaks. The script is designed for traders who use liquidity concepts and order blocks to make informed trading decisions based on price action.
1. Indicator Overview:
The "SMC Liquidity Zones" indicator plots areas of high and low liquidity and detects potential order blocks after price breaks these zones. It also highlights market structure shifts when price moves past the liquidity zones, allowing traders to identify potential areas of price reversal or continuation.
2. Key Features:
Liquidity Zones:
Liquidity zones are regions where price is likely to experience strong reactions due to resting orders (buy or sell).
The script identifies these zones by looking for pivot highs and pivot lows using a customizable lookback period.
High Liquidity Zone: Found at pivot highs, indicating a potential zone of sell-side liquidity (where sellers may overwhelm buyers).
Low Liquidity Zone: Found at pivot lows, indicating a potential buy-side liquidity zone (where buyers may absorb selling pressure).
Order Blocks Detection:
After a liquidity zone is broken, the script marks an order block.
Order Block: An area where institutional traders (smart money) might have placed large orders, and price is expected to return to this area for liquidity.
When the price closes above the high liquidity zone, the previous high is assumed to form the order block high, while the closing price forms the order block low.
Similarly, when price closes below the low liquidity zone, the previous low is assumed to form the order block low, and the closing price forms the order block high.
Market Structure Breaks:
Bullish Market Structure Break: Occurs when price closes above the high liquidity zone, potentially signaling an upward trend.
Bearish Market Structure Break: Occurs when price closes below the low liquidity zone, signaling a potential downward trend.
The script highlights these breaks by changing the chart’s background color to green for bullish structure and red for bearish structure.
Customizable Settings:
Pivot Lookback Period: You can set the lookback period to adjust how the indicator identifies pivot highs and lows.
Visibility of Liquidity Zones and Order Blocks: The script provides options to toggle the display of liquidity zones and order blocks on or off, allowing traders to customize the chart view.
3. Code Structure:
Liquidity Zones Identification:
The script uses the ta.pivothigh() and ta.pivotlow() functions to detect pivot points over a customizable lookback period.
These pivots mark significant areas of price where liquidity might rest, and the zones are displayed using dashed lines—red for high liquidity and green for low liquidity.
Order Block Logic:
When price breaks through a liquidity zone (either above or below), the script marks an order block. This block is a potential area where price could return, creating opportunities for entries or exits.
The order block is visualized as a blue box on the chart, indicating areas where smart money may have positioned their orders.
Market Structure Break Highlights:
The background color changes based on whether the market has broken into a bullish or bearish structure:
Bullish Market Structure: Green background.
Bearish Market Structure: Red background.
This visual cue helps traders quickly assess market sentiment and potential future price direction.
4. Use Case:
This indicator is particularly suited for traders following Smart Money Concepts (SMC), liquidity-based trading, or order block strategies. It helps them:
Identify potential price reaction zones (liquidity zones).
Spot order blocks, which are areas where institutional traders are likely to have placed large orders.
Recognize market structure shifts, signaling potential trend reversals or continuations.
Highlight trading opportunities based on liquidity breaks and market structure changes.
Dynamic Supertrend1. Indicator Overview:
This indicator is designed to plot dynamic support and resistance lines based on the Supertrend strategy, incorporating volatility through the Average True Range (ATR). The indicator changes direction when the price crosses certain thresholds, generating buy and sell signals. It also highlights the prevailing trend on the chart and can trigger alerts when a trend shift occurs.
2. Key Features:
ATR-Based Trend Calculation:
The script uses the Average True Range (ATR) to adjust the distance between the Supertrend line and the price. This ensures that the indicator adapts to market volatility.
The trend is determined by comparing the closing price to upper and lower boundaries, which are calculated by adding or subtracting a multiple of ATR to a source price (typically the average of the high and low prices).
Volatility Filter:
The script includes a function to check if the market is volatile by measuring the standard deviation of the closing price over the past 14 periods. This can potentially be used to conditionally enable or disable signals based on volatility.
Buy and Sell Signals:
When the price crosses above the Supertrend line, it indicates the start of an uptrend, triggering a "Buy" signal.
Conversely, when the price crosses below the Supertrend line, it signals a downtrend, triggering a "Sell" signal.
Both signals can be displayed on the chart with optional shapes (circles or arrows) and labels.
Highlighting Current Trend:
You can choose to highlight the trend with color shading. The areas above the price line are shaded green during an uptrend, while the areas below are shaded red during a downtrend. The highlighting is controlled through an input switch.
Customizable Inputs:
The script allows users to adjust the ATR period and multiplier, as well as control whether to show buy/sell signals and highlight trends.
The source price used for calculations can also be customized, providing flexibility for different market conditions.
Alerts for Trading Opportunities:
Alerts are configured to notify the user of key events:
When the Supertrend changes direction (from uptrend to downtrend, or vice versa).
When a buy or sell signal is generated.
3. Code Structure:
Input Settings: Users can customize the base ATR period, the multiplier for ATR, and control the display of signals and highlighting features.
Trend Calculation Logic: The code determines the uptrend and downtrend by comparing the current price against dynamic ATR-based thresholds. It ensures that trends persist until price action confirms a change.
Plotting and Signals: Plots the trend lines based on whether the trend is up or down. It also provides visual cues for buy and sell signals with circles and optional arrows/labels on the chart.
Alert System: Three alert conditions are defined: buy signal, sell signal, and a general trend direction change, allowing users to set up real-time notifications for trading actions.
4. Use Case:
This script is particularly useful for traders who:
Rely on trend-following strategies and want to enter trades based on price action.
Need visual confirmation of market direction changes.
Prefer to automate their trading signals with real-time alerts.
Want to adjust the sensitivity of the indicator by tweaking the ATR multiplier and period settings to suit different market conditions.
Overall, this dynamic Supertrend indicator can be a powerful tool for both manual and automated trading setups, offering flexibility and clarity in identifying trend shifts.
Linear Regression ChannelLinear Regression Channel Indicator
Overview:
The Linear Regression Channel Indicator is a versatile tool designed for TradingView to help traders visualize price trends and potential reversal points. By calculating and plotting linear regression channels, bands, and future projections, this indicator provides comprehensive insights into market dynamics. It can highlight overbought and oversold conditions, identify trend direction, and offer visual cues for future price movements.
Key Features:
Linear Regression Bands:
Input: Plot Linear Regression Bands
Description: Draws bands based on linear regression calculations, representing overbought and oversold levels.
Customizable Parameters:
Length: Defines the look-back period for the regression calculation.
Deviation: Determines the width of the bands based on standard deviations.
Linear Regression Channel:
Input: Plot Linear Regression Channel
Description: Plots a channel using linear regression to visualize the main trend.
Customizable Parameters:
Channel Length: Defines the look-back period for the channel calculation.
Deviation: Determines the channel's width.
Future Projection Channel:
Input: Plot Future Projection of Linear Regression
Description: Projects a linear regression channel into the future, aiding in forecasting potential price movements.
Customizable Parameters:
Length: Defines the look-back period for the projection calculation.
Deviation: Determines the width of the projected channel.
Arrow Direction Indicator:
Input: Plot Arrow Direction
Description: Displays directional arrows based on future projection, indicating expected price movement direction.
Color-Coded Price Bars:
Description: Colors the price bars based on their position within the regression bands or channel, providing a heatmap-like visualization.
Dynamic Visualization:
Colors: Uses a gradient color scheme to highlight different conditions, such as uptrend, downtrend, and mid-levels.
Labels and Markers: Plots visual markers for significant price levels and conditions, enhancing interpretability.
Usage Notes
Setting the Length:
Adjust the look-back period (Length) to suit the timeframe you are analyzing. Shorter lengths are responsive to recent price changes, while longer lengths provide a broader view of the trend.
Interpreting Bands and Channels:
The bands and channels help identify overbought and oversold conditions. Price moving above the upper band or channel suggests overbought conditions, while moving below the lower band or channel indicates oversold conditions.
Using the Future Projection:
Enable the future projection channel to anticipate potential price movements. This can be particularly useful for setting target prices or stop-loss levels based on expected trends.
Arrow Direction Indicator:
Use the arrow direction indicator to quickly grasp the expected price movement direction. An upward arrow indicates a potential uptrend, while a downward arrow suggests a potential downtrend.
Color-Coded Price Bars:
The color of the price bars changes based on their relative position within the regression bands or channel. This heatmap visualization helps quickly identify bullish, bearish, and neutral conditions.
Dynamic Adjustments:
The indicator dynamically adjusts its visual elements based on user settings and market conditions, ensuring that the most relevant information is always displayed.
Visual Alerts:
Pay attention to the labels and markers on the chart indicating significant events, such as crossovers and breakouts. These visual alerts help in making informed trading decisions.
The Linear Regression Channel Indicator is a powerful tool for traders looking to enhance their technical analysis. By offering multiple regression-based visualizations and customizable parameters, it helps identify key market conditions, trends, and potential reversal points. Whether you are a day trader or a long-term investor, this indicator can provide valuable insights to improve your trading strategy.
Premium & Discount Delta Volume [BigBeluga]Premium & Discount Delta Volume is an advanced volume-based tool that helps traders identify zones of market imbalances by using the concepts of premium and discount pricing, commonly taught by ICT trader. It calculates and highlights periods where the market is trading at a premium (selling pressure is stronger) or a discount (buying pressure is stronger) and dynamically plots these zones over time. The indicator also calculates delta volume between buying and selling within these zones, showing shifts in market sentiment and potential areas for reversals or continuations.
🔵 IDEA
The Premium & Discount Delta Volume indicator is rooted in the ICT (Inner Circle Trader) concept of premium and discount zones. This concept divides the price action into two key zones:
Premium Zone : This area is where the market is trading at a level where sellers dominate, leading to more selling pressure. The idea is that the price is overvalued, and a potential drop could occur as the market reverts to a balanced state.
Discount Zone : This area is where the market is undervalued, with buyers dominating and applying upward pressure. Prices in this area often indicate opportunities to buy into strength as the market moves back to equilibrium.
At the core of the indicator is the delta volume, which measures the difference between buying and selling pressure within the premium and discount zones. When the delta volume is negative, it signals a downtrend with more selling pressure, while a positive delta volume signals an uptrend with more buying pressure. These zones and their associated delta values update dynamically, providing traders with real-time insights into market strength and potential price reversals.
The equilibrium in the middle of the premium and discount zones represents the balance point between buyers and sellers. When price moves away from equilibrium, it either enters the premium zone (potentially overbought) or the discount zone (potentially oversold), helping traders make more informed decisions based on volume and price structure.
🔵 KEY FEATURES & USAGE
Premium & Discount Zones:
The indicator automatically identifies and plots premium and discount zones on the chart. Premium zones count only negative (selling) volume, while discount zones count only positive (buying) volume. These zones are key areas of interest for identifying potential price reversals or continuations based on volume pressure.
Dynamic Delta Volume Calculation:
The indicator calculates delta volume between the premium and discount zones, showing the imbalance between buyers and sellers. A positive delta volume inside the discount zone suggests strong buying pressure, while a negative delta inside the premium zone suggests strong selling pressure. This helps traders quickly identify trends or market exhaustion.
Up Trend:
Down Trend:
Real-time Updates & Equilibrium Line:
The zones update dynamically every 100 bars or after price crosses them, ensuring that traders always have the most relevant market data. The equilibrium line in the middle of the zones helps traders gauge whether the market is balanced or moving into overbought (premium) or oversold (discount) territory.
Macro and Local Period Calculations:
The indicator allows traders to customize two different periods for analysis: a smaller lookback period (e.g., 50 bars) for short-term price action and a macro period (e.g., 200 bars) for larger trends. Each period has its own premium and discount zones, allowing for a multi-timeframe view of market strength.
Macro:
Both:
Color-coded background for Volume Pressure:
The background color of the smaller period premium and discount box changes based on delta volume. A positive delta turns the background blue, indicating higher buy pressure, while a negative delta turns the background red, signaling higher sell pressure.
🔵 CUSTOMIZATION
Toggle Premium & Discount: Traders can choose to display support and resistance levels based on the high and low points of the premium and discount zones.
Premium & Discount Lookback Period: Traders can adjust the lookback period to define the length of price action to be analyzed for premium and discount zones. A shorter period focuses on more recent market activity, while a longer period provides a broader view of trends.
Macro Highs/Lows Period: The indicator also offers a macro lookback period for identifying larger market trends and key levels of buying or selling volume.
Toggle Macro Levels: Macro levels help identify long-term price extremes, and traders can toggle this feature on or off as needed.
Standard Deviation-Based Fibonacci Band by zdmre This indicator is designed to better understand market dynamics by focusing on standard deviation and the Fibonacci sequence. This indicator includes the following components to assist investors in analyzing price movements:
Weighted Moving Average (WMA) : The indicator creates a central band by utilizing the weighted moving average of standard deviation. WMA provides a more current and accurate representation by giving greater weight to recent prices. This central band offers insights into the general trend of the market, helping to identify potential buying and selling opportunities.
Fibonacci Bands : The Fibonacci bands located above and below the central band illustrate potential support and resistance levels for prices. These bands enable investors to pinpoint areas where the price may exhibit indecisiveness. When prices move within these bands, it may be challenging for investors to discern the market's preferred direction.
Indecisiveness Representation : When prices fluctuate between the Fibonacci bands, they may reflect a state of indecisiveness. This condition is critical for identifying potential reversal points and trend changes. Investors can evaluate these periods of indecisiveness to develop suitable buying and selling strategies.
This indicator is designed to assist investors in better analyzing market trends and supporting their decision-making processes. The integration of standard deviation and the Fibonacci sequence offers a new perspective on understanding market movements.
#DYOR
Tail ProbabilitiesThe Tail Probabilities indicator offers a sophisticated analysis of potential price distributions, providing traders with a probabilistic framework for forecasting future price behavior based on historical data. By estimating the likelihood of the price closing above or below specified thresholds, the indicator assists in evaluating market sentiment, volatility, and associated risks. The probability calculations are derived from a user-defined analysis window, which operates independently of the transform length window. The transform length parameter dictates the volume of historical data utilized in the calculations, and it must correspond to the window length applied in the mean and standard deviation lines indicator to ensure consistency in visual representation.
Overview of Plotted Probabilities
This indicator plots three core probabilities and their moving averages, involving four primary user inputs:
User Inputs
Tail Type: Allows the user to choose between analyzing the left tail (representing downside risk) or the right tail (representing upside potential).
Transform Window Length (Bars): Specifies the amount of historical data used to calculate the mean and standard deviation. This value must align with the window length applied in the mean and standard deviation lines indicator .
Analysis Period (Bars): Defines the number of historical bars used for probability analysis, setting the window over which probabilities are computed.
SMA Length (Bars): Specifies the length of the simple moving average (SMA) used to plot the historical average of the calculated probabilities. The SMA Length input allows users to plot a simple moving average of the calculated probabilities, providing a smoother historical average and helping to identify trends in the probability values over time.
Key Probabilities Plotted
Probability to Close Above or Below Upper Bound: Represents the likelihood that the price will close above or below an upper threshold derived from the mean and standard deviation lines indicator . This measure helps identify potential for significant upward or downward price movement, depending on the current price relative to the threshold.
Probability to Close Above or Below Mean: Indicates the probability of the closing price being either above or below the mean level, reflecting historical price tendencies and suggesting the presence of skewness in the price distribution.
Probability to Close Above or Below Lower Bound: Reflects the likelihood of the price closing above or below a lower threshold, offering insights into potential risk and directional movement.
The indicator adjusts based on the chosen tail type ("Left" or "Right"), thereby enabling users to assess both potential upward and downward price movements, making it adaptable to varying market conditions.
How Probabilities Are Calculated
The probabilities are calculated through a detailed analysis of historical price data over a user-specified analysis window. Below is an outline of the key steps involved in these calculations:
Calculate Mean and Standard Deviation: The mean and standard deviation are computed using the transform length window, which defines the historical data range employed.
Define Bounds: Upper, mean, and lower bounds are established based on the calculated mean and standard deviation, allowing identification of significant levels within the price distribution.
Count Events: The frequency with which the closing price crosses above or below these bounds is counted over the user-specified probability analysis window.
Calculate Probabilities: Probabilities are then computed as the percentage of observed events relative to the total number of observations in the analysis window.
For example, the probability of closing above the upper bound is calculated as:
Probability = (Number of times price closes above the upper bound) / (Total number of observations in the analysis window) * 100
Practical Usage
Risk Management: The indicator provides a quantitative measure of the probability of extreme price movements, aiding traders in setting stop-loss and take-profit levels based on statistical expectations.
Trend Analysis: The probability of closing above the mean can also serve as an indicator of potential skewness in the price distribution. Values above 50 indicate a right-skewed distribution, while values below 50 indicate a left-skewed distribution for the right tail probability. For the left tail probability, values over 50 indicate a left skew and values below 50 indicate a right skew in the distribution.
Scenario Analysis: By focusing on either the left or right tail, traders can quickly determine whether to prioritize downside protection or capitalize on upside potential. Depending on market conditions and whether the trader is long or short, both upward and downward movements can be analyzed, enabling a comprehensive risk assessment.
Limitations
While the Tail Probabilities indicator provides valuable probabilistic insights based on historical data, it is crucial to understand that historical performance does not guarantee future outcomes. Market dynamics are subject to rapid changes, and relying exclusively on historical probabilities may result in inaccurate assessments. Traders should use this indicator in conjunction with other technical analysis tools, fundamental analysis, and an understanding of broader market conditions to ensure robust decision-making.
Summary
The Tail Probabilities indicator is an advanced tool designed for traders seeking a probabilistic perspective on market behavior. By providing critical insights into the potential distribution of prices beyond significant thresholds, the indicator supports informed decision-making, whether in trending or uncertain market environments.
The Bar Counter Trend Reversal Strategy [TradeDots]Overview
The Bar Counter Trend Reversal Strategy is designed to identify potential counter-trend reversal points in the market after a series of consecutive rising or falling bars.
By analyzing price movements in conjunction with optional volume confirmation and channel bands (Bollinger Bands or Keltner Channels), this strategy aims to detect overbought or oversold conditions where a trend reversal may occur.
🔹How it Works
Consecutive Price Movements
Rising Bars: The strategy detects when there are a specified number of consecutive rising bars (No. of Rises).
Falling Bars: Similarly, it identifies a specified number of consecutive falling bars (No. of Falls).
Volume Confirmation (Optional)
When enabled, the strategy checks for increasing volume during the consecutive price movements, adding an extra layer of confirmation to the potential reversal signal.
Channel Confirmation (Optional)
Channel Type: Choose between Bollinger Bands ("BB") or Keltner Channels ("KC").
Channel Interaction: The strategy checks if the price interacts with the upper or lower channel lines: For short signals, it looks for price moving above the upper channel line. For long signals, it looks for price moving below the lower channel line.
Customization:
No. of Rises/Falls: Set the number of consecutive bars required to trigger a signal.
Volume Confirmation: Enable or disable volume as a confirmation factor.
Channel Confirmation: Enable or disable channel bands as a confirmation factor.
Channel Settings: Adjust the length and multiplier for the Bollinger Bands or Keltner Channels.
Visual Indicators:
Entry Signals: Triangles plotted on the chart indicate potential entry points:
Green upward triangle for long entries.
Red downward triangle for short entries.
Channel Bands: The upper and lower bands are plotted for visual reference.
Strategy Parameters:
Initial Capital: $10,000.
Position Sizing: 80% of equity per trade.
Commission: 0.01% per trade to simulate realistic trading costs.
🔹Usage
Set up the number of Rises/Falls and choose whether if you want to use channel indicators and volume as the confirmation.
Monitor the chart for triangles indicating potential entry points.
Consider the context of the overall market trend and other technical factors.
Backtesting and Optimization:
Use TradingView's Strategy Tester to evaluate performance.
Adjust parameters to optimize results for different market conditions.
🔹 Considerations and Recommendations
Risk Management:
The strategy does not include built-in stop-loss or take-profit levels. It's recommended to implement your own risk management techniques.
Market Conditions:
Performance may vary in different market environments. Testing and adjustments are advised when applying the strategy to new instruments or timeframes.
No Guarantee of Future Results:
Past performance is not indicative of future results. Always perform due diligence and consider the risks involved in trading.
Options Series - Index Analysis [MasterPiece]
Powerful Insights 🚀:
This script utilizes multiple technical indicators to provide a comprehensive view of stock trends, which increases the reliability of trading signals.
This script also designed to perform index and stock analysis by comparing price movements to moving averages (MA20) and volume-weighted average price (VWAP).
By analyzing a set of top-weighted stocks within an index, the script offers a macro-level view while also delivering stock-specific insights. This dual focus enhances its utility for traders who need to understand both individual stock movements and broader market dynamics.
⭐ Originality: The script presents a unique fusion of multiple indicators with a data-driven approach to analyzing top-weighted stocks in major indices like Nifty and BankNifty. The integration of widely-used technical analysis tools, such as exponential and simple moving averages (EMA, SMA), volume-weighted average price (VWAP), and volume-body size comparisons, offers a holistic framework for traders. By focusing on the top five stocks in the indices, it leverages weightage-based performance analysis, adding a strategic dimension to index trading. This approach not only evaluates individual stock performance but also synthesizes broader market trends.
⭐ Usefulness: This script serves traders who seek a multi-dimensional method for analyzing both index and stock performance. Its key features include:
Bullish and Bearish Signals: The relationship between price, moving averages (MA20), and VWAP identifies directional trends, generating buy/sell signals for both individual stocks and the overall index.
Volume and Candle Body Analysis: By comparing candle body size with volume, the script provides deeper insights into trend strength and market conviction. This allows traders to gauge whether price movements are supported by sufficient trading volume.
Customization: Users have the flexibility to input specific index and stock symbols, making the script adaptable for different markets and instruments beyond just Nifty and BankNifty.
Signal Overlay: The ability to overlay bar color and volume signals directly on the price chart ensures better trend visualization, offering clear and immediate visual cues for potential trading setups.
⭐ Justification for Mashup: The combination of multiple indicators is logical and complementary. Each component serves a distinct purpose that enhances the overall system:
Trend Identification: Moving averages and VWAP provide insights into short and long-term trends, giving traders a reliable baseline for price direction.
Conviction: The inclusion of volume and candle body size comparisons gives additional weight to price action, allowing traders to confirm whether a trend is backed by meaningful market activity.
⭐ Color Customization for Enhanced Visualization:
The script defines custom colors for various conditions and candles, improving clarity for bullish and bearish trends.
Green for Bullish: Dark green for regular bullish candles, and fluorescent green for stronger bullish signals.
Red for Bearish: Dark red for regular bearish candles, and fluorescent red for stronger bearish signals.
Neutral Conditions: Fluorescent yellow is used for neutral conditions.
⭐ Index and Top Stocks Analysis:
This section analyzes top-weighted stocks for indices ( NSE:NIFTY and NSE:BANKNIFTY ), with NSE:BANKNIFTY being used as the default.
Top Stocks for NSE:NIFTY : HDFCBANK, ICICIBANK, RELIANCE, INFY, ITC.
Top Stocks for NSE:BANKNIFTY : HDFCBANK, ICICIBANK, KOTAKBANK, AXISBANK, SBIN.
Customizable Input: Users can modify the index and stock symbols via input.symbol.
⭐ Signal Generation Based on MA20 and VWAP:
The conditions for bullish or bearish signals are based on the relationship between the stock's close price, MA20, and VWAP.
Bullish Signal: Close price greater than both MA20 and VWAP.
Bearish Signal: Close price less than both MA20 and VWAP.
⭐ Volume Bar Signal for Market Activity:
The script analyzes candle body size and volume to detect significant market movements.
Body Size and Volume Comparison: It checks if the current candle’s body size or volume is greater than the moving average of body size or volume over the past 74 bars.
Green Candle (GC) and Red Candle (RC): Boolean conditions to track whether the close price is higher or lower than the open price.
⭐ Average Signals for Strong Trends:
The script calculates average bullish or bearish signals based on the majority of candles being green or red and significant body size or volume.
Bullish Average Signal: At least 4 out of 6 stocks exhibit bullish conditions (green candles, large bodies, or high volume).
Bearish Average Signal: Similar logic for bearish signals with red candles.
⭐ Overlay of Volume Bar Signals:
The plotshape function overlays the bullish and bearish volume bar signals on the chart, using color and shape to indicate trend changes.
🚀 Conclusion:
This Pine Script code provides a robust framework for index analysis based on top 5 weighted stocks, using two primary indicators—MA20 (20-period Moving Average) and VWAP (Volume Weighted Average Price).
Market Bias Identification: The script identifies bullish and bearish conditions for each stock based on whether the close price is above or below MA20 and VWAP.
Volume and Body Size Comparison: It checks if the current candle’s body size or volume exceeds the average to determine significant market moves.
Visualization with Color & Signals: It overlays color signals for bullish (fluorescent green) and bearish (fluorescent red) markets and provides triangle markers for strong volume-based signals.
Top Stock Analysis: The script provides analysis of top five weighted stocks in the selected index, enhancing precision for broader index analysis.
Universal Ratio Trend Matrix [InvestorUnknown]The Universal Ratio Trend Matrix is designed for trend analysis on asset/asset ratios, supporting up to 40 different assets. Its primary purpose is to help identify which assets are outperforming others within a selection, providing a broad overview of market trends through a matrix of ratios. The indicator automatically expands the matrix based on the number of assets chosen, simplifying the process of comparing multiple assets in terms of performance.
Key features include the ability to choose from a narrow selection of indicators to perform the ratio trend analysis, allowing users to apply well-defined metrics to their comparison.
Drawback: Due to the computational intensity involved in calculating ratios across many assets, the indicator has a limitation related to loading speed. TradingView has time limits for calculations, and for users on the basic (free) plan, this could result in frequent errors due to exceeded time limits. To use the indicator effectively, users with any paid plans should run it on timeframes higher than 8h (the lowest timeframe on which it managed to load with 40 assets), as lower timeframes may not reliably load.
Indicators:
RSI_raw: Simple function to calculate the Relative Strength Index (RSI) of a source (asset price).
RSI_sma: Calculates RSI followed by a Simple Moving Average (SMA).
RSI_ema: Calculates RSI followed by an Exponential Moving Average (EMA).
CCI: Calculates the Commodity Channel Index (CCI).
Fisher: Implements the Fisher Transform to normalize prices.
Utility Functions:
f_remove_exchange_name: Strips the exchange name from asset tickers (e.g., "INDEX:BTCUSD" to "BTCUSD").
f_remove_exchange_name(simple string name) =>
string parts = str.split(name, ":")
string result = array.size(parts) > 1 ? array.get(parts, 1) : name
result
f_get_price: Retrieves the closing price of a given asset ticker using request.security().
f_constant_src: Checks if the source data is constant by comparing multiple consecutive values.
Inputs:
General settings allow users to select the number of tickers for analysis (used_assets) and choose the trend indicator (RSI, CCI, Fisher, etc.).
Table settings customize how trend scores are displayed in terms of text size, header visibility, highlighting options, and top-performing asset identification.
The script includes inputs for up to 40 assets, allowing the user to select various cryptocurrencies (e.g., BTCUSD, ETHUSD, SOLUSD) or other assets for trend analysis.
Price Arrays:
Price values for each asset are stored in variables (price_a1 to price_a40) initialized as na. These prices are updated only for the number of assets specified by the user (used_assets).
Trend scores for each asset are stored in separate arrays
// declare price variables as "na"
var float price_a1 = na, var float price_a2 = na, var float price_a3 = na, var float price_a4 = na, var float price_a5 = na
var float price_a6 = na, var float price_a7 = na, var float price_a8 = na, var float price_a9 = na, var float price_a10 = na
var float price_a11 = na, var float price_a12 = na, var float price_a13 = na, var float price_a14 = na, var float price_a15 = na
var float price_a16 = na, var float price_a17 = na, var float price_a18 = na, var float price_a19 = na, var float price_a20 = na
var float price_a21 = na, var float price_a22 = na, var float price_a23 = na, var float price_a24 = na, var float price_a25 = na
var float price_a26 = na, var float price_a27 = na, var float price_a28 = na, var float price_a29 = na, var float price_a30 = na
var float price_a31 = na, var float price_a32 = na, var float price_a33 = na, var float price_a34 = na, var float price_a35 = na
var float price_a36 = na, var float price_a37 = na, var float price_a38 = na, var float price_a39 = na, var float price_a40 = na
// create "empty" arrays to store trend scores
var a1_array = array.new_int(40, 0), var a2_array = array.new_int(40, 0), var a3_array = array.new_int(40, 0), var a4_array = array.new_int(40, 0)
var a5_array = array.new_int(40, 0), var a6_array = array.new_int(40, 0), var a7_array = array.new_int(40, 0), var a8_array = array.new_int(40, 0)
var a9_array = array.new_int(40, 0), var a10_array = array.new_int(40, 0), var a11_array = array.new_int(40, 0), var a12_array = array.new_int(40, 0)
var a13_array = array.new_int(40, 0), var a14_array = array.new_int(40, 0), var a15_array = array.new_int(40, 0), var a16_array = array.new_int(40, 0)
var a17_array = array.new_int(40, 0), var a18_array = array.new_int(40, 0), var a19_array = array.new_int(40, 0), var a20_array = array.new_int(40, 0)
var a21_array = array.new_int(40, 0), var a22_array = array.new_int(40, 0), var a23_array = array.new_int(40, 0), var a24_array = array.new_int(40, 0)
var a25_array = array.new_int(40, 0), var a26_array = array.new_int(40, 0), var a27_array = array.new_int(40, 0), var a28_array = array.new_int(40, 0)
var a29_array = array.new_int(40, 0), var a30_array = array.new_int(40, 0), var a31_array = array.new_int(40, 0), var a32_array = array.new_int(40, 0)
var a33_array = array.new_int(40, 0), var a34_array = array.new_int(40, 0), var a35_array = array.new_int(40, 0), var a36_array = array.new_int(40, 0)
var a37_array = array.new_int(40, 0), var a38_array = array.new_int(40, 0), var a39_array = array.new_int(40, 0), var a40_array = array.new_int(40, 0)
f_get_price(simple string ticker) =>
request.security(ticker, "", close)
// Prices for each USED asset
f_get_asset_price(asset_number, ticker) =>
if (used_assets >= asset_number)
f_get_price(ticker)
else
na
// overwrite empty variables with the prices if "used_assets" is greater or equal to the asset number
if barstate.isconfirmed // use barstate.isconfirmed to avoid "na prices" and calculation errors that result in empty cells in the table
price_a1 := f_get_asset_price(1, asset1), price_a2 := f_get_asset_price(2, asset2), price_a3 := f_get_asset_price(3, asset3), price_a4 := f_get_asset_price(4, asset4)
price_a5 := f_get_asset_price(5, asset5), price_a6 := f_get_asset_price(6, asset6), price_a7 := f_get_asset_price(7, asset7), price_a8 := f_get_asset_price(8, asset8)
price_a9 := f_get_asset_price(9, asset9), price_a10 := f_get_asset_price(10, asset10), price_a11 := f_get_asset_price(11, asset11), price_a12 := f_get_asset_price(12, asset12)
price_a13 := f_get_asset_price(13, asset13), price_a14 := f_get_asset_price(14, asset14), price_a15 := f_get_asset_price(15, asset15), price_a16 := f_get_asset_price(16, asset16)
price_a17 := f_get_asset_price(17, asset17), price_a18 := f_get_asset_price(18, asset18), price_a19 := f_get_asset_price(19, asset19), price_a20 := f_get_asset_price(20, asset20)
price_a21 := f_get_asset_price(21, asset21), price_a22 := f_get_asset_price(22, asset22), price_a23 := f_get_asset_price(23, asset23), price_a24 := f_get_asset_price(24, asset24)
price_a25 := f_get_asset_price(25, asset25), price_a26 := f_get_asset_price(26, asset26), price_a27 := f_get_asset_price(27, asset27), price_a28 := f_get_asset_price(28, asset28)
price_a29 := f_get_asset_price(29, asset29), price_a30 := f_get_asset_price(30, asset30), price_a31 := f_get_asset_price(31, asset31), price_a32 := f_get_asset_price(32, asset32)
price_a33 := f_get_asset_price(33, asset33), price_a34 := f_get_asset_price(34, asset34), price_a35 := f_get_asset_price(35, asset35), price_a36 := f_get_asset_price(36, asset36)
price_a37 := f_get_asset_price(37, asset37), price_a38 := f_get_asset_price(38, asset38), price_a39 := f_get_asset_price(39, asset39), price_a40 := f_get_asset_price(40, asset40)
Universal Indicator Calculation (f_calc_score):
This function allows switching between different trend indicators (RSI, CCI, Fisher) for flexibility.
It uses a switch-case structure to calculate the indicator score, where a positive trend is denoted by 1 and a negative trend by 0. Each indicator has its own logic to determine whether the asset is trending up or down.
// use switch to allow "universality" in indicator selection
f_calc_score(source, trend_indicator, int_1, int_2) =>
int score = na
if (not f_constant_src(source)) and source > 0.0 // Skip if you are using the same assets for ratio (for example BTC/BTC)
x = switch trend_indicator
"RSI (Raw)" => RSI_raw(source, int_1)
"RSI (SMA)" => RSI_sma(source, int_1, int_2)
"RSI (EMA)" => RSI_ema(source, int_1, int_2)
"CCI" => CCI(source, int_1)
"Fisher" => Fisher(source, int_1)
y = switch trend_indicator
"RSI (Raw)" => x > 50 ? 1 : 0
"RSI (SMA)" => x > 50 ? 1 : 0
"RSI (EMA)" => x > 50 ? 1 : 0
"CCI" => x > 0 ? 1 : 0
"Fisher" => x > x ? 1 : 0
score := y
else
score := 0
score
Array Setting Function (f_array_set):
This function populates an array with scores calculated for each asset based on a base price (p_base) divided by the prices of the individual assets.
It processes multiple assets (up to 40), calling the f_calc_score function for each.
// function to set values into the arrays
f_array_set(a_array, p_base) =>
array.set(a_array, 0, f_calc_score(p_base / price_a1, trend_indicator, int_1, int_2))
array.set(a_array, 1, f_calc_score(p_base / price_a2, trend_indicator, int_1, int_2))
array.set(a_array, 2, f_calc_score(p_base / price_a3, trend_indicator, int_1, int_2))
array.set(a_array, 3, f_calc_score(p_base / price_a4, trend_indicator, int_1, int_2))
array.set(a_array, 4, f_calc_score(p_base / price_a5, trend_indicator, int_1, int_2))
array.set(a_array, 5, f_calc_score(p_base / price_a6, trend_indicator, int_1, int_2))
array.set(a_array, 6, f_calc_score(p_base / price_a7, trend_indicator, int_1, int_2))
array.set(a_array, 7, f_calc_score(p_base / price_a8, trend_indicator, int_1, int_2))
array.set(a_array, 8, f_calc_score(p_base / price_a9, trend_indicator, int_1, int_2))
array.set(a_array, 9, f_calc_score(p_base / price_a10, trend_indicator, int_1, int_2))
array.set(a_array, 10, f_calc_score(p_base / price_a11, trend_indicator, int_1, int_2))
array.set(a_array, 11, f_calc_score(p_base / price_a12, trend_indicator, int_1, int_2))
array.set(a_array, 12, f_calc_score(p_base / price_a13, trend_indicator, int_1, int_2))
array.set(a_array, 13, f_calc_score(p_base / price_a14, trend_indicator, int_1, int_2))
array.set(a_array, 14, f_calc_score(p_base / price_a15, trend_indicator, int_1, int_2))
array.set(a_array, 15, f_calc_score(p_base / price_a16, trend_indicator, int_1, int_2))
array.set(a_array, 16, f_calc_score(p_base / price_a17, trend_indicator, int_1, int_2))
array.set(a_array, 17, f_calc_score(p_base / price_a18, trend_indicator, int_1, int_2))
array.set(a_array, 18, f_calc_score(p_base / price_a19, trend_indicator, int_1, int_2))
array.set(a_array, 19, f_calc_score(p_base / price_a20, trend_indicator, int_1, int_2))
array.set(a_array, 20, f_calc_score(p_base / price_a21, trend_indicator, int_1, int_2))
array.set(a_array, 21, f_calc_score(p_base / price_a22, trend_indicator, int_1, int_2))
array.set(a_array, 22, f_calc_score(p_base / price_a23, trend_indicator, int_1, int_2))
array.set(a_array, 23, f_calc_score(p_base / price_a24, trend_indicator, int_1, int_2))
array.set(a_array, 24, f_calc_score(p_base / price_a25, trend_indicator, int_1, int_2))
array.set(a_array, 25, f_calc_score(p_base / price_a26, trend_indicator, int_1, int_2))
array.set(a_array, 26, f_calc_score(p_base / price_a27, trend_indicator, int_1, int_2))
array.set(a_array, 27, f_calc_score(p_base / price_a28, trend_indicator, int_1, int_2))
array.set(a_array, 28, f_calc_score(p_base / price_a29, trend_indicator, int_1, int_2))
array.set(a_array, 29, f_calc_score(p_base / price_a30, trend_indicator, int_1, int_2))
array.set(a_array, 30, f_calc_score(p_base / price_a31, trend_indicator, int_1, int_2))
array.set(a_array, 31, f_calc_score(p_base / price_a32, trend_indicator, int_1, int_2))
array.set(a_array, 32, f_calc_score(p_base / price_a33, trend_indicator, int_1, int_2))
array.set(a_array, 33, f_calc_score(p_base / price_a34, trend_indicator, int_1, int_2))
array.set(a_array, 34, f_calc_score(p_base / price_a35, trend_indicator, int_1, int_2))
array.set(a_array, 35, f_calc_score(p_base / price_a36, trend_indicator, int_1, int_2))
array.set(a_array, 36, f_calc_score(p_base / price_a37, trend_indicator, int_1, int_2))
array.set(a_array, 37, f_calc_score(p_base / price_a38, trend_indicator, int_1, int_2))
array.set(a_array, 38, f_calc_score(p_base / price_a39, trend_indicator, int_1, int_2))
array.set(a_array, 39, f_calc_score(p_base / price_a40, trend_indicator, int_1, int_2))
a_array
Conditional Array Setting (f_arrayset):
This function checks if the number of used assets is greater than or equal to a specified number before populating the arrays.
// only set values into arrays for USED assets
f_arrayset(asset_number, a_array, p_base) =>
if (used_assets >= asset_number)
f_array_set(a_array, p_base)
else
na
Main Logic
The main logic initializes arrays to store scores for each asset. Each array corresponds to one asset's performance score.
Setting Trend Values: The code calls f_arrayset for each asset, populating the respective arrays with calculated scores based on the asset prices.
Combining Arrays: A combined_array is created to hold all the scores from individual asset arrays. This array facilitates further analysis, allowing for an overview of the performance scores of all assets at once.
// create a combined array (work-around since pinescript doesn't support having array of arrays)
var combined_array = array.new_int(40 * 40, 0)
if barstate.islast
for i = 0 to 39
array.set(combined_array, i, array.get(a1_array, i))
array.set(combined_array, i + (40 * 1), array.get(a2_array, i))
array.set(combined_array, i + (40 * 2), array.get(a3_array, i))
array.set(combined_array, i + (40 * 3), array.get(a4_array, i))
array.set(combined_array, i + (40 * 4), array.get(a5_array, i))
array.set(combined_array, i + (40 * 5), array.get(a6_array, i))
array.set(combined_array, i + (40 * 6), array.get(a7_array, i))
array.set(combined_array, i + (40 * 7), array.get(a8_array, i))
array.set(combined_array, i + (40 * 8), array.get(a9_array, i))
array.set(combined_array, i + (40 * 9), array.get(a10_array, i))
array.set(combined_array, i + (40 * 10), array.get(a11_array, i))
array.set(combined_array, i + (40 * 11), array.get(a12_array, i))
array.set(combined_array, i + (40 * 12), array.get(a13_array, i))
array.set(combined_array, i + (40 * 13), array.get(a14_array, i))
array.set(combined_array, i + (40 * 14), array.get(a15_array, i))
array.set(combined_array, i + (40 * 15), array.get(a16_array, i))
array.set(combined_array, i + (40 * 16), array.get(a17_array, i))
array.set(combined_array, i + (40 * 17), array.get(a18_array, i))
array.set(combined_array, i + (40 * 18), array.get(a19_array, i))
array.set(combined_array, i + (40 * 19), array.get(a20_array, i))
array.set(combined_array, i + (40 * 20), array.get(a21_array, i))
array.set(combined_array, i + (40 * 21), array.get(a22_array, i))
array.set(combined_array, i + (40 * 22), array.get(a23_array, i))
array.set(combined_array, i + (40 * 23), array.get(a24_array, i))
array.set(combined_array, i + (40 * 24), array.get(a25_array, i))
array.set(combined_array, i + (40 * 25), array.get(a26_array, i))
array.set(combined_array, i + (40 * 26), array.get(a27_array, i))
array.set(combined_array, i + (40 * 27), array.get(a28_array, i))
array.set(combined_array, i + (40 * 28), array.get(a29_array, i))
array.set(combined_array, i + (40 * 29), array.get(a30_array, i))
array.set(combined_array, i + (40 * 30), array.get(a31_array, i))
array.set(combined_array, i + (40 * 31), array.get(a32_array, i))
array.set(combined_array, i + (40 * 32), array.get(a33_array, i))
array.set(combined_array, i + (40 * 33), array.get(a34_array, i))
array.set(combined_array, i + (40 * 34), array.get(a35_array, i))
array.set(combined_array, i + (40 * 35), array.get(a36_array, i))
array.set(combined_array, i + (40 * 36), array.get(a37_array, i))
array.set(combined_array, i + (40 * 37), array.get(a38_array, i))
array.set(combined_array, i + (40 * 38), array.get(a39_array, i))
array.set(combined_array, i + (40 * 39), array.get(a40_array, i))
Calculating Sums: A separate array_sums is created to store the total score for each asset by summing the values of their respective score arrays. This allows for easy comparison of overall performance.
Ranking Assets: The final part of the code ranks the assets based on their total scores stored in array_sums. It assigns a rank to each asset, where the asset with the highest score receives the highest rank.
// create array for asset RANK based on array.sum
var ranks = array.new_int(used_assets, 0)
// for loop that calculates the rank of each asset
if barstate.islast
for i = 0 to (used_assets - 1)
int rank = 1
for x = 0 to (used_assets - 1)
if i != x
if array.get(array_sums, i) < array.get(array_sums, x)
rank := rank + 1
array.set(ranks, i, rank)
Dynamic Table Creation
Initialization: The table is initialized with a base structure that includes headers for asset names, scores, and ranks. The headers are set to remain constant, ensuring clarity for users as they interpret the displayed data.
Data Population: As scores are calculated for each asset, the corresponding values are dynamically inserted into the table. This is achieved through a loop that iterates over the scores and ranks stored in the combined_array and array_sums, respectively.
Automatic Extending Mechanism
Variable Asset Count: The code checks the number of assets defined by the user. Instead of hardcoding the number of rows in the table, it uses a variable to determine the extent of the data that needs to be displayed. This allows the table to expand or contract based on the number of assets being analyzed.
Dynamic Row Generation: Within the loop that populates the table, the code appends new rows for each asset based on the current asset count. The structure of each row includes the asset name, its score, and its rank, ensuring that the table remains consistent regardless of how many assets are involved.
// Automatically extending table based on the number of used assets
var table table = table.new(position.bottom_center, 50, 50, color.new(color.black, 100), color.white, 3, color.white, 1)
if barstate.islast
if not hide_head
table.cell(table, 0, 0, "Universal Ratio Trend Matrix", text_color = color.white, bgcolor = #010c3b, text_size = fontSize)
table.merge_cells(table, 0, 0, used_assets + 3, 0)
if not hide_inps
table.cell(table, 0, 1,
text = "Inputs: You are using " + str.tostring(trend_indicator) + ", which takes: " + str.tostring(f_get_input(trend_indicator)),
text_color = color.white, text_size = fontSize), table.merge_cells(table, 0, 1, used_assets + 3, 1)
table.cell(table, 0, 2, "Assets", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, x + 1, 2, text = str.tostring(array.get(assets, x)), text_color = color.white, bgcolor = #010c3b, text_size = fontSize)
table.cell(table, 0, x + 3, text = str.tostring(array.get(assets, x)), text_color = color.white, bgcolor = f_asset_col(array.get(ranks, x)), text_size = fontSize)
for r = 0 to (used_assets - 1)
for c = 0 to (used_assets - 1)
table.cell(table, c + 1, r + 3, text = str.tostring(array.get(combined_array, c + (r * 40))),
text_color = hl_type == "Text" ? f_get_col(array.get(combined_array, c + (r * 40))) : color.white, text_size = fontSize,
bgcolor = hl_type == "Background" ? f_get_col(array.get(combined_array, c + (r * 40))) : na)
for x = 0 to (used_assets - 1)
table.cell(table, x + 1, x + 3, "", bgcolor = #010c3b)
table.cell(table, used_assets + 1, 2, "", bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, used_assets + 1, x + 3, "==>", text_color = color.white)
table.cell(table, used_assets + 2, 2, "SUM", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
table.cell(table, used_assets + 3, 2, "RANK", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, used_assets + 2, x + 3,
text = str.tostring(array.get(array_sums, x)),
text_color = color.white, text_size = fontSize,
bgcolor = f_highlight_sum(array.get(array_sums, x), array.get(ranks, x)))
table.cell(table, used_assets + 3, x + 3,
text = str.tostring(array.get(ranks, x)),
text_color = color.white, text_size = fontSize,
bgcolor = f_highlight_rank(array.get(ranks, x)))
Multi Timeframe Breakout/Retest (Gap, FVG, B&R)📊 Breakout & Retest Multi-Timeframe Indicator - Support and Resistance Indicator 📊
In short, this indicator scans 4 timeframes of your choice to check if a proper breakout of your support and resistance lines you input has happened. It color-coats your support and resistance levels based on the type of breakout, labels the levels, and shows which timeframes have had a proper breakout in an interactive table. This tool is primarily used to determine when a breakout—whether Fair Value Gap (FVG), gap, or regular—has occurred, allowing you to confidently play the retest.
🔍 Types of Breakouts:
This indicator highlights three types of breakouts:
Regular Breakouts: Defined when a candle breaks above or below your level, then closes, and the next candle’s wick does not touch that level.
Gap Breakouts: A gap breakout occurs when we gap above or below the level—often happening on daily candle opens and closes.
FVG Breakouts: An FVG breakout happens when a breakout above or below your level forms a Fair Value Gap, with your level inside the gap. These breakouts tend to have stronger retests
📋 Interactive Table
The table helps you visualize which levels are experiencing a breakout and on which timeframes. It color-codes each level based on breakout activity:
🔴 Red: No active breakouts
🟢 Green: Active regular breakout
🔵 Blue: Active FVG breakout
🟡 Yellow: Active gap breakout
🎨 Color Coating & Minimum Timeframe Breakouts
To make sure you're playing a true breakout, you want confirmation on at least 3 of your chosen timeframes. This indicator has an adjustable "active minimum breakout" setting, which can be customized between 1 and 4 timeframes. I personally find that when a breakout occurs on at least 3 timeframes, the retest tends to have a higher success rate. But you can adjust this setting based on your strategy.
🔧 Future Updates (Follow for Updates):
🚨 Alerts: Set alerts for breakouts and retests.
⚙️ Improved Error Handling: For a smoother experience.
Futures Daily Settlement PricesDaily settlement prices reflect the fair market value of the underlying commodity or financial instrument, as determined by buyers and sellers during the settlement period or “close”. The price quoted in the evening news for items like a bush of corn, a barrel of crude oil, or a 10-year U.S. Treasury note frequently use the settlement price for the corresponding futures product that day.
Settlement prices are used to mark traders’ positions to market daily, determining profits or losses. Daily settlement prices play a key role in facilitating price discovery, risk management, and market integrity.
This indicator plots up to 30 settlement prices as well as the date of settlement on your chart, on time frames under 1 hour.
Customizable line types, colors, and label colors.
Profit & Risk CalculatorThe "Profit & Risk Calculator" script in Pine Script (TradingView) is designed to help users calculate potential profit and risk when trading, and to provide alerts when specific price levels are reached (such as entry price, take profit, or stop loss). It includes several components as described below:
1. Input Fields:
The user can manually input various prices: entry price, stop loss price, and take profit price, with steps of 0.25.
There is also an option to input a custom value (e.g., for personal lot sizing) and a total investment amount.
2. Dynamic Lines:
The script draws dynamic horizontal lines for the input prices: entry line (white), stop loss line (red), and take profit line (green).
These lines are automatically updated based on the entered price levels.
3. Labels for the Lines:
Labels are added to the lines to visually indicate the entry, stop loss, and take profit levels on the chart.
4. Long and Short Position Calculations:
The script calculates potential profit and loss for both long (profit if the price goes up) and short (profit if the price goes down) positions.
It also calculates the distance between entry and take profit, and distance between entry and stop loss, along with the risk/reward ratio (RR).
5. Alerts:
The script generates alerts when one of the following conditions is met:
Entry Condition: The price touches or exceeds the entry price (high >= entryPrice).
Stop Loss Condition: The price touches or drops below the stop loss price (low <= stopLossPrice).
Take Profit Condition: The price touches or exceeds the take profit price (high >= takeProfitPrice).
6. Lot Calculations:
The script calculates both micro and mini lot sizes based on a preset table and the custom value.
The results are displayed in a table on the chart.
7. Profit/Risk Table:
The script shows two tables:
One table calculates the profit, loss, and risk/reward ratio based on the input entry price.
A second table shows the same calculations based on the current price.
8. Chart Display:
The script places tables and other visual data on the chart, such as preset values, profit and loss calculations, and the distance from take profit and stop loss to the entry price.
English Explanation of Each Part of the Script
1. Input Fields
The script starts with several input fields where the user can specify the entry price, stop loss price, take profit price, custom value, and investment amount. These values help define the parameters for risk/reward calculations.
2. Dynamic Horizontal Lines
Three horizontal lines are drawn on the chart, representing the entry price, stop loss price, and take profit price. These lines update dynamically based on user input.
3. Dynamic Line Updates
As the user adjusts their inputs, the position of the lines is updated in real-time to match the new price levels. This keeps the chart visually accurate.
4. Labels for Lines
Labels are placed on the chart next to each price line, allowing the user to clearly see which line represents which price level.
5. Long and Short Position Calculations
The script calculates the potential profit or loss for both long (prices go up) and short (prices go down) positions, providing users with an idea of their potential gains or losses.
6. **6. Risk/Reward Ratio Calculation
This calculates the Risk/Reward Ratio (RR) by dividing the distance between the take profit and entry price by the distance between the entry and stop loss price. This gives the trader an idea of how much risk they're taking relative to the potential reward.
7. Alert Conditions
The alert conditions are defined based on the price hitting the set levels:
Entry Condition: If the price goes up and touches the entry level, the alert is triggered.
Stop Loss Condition: If the price drops and hits the stop loss level, the alert is triggered.
Take Profit Condition: If the price rises and reaches the take profit level, the alert is triggered.
8. Alert Configuration
Each condition is linked to an alert that sends a message when the specific price level is touched. The alerts notify the user when the entry, stop loss, or take profit levels are hit.
9. Lot Calculations
The script includes a function that calculates micro and mini lot sizes based on a preset table and a custom value input by the user. This is useful for adjusting lot sizes to the desired amount and determining position sizes for trades.
10. Entry Price-Based Profit & Loss Table
A table is generated on the chart that displays detailed information about the profit, loss, and risk/reward ratio based on the entry price. It helps traders see the potential outcomes for different lot sizes.
11. Current Price-Based Profit & Loss Table
This second table provides similar information as the first but calculates profit, loss, and risk/reward based on the current price. This allows the trader to see how their position performs as the market price changes in real time.
DWMA & Normalized DWMA St. Dev.The Distance Weighted Moving Average With Standard Deviations enhanced by Normalizing it (DWMA & NDWMA) is an advanced technical indicator designed to identify trends, potential breakouts, and reversals while accounting for market volatility. By combining a weighted approach to moving averages with dynamic standard deviations and a normalized component, this tool offers a robust framework for both short-term traders and long-term investors. It brings together several layers of trend analysis to provide clearer signals and minimize market noise.
1. DWMA (Distance Weighted Moving Average)
At its core, the DWMA assigns more weight to price points that are closer in value to the current price. Unlike traditional moving averages that focus on time-based proximity, DWMA highlights price similarity, making it more adaptive to sudden changes in the market. This helps to smooth out erratic price movements while staying responsive to meaningful shifts.
2. DWMA SD (Standard Deviation)
The DWMA SD measures how much the DWMA fluctuates from its mean over a specified period. By analyzing these fluctuations, the DWMA SD provides a volatility assessment of the DWMA itself, offering insights into the stability or turbulence of the current trend. This is a critical aspect for traders who want to gauge whether a trend is steady or losing momentum.
3. DWMA WSD (Weighted Standard Deviations)
The DWMA WSD introduces a volatility-based channel around the DWMA by multiplying the standard deviation with user-defined weights. This creates dynamic upper and lower bands, allowing traders to identify potential overbought and oversold conditions. When the price crosses these bands, it signals possible trend reversals or breakout opportunities, helping traders make more informed decisions on entry and exit points.
4. NDWMA (Normalized DWMA)
The Normalized DWMA takes the DWMA one step further by adjusting it relative to the current price level. This normalization ensures that the DWMA remains comparable across different price ranges, whether the asset’s price is high or low. This component is particularly useful for analyzing assets with volatile or widely varying price levels, as it makes trends easier to spot and interpret.
5. NDWMA SD (Standard Deviation)
The NDWMA SD works similarly to the DWMA SD, but it focuses on the volatility of the normalized DWMA. It reflects how much the normalized DWMA fluctuates around its average, providing an additional perspective on market conditions. Traders can use this to detect shifts in the strength of the trend and to anticipate potential changes in direction.
6. Signals
The Signals generated by this indicator combine insights from both the DWMA and NDWMA:
Long Signals (L) occur when the price moves above the DWMA’s upper band and the NDWMA confirms a positive trend. This suggests that the market is gaining momentum, making it a potential buy signal.
Short Signals (S) are triggered when the price falls below the DWMA’s lower band, and the NDWMA shows weakness. This indicates a possible bearish trend, signaling traders to consider selling or shorting.
These signals are designed to filter out false signals and provide more reliable trend confirmations by leveraging the combined power of both moving averages and their volatility bands.
The DWMA & NDWMA indicator provides a sophisticated approach to trend analysis by merging price-weighted moving averages with volatility bands and normalization. Its multi-layered structure offers a detailed perspective on price movements and trends, helping traders identify potential opportunities with greater accuracy.
Dynamic Price Oscillator [CHE]Dynamic Price Oscillator
Overview:
Welcome to the Dynamic Price Oscillator ! This indicator is designed to help traders identify potential trend reversals and divergences by comparing short-term and long-term price movements in percentage terms. It’s a powerful tool to enhance your trading strategies by spotting bullish and bearish divergences effectively.
Key Features:
Dynamic Oscillator Calculation: The DPO calculates the percentage difference between two EMAs (Exponential Moving Averages), offering insight into the relative strength of price movements.
Bullish & Bearish Divergence Detection:
The indicator highlights divergences between price and the oscillator, allowing you to identify potential reversal points with ease.
Long-Term Divergence Option: Enable or disable long-term divergences to focus on either short-term trends or broader market movements.
High/Low Markers:
Visual markers for significant peaks and troughs in the DPO, helping you quickly spot potential trade setups.
Custom Alerts: Set up alerts for both bullish and bearish divergence signals, ensuring you never miss an important opportunity.
How to Use:
Bullish Divergence: A bullish divergence occurs when price is making lower lows, but the DPO shows higher lows. This can indicate a potential reversal to the upside.
Bearish Divergence: A bearish divergence happens when price is making higher highs, but the DPO shows lower highs. This can signal a potential downside reversal.
Customizable Settings: Adjust the fast and slow EMA periods, smoothing factor, and divergence lookback to fit your personal trading style.
Ideal For:
Swing traders and day traders looking for early signs of market reversals.
Those who want a clear, visual representation of divergence between price and momentum.
Traders who appreciate flexibility with customizable parameters and built-in alerts.
Why Use Dynamic Price Oscillator ?
This indicator gives you the edge by providing a reliable way to measure price momentum and detect divergences that are often missed by other indicators. With the option to enable long-term divergences, you can tailor the indicator to fit both short-term and long-term strategies.
Give it a try and see how the Dynamic Price Oscillator can enhance your trading performance!
Best regards Chervolino
Gabriel's Cyclic Smoothed RSI [Enhanced]Overview
Gabriel's Cyclic Smoothed RSI (short title: cRSI ) is a sophisticated technical indicator developed to provide traders with deeper insights into market rhythms and price momentum. Building upon the traditional Relative Strength Index (RSI), this enhanced version incorporates dynamic cycle analysis, divergence detection, and optional stochastic oscillators to deliver a more nuanced understanding of market conditions.
Key Features
Cyclic Smoothed RSI (cRSI):
Adaptive Momentum: The cRSI adapts to the dominant market cycle, providing a smoothed RSI that reacts dynamically to price changes.
Ultra-Smooth & Zero-Lag: Designed to minimize lag, ensuring timely signals that closely follow price movements.
Accurate Divergence Detection: Identifies both regular and hidden bullish/bearish divergences, enhancing signal reliability.
Dynamic Overbought/Oversold Bands:
Customizable Thresholds: Set dynamic overbought and oversold levels based on market rhythm analysis.
Adaptive Bands: Bands adjust according to the dominant cycle, offering a more accurate representation of market extremes.
Stochastic cRSI & KDJ Oscillator (Optional):
Enhanced Oscillators: Incorporate stochastic and KDJ oscillators for additional momentum analysis.
Ribbon Displays: Visual ribbons provide clarity on oscillator trends and potential reversal points.
Divergence Detection:
Regular & Hidden Divergences: Detects both regular and hidden bullish/bearish divergences to anticipate potential trend reversals.
Customizable Lookback: Adjust pivot lookback periods to fine-tune divergence sensitivity.
Visual Enhancements:
Triangles & Labels: Visual signals in the form of triangles and labels indicate buy/sell opportunities and divergence events.
Bar Coloring: Option to color bars based on signal strength, providing immediate visual cues.
Alert Conditions:
Custom Alerts: Set up alerts for various signal types, including strong buy/sell signals and divergence events, ensuring you never miss critical market movements.
Input Settings
cRSI Settings
Source: Select the data source for calculations (e.g., Close, Open, High, Low, HLC3, OHLC4).
Dominant Cycle Length: Define the dominant market cycle length based on rhythm analysis.
Vibration: Adjusts the sensitivity of the cRSI to price changes.
Leveling %: Determines the percentage level for dynamic band adjustments.
Show cRSI Plot: Toggle the display of the cRSI line.
Show Cyclic Smoothed Bands: Toggle the display of dynamic overbought and oversold bands.
Show Trend Fill: Enable or disable the trend fill cloud between upper and lower bands.
MA Settings
MA Type: Choose the type of Moving Average (SMA, Bollinger Bands, EMA, SMMA (RMA), WMA, VWMA) to smooth the cRSI.
MA Length: Set the length of the Moving Average.
BB StdDev: Define the standard deviation multiplier for Bollinger Bands.
Show cRSI-based MA: Toggle the display of the cRSI-based Moving Average line.
Stochastic Settings
Show Stochastic cRSI: Enable the stochastic oscillator based on cRSI.
Ribbon: Enable ribbon display for the Stochastic oscillator.
Show KDJ: Toggle the display of the KDJ oscillator.
KDJ Ribbon: Enable ribbon display for the KDJ oscillator.
Stochastic Length: Set the length for the Stochastic calculation.
%K Smoothing: Define the smoothing period for %K.
%D Smoothing: Define the smoothing period for %D.
Stoch Scaling %: Adjusts the vertical scaling of the stochastic to prevent distortion.
Overbought/Oversold Settings
Overbought: Set the Overbought threshold for the cRSI.
OB Extreme: Define the Extreme Overbought threshold for the Stochastic cRSI.
Oversold: Set the Oversold threshold for the cRSI.
OS Extreme: Define the Extreme Oversold threshold for the Stochastic cRSI.
Divergence Settings
Pivot Lookback Right: Number of bars to the right of the pivot for divergence detection.
Pivot Lookback Left: Number of bars to the left of the pivot for divergence detection.
Max of Lookback Range: Maximum number of bars to look back for divergence detection.
Min of Lookback Range: Minimum number of bars to look back for divergence detection.
Plot Bullish: Enable plotting of bullish divergence signals.
Plot Hidden Bullish: Enable plotting of hidden bullish divergence signals.
Plot Bearish: Enable plotting of bearish divergence signals.
Plot Hidden Bearish: Enable plotting of hidden bearish divergence signals.
Delay Plot Until Candle is Closed: Prevents repainting by delaying the plotting of divergence signals until the candle is fully closed.
Top 5 Trend [KintsugiTrading]Top 5 Trend
This script provides a visual indicator for tracking the average trend of five selected stocks. By calculating the exponential moving average (EMA) of the closing price of the five selected stocks, the indicator helps users quickly assess overall market sentiment. The indicator's original purpose was to inform the user of the direction of the five largest stocks that make up ~25% of the S&P 500.
Key Features:
Custom Stock Selection: Choose any five stocks to monitor and visualize their combined trend.
EMA-Based Trend: The indicator compares a fast and slow EMA to determine the direction of the trend. When the fast EMA is above the slow EMA, the trend is considered bullish (uptrend); otherwise, it's bearish (downtrend).
Customizable Colors: You can easily customize the colors for both uptrends and downtrends, giving you control over the visual representation of the trend.
Trend Bar Display: For an easy, sleek, and simple reference - The script displays a trend arrow in the lower-right corner of the chart for bullish momentum and a trend arrow in the top-right corner of the chart for bearish momentum.
This indicator is perfect for traders who want to monitor the combined movement of a group of major stocks in order to easily compare strengths or weaknesses. It is a key visual aid in understanding if the overall sentiment is bullish or bearish based on the selected stocks' performance, thus making sure the user is always trading on the right side of momentum.