Price Action Smart Money Concepts [BigBeluga]THE SMART MONEY CONCEPTS  Toolkit
 The Smart Money Concepts   [ BigBeluga ] is a comprehensive toolkit built around the principles of "smart money" behavior, which refers to the actions and strategies of institutional investors.
The Smart Money Concepts Toolkit brings together a suite of advanced indicators that are all interconnected and built around a unified concept: understanding and trading like institutional investors, or "smart money." These indicators are not just randomly chosen tools; they are features of a single overarching framework, which is why having them all in one place creates such a powerful system. 
This all-in-one toolkit provides the user with a unique experience by automating most of the basic and advanced concepts on the chart, saving them time and improving their trading ideas.
 
  Real-time market structure analysis simplifies complex trends by pinpointing key support, resistance, and breakout levels.
  Advanced order block analysis leverages detailed volume data to pinpoint high-demand zones, revealing internal market sentiment and predicting potential reversals. This analysis utilizes bid/ask zones to provide supply/demand insights, empowering informed trading decisions.
  Imbalance Concepts (FVG and Breakers) allows traders to identify potential market weaknesses and areas where price might be attracted to fill the gap, creating opportunities for entry and exit.
  Swing failure patterns help traders identify potential entry points and rejection zones based on price swings.
  Liquidity Concepts, our advanced liquidity algorithm, pinpoints high-impact events, allowing you to predict market shifts, strong price reactions, and potential stop-loss hunting zones. This gives traders an edge to make informed trading decisions based on liquidity dynamics.
 
🔵  FEATURES 
The indicator has quite a lot of features that are provided below:
 
  Swing market structure
  Internal market structure
  Mapping structure
  Adjustable market structure
  Strong/Weak H&L
  Sweep
  Volumetric Order block / Breakers
  Fair Value Gaps / Breakers (multi-timeframe)
  Swing Failure Patterns (multi-timeframe)
  Deviation area
  Equal H&L
  Liquidity Prints
  Buyside & Sellside
  Sweep Area
  Highs and Lows (multi-timeframe)
 
🔵  BASIC DEMONSTRATION OF ALL FEATURES 
1. MARKET STRUCTURE
  
The preceding image illustrates the market structure functionality within the Smart Money Concepts indicator.
➤ Solid lines: These represent the core indicator's internal structure, forming the foundation for most other components. They visually depict the overall market direction and identify major reversal points marked by significant price movements (denoted as 'x').
➤ Internal Structure: These represent an alternative internal structure with the potential to drive more rapid market shifts. This is particularly relevant when a significant gap exists in the established swing structure, specifically between the Break of Structure (BOS) and the most recent Change of High/Low (CHoCH). Identifying these formations can offer opportunities for quicker entries and potential short-term reversals.
  
➤ Sweeps (x): These signify potential turning points in the market where liquidity is removed from the structure. This suggests a possible trend reversal and presents crucial entry opportunities. Sweeps are identified within both swing and internal structures, providing valuable insights for informed trading decisions.
  
➤ Mapping structure: A tool that automatically identifies and connects significant price highs and lows, creating a zig-zag pattern. It visualizes market structure, highlights trends, support/resistance levels, and potential breakouts. Helps traders quickly grasp price action patterns and make informed decisions.
  
➤ Color-coded candles based on market structure: These colors visually represent the underlying market structure, making it easier for traders to quickly identify trends. 
  
➤ Extreme H&L: It visualizes market structure with extreme high and lows, which gives perspective for macro Market Structure.
  
2. VOLUMETRIC ORDER BLOCKS
Order blocks are specific areas on a financial chart where significant buying or selling activity has occurred. These are not just simple zones; they contain valuable information about market dynamics. Within each of these order blocks, volume bars represent the actual buying and selling activity that took place. These volume bars offer deeper insights into the strength of the order block by showing how much buying or selling power is concentrated in that specific zone.
Additionally, these order blocks can be transformed into Breaker Blocks. When an order block fails—meaning the price breaks through this zone without reversing—it becomes a breaker block. Breaker blocks are particularly useful for trading breakouts, as they signal that the market has shifted beyond a previously established zone, offering opportunities for traders to enter in the direction of the breakout. 
Here's a breakdown:
➤ Bear Order Blocks (Red): These are zones where a lot of selling happened. Traders see these areas as places where sellers were strong, pushing the price down. When the price returns to these zones, it might face resistance and drop again.
➤ Bull Order Blocks (Green): These are zones where a lot of buying happened. Traders see these areas as places where buyers were strong, pushing the price up. When the price returns to these zones, it might find support and rise again.
  
These Order Blocks help traders identify potential areas for entering or exiting trades based on past market activity. The volume bars inside blocks show the amount of trading activity that occurred in these blocks, giving an idea of the strength of buying or selling pressure.
➤ Breaker Block: When an order block fails, meaning the price breaks through this zone without reversing, it becomes a breaker block. This indicates a significant shift in market liquidity and structure.
  
➤ A bearish breaker block occurs after a bullish order block fails. This typically happens when there's an upward trend, and a certain level that was expected to support the market's rise instead gives way, leading to a sharp decline. This decline indicates that sellers have overcome the buyers, absorbing liquidity and shifting the sentiment from bullish to bearish. 
  
Conversely, a bullish breaker block is formed from the failure of a bearish order block. In a downtrend, when a level that was expected to act as resistance is breached, and the price shoots up, it signifies that buyers have taken control, overpowering the sellers. 
3. FAIR VALUE GAPS:
A fair value gap (FVG), also referred to as an imbalance, is an essential concept in Smart Money trading. It highlights the supply and demand dynamics. This gap arises when there's a notable difference between the volume of buy and sell orders. FVGs can be found across various asset classes, including forex, commodities, stocks, and cryptocurrencies. 
  
FVGs in this toolkit have the ability to detect raids of FVG which helps to identify potential price reversals. 
  
Mitigation option helps to change from what source FVGs will be identified: Close, Wicks or AVG.
4. SWING FAILURE PATTERN (SFP): 
The Swing Failure Pattern is a liquidity engineering pattern, generally used to fill large orders. This means, the SFP generally occurs when larger players push the price into liquidity pockets with the sole objective of filling their own positions. 
SFP is a technical analysis tool designed to identify potential market reversals. It works by detecting instances where the price briefly breaks a previous high or low but fails to maintain that breakout, quickly reversing direction.
How it works:
 
  Pattern Detection: The indicator scans for price movements that breach recent highs or lows.
  Reversal Confirmation: If the price quickly reverses after breaching these levels, it's identified as an SFP.
 
➤ SFP Display: 
  Bullish SFP: Marked with a green symbol when price drops below a recent low before reversing upwards.
  Bearish SFP: Marked with a red symbol when price rises above a recent high before reversing downwards.
  
➤ Deviation Levels: After detecting an SFP, the indicator projects white lines showing potential price deviation:
  For bullish SFPs, the deviation line appears above the current price.
  For bearish SFPs, the deviation line appears below the current price.
 
  
These deviation levels can serve as a potential trading opportunity or areas where the reversal might lose momentum.
With Volume Threshold and Filtering of SFP traders can adjust their trading style:
 
  Volume Threshold: This setting allows traders to filter SFPs based on the volume of the reversal candle. By setting a higher volume threshold, traders can focus on potentially more significant reversals that are backed by higher trading activity. 
  SFP Filtering: This feature enables traders to filter SFP detection. It includes parameters such as:
 
  
5. LIQUIDITY CONCEPTS:
➤ Equal Lows (EQL) and Equal Highs (EQH) are important concepts in liquidity-based trading.
 
  EQL: A series of two or more swing lows that occur at approximately the same price level. 
  EQH: A series of two or more swing highs that occur at approximately the same price level. 
 
  
EQLs and EQHs are seen as potential liquidity pools where a large number of stop loss orders or limit orders may be clustered. They can be used as potential reverse points for trades. 
  
This multi-period feature allows traders to select less and more significant EQL and EQH:
➤ Liquidity wicks: 
Liquidity wicks are a minor representation of a stop-loss hunt during the retracement of a pivot point:
  
➤ Buy and Sell side liquidity:
 
  The buy side liquidity represents a concentration of potential buy orders below the current price level. When price moves into this area, it can lead to increased buying pressure due to the execution of these orders. 
  The sell side liquidity indicates a pool of potential sell orders below the current price level. Price movement into this area can result in increased selling pressure as these orders are executed. 
 
  
➤ Sweep Liquidation Zones:
Sweep Liquidation Zones are crucial for understanding market structure and potential future price movements. They provide insights into areas where significant market participants have been forced out of their positions, potentially setting up new trading opportunities. 
  
🔵  USAGE & EXAMPLES 
The core principle behind the success of this toolkit lies in identifying "confluence." This refers to the convergence of multiple trading indicators all signaling the same information at a specific point or area. By seeking such alignment, traders can significantly enhance the likelihood of successful trades.
 MS + OBs 
  
The chart illustrates a highly bullish setup where the price is rejecting from a bullish order block (POC), while simultaneously forming a bullish Swing Failure Pattern (SFP). This occurs after an internal structure change, marked by a bullish Change of Character (CHoCH). The price broke through a bearish order block, transforming it into a breaker block, further confirming the bullish momentum.
The combination of these elements—bullish order blocks, SFP, and CHoCH—creates a powerful bullish signal, reinforcing the potential for upward movement in the market.
 SFP + Bear OB 
  
This chart above displays a bearish setup with a high probability of a price move lower. The price is currently rejecting from a bear order block, which represents a key resistance area where significant selling pressure has previously occurred. A Swing Failure Pattern (SFP) has also formed near this bear order block, indicating that the price briefly attempted to break above a recent high but failed to sustain that upward movement. This failure suggests that buyers are losing momentum, and the market could be preparing for a move to the downside. 
Additionally, we can toggle on the Deviation Area in the SFP section to highlight potential levels where price deviation might occur. These deviation areas represent zones where the price is likely to react after the Swing Failure Pattern:
  
 BUY – SELL sides + EQL 
  
The chart showcases a bullish setup with a high probability of price breaking out of the current sell-side resistance level. The market structure indicates a formation of Equal Lows (EQL), which often suggests a build-up of liquidity that could drive the price higher.
The presence of strong buy-side pressure (69%), indicated by the green zone at the bottom, reinforces this bullish outlook. This area represents a key support zone where buyers are outpacing sellers, providing the foundation for a potential upward breakout.
 EQL + Bull ChoCh 
  
This chart illustrates a potential bullish setup, driven by the formation of Equal Lows (EQL) followed by a bullish Change of Character (CHoCH). The presence of Equal Lows often signals a liquidity build-up, which can lead to a reversal when combined with additional bullish signals. 
 Liquidity grab + Bull ChoCh + FVGs 
  
This chart demonstrates a strong bullish scenario, where several important market dynamics are at play. The price begins its upward momentum from Liquidity grab following a bullish Change of Character (CHoCH), signaling the transition from a bearish phase to a bullish one.
As the price progresses, it performs liquidity grabs, which serve to gather the necessary fuel for further movement. These liquidity grabs often occur before significant price surges, as large market participants exploit these areas to accumulate positions before pushing the price higher.
The chart also highlights a market imbalance area, showing strong momentum as the price moves swiftly through this zone.
In this examples, we see how the combination of multiple “smart money” tools helps identify a potential trade opportunities. This is just one of the many scenarios that traders can spot using this toolkit. Other combinations—such as order blocks, liquidity grabs, fair value gaps, and Swing Failure Patterns (SFPs)—can also be layered on top of these concepts to further refine your trading strategy. 
🔵  SETTINGS 
 
  Window: limit calculation period
  Swing: limit drawing function
  Mapping structure: show structural points
  Algorithmic Logic: (Extreme-Adjusted) Use max high/low or pivot point calculation
  Algorithmic loopback: pivot point look back
  Show Last: Amount of Order block to display
  Hide Overlap: hide overlapping order blocks
  Construction: Size of the order blocks
  Fair value gaps: Choose between normal FVG or Breaker FVG
  Mitigation: (close - wick - avg) point to mitigate the order block/imbalance
  SFP lookback: find a higher / lower point to improve accuracy
  Threshold: remove less relevant SFP
  Equal H&L: (short-mid-long term) display longer term
  Liquidity Prints: Shows wicks of candles where liquidity was grabbed
  Sweep Area: Identify Sweep Liquidation areas
 
By combining these indicators in one toolkit, traders are equipped with a comprehensive suite of tools that address every angle of the Smart Money Concept. Instead of relying on disparate tools spread across various platforms, having them integrated into a single, cohesive system allows traders to easily see confluence and make more informed trading decisions. 
Cari skrip untuk "high low"
WaveTrend With Divs & RSI(STOCH) Divs by WeloTradesWaveTrend with Divergences & RSI(STOCH) Divergences by WeloTrades 
 Overview 
 The "WaveTrend With Divergences & RSI(STOCH) Divergences" is an advanced Pine Script™ indicator designed for TradingView, offering a multi-dimensional analysis of market conditions. This script integrates several technical indicators—WaveTrend, Money Flow Index (MFI), RSI, and Stochastic RSI—into a cohesive tool that identifies both regular and hidden divergences across these indicators. These divergences can indicate potential market reversals and provide critical trading opportunities. 
 This indicator is not just a simple combination of popular tools; it offers extensive customization options, organized data presentation, and valuable trading signals that are easy to interpret. Whether you're a day trader or a long-term investor, this script enhances your ability to make informed decisions. 
 Originality and Usefulness 
 The originality of this script lies in its integration and the synergy it creates among the indicators used. Rather than merely combining multiple indicators, this script allows them to work together, enhancing each other's strengths. For example, by identifying divergences across WaveTrend, RSI, and Stochastic RSI simultaneously, the script provides multiple layers of confirmation, which reduces the likelihood of false signals and increases the reliability of trading signals. 
 The usefulness of this script is apparent in its ability to offer a consolidated view of market dynamics. It not only simplifies the analytical process by combining different indicators but also provides deeper insights through its divergence detection features. This comprehensive approach is designed to help traders identify potential market reversals, confirm trends, and ultimately make more informed trading decisions. 
 How the Components Work Together 
 1. Cross-Validation of Signals 
 
 WaveTrend:  This indicator is primarily used to identify overbought and oversold conditions, as well as potential buy and sell signals. WaveTrend's ability to smooth price data and reduce noise makes it a reliable tool for identifying trend reversals.
 RSI & Stochastic RSI:  These momentum oscillators are used to measure the speed and change of price movements. While RSI identifies general overbought and oversold conditions, Stochastic RSI offers a more granular view by tracking the RSI’s level relative to its high-low range over a period of time. When these indicators align with WaveTrend signals, it adds a layer of confirmation that enhances the reliability of the signals.
 Money Flow Index (MFI):  This volume-weighted indicator assesses the inflow and outflow of money in an asset, giving insights into buying and selling pressure. By analyzing the MFI alongside WaveTrend and RSI indicators, the script can cross-validate signals, ensuring that buy or sell signals are supported by actual market volume.
 
 Example Bullish scenario: 
  
 When a bullish divergence is detected on the RSI and confirmed by a corresponding bullish signal on the WaveTrend, along with an increasing Money Flow Index, the probability of a successful trade setup increases. This cross-validation minimizes the risk of acting on false signals, which might occur when relying on a single indicator. 
 Example Bearish scenario: 
  
 When a bearish divergence is detected on the RSI and confirmed by a corresponding bearish signal on the WaveTrend, along with an decreasing Money Flow Index, the probability of a successful trade setup increases. This cross-validation minimizes the risk of acting on false signals, which might occur when relying on a single indicator. 
 2. Divergence Detection and Market Reversals 
 
 Regular Divergences:  Occur when the price action and an indicator (like RSI or WaveTrend) move in opposite directions. Regular bullish divergence signals a potential upward reversal when the price makes a lower low while the indicator makes a higher low. Conversely, regular bearish divergence suggests a downward reversal when the price makes a higher high, but the indicator makes a lower high.
 Hidden Divergences:  These occur when the price action and indicator move in the same direction, but with different momentum. Hidden bullish divergence suggests the continuation of an uptrend, while hidden bearish divergence suggests the continuation of a downtrend. By detecting these divergences across multiple indicators, the script identifies potential trend reversals or continuations with greater accuracy.
 Example:   The script might detect a regular bullish divergence on the WaveTrend while simultaneously identifying a hidden bullish divergence on the RSI. This combination suggests that while a trend reversal is possible, the overall market sentiment remains bullish, providing a nuanced view of the market. 
 
A Regular Bullish Divergence Example:
  
A Hidden Bullish Divergence Example:
  
A Regular Bearish Divergence Example:
  
A Hidden Bearish Divergence Example:
  
 3. Trend Strength and Sentiment Analysis 
 
 WaveTrend:  Measures the strength and direction of the trend. By identifying the extremes of market sentiment (overbought and oversold levels), WaveTrend provides early signals for potential reversals.
 Money Flow Index (MFI):  Assesses the underlying sentiment by analyzing the flow of money. A rising MFI during an uptrend confirms strong buying pressure, while a falling MFI during a downtrend confirms selling pressure. This helps traders assess whether a trend is likely to continue or reverse.
 RSI & Stochastic RSI:  Offer a momentum-based perspective on the trend’s strength. High RSI or Stochastic RSI values indicate that the asset may be overbought, suggesting a potential reversal. Conversely, low values indicate oversold conditions, signaling a possible upward reversal.
 
 Example: 
  
 During a strong uptrend, the WaveTrend & RSI's might signal overbought conditions, suggesting caution. If the MFI also shows decreasing buying pressure and the RSI reaches extreme levels, these indicators together suggest that the trend might be weakening, and a reversal could be imminent. 
 Example: 
  
 During a strong downtrend, the WaveTrend & RSI's might signal oversold conditions, suggesting caution. If the MFI also shows increasing buying pressure and the RSI reaches extreme levels, these indicators together suggest that the trend might be weakening, and a reversal could be imminent. 
 Conclusion 
 The "WaveTrend With Divergences & RSI(STOCH) Divergences" script offers a powerful, integrated approach to technical analysis by combining trend, momentum, and sentiment indicators into a single tool. Its unique value lies in the cross-validation of signals, the ability to detect divergences, and the comprehensive view it provides of market conditions. By offering traders multiple layers of analysis and customization options, this script is designed to enhance trading decisions, reduce false signals, and provide clearer insights into market dynamics. 
 WAVETREND 
 Display of WaveTrend: 
  
 Display of WaveTrend Setting: 
  
 WaveTrend Indicator Explanation 
 The WaveTrend indicator helps identify overbought and oversold conditions, as well as potential buy and sell signals. Its flexibility allows traders to adapt it to various strategies, making it a versatile tool in technical analysis. 
 WaveTrend Input Settings: 
 WT MA Source:   Default: HLC3 
 
 What it is:  The data source used for calculating the WaveTrend Moving Average.
 What it does:  Determines the input data to smooth price action and filter noise.
 Example:  Using HLC3 (average of High, Low, Close) provides a smoother data representation compared to using just the closing price.
 
 Length (WT MA Length):   Default: 3 
 
 What it is:  The period used to calculate the Moving Average.
 What it does:  Adjusts the sensitivity of the WaveTrend indicator, where shorter lengths respond more quickly to price changes.
 Example:  A length of 3 is ideal for short-term analysis, providing quick reactions to price movements.
 
 WT Channel Length & Average: Default:   WT Channel Length = 9, Average = 12 
 
 What it is:  Lengths used to calculate the WaveTrend channel and its average.
 What it does:  Smooths out the WaveTrend further, reducing false signals by averaging over a set period.
 Example:  Higher values reduce noise and help in identifying more reliable trends.
 
 Channel:   Style, Width, and Color: 
 
 What it is:  Customization options for the WaveTrend channel's appearance.
 What it does:  Adjusts how the channel is displayed, including line style, width, and color.
 Example:  Choosing an area style with a distinct color can make the WaveTrend indicator clearly visible on the chart.
 
 WT Buy & Sell Signals: 
 
 What it is:  Settings to enable and customize buy and sell signals based on WaveTrend.
 What it does:  Allows for the display of buy/sell signals and customization of their shapes and colors.
 When it gives a Buy Signal:  Generated when the WaveTrend line crosses below an oversold level and then rises back, indicating a potential upward price movement.
 When it gives a Sell Signal:  Triggered when the WaveTrend line crosses above an overbought level and then declines, suggesting a possible downward trend.
 Example:  The script identifies these signals based on mean reversion principles, where prices tend to revert to the mean after reaching extremes. Traders can use these signals to time their entries and exits effectively.
 
 WAVETREND OVERBOUGTH AND OVERSOLD LEVELS 
 Display of WaveTrend with Overbought & Oversold Levels: 
  
 Display of WaveTrend  Overbought & Oversold Levels Settings: 
  
 WaveTrend Overbought & Oversold Levels Explanation 
 WT OB & OS Levels:   Default: OB Level 1 = 53, OB Level 2 = 60, OS Level 1 = -53, OS Level 2 = -60 
 
 What it is:  The default overbought and oversold levels used by the WaveTrend indicator to signal potential market reversals.
 What it does:  When the WaveTrend crosses above the OB levels, it indicates an overbought condition, potentially signaling a reversal or selling opportunity. Conversely, when it crosses below the OS levels, it indicates an oversold condition, potentially signaling a reversal or buying opportunity.
 Example:  A trader might use these levels to time entry or exit points, such as selling when the WaveTrend crosses into the overbought zone or buying when it crosses into the oversold zone.
 
 Show OB/OS Levels:   Default: True 
 
 What it is:  Toggle options to show or hide the overbought and oversold levels on your chart.
 What it does:  When enabled, these levels will be visually represented on your chart, helping you to easily identify when the market reaches these critical thresholds.
 Example:  Displaying these levels can help you quickly see when the WaveTrend is approaching or has crossed into overbought or oversold territory, allowing for more informed trading decisions.
 
 Line Style, Width, and Color for OB/OS Levels: 
 
 What it is:  Options to customize the appearance of the OB and OS levels on your chart, including line style (solid, dotted, dashed), line width, and color.
 What it does:  These settings allow you to adjust how prominently these levels are displayed on your chart, which can help you better visualize and respond to overbought or oversold conditions.
 Example:  Setting a thicker, dashed line in a contrasting color can make these levels stand out more clearly, aiding in quick visual identification.
 
 Example of Use: 
 
 Scenario:  A trader wants to identify potential selling points when the market is overbought. They set the OB levels at 53 and 60, choosing a solid, red line style to make these levels clear on their chart. As the WaveTrend crosses above 53, they monitor for further price action, and upon crossing 60, they consider initiating a sell order.
 
 WAVETREND DIVERGENCES 
 Display of WaveTrend Divergence: 
  
 Display of WaveTrend Divergence Setting: 
  
 WaveTrend Divergence Indicator Explanation 
The WaveTrend Divergence feature helps identify potential reversal points in the market by highlighting divergences between the price and the WaveTrend indicator. Divergences can signal a shift in market momentum, indicating a possible trend reversal. This component allows traders to visualize and customize divergence detection on their charts.
 WaveTrend Divergence Input Settings: 
 Potential Reversal Range:   Default: 28 
 
 What it is:  The number of bars to look back when detecting potential tops and bottoms.
 What it does:  Sets the range for identifying possible reversal points based on historical data.
 Example:  A setting of 28 looks back across the last 28 bars to find reversal points, offering a balance between responsiveness and reliability.
 
 Reversal Minimum LVL OB & OS:   Default: OB = 35, OS = -35 
 
 What it is:  The minimum overbought and oversold levels required for detecting potential reversals.
 What it does:  Adjusts the thresholds that trigger a reversal signal based on the WaveTrend indicator.
 Example:  A higher OB level reduces the sensitivity to overbought conditions, potentially filtering out false reversal signals.
 
 Lookback Bar Left & Right:   Default: Left = 10, Right = 1 
 
 What it is:  The number of bars to the left and right used to confirm a top or bottom.
 What it does:  Helps determine the position of peaks and troughs in the price action.
 Example:  A larger left lookback captures more extended price action before the peak, while a smaller right lookback focuses on the immediate past.
 
 Lookback Range Min & Max:   Default: Min = 5, Max = 60 
 
 What it is:  The minimum and maximum range for the lookback period when identifying divergences.
 What it does:  Fine-tunes the detection of divergences by controlling the range over which the indicator looks back.
 Example:  A wider range increases the chances of detecting divergences across different market conditions.
 
 R.Div Minimum LVL OB & OS:   Default: OB = 53, OS = -53 
 
 What it is:  The threshold levels for detecting regular divergences.
 What it does:  Adjusts the sensitivity of the regular divergence detection.
 Example:  Higher thresholds make the detection more conservative, identifying only stronger divergence signals.
 
 H.Div Minimum LVL OB & OS:   Default: OB = 20, OS = -20 
 
 What it is:  The threshold levels for detecting hidden divergences.
 What it does:  Similar to regular divergence settings but for hidden divergences, which can indicate potential reversals that are less obvious.
 Example:  Lower thresholds make the hidden divergence detection more sensitive, capturing subtler market shifts.
 
 Divergence Label Options: 
 
 What it is:  Options to display and customize labels for regular and hidden divergences.
 What it does:  Allows users to visually differentiate between regular and hidden divergences using customizable labels and colors.
 Example:  Using different colors and symbols for regular (R) and hidden (H) divergences makes it easier to interpret signals on the chart.
 
 Text Size and Color: 
 
 What it is:  Customization options for the size and color of divergence labels.
 What it does:  Adjusts the readability and visibility of divergence labels on the chart.
 Example:  Larger text size may be preferred for charts with a lot of data, ensuring divergence labels stand out clearly.
 
 FAST & SLOW MONEY FLOW INDEX 
 Display of Fast & Slow Money Flow: 
  
 Display of Fast & Slow Money Flow Setting: 
  
 Fast Money Flow Indicator Explanation 
The Fast Money Flow indicator helps traders identify the flow of money into and out of an asset over a shorter time frame. By tracking the volume-weighted average of price movements, it provides insights into buying and selling pressure in the market, which can be crucial for making timely trading decisions.
 Fast Money Flow Input Settings: 
 Fast Money Flow: Length:   Default: 9 
 
 What it is:  The period used for calculating the Fast Money Flow.
 What it does:  Determines the sensitivity of the Money Flow calculation. A shorter length makes the indicator more responsive to recent price changes, while a longer length provides a smoother signal.
 Example:  A length of 9 is suitable for traders looking to capture quick shifts in market sentiment over a short period.
 
 Fast MFI Area Multiplier:   Default: 5 
 
 What it is:  A multiplier applied to the Money Flow area calculation.
 What it does:  Adjusts the size of the Money Flow area on the chart, effectively amplifying or reducing the visual impact of the indicator.
 Example:  A higher multiplier can make the Money Flow more prominent on the chart, aiding in the quick identification of significant money flow changes.
 
 Y Position (Y Pos):   Default: 0 
 
 What it is:  The vertical position adjustment for the Fast Money Flow plot on the chart.
 What it does:  Allows you to move the Money Flow plot up or down on the chart to avoid overlap with other indicators.
 Example:  Adjusting the Y Position can be useful if you have multiple indicators on the chart and need to maintain clarity.
 
 Fast MFI Style, Width, and Color: 
 
 What it is:  Customization options for how the Fast Money Flow is displayed on the chart.
 What it does:  Enables you to choose between different plot styles (line or area), set the line width, and select colors for positive and negative money flow.
 Example:  Using different colors for positive (green) and negative (red) money flow helps to visually distinguish between periods of buying and selling pressure.
 
 Slow Money Flow Indicator Explanation 
The Slow Money Flow indicator tracks the flow of money into and out of an asset over a longer time frame. It provides a broader perspective on market sentiment, smoothing out short-term fluctuations and highlighting longer-term trends.
 Slow Money Flow Input Settings: 
 Slow Money Flow: Length:   Default: 12 
 
 What it is:  The period used for calculating the Slow Money Flow.
 What it does:  A longer period smooths out short-term fluctuations, providing a clearer view of the overall money flow trend.
 Example:  A length of 12 is often used by traders looking to identify sustained trends rather than short-term volatility.
 
 Slow MFI Area Multiplier:   Default: 5 
 
 What it is:  A multiplier applied to the Slow Money Flow area calculation.
 What it does:  Adjusts the size of the Money Flow area on the chart, helping to emphasize the indicator’s significance.
 Example:  Increasing the multiplier can help highlight the Money Flow in markets with less volatile price action.
 
 Y Position (Y Pos):   Default: 0 
 
 What it is:  The vertical position adjustment for the Slow Money Flow plot on the chart.
 What it does:  Allows for vertical repositioning of the Money Flow plot to maintain chart clarity when used with other indicators.
 Example:  Adjusting the Y Position ensures that the Slow Money Flow indicator does not overlap with other key indicators on the chart.
 
 Slow MFI Style, Width, and Color: 
 
 What it is:  Customization options for the visual display of the Slow Money Flow on the chart.
 What it does:  Allows you to choose the plot style (line or area), set the line width, and select colors to differentiate positive and negative money flow.
 Example:  Customizing the colors for the Slow Money Flow allows traders to quickly distinguish between buying and selling trends in the market.
 
 RSI 
 Display of RSI: 
  
 Display of RSI Setting: 
  
 RSI Indicator Explanation 
The Relative Strength Index (RSI) is a momentum oscillator that measures the speed and change of price movements. It is typically used to identify overbought or oversold conditions in the market, providing traders with potential signals for buying or selling.
 RSI Input Settings: 
 RSI Source:   Default: Close 
 
 What it is:  The data source used for calculating the RSI.
 What it does:  Determines which price data (e.g., close, open) is used in the RSI calculation, affecting how the indicator reflects market conditions.
 Example:  Using the closing price is standard practice, as it reflects the final agreed-upon price for a given time period.
 
 MA Type (Moving Average Type):   Default: SMA 
 
 What it is:  The type of moving average applied to the RSI for smoothing purposes.
 What it does:  Changes the smoothing technique of the RSI, impacting how quickly the indicator responds to price movements.
 Example:  Using an Exponential Moving Average (EMA) will make the RSI more sensitive to recent price changes compared to a Simple Moving Average (SMA).
 
 RSI Length:   Default: 14 
 
 What it is:  The period over which the RSI is calculated.
 What it does:  Adjusts the sensitivity of the RSI. A shorter length (e.g., 7) makes the RSI more responsive to recent price changes, while a longer length (e.g., 21) smooths out the indicator, reducing the number of signals.
 Example:  A 14-period RSI is commonly used for identifying overbought and oversold conditions, providing a balance between sensitivity and reliability.
 
 RSI Plot Style, Width, and Color: 
 
 What it is:  Options to customize the appearance of the RSI line on the chart.
 What it does:  Allows you to adjust the visual representation of the RSI, including the line width and color.
 Example:  Setting a thicker line width and a bright color like yellow can make the RSI more visible on the chart, aiding in quick analysis.
 
 Display of RSI with RSI Moving Average: 
  
 RSI Moving Average Explanation 
The RSI Moving Average adds a smoothing layer to the RSI, helping to filter out noise and provide clearer signals. It is particularly useful for confirming trend strength and identifying potential reversals.
 RSI Moving Average Input Settings: 
 MA Length:   Default: 14 
 
 What it is:  The period over which the Moving Average is calculated on the RSI.
 What it does:  Adjusts the smoothing of the RSI, helping to reduce false signals and provide a clearer trend indication.
 Example:  A 14-period moving average on the RSI can smooth out short-term fluctuations, making it easier to spot genuine overbought or oversold conditions.
 
 MA Plot Style, Width, and Color: 
 
 What it is:  Customization options for how the RSI Moving Average is displayed on the chart.
 What it does:  Allows you to adjust the line width and color, helping to differentiate the Moving Average from the main RSI line.
 Example:  Using a contrasting color for the RSI Moving Average (e.g., magenta) can help it stand out against the main RSI line, making it easier to interpret the indicator.
 
 STOCHASTIC RSI 
 Display of Stochastic RSI: 
  
 Display of Stochastic RSI Setting: 
  
 Stochastic RSI Indicator Explanation 
The Stochastic RSI (Stoch RSI) is a momentum oscillator that measures the level of the RSI relative to its high-low range over a set period of time. It is used to identify overbought and oversold conditions, providing potential buy and sell signals based on momentum shifts.
 Stochastic RSI Input Settings: 
 Stochastic RSI Length:   Default: 14 
 
 What it is:  The period over which the Stochastic RSI is calculated.
 What it does:  Adjusts the sensitivity of the Stochastic RSI. A shorter length makes the indicator more responsive to recent price changes, while a longer length smooths out the fluctuations, reducing noise.
 Example:  A length of 14 is commonly used to identify momentum shifts over a medium-term period, providing a balanced view of potential overbought or oversold conditions.
 
 Display of Stochastic RSI %K Line: 
  
 Stochastic RSI %K Line Explanation 
The %K line in the Stochastic RSI is the main line that tracks the momentum of the RSI over the chosen period. It is the faster-moving component of the Stochastic RSI, often used to identify entry and exit points.
 Stochastic RSI %K Input Settings: 
 %K Length:   Default: 3 
 
 What it is:  The period used for smoothing the %K line of the Stochastic RSI.
 What it does:  Smoothing the %K line helps reduce noise and provides a clearer signal for potential market reversals.
 Example:  A smoothing length of 3 is common, offering a balance between responsiveness and noise reduction, making it easier to spot significant momentum shifts.
 
 %K Plot Style, Width, and Color: 
 
 What it is:  Customization options for the visual representation of the %K line.
 What it does:  Allows you to adjust the appearance of the %K line on the chart, including line width and color, to fit your visual preferences.
 Example:  Setting a blue color and a medium width for the %K line makes it stand out clearly on the chart, helping to identify key points of momentum change.
 
 %K Fill Color (Above): 
 
 What it is:  The fill color that appears above the %K line on the chart.
 What it does:  Adds visual clarity by shading the area above the %K line, making it easier to interpret the direction and strength of momentum.
 Example:  Using a light blue fill color above the %K line can help emphasize bullish momentum, making it visually prominent.
 
 Display of Stochastic RSI %D Line: 
  
 Stochastic RSI %D Line Explanation 
The %D line in the Stochastic RSI is a moving average of the %K line and acts as a signal line. It is slower-moving compared to the %K line and is often used to confirm signals or identify potential reversals when it crosses the %K line.
 Stochastic RSI %D Input Settings: 
 %D Length:   Default: 3 
 
 What it is:  The period used for smoothing the %D line of the Stochastic RSI.
 What it does:  Smooths out the %D line, making it less sensitive to short-term fluctuations and more reliable for identifying significant market signals.
 Example:  A length of 3 is often used to provide a smoothed signal line that can help confirm trends or reversals indicated by the %K line.
 
 %D Plot Style, Width, and Color: 
 
 What it is:  Customization options for the visual representation of the %D line.
 What it does:  Allows you to adjust the appearance of the %D line on the chart, including line width and color, to match your preferences.
 Example:  Setting an orange color and a thicker line width for the %D line can help differentiate it from the %K line, making crossover points easier to spot.
 
 %D Fill Color (Below): 
 
 What it is:  The fill color that appears below the %D line on the chart.
 What it does:  Adds visual clarity by shading the area below the %D line, making it easier to interpret bearish momentum.
 Example:  Using a light orange fill color below the %D line can highlight bearish conditions, making it visually easier to identify.
 
 RSI & STOCHASTIC RSI OVERBOUGHT AND OVERSOLD LEVELS 
 Display of RSI & Stochastic with Overbought & Oversold Levels: 
  
 Display of RSI & Stochastic Overbought & Oversold Settings: 
  
 RSI & Stochastic Overbought & Oversold Levels Explanation 
The Overbought (OB) and Oversold (OS) levels for RSI and Stochastic RSI indicators are key thresholds that help traders identify potential reversal points in the market. These levels are used to determine when an asset is likely overbought or oversold, which can signal a potential trend reversal.
 RSI & Stochastic Overbought & Oversold Input Settings: 
 RSI & Stochastic Level 1 Overbought (OB) & Oversold (OS):   Default: OB Level = 170, OS Level = 130 
 
 What it is:  The first set of thresholds for determining overbought and oversold conditions for both RSI and Stochastic RSI indicators.
 What it does:  When the RSI or Stochastic RSI crosses above the overbought level, it suggests that the asset might be overbought, potentially signaling a sell opportunity. Conversely, when these indicators drop below the oversold level, it suggests the asset might be oversold, potentially signaling a buy opportunity.
 Example:  If the RSI crosses above 170, traders might look for signs of a potential trend reversal to the downside, while a cross below 130 might indicate a reversal to the upside.
 
 RSI & Stochastic Level 2 Overbought (OB) & Oversold (OS):   Default: OB Level = 180, OS Level = 120 
 
 What it is:  The second set of thresholds for determining overbought and oversold conditions for both RSI and Stochastic RSI indicators.
 What it does:  These levels provide an additional set of reference points, allowing traders to differentiate between varying degrees of overbought and oversold conditions, potentially leading to more refined trading decisions.
 Example:  When the RSI crosses above 180, it might indicate an extreme overbought condition, which could be a stronger signal for a sell, while a cross below 120 might indicate an extreme oversold condition, which could be a stronger signal for a buy.
 
 RSI & Stochastic Overbought (OB) Band Customization: 
 OB Level 1: Width, Style, and Color: 
 
 What it is:  Customization options for the visual appearance of the first overbought band on the chart.
 What it does:  Allows you to set the line width, style (solid, dotted, dashed), and color for the first overbought band, enhancing its visibility on the chart.
 Example:  A dashed red line with medium width can clearly indicate the first overbought level, helping traders quickly identify when this threshold is crossed.
 
 OB Level 2: Width, Style, and Color: 
 
 What it is:  Customization options for the visual appearance of the second overbought band on the chart.
 What it does:  Allows you to set the line width, style, and color for the second overbought band, providing a clear distinction from the first band.
 Example:  A dashed red line with a slightly thicker width can represent a more significant overbought level, making it easier to differentiate from the first level.
 
 RSI & Stochastic Oversold (OS) Band Customization: 
 OS Level 1: Width, Style, and Color: 
 
 What it is:  Customization options for the visual appearance of the first oversold band on the chart.
 What it does:  Allows you to set the line width, style (solid, dotted, dashed), and color for the first oversold band, making it visually prominent.
 Example:  A dashed green line with medium width can highlight the first oversold level, helping traders identify potential buying opportunities.
 
 OS Level 2: Width, Style, and Color: 
 
 What it is:  Customization options for the visual appearance of the second oversold band on the chart.
 What it does:  Allows you to set the line width, style, and color for the second oversold band, providing an additional visual cue for extreme oversold conditions.
 Example:  A dashed green line with a thicker width can represent a more significant oversold level, offering a stronger visual cue for potential buying opportunities.
 
 RSI DIVERGENCES 
 Display of RSI Divergence Labels: 
  
 Display of RSI Divergence Settings: 
  
 RSI Divergence Lookback Explanation 
The RSI Divergence settings allow traders to customize the parameters for detecting divergences between the RSI (Relative Strength Index) and price action. Divergences occur when the price moves in the opposite direction to the RSI, potentially signaling a trend reversal. These settings help refine the accuracy of divergence detection by adjusting the lookback period and range. (  NOTE:   This setting only imply to the RSI. This doesn't effect the STOCHASTIC RSI. )
 RSI Divergence Lookback Input Settings: 
 Lookback Left:   Default: 10 
 
 What it is:  The number of bars to look back from the current bar to detect a potential divergence.
 What it does:  Defines the left-side lookback period for identifying pivot points in the RSI, which are used to spot divergences. A longer lookback period may capture more significant trends but could also miss shorter-term divergences.
 Example:  A setting of 10 bars means the script will consider pivot points up to 10 bars before the current bar to check for divergence patterns.
 
 Lookback Right:   Default: 1 
 
 What it is:  The number of bars to look forward from the current bar to complete the divergence pattern.
 What it does:  Defines the right-side lookback period for confirming a potential divergence. This setting helps ensure that the identified divergence is valid by allowing the script to check subsequent bars for confirmation.
 Example:  A setting of 1 bar means the script will look at the next bar to confirm the divergence pattern, ensuring that the signal is reliable.
 
 Lookback Range Min:   Default: 5 
 
 What it is:  The minimum range of bars required to detect a valid divergence.
 What it does:  Sets a lower bound on the range of bars considered for divergence detection. A lower minimum range might capture more frequent but possibly less significant divergences.
 Example:  Setting the minimum range to 5 ensures that only divergences spanning at least 5 bars are considered, filtering out very short-term patterns.
 
 Lookback Range Max:   Default: 60 
 
 What it is:  The maximum range of bars within which a divergence can be detected.
 What it does:  Sets an upper bound on the range of bars considered for divergence detection. A larger maximum range might capture more significant divergences but could also include less relevant long-term patterns.
 Example:  Setting the maximum range to 60 bars allows the script to detect divergences over a longer timeframe, capturing more extended divergence patterns that could indicate major trend reversals.
 
 RSI Divergence Explanation 
RSI divergences occur when the RSI indicator and price action move in opposite directions, signaling potential trend reversals. This section of the settings allows traders to customize the appearance and detection of both regular and hidden bullish and bearish divergences.
 RSI Divergence Input Settings: 
 R. Bullish Div Label:   Default: True 
 
 What it is:  An option to display labels for regular bullish divergences.
 What it does:  Enables or disables the visibility of labels that mark regular bullish divergences, where the price makes a lower low while the RSI makes a higher low, indicating a potential upward reversal.
 Example:  A trader might use this to spot buying opportunities in a downtrend when a bullish divergence suggests the trend may be reversing.
 
 Bullish Label Color, Line Width, and Line Color: 
 
 What it is:  Settings to customize the appearance of regular bullish divergence labels.
 What it does:  Allows you to choose the color of the labels, adjust the width of the divergence lines, and select the color for these lines.
 Example:  Selecting a green label color and a distinct line width makes bullish divergences easily recognizable on your chart.
 
 R. Bearish Div Label:   Default: True 
 
 What it is:  An option to display labels for regular bearish divergences.
 What it does:  Enables or disables the visibility of labels that mark regular bearish divergences, where the price makes a higher high while the RSI makes a lower high, indicating a potential downward reversal.
 Example:  A trader might use this to spot selling opportunities in an uptrend when a bearish divergence suggests the trend may be reversing.
 
 Bearish Label Color, Line Width, and Line Color: 
 
 What it is:  Settings to customize the appearance of regular bearish divergence labels.
 What it does:  Allows you to choose the color of the labels, adjust the width of the divergence lines, and select the color for these lines.
 Example:  Choosing a red label color and a specific line width makes bearish divergences clearly stand out on your chart.
 
 H. Bullish Div Label:   Default: False 
 
 What it is:  An option to display labels for hidden bullish divergences.
 What it does:  Enables or disables the visibility of labels that mark hidden bullish divergences, where the price makes a higher low while the RSI makes a lower low, indicating potential continuation of an uptrend.
 Example:  A trader might use this to confirm an existing uptrend when a hidden bullish divergence signals continued buying strength.
 
 Hidden Bullish Label Color, Line Width, and Line Color: 
 
 What it is:  Settings to customize the appearance of hidden bullish divergence labels.
 What it does:  Allows you to choose the color of the labels, adjust the width of the divergence lines, and select the color for these lines.
 Example:  A softer green color with a thinner line width might be chosen to subtly indicate hidden bullish divergences, keeping the chart clean while providing useful information.
 
 H. Bearish Div Label:   Default: False 
 
 What it is:  An option to display labels for hidden bearish divergences.
 What it does:  Enables or disables the visibility of labels that mark hidden bearish divergences, where the price makes a lower high while the RSI makes a higher high, indicating potential continuation of a downtrend.
 Example:  A trader might use this to confirm an existing downtrend when a hidden bearish divergence signals continued selling pressure.
 
 Hidden Bearish Label Color, Line Width, and Line Color: 
 
 What it is:  Settings to customize the appearance of hidden bearish divergence labels.
 What it does:  Allows you to choose the color of the labels, adjust the width of the divergence lines, and select the color for these lines.
 Example:  A muted red color with a thinner line width might be selected to indicate hidden bearish divergences without overwhelming the chart.
 
 Divergence Text Size and Color:   Default: S (Small) 
 
 What it is:  Settings to adjust the size and color of text labels for RSI divergences.
 What it does:  Allows you to customize the size and color of text labels that display the divergence information on the chart.
 Example:  Choosing a small text size with a bright white color can make divergence labels easily readable without taking up too much space on the chart.
 
 STOCHASTIC DIVERGENCES 
 Display of Stochastic RSI Divergence Labels: 
  
 Display of Stochastic RSI Divergence Settings: 
  
 Stochastic RSI Divergence Explanation 
Stochastic RSI divergences occur when the Stochastic RSI indicator and price action move in opposite directions, signaling potential trend reversals. These settings allow traders to customize the detection and visual representation of both regular and hidden bullish and bearish divergences in the Stochastic RSI.
 Stochastic RSI Divergence Input Settings: 
 R. Bullish Div Label:   Default: True 
 
 What it is:  An option to display labels for regular bullish divergences in the Stochastic RSI.
 What it does:  Enables or disables the visibility of labels that mark regular bullish divergences, where the price makes a lower low while the Stochastic RSI makes a higher low, indicating a potential upward reversal.
 Example:  A trader might use this to spot buying opportunities in a downtrend when a bullish divergence in the Stochastic RSI suggests the trend may be reversing.
 
 Bullish Label Color, Line Width, and Line Color: 
 
 What it is:  Settings to customize the appearance of regular bullish divergence labels in the Stochastic RSI.
 What it does:  Allows you to choose the color of the labels, adjust the width of the divergence lines, and select the color for these lines.
 Example:  Selecting a blue label color and a distinct line width makes bullish divergences in the Stochastic RSI easily recognizable on your chart.
 
 R. Bearish Div Label:   Default: True 
 
 What it is:  An option to display labels for regular bearish divergences in the Stochastic RSI.
 What it does:  Enables or disables the visibility of labels that mark regular bearish divergences, where the price makes a higher high while the Stochastic RSI makes a lower high, indicating a potential downward reversal.
 Example:  A trader might use this to spot selling opportunities in an uptrend when a bearish divergence in the Stochastic RSI suggests the trend may be reversing.
 
 Bearish Label Color, Line Width, and Line Color: 
 
 What it is:  Settings to customize the appearance of regular bearish divergence labels in the Stochastic RSI.
 What it does:  Allows you to choose the color of the labels, adjust the width of the divergence lines, and select the color for these lines.
 Example:  Choosing an orange label color and a specific line width makes bearish divergences in the Stochastic RSI clearly stand out on your chart.
 
 H. Bullish Div Label:   Default: False 
 
 What it is:  An option to display labels for hidden bullish divergences in the Stochastic RSI.
 What it does:  Enables or disables the visibility of labels that mark hidden bullish divergences, where the price makes a higher low while the Stochastic RSI makes a lower low, indicating potential continuation of an uptrend.
 Example:  A trader might use this to confirm an existing uptrend when a hidden bullish divergence in the Stochastic RSI signals continued buying strength.
 
 Hidden Bullish Label Color, Line Width, and Line Color: 
 
 What it is:  Settings to customize the appearance of hidden bullish divergence labels in the Stochastic RSI.
 What it does:  Allows you to choose the color of the labels, adjust the width of the divergence lines, and select the color for these lines.
 Example:  A softer blue color with a thinner line width might be chosen to subtly indicate hidden bullish divergences, keeping the chart clean while providing useful information.
 
 H. Bearish Div Label:   Default: False 
 
 What it is:  An option to display labels for hidden bearish divergences in the Stochastic RSI.
 What it does:  Enables or disables the visibility of labels that mark hidden bearish divergences, where the price makes a lower high while the Stochastic RSI makes a higher high, indicating potential continuation of a downtrend.
 Example:  A trader might use this to confirm an existing downtrend when a hidden bearish divergence in the Stochastic RSI signals continued selling pressure.
 
 Hidden Bearish Label Color, Line Width, and Line Color: 
 
 What it is:  Settings to customize the appearance of hidden bearish divergence labels in the Stochastic RSI.
 What it does:  Allows you to choose the color of the labels, adjust the width of the divergence lines, and select the color for these lines.
 Example:  A muted orange color with a thinner line width might be selected to indicate hidden bearish divergences without overwhelming the chart.
 
 Divergence Text Size and Color:   Default: S (Small) 
 
 What it is:  Settings to adjust the size and color of text labels for Stochastic RSI divergences.
 What it does:  Allows you to customize the size and color of text labels that display the divergence information on the chart.
 Example:  Choosing a small text size with a bright white color can make divergence labels easily readable without taking up too much space on the chart.
 
 Alert System: 
Custom Alerts for Divergences and Reversals:
 
 What it is:  The script includes customizable alert conditions to notify you of detected divergences or potential reversals based on WaveTrend, RSI, and Stochastic RSI.
 What it does:  Helps you stay informed of key market movements without constantly monitoring the charts, enabling timely decisions.
 Example:  Setting an alert for regular bearish divergence on the WaveTrend could notify you of a potential sell opportunity as soon as it is detected.
 
 How to Use Alerts: 
 Set up custom alerts in TradingView based on these conditions to be notified of potential trading opportunities. Alerts are triggered when the indicator detects conditions that match the selected criteria, such as divergences or potential reversals. 
By following the detailed guidelines and examples above, you can effectively use and customize this powerful indicator to suit your trading strategy.
For further understanding and customization, refer to the input settings within the script and adjust them to match your trading style and preferences.
 How Components Work Together 
 
 Synergy and Cross-Validation:  The indicator combines multiple layers of analysis to validate trading signals. For example, a WaveTrend buy signal that coincides with a bullish divergence in RSI and positive fast money flow is likely to be more reliable than any single indicator’s signal. This cross-validation reduces the likelihood of false signals and enhances decision-making. 
 Comprehensive Market Analysis:  Each component plays a role in analyzing different aspects of the market. WaveTrend focuses on trend strength, Money Flow indicators assess market sentiment, while RSI and Stochastic RSI offer detailed views of price momentum and potential reversals. 
 
 Ideal For 
 
 Traders who require a reliable, multifaceted tool for detecting market trends and reversals. 
 Investors seeking a deeper understanding of market dynamics across different timeframes and conditions, whether in forex, equities, or cryptocurrency markets. 
 This script is designed to provide a comprehensive tool for technical analysis, combining multiple indicators and divergence detection into one versatile and customizable script. It is especially useful for traders who want to monitor various indicators simultaneously and look for convergence or divergence signals across different technical tools. 
 
 Acknowledgements 
 Special thanks to these amazing creators for inspiration and their creations: 
I want to thank these amazing creators for creating there amazing indicators , that inspired me and also gave me a head start by making this indicator! Without their amazing indicators it wouldn't be possible! 
 
 vumanchu:    VuManChu Cipher B  Divergences. 
 MisterMoTa:    RSI + Divergences + Alerts  . 
 DevLucem:   Plain Stochastic Divergence. 
 
 Note 
 This indicator is designed to be a powerful tool in your trading arsenal.  However , it is  essential  to  backtest  and adjust the settings  according to your trading strategy before applying  it to  live trading . If you have any questions or need further assistance, feel free to reach out. 
Previous Highs & Lows [LuxAlgo]The Previous Highs & Lows indicator highlights a user-set amount of previous maximum/minimum prices made within specific intervals, these are displayed as levels customizable levels.
Additionally, one upper and lower zone constructed from the previously displayed highs/lows is included, providing support/resistance areas.
🔶  USAGE 
  
Previous highs/lows are often perceived as key trading levels with the potential of generating multiple reactions upon being reached.
  
While the daily interval is more commonly used, users can use different intervals, with the indicator supporting hourly, daily, weekly, monthly, and yearly intervals. Using higher intervals on low timeframes can return more distant levels relative to the most recent price, which might not be relevant.
Each level is numbered, with more recent previous highs/lows having a lower number associated with them, users can also highlight more recent levels through a transparency gradient.
  
Users can control the amount of previous highs/lows displayed using the "Show Last" settings, with a higher value providing more potential support/resistance. Returned previous highs/lows can eventually be filtered out based on their position by enabling the "Filter Based On Position" setting, only keeping previous highs above the current closing price and previous lows below the current closing price, giving more relevant levels as a result.
🔹 Previous High/Low Areas 
  
The indicator includes two areas constructed from the respective percentiles of the returned previous highs/lows. These can be useful as more general support/resistance areas.
Wider areas are often indicative of a group of previous highs or lows being more dispersed, resulting in areas that are easier to reach. Wider areas can also be obtained by increasing the "Areas Width" setting.
 Note: Areas will only be displayed if "Show Last" is greater than 1 
🔶  SETTINGS 
 
 Show Last: Determines the amount of more recent previous highs and previous low levels displayed by the indicator.
 Interval: Interval used to capture maximum/minimum price values,
 Areas Width: Width of the displayed top/bottom areas, with higher values returning wider areas.
 Filter Based On Position: When enabled only display previous highs above the current closing price and previous lows below the current closing price.
 
🔹 Style 
 
 Minimum Gradient Transparency: Minimum transparency value applied to the colors of the oldest displayed previous highs/lows levels.
Depth of Market (DOM) [LuxAlgo]The  Depth Of Market (DOM)  tool allows traders to look under the hood of any market, taking price and volume analysis to the next level. The following features are included: DOM, Time & Sales, Volume Profile, Depth of Market, Imbalances, Buying Pressure, and up to 24 key intraday levels (it really packs a punch).
  
As a disclaimer, this tool does not use tick data, it is a DOM reconstruction from the provided real-time time series data (price and volume). So the volume you see is from filled orders only, this tool does not show unfilled limit orders.
Traders can enable or disable any of the features at will to avoid being overwhelmed with too much information and to make the tool perform faster.
The features that have the biggest impact on performance are Historical Data Collection, Key Levels (POC & VWAP), Time & Sales, Profile, and Imbalances. Disable these features to improve the indicator computational performance.
🔶  DOM 
  
This is the simplest form of the tool, a simple DOM or ladder that displays the following columns:
 
 PRICE:  Price level 
 BID:  Total number of market sell orders filled or limit buy orders filled.
 SELL:  Sell market orders
 BUY:  Buy market orders
 ASK:  Total number of market buy orders filled or limit sell orders filled.
 
The DOM only collects historical data from the last 24 hours and real-time data.
Traders can select a reset period for the DOM with two options:
 
 DAILY:   Resets at the beginning of each trading day
 SESSIONS:   Resets twice, as DAILY and 15.5 hours later, to coincide with the start of the RTH session for US tickers.
 
The DOM has two main modes, it can display price levels as ticks or points. The default is automatic based on the current daily volatility, but traders can manually force one mode or the other if they wish.
For convenience, traders have the option to set the number of lines (price levels), and the size of the text and to display only real-time data.
By default, the top price is set to 0 so that the DOM automatically adjusts the price levels to be displayed, but traders can set the top price manually so that the tool displays only the desired price levels in a fixed manner.
🔹  Volume Profile 
  
As additional features to the basic DOM, traders have access to the volume profile histogram and the total volume per price level.
This helps traders identify at a glance key price areas where volume is accumulating (high volume nodes) or areas where volume is lacking (low volume nodes) - these areas are important to some traders who base their decision-making process on them.
🔹  Imbalances 
  
Other added features are imbalances and buying pressure:
 
 Interlevel Imbalance:  volume delta between two different price levels
 Intralevel Imbalance:  delta between buy and sell volume at the same price level
 Buying Pressure Percent:  percentage of buy volume compared to total volume
 
Imbalances can help traders identify areas of interest in the price for possible support or resistance.
🔹  Depth 
  
Depth allows traders to see at a glance how much supply is above the current price level or how much demand is below the current price level.
Above the current price level shows the cumulative ask volume (filled sell limit orders) and below the current price level shows the cumulative bid volume (filled buy limit orders).
🔶  KEY LEVELS 
  
The tool includes up to 24 different key intraday levels of particular relevance:
 Previous Week Levels 
 
 PWH:  Previous week high
 PWL:  Previous week low
 PWM:  Previous week middle
 PWS:  Previous week settlement (close)
 
 Previous Day Levels 
 
 PDH:  Previous day high
 PDL:  Previous day low
 PDM:  Previous day middle
 PDS:  Previous day settlement (close)
 
 Current Day Levels 
 
 OPEN:  Open of day (or session)
 HOD:  High of day (or session)
 LOD:  Low of day (or session)
 MOD:  Middle of day (or session)
 
 Opening Range 
 
 ORH:  Open range high
 ORL:  Open range low
 
 Initial Balance 
 
 IBH:  Initial balance high
 IBL:  Initial balance low
 
 VWAP 
 
 +3SD:  Volume weighted average price plus 3 standard deviations
 +2SD:  Volume weighted average price plus 2 standard deviations
 +1SD:  Volume weighted average price plus 1 standard deviation
 VWAP:  Volume weighted average price
 -1SD:  Volume weighted average price minus 1 standard deviation
 -2SD:  Volume weighted average price minus 2 standard deviations
 -3SD:  Volume weighted average price minus 3 standard deviations
 
 
 POC:  Point of control
 
Different traders look at different levels, the key levels shown here are objective and specific areas of interest that traders can act on, providing us with potential areas of support or resistance in the price.
🔶  TIME & SALES 
  
The tool also features a full-time and sales panel with time, price, and size columns, a size filter, and the ability to set the timezone to display time in the trader's local time.
The information shown here is what feeds the DOM and it can be useful in several ways, for example in detecting absorption. If a large number of orders are coming into the market but the price is barely moving, this indicates that there is enough liquidity at these levels to absorb all these orders, so if these orders stop coming into the market, the price may turn around.
🔶  SETTINGS 
 
 Period:  Select the anchoring period to start data collection, DAILY will anchor at the start of the trading day, and SESSIONS will start as DAILY and 15.5 hours later (RTH for US tickers).
 Mode:  Select between AUTO and MANUAL modes for displaying TICKS or POINTS, in AUTO mode the tool will automatically select TICKS for tickers with a daily average volatility below 5000 ticks and POINTS for the rest of the tickers.
 Rows:  Select the number of price levels to display
 Text Size:  Select the text size
 
🔹  DOM 
 
 DOM:  Enable/Disable DOM display
 Realtime only:  Enable/Disable real-time data only, historical data will be collected if disabled
 Top Price:  Specify the price to be displayed on the top row, set to 0 to enable dynamic DOM
 Max updates:  Specify how many times the values on the SELL and BUY columns are accumulated until reset.
 Profile/Depth size:  Maximum size of the histograms on the PROFILE and DEPTH columns.
 Profile:  Enable/Disable Profile column. High impact on performance.
 Volume:  Enable/Disable Volume column. Total volume traded at price level.
 Interlevel Imbalance:  Enable/Disable Interlevel Imbalance column. Total volume delta between the current price level and the price level above. High impact on performance.
 Depth:  Enable/Disable Depth, showing the cumulative supply above the current price and the cumulative demand below. Impact on performance.
 Intralevel Imbalance:  Enable/Disable Intralevel Imbalance column. Delta between total buy volume and total sell volume. High impact on performance.
 Buying Pressure Percent:  Enable/Disable Buy Percent column. Percentage of total buy volume compared to total volume.
 Imbalance Threshold %:  Threshold for highlighting imbalances. Set to 90 to highlight the top 10% of interlevel imbalances and the top and bottom 10% of intra-level imbalances.
 Crypto volume precision:  Specify the number of decimals to display on the volume of crypto assets
 
🔹  Key Levels 
 
 Key Levels:  Enable/Disable KEY column. Very high performance impact.
 Previous Week:  Enable/Disable High, Low, Middle, and Close of the previous trading week.
 Previous Day:  Enable/Disable High, Low, Middle, and Settlement of the previous trading day.
 Current Day/Session:  Enable/Disable Open, High, Low and Middle of the current period.
 Open Range:  Enable/Disable High and Low of the first candle of the period.
 Initial Balance:  Enable/Disable High and Low of the first hour of the period.
 VWAP:  Enable/Disable Volume-weighted average price of the period with 1, 2, and 3 standard deviations.
 POC:  Enable/Disable Point of Control (price level with the highest volume traded) of the period.
 
🔹  Time & Sales 
 
 Time & Sales:  Enable/Disable time and sales panel.
 Timezone offset (hours):  Enter your time zone\'s offset (+ or −), including a decimal fraction if needed.
 Order Size:  Set order size filter. Orders smaller than the value are not displayed.
 
🔶  THANKS 
Hi, I'm  makit0  coder of this tool and proud member of the  LuxAlgo  Opensource team, it's an honor to be part of the  LuxAlgo  family doing something I love as it's writing opensource code and sharing it with the world. I'd like to thank all of you who use, comment on, and vote for all of our open-source tools, and all of you who give us your support.
And of course thanks to the  PineCoders  family for all the work in front of and behind the scenes that makes the PineScript community what it is, simply the best.
 Peace, Love & PineScript!
Swing IdentifierThe "Swing Identifier" is a custom Pine Script indicator designed for use in the TradingView platform. It serves to visually identify and mark swing highs and swing lows on a trading chart, which are key concepts in technical analysis. This script is comprehensive and customizable, making it a useful tool for traders looking to pinpoint potential trend reversals and support or resistance areas.
**Key Features of the 'Swing Identifier' Indicator:**
1. **Swing Range Input:**
   - This input determines the number of bars to the left and right of the current bar that the script will examine to identify a swing high or low. A larger value will look for swings over a broader range, potentially identifying more significant swings but at the expense of sensitivity.
2. **Swing Strength Input:**
   - The swing strength is set as a percentage and is used to filter out insignificant price movements. A swing high or low is only considered valid if the percentage change from the last swing is greater than this input value. This feature helps in avoiding false signals in sideways or less volatile markets.
3. **Use Wicks Option:**
   - Users can choose whether to consider the wicks of the candles or just the closing prices in identifying swings. This feature adds flexibility, allowing the script to be tailored to different trading styles and strategies.
4. **Line Color Customization:**
   - The color of the lines marking the swings can be customized, enhancing the visual appeal and readability of the chart.
**Operational Mechanics:**
1. **Identification of Swing Highs and Lows:**
   - The script uses the `ta.pivothigh` and `ta.pivotlow` functions to identify swing highs and lows. Whether it uses the high/low of the candles or their closing prices is determined by the user's choice in the "Use Wicks" option.
2. **Drawing and Updating Lines:**
   - When a new swing high or low is identified, and it meets the percentage change criteria from the previous swing, a line is drawn from the last swing low to the current high (or vice versa). If a new swing high (or low) is identified that is higher (or lower) than the previous one, the old line is deleted, and a new line is drawn.
3. **Swing Update Logic:**
   - The script maintains a toggle mechanism to look alternatively for highs and lows. This ensures that it sequentially identifies a high and then a low (or vice versa), which aligns with how actual market swings behave.
**Usage in Trading:**
1. **Identifying Trend Reversals:**
   - By marking swing highs and lows, the script helps traders identify potential trend reversals. A break of a swing low in an uptrend or a swing high in a downtrend could signal a change in the prevailing trend.
2. **Support and Resistance:**
   - Swing highs and lows often act as levels of support and resistance. Traders can use these levels for setting entry or exit points, stop losses, and take profit orders.
3. **Customization for Strategy:**
   - The customizable nature of the script allows traders to adjust the parameters according to their trading strategy, time frame, and asset volatility.
In summary, the "Swing Identifier" is a versatile and customizable tool that aids in visually identifying crucial price swing points, thereby assisting traders in making informed decisions based on technical analysis principles.
Modified Box Plots
Box Plot Concept: The script creates a modified box plot where the central box represents the range within 1 standard deviation from the midpoint (hl2), which is the average of the high and low prices. The whiskers extend to cover a range of 3 standard deviations, providing a visualization of the overall price distribution.
Color Scheme: The color of the modified box plot is determined based on comparisons between the current midpoint (g) and the +/- 1 SD values of the previous candle (i  and j ). If g > i , the color is green; if g < j , it's red; otherwise, it's yellow. This color scheme allows users to quickly assess the relationship between the current market conditions and recent price movements. if the mid point price is above/below +/- 1 SD values of the previous candle the price movement is considered as significant. 
Plotcandle Function: The plotcandle function is employed to visualize the modified box plot. The color of the box is dynamically determined by the candleColor variable, which reflects the current market state based on the color scheme. The wicks, represented by lines extending from the box, are colored in white.
Explanation of Box and Wicks:
Box (Open and Close): In this modified box plot, the box does not represent traditional open and close prices. Instead, it signifies a range within 1 standard deviation of the midpoint (hl2), providing insight into the typical price variation around the average of the high and low.
Wicks (High and Low): The wicks extend from the box to cover a range of 3 standard deviations from the midpoint (hl2). They do not correspond to the actual high and low prices but serve as a visualization of potential outliers in the price distribution. The actual high and low prices are also plotted as green and red dots when the actual high and low prices fall outside the +/- 3SD wicks (whiskers) and also indicate the prices does not fit the distribution based on the recent price volatility.
In summary, this modified box plot offers a unique perspective on price distribution by considering standard deviations from the midpoint. The color scheme aids in quickly assessing market conditions, and the wicks provide insights into the potential presence of outliers. It's essential to understand that the box and wicks do not represent traditional open, close, high, and low prices but offer a different way to visualize and interpret intraday price movements.
Step by step explanation 
Here's the step-by-step explanation:
a = ta.highest(high, 7): Calculates the highest high in the last 7 bars.
b = ta.lowest(low, 7): Calculates the lowest low in the last 7 bars.
c = ta.stdev(hl2, 7): Calculates the standard deviation of the average of high and low prices (hl2) over the last 7 bars.
d = (a - b) / c: Computes a scaling factor d based on the highest, lowest, and standard deviation. This factor is used to scale the intraday range in the next steps.
e = (high - low): Calculates the intraday range of the candle.
f = e / d: Estimates the standard deviation (f) of the intraday candle price using the scaling factor d.
g = hl2: Defines the intraday midpoint of the candle, which is the average of high and low prices.
i = g + 1 * f, j = g - 1 * f, k = g + 3 * f, l = g - 3 * f: Calculate values representing coverage of +1 SD, -1 SD, +3 SD, and -3 SD from the intraday midpoint.
The script utilizes historical high, low, and standard deviation values to dynamically estimate the standard deviation of the intraday candle, providing a measure of volatility for the current price range. This estimation is then used to construct a modified box plot around the intraday midpoint. 
In addition I have included a 7 period hull moving average just to see the overall trend direction.
Conclusion:
The "Nasan Modified Box Plots" indicator on TradingView is a dynamic visualization tool that provides insights into the distribution of price ranges over a specified period. It adapts to changing market conditions by incorporating historical data in the calculation of a scaling factor (d). The indicator constructs a modified box plot, where the size of the box and the whiskers is determined by recent volatility
Scoopy StacksWaffle Around Multiple 
(Open, High, Low, Close) Stacks On 
Pre/Post Market & (Daily, Weekly, 
Monthly, Yearly) Sessions With 
Meticulous Columns, Rows, Tooltips, 
Colors, Custom Ideas, and Alerts.
Sessions Use Two Step Incremental Values 
Default Value: (1) Shows Two Previous 
(O, H, L, C); Increasing Value Swaps 
Sessions With Next Two Stacks.
⬛️  KEY WORDS: 
🟢 Crossover | 🔴 Crossunder 
📗 High | 📕 Low 
📔 Open | 📓 Close 
🥇 First Idea | 🥈 Second Idea 
🥉 Third Idea | 🎖️ Fourth Idea
🟥  ALERTS: 
Default Option: (Per Bar) 
Alerts Once Conditions Are Met 
(Bar Close) Alerts When Bar Closes
Default Option: (Reg) 
Alerts During Regular Market 
Trading Hours, (0930-1600) 
(Ext) Alerts During Extended 
Market Hours, (1600-0930) 
(24/7) Alerts All Day
Optional Preferences: 
Regular Alerts - Stocks 
Extended Alerts - Futures 
24/7 Alerts - Crypto
🟧  STACKS:  
Default Value: (1) 
Incremental Stack Value, Increasing Value 
Swaps Sessions With the Next Two Stacks
(✓) Swap Stacks? 
Pre/Post Market High/Lows, 
1-2 Day High/Lows, 1-2 Week High/Lows, 
1-2 Month High/Lows, 1-2 Year High/Lows
  
(   ) Swap Stacks? 
Pre/Post Market Open/Close, 
1-2 Day Open/Close, 1-2 Week Open/Close, 
1-2 Month Open/Close, 1-2 Year Open/Close
  
🟨  EXAMPLES: 
Default Stack: 
🟢 | 📗 Pre Market High (PRE) | 4600.00 
🔴 | 📕 Post Market Low (POST) | 420.00 
Optional: (Open) 
🟢 | 📔 Post Market Open (POST) | 4400.00 
Optional: (Close) 
🔴 | 📓 Pre Market Close (PRE) | 430.00
  
  
Default Stack Value: (1) 
🔴 | 📗 1 Day High (1DH) | 460.00 
Next Stack Value: (3) 
🟢 | 📕 4 Day Low (4DL) | 420.00 
Optional: (Open) 
🔴 | 📔 2 Day Open (2DO) | 440.00 
Optional: (Close) 
🟢 | 📓 3 Day Close (3DC) | 430.00
  
  
Default Stack Value: (5) 
🟢 | 📗 5 Week High (5WH) | 460.00 
Next Stack Value: (7) 
🔴 | 📕 8 Week Low (8WL) | 420.00 
Optional: (Open) 
🔴 | 📔 7 Week Open (7WO) | 4400.00 
Optional: (Close) 
🟢 | 📓 6 Week Close (6WC) | 430.00
  
  
Default Stack Value: (9) 
🔴 | 📗 9 Month High (9MH) | 460.00 
Next Stack Value: (11) 
🟢 | 📕 12 Month Low (12ML) | 420.00 
Optional: (Open) 
🟢 | 📔 11 Month Open (11MO) | 4400.00 
Optional: (Close) 
🔴 | 📓 10 Month Close (10MC) | 430.00
  
  
Default Stack Value: (13) 
🟢 | 📗 13 Year High (13YH) | 460.00 
Next Stack Value: (15) 
🟢 | 📕 16 Year Low (16YL) | 420.00 
Optional: (Open) 
🔴 | 📔 15 Year Open (15YO) | 4400.00 
Optional: (Close) 
🔴 | 📓 14 Year Close (14YC) | 430.00
  
  
🟩  TABLES:  
Default Value: (1) 
Moves Table Up, Down, Left, or Right 
Based on Second Default Value
First Default Value: (Top Right) 
Sets Table Placement, Middle Center 
Allows Table To Move In All Directions
  
Second Default Value: (Default) 
Fixed Table Position, Switching Values 
Moves Direction of the Table
  
🟦  IDEAS: 
(✓) Show Ideas? 
Shows Four Ideas With Custom Texts 
and Values; Ideas Are Based Around 
Post-It Note Reminders with Alerts
Suggestions For Text Ideas: 
Take Profit, Stop Loss, Trim, Hold, 
Long, Short, Bounce Spot, Retest, 
Chop, Support, Resistance, Buy, Sell
🟪  EXAMPLES: 
Default Value: (5) 
Shows the Custom Table Value For 
Sorted Table Positions and Alerts
Default Text: (🥇) 
Shown On First Table Cell and 
Message Appearing On Alerts 
Alert Shows: 🟢 | 🥇 | 5.00
  
  
Default Value: (10) 
Shows the Custom Table Value For 
Sorted Table Positions and Alerts
Default Text: (🥈) 
Shown On Second Table Cell and 
Message Appearing On Alerts
Alert Shows: 🔴 | 🥈 | 10.00
  
  
Default Value: (50) 
Shows the Custom Table Value For 
Sorted Table Positions and Alerts
Default Text: (🥉) 
Shown On Third Table Cell and 
Message Appearing On Alerts 
Alert Shows: 🟢 | 🥉 | 50.00
  
  
Default Value: (100) 
Shows the Custom Table Value For 
Sorted Table Positions and Alerts
Default Text: (🎖️) 
Shown On Fourth Table Cell and 
Message Appearing On Alerts 
Alert Shows: 🔴 | 🎖️ | 100.00
  
  
⬛️  REFERENCES: 
Pre-market Highs & Lows on regular 
trading hours (RTH) chart 
By Twingall
Previous Day Week Highs & Lows 
By Sbtnc
Screener for 40+ instruments 
By QuantNomad
Daily Weekly Monthly Yearly Opens 
By Meliksah55
Ribbit RangesBounce Around Multiple 
(Open, High, Low, Close) Ranges 
On Pre/Post Market & (Daily, Weekly, 
Monthly, Yearly) Sessions With 
Meticulous Lines, Labels, Tooltips, 
Colors, Custom Ideas, and Alerts.
Sessions Use Two Step Incremental Values 
Default Value: (1) Shows Two Previous 
(O, H, L, C); Increasing Value Swaps 
Sessions With Next Two Ranges.
⬛️  KEY WORDS: 
🟢 Crossover | 🔴 Crossunder 
📗 High | 📕 Low 
📔 Open | 📓 Close 
🥇 First Idea | 🥈 Second Idea 
🥉 Third Idea | 🎖️ Fourth Idea
🟥  ALERTS: 
Default Option: (Per Bar) 
Alerts Once Conditions Are Met 
(Bar Close) Alerts When Bar Closes
Default Option: (Reg) 
Alerts During Regular Market 
Trading Hours, (0930-1600) 
(Ext) Alerts During Extended 
Market Hours, (1600-0930) 
(24/7) Alerts All Day
Optional Preferences: 
Regular Alerts - Stocks 
Extended Alerts - Futures 
24/7 Alerts - Crypto
🟧  RANGES: 
Default Value: (1) 
Incremental Range Value, Increasing Value 
Swaps Sessions With the Next Two Ranges
(✓) Swap Ranges? 
Pre/Post Market High/Lows, 
1-2 Day High/Lows, 1-2 Week High/Lows, 
1-2 Month High/Lows, 1-2 Year High/Lows
  
(   ) Swap Ranges? 
Pre/Post Market Open/Close, 
1-2 Day Open/Close, 1-2 Week Open/Close, 
1-2 Month Open/Close, 1-2 Year Open/Close
  
🟨  EXAMPLES: 
Default Range: 
🟢 | 📗 Pre Market High (PRE) | 4600.00 
🔴 | 📕 Post Market Low (POST) | 420.00 
Optional: (Open) 
🟢 | 📔 Post Market Open (POST) | 4400.00 
Optional: (Close) 
🔴 | 📓 Pre Market Close (PRE) | 430.00
  
  
Default Range Value: (1) 
🔴 | 📗 1 Day High (1DH) | 460.00 
Next Range Value: (3) 
🟢 | 📕 4 Day Low (4DL) | 420.00 
Optional: (Open) 
🔴 | 📔 2 Day Open (2DO) | 440.00 
Optional: (Close) 
🟢 | 📓 3 Day Close (3DC) | 430.00
  
  
Default Range Value: (5) 
🟢 | 📗 5 Week High (5WH) | 460.00 
Next Range Value: (7) 
🔴 | 📕 8 Week Low (8WL) | 420.00 
Optional: (Open) 
🔴 | 📔 7 Week Open (7WO) | 4400.00 
Optional: (Close) 
🟢 | 📓 6 Week Close (6WC) | 430.00
  
  
Default Range Value: (9) 
🔴 | 📗 9 Month High (9MH) | 460.00 
Next Range Value: (11) 
🟢 | 📕 12 Month Low (12ML) | 420.00 
Optional: (Open) 
🟢 | 📔 11 Month Open (11MO) | 4400.00 
Optional: (Close) 
🔴 | 📓 10 Month Close (10MC) | 430.00
  
  
Default Range Value: (13) 
🟢 | 📗 13 Year High (13YH) | 460.00 
Next Range Value: (15) 
🟢 | 📕 16 Year Low (16YL) | 420.00 
Optional: (Open) 
🔴 | 📔 15 Year Open (15YO) | 4400.00 
Optional: (Close) 
🔴 | 📓 14 Year Close (14YC) | 430.00
  
  
🟩  COLORS: 
(✓) Swap Colors? 
Text Color Is Shown Using 
Background Color
  
(   ) Swap Colors? 
Background Color Is Shown 
Using Text Color
  
🟦  IDEAS: 
(✓) Show Ideas? 
Plots Four Ideas With Custom Lines 
and Labels; Ideas Are Based Around 
Post-It Note Reminders with Alerts
Suggestions For Text Ideas: 
Take Profit, Stop Loss, Trim, Hold, 
Long, Short, Bounce Spot, Retest, 
Chop, Support, Resistance, Buy, Sell
🟪  EXAMPLES: 
Default Value: (5) 
Shows the Custom Value For 
Lines, Labels, and Alerts
Default Text: (🥇) 
Shown On First Label and 
Message Appearing On Alerts 
Alert Shows: 🟢 | 🥇 | 5.00
  
  
Default Value: (10) 
Shows the Custom Value For 
Lines, Labels, and Alerts
Default Text: (🥈) 
Shown On Second Label and 
Message Appearing On Alerts 
Alert Shows: 🔴 | 🥈 | 10.00
  
  
Default Value: (50) 
Shows the Custom Value For 
Lines, Labels, and Alerts
Default Text: (🥉) 
Shown On Third Label and 
Message Appearing On Alerts 
Alert Shows: 🟢 | 🥉 | 50.00
  
  
Default Value: (100) 
Shows the Custom Value For 
Lines, Labels, and Alerts
Default Text: (🎖️) 
Shown On Fourth Label and 
Message Appearing On Alerts 
Alert Shows: 🔴 | 🎖️ | 100.00
  
  
⬛️  REFERENCES: 
Pre-market Highs & Lows on regular 
trading hours (RTH) chart 
By Twingall
Previous Day Week Highs & Lows 
By Sbtnc
Screener for 40+ instruments 
By QuantNomad
Daily Weekly Monthly Yearly Opens 
By Meliksah55
Z-Score Based Momentum Zones with Advanced Volatility ChannelsThe indicator  "Z-Score Based Momentum Zones with Advanced Volatility Channels" combines various technical analysis components, including volatility, price changes, and volume correction, to calculate Z-Scores and determine momentum zones and provide a visual representation of price movements and volatility based on multi timeframe highest high and lowest low values. 
Note: THIS IS A IMPROVEMNT OF "Multi Time Frame Composite Bands" INDICATOR OF MINE WITH MORE EMPHASIS ON MOMENTUM ZONES CALULATED BASED ON Z-SCORES
Input Options
look_back_length: This input specifies the look-back period for calculating intraday volatility. correction It is set to a default value of 5.
lookback_period: This input sets the look-back period for calculating relative price change. The default value is 5.
zscore_period: This input determines the look-back period for calculating the Z-Score. The default value is 500.
avgZscore_length: This input defines the length of the momentum block used in calculations, with a default value of 14.
include_vc: This is a boolean input that, if set to true, enables volume correction in the calculations. By default, it is set to false.
1. Volatility Bands (Composite High and Low):
Composite High and Low: These are calculated by combining different moving averages of the high prices (high) and low prices (low). Specifically:
a_high and a_low are calculated as the average of the highest (ta.highest) and lowest (ta.lowest) high and low prices over various look-back periods (5, 8, 13, 21, 34) to capture short and long-term trends.
b_high and b_low are calculated as the simple moving average (SMA) of the high and low prices over different look-back periods (5, 8, 13) to smooth out the trends.
high_c and low_c are obtained by averaging a_high with b_high and a_low with b_low respectively.
IDV Correction Calulation : In this script the Intraday Volatility (IDV) is calculated as the simple moving average (SMA) of the daily high-low price range divided by the closing price. This measures how much the price fluctuates in a given period.
Composite High and Low with Volatility: The final c_high and c_low values are obtained by adjusting high_c and low_c with the calculated intraday volatility (IDV). These values are used to create the "Composite High" and "Composite Low" plots.
Composite High and Low with Volatility Correction: The final c_high and c_low values are obtained by adjusting high_c and low_c with the calculated intraday volatility (IDV). These values are used to create the "Composite High" and "Composite Low" plots.
2. Momentum Blocks Based on Z-Score:
Relative Price Change (RPC):
The Relative Price Change (rpdev) is calculated as the difference between the current high-low-close average (hlc3) and the previous simple moving average (psma_hlc3) of the same quantity. This measures the change in price over time.
Additionally, std_hlc3 is calculated as the standard deviation of the hlc3 values over a specified look-back period. The standard deviation quantifies the dispersion or volatility in the price data.
The rpdev is then divided by the std_hlc3 to normalize the price change by the volatility. This normalization ensures that the price change is expressed in terms of standard deviations, which is a common practice in quantitative analysis.
Essentially, the rpdev represents how many standard deviations the current price is away from the previous moving average. 
Volume Correction (VC): If the include_vc input is set to true, volume correction is applied by dividing the trading volume by the previous simple moving average of the volume (psma_volume). This accounts for changes in trading activity.
Volume Corrected Relative Price Change (VCRPD): The vcrpd is calculated by multiplying the rpdev by the volume correction factor (vc). This incorporates both price changes and volume data.
Z-Scores: The Z-scores are calculated by taking the difference between the vcrpd and the mean (mean_vcrpd) and then dividing it by the standard deviation (stddev_vcrpd). Z-scores measure how many standard deviations a value is away from the mean. They help identify whether a value is unusually high or low compared to its historical distribution.
Momentum Blocks: The "Momentum Blocks" are essentially derived from the Z-scores (avgZScore). The script assigns different colors to the "Fill Area" based on predefined Z-score ranges. These colored areas represent different momentum zones:
Positive Z-scores indicate bullish momentum, and different shades of green are used to fill the area.
Negative Z-scores indicate bearish momentum, and different shades of red are used.
Z-scores near zero (between -0.25 and 0.25) suggest neutrality, and a yellow color is used.
CNTLibraryLibrary   "CNTLibrary" 
Custom Functions To Help Code In Pinescript V5
Coded By Christian Nataliano
First Coded In 10/06/2023
Last Edited In 22/06/2023
Huge Shout Out To © ZenAndTheArtOfTrading and his ZenLibrary V5, Some Of The Custom Functions Were Heavily Inspired By Matt's Work & His Pine Script Mastery Course
Another Shout Out To The TradingView's Team Library ta V5 
//====================================================================================================================================================
//  Custom Indicator Functions 
//====================================================================================================================================================
 GetKAMA(KAMA_lenght, Fast_KAMA, Slow_KAMA) 
  Calculates An Adaptive Moving Average Based On Perry J Kaufman's Calculations
  Parameters:
     KAMA_lenght (int) : Is The KAMA Lenght
     Fast_KAMA (int) : Is The KAMA's Fastes Moving Average
     Slow_KAMA (int) : Is The KAMA's Slowest Moving Average
  Returns: Float Of The KAMA's Current Calculations
 GetMovingAverage(Source, Lenght, Type) 
  Get Custom Moving Averages Values
  Parameters:
     Source (float) : Of The Moving Average, Defval = close
     Lenght (simple int) : Of The Moving Average, Defval = 50
     Type (string) : Of The Moving Average, Defval = Exponential Moving Average
  Returns: The Moving Average Calculation Based On Its Given Source, Lenght & Calculation Type (Please Call Function On Global Scope)
 GetDecimals() 
  Calculates how many decimals are on the quote price of the current market © ZenAndTheArtOfTrading
  Returns: The current decimal places on the market quote price
 Truncate(number, decimalPlaces) 
  Truncates (cuts) excess decimal places © ZenAndTheArtOfTrading
  Parameters:
     number (float) 
     decimalPlaces (simple float) 
  Returns: The given number truncated to the given decimalPlaces
 ToWhole(number) 
  Converts pips into whole numbers © ZenAndTheArtOfTrading
  Parameters:
     number (float) 
  Returns: The converted number
 ToPips(number) 
  Converts whole numbers back into pips © ZenAndTheArtOfTrading
  Parameters:
     number (float) 
  Returns: The converted number
 GetPctChange(value1, value2, lookback) 
  Gets the percentage change between 2 float values over a given lookback period © ZenAndTheArtOfTrading
  Parameters:
     value1 (float) 
     value2 (float) 
     lookback (int) 
 BarsAboveMA(lookback, ma) 
  Counts how many candles are above the MA © ZenAndTheArtOfTrading
  Parameters:
     lookback (int) 
     ma (float) 
  Returns: The bar count of how many recent bars are above the MA
 BarsBelowMA(lookback, ma) 
  Counts how many candles are below the MA © ZenAndTheArtOfTrading
  Parameters:
     lookback (int) 
     ma (float) 
  Returns: The bar count of how many recent bars are below the EMA
 BarsCrossedMA(lookback, ma) 
  Counts how many times the EMA was crossed recently © ZenAndTheArtOfTrading
  Parameters:
     lookback (int) 
     ma (float) 
  Returns: The bar count of how many times price recently crossed the EMA
 GetPullbackBarCount(lookback, direction) 
  Counts how many green & red bars have printed recently (ie. pullback count) © ZenAndTheArtOfTrading
  Parameters:
     lookback (int) 
     direction (int) 
  Returns: The bar count of how many candles have retraced over the given lookback & direction
 GetSwingHigh(Lookback, SwingType) 
  Check If Price Has Made A Recent Swing High
  Parameters:
     Lookback (int) : Is For The Swing High Lookback Period, Defval = 7
     SwingType (int) : Is For The Swing High Type Of Identification, Defval = 1
  Returns: A Bool - True If Price Has Made A Recent Swing High
 GetSwingLow(Lookback, SwingType) 
  Check If Price Has Made A Recent Swing Low
  Parameters:
     Lookback (int) : Is For The Swing Low Lookback Period, Defval = 7
     SwingType (int) : Is For The Swing Low Type Of Identification, Defval = 1
  Returns: A Bool - True If Price Has Made A Recent Swing Low
//====================================================================================================================================================
//  Custom Risk Management Functions 
//====================================================================================================================================================
 CalculateStopLossLevel(OrderType, Entry, StopLoss) 
  Calculate StopLoss Level
  Parameters:
     OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
     Entry (float) : Is The Entry Level Of The Order, Defval = na
     StopLoss (float) : Is The Custom StopLoss Distance, Defval = 2x ATR Below Close
  Returns: Float - The StopLoss Level In Actual Price As A
 CalculateStopLossDistance(OrderType, Entry, StopLoss) 
  Calculate StopLoss Distance In Pips
  Parameters:
     OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
     Entry (float) : Is The Entry Level Of The Order, NEED TO INPUT PARAM
     StopLoss (float) : Level Based On Previous Calculation, NEED TO INPUT PARAM
  Returns: Float - The StopLoss Value In Pips
 CalculateTakeProfitLevel(OrderType, Entry, StopLossDistance, RiskReward) 
  Calculate TakeProfit Level
  Parameters:
     OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
     Entry (float) : Is The Entry Level Of The Order, Defval = na
     StopLossDistance (float) 
     RiskReward (float) 
  Returns: Float  - The TakeProfit Level In Actual Price
 CalculateTakeProfitDistance(OrderType, Entry, TakeProfit) 
  Get TakeProfit Distance In Pips
  Parameters:
     OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
     Entry (float) : Is The Entry Level Of The Order, NEED TO INPUT PARAM
     TakeProfit (float) : Level Based On Previous Calculation, NEED TO INPUT PARAM
  Returns: Float - The TakeProfit Value In Pips
 CalculateConversionCurrency(AccountCurrency, SymbolCurrency, BaseCurrency) 
  Get The Conversion Currecny Between Current Account Currency & Current Pair's Quoted Currency (FOR FOREX ONLY)
  Parameters:
     AccountCurrency (simple string) : Is For The Account Currency Used 
     SymbolCurrency (simple string) : Is For The Current Symbol Currency (Front Symbol)
     BaseCurrency (simple string) : Is For The Current Symbol Base Currency (Back Symbol)
  Returns: Tuple Of A Bollean (Convert The Currency ?) And A String (Converted Currency)
 CalculateConversionRate(ConvertCurrency, ConversionRate) 
  Get The Conversion Rate Between Current Account Currency & Current Pair's Quoted Currency (FOR FOREX ONLY)
  Parameters:
     ConvertCurrency (bool) : Is To Check If The Current Symbol Needs To Be Converted Or Not
     ConversionRate (float) : Is The Quoted Price Of The Conversion Currency (Input The request.security Function Here)
  Returns: Float Price Of Conversion Rate (If In The Same Currency Than Return Value Will Be 1.0)
 LotSize(LotSizeSimple, Balance, Risk, SLDistance, ConversionRate) 
  Get Current Lot Size
  Parameters:
     LotSizeSimple (bool) : Is To Toggle Lot Sizing Calculation (Simple Is Good Enough For Stocks & Crypto, Whilst Complex Is For Forex)
     Balance (float) : Is For The Current Account Balance To Calculate The Lot Sizing Based Off
     Risk (float) : Is For The Current Risk Per Trade To Calculate The Lot Sizing Based Off
     SLDistance (float) : Is The Current Position StopLoss Distance From Its Entry Price
     ConversionRate (float) : Is The Currency Conversion Rate (Used For Complex Lot Sizing Only)
  Returns: Float - Position Size In Units
 ToLots(Units) 
  Converts Units To Lots
  Parameters:
     Units (float) : Is For How Many Units Need To Be Converted Into Lots (Minimun 1000 Units)
  Returns: Float - Position Size In Lots
 ToUnits(Lots) 
  Converts Lots To Units
  Parameters:
     Lots (float) : Is For How Many Lots Need To Be Converted Into Units (Minimun 0.01 Units)
  Returns: Int - Position Size In Units
 ToLotsInUnits(Units) 
  Converts Units To Lots Than Back To Units
  Parameters:
     Units (float) : Is For How Many Units Need To Be Converted Into Lots (Minimun 1000 Units)
  Returns: Float - Position Size In Lots That Were Rounded To Units
 ATRTrail(OrderType, SourceType, ATRPeriod, ATRMultiplyer, SwingLookback) 
  Calculate ATR Trailing Stop
  Parameters:
     OrderType (int) : Is To Determine A Long / Short Position, Defval = 1 
     SourceType (int) : Is To Determine Where To Calculate The ATR Trailing From, Defval = close
     ATRPeriod (simple int) : Is To Change Its ATR Period, Defval = 20
     ATRMultiplyer (float) : Is To Change Its ATR Trailing Distance, Defval = 1
     SwingLookback (int) : Is To Change Its Swing HiLo Lookback (Only From Source Type 5), Defval = 7
  Returns: Float - Number Of The Current ATR Trailing
 DangerZone(WinRate, AvgRRR, Filter) 
  Calculate Danger Zone Of A Given Strategy
  Parameters:
     WinRate (float) : Is The Strategy WinRate
     AvgRRR (float) : Is The Strategy Avg RRR
     Filter (float) : Is The Minimum Profit It Needs To Be Out Of BE Zone, Defval = 3
  Returns: Int - Value, 1 If Out Of Danger Zone, 0 If BE, -1 If In Danger Zone
 IsQuestionableTrades(TradeTP, TradeSL) 
  Checks For Questionable Trades (Which Are Trades That Its TP & SL Level Got Hit At The Same Candle)
  Parameters:
     TradeTP (float) : Is The Trade In Question Take Profit Level
     TradeSL (float) : Is The Trade In Question Stop Loss Level
  Returns: Bool - True If The Last Trade Was A "Questionable Trade"
//====================================================================================================================================================
//  Custom Strategy Functions 
//====================================================================================================================================================
 OpenLong(EntryID, LotSize, LimitPrice, StopPrice, Comment, CommentValue) 
  Open A Long Order Based On The Given Params
  Parameters:
     EntryID (string) : Is The Trade Entry ID, Defval = "Long"
     LotSize (float) : Is The Lot Size Of The Trade, Defval = 1
     LimitPrice (float) : Is The Limit Order Price To Set The Order At, Defval = Na / Market Order Execution
     StopPrice (float) : Is The Stop Order Price To Set The Order At, Defval = Na / Market Order Execution
     Comment (string) : Is The Order Comment, Defval = Long Entry Order
     CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
  Returns: Void
 OpenShort(EntryID, LotSize, LimitPrice, StopPrice, Comment, CommentValue) 
  Open A Short Order Based On The Given Params
  Parameters:
     EntryID (string) : Is The Trade Entry ID, Defval = "Short"
     LotSize (float) : Is The Lot Size Of The Trade, Defval = 1
     LimitPrice (float) : Is The Limit Order Price To Set The Order At, Defval = Na / Market Order Execution
     StopPrice (float) : Is The Stop Order Price To Set The Order At, Defval = Na / Market Order Execution
     Comment (string) : Is The Order Comment, Defval = Short Entry Order
     CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
  Returns: Void
 TP_SLExit(FromID, TPLevel, SLLevel, PercentageClose, Comment, CommentValue) 
  Exits Based On Predetermined TP & SL Levels
  Parameters:
     FromID (string) : Is The Trade ID That The TP & SL Levels Be Palced 
     TPLevel (float) : Is The Take Profit Level
     SLLevel (float) : Is The StopLoss Level
     PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
     Comment (string) : Is The Order Comment, Defval = Exit Order
     CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na 
  Returns: Void
 CloseLong(ExitID, PercentageClose, Comment, CommentValue, Instant) 
  Exits A Long Order Based On A Specified Condition
  Parameters:
     ExitID (string) : Is The Trade ID That Will Be Closed, Defval = "Long"
     PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
     Comment (string) : Is The Order Comment, Defval = Exit Order
     CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na 
     Instant (bool) : Is For Exit Execution Type, Defval = false
  Returns: Void
 CloseShort(ExitID, PercentageClose, Comment, CommentValue, Instant) 
  Exits A Short Order Based On A Specified Condition
  Parameters:
     ExitID (string) : Is The Trade ID That Will Be Closed, Defval = "Short"
     PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
     Comment (string) : Is The Order Comment, Defval = Exit Order
     CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na 
     Instant (bool) : Is For Exit Execution Type, Defval = false
  Returns: Void
 BrokerCheck(Broker) 
  Checks Traded Broker With Current Loaded Chart Broker
  Parameters:
     Broker (string) : Is The Current Broker That Is Traded 
  Returns: Bool - True If Current Traded Broker Is Same As Loaded Chart Broker
 OpenPC(LicenseID, OrderType, UseLimit, LimitPrice, SymbolPrefix, Symbol, SymbolSuffix, Risk, SL, TP, OrderComment, Spread) 
  Compiles Given Parameters Into An Alert String Format To Open Trades Using Pine Connector
  Parameters:
     LicenseID (string) : Is The Users PineConnector LicenseID
     OrderType (int) : Is The Desired OrderType To Open
     UseLimit (bool) : Is If We Want To Enter The Position At Exactly The Previous Closing Price
     LimitPrice (float) : Is The Limit Price Of The Trade (Only For Pending Orders)
     SymbolPrefix (string) : Is The Current Symbol Prefix (If Any)
     Symbol (string) : Is The Traded Symbol
     SymbolSuffix (string) : Is The Current Symbol Suffix (If Any)
     Risk (float) : Is The Trade Risk Per Trade / Fixed Lot Sizing
     SL (float) : Is The Trade SL In Price / In Pips
     TP (float) : Is The Trade TP In Price / In Pips
     OrderComment (string) : Is The Executed Trade Comment
     Spread (float) : is The Maximum Spread For Execution
  Returns: String - Pine Connector Order Syntax Alert Message
 ClosePC(LicenseID, OrderType, SymbolPrefix, Symbol, SymbolSuffix) 
  Compiles Given Parameters Into An Alert String Format To Close Trades Using Pine Connector
  Parameters:
     LicenseID (string) : Is The Users PineConnector LicenseID
     OrderType (int) : Is The Desired OrderType To Close
     SymbolPrefix (string) : Is The Current Symbol Prefix (If Any)
     Symbol (string) : Is The Traded Symbol
     SymbolSuffix (string) : Is The Current Symbol Suffix (If Any)
  Returns: String - Pine Connector Order Syntax Alert Message
//====================================================================================================================================================
//  Custom Backtesting Calculation Functions 
//====================================================================================================================================================
 CalculatePNL(EntryPrice, ExitPrice, LotSize, ConversionRate) 
  Calculates Trade PNL Based On Entry, Eixt & Lot Size
  Parameters:
     EntryPrice (float) : Is The Trade Entry
     ExitPrice (float) : Is The Trade Exit
     LotSize (float) : Is The Trade Sizing
     ConversionRate (float) : Is The Currency Conversion Rate (Used For Complex Lot Sizing Only)
  Returns: Float - The Current Trade PNL
 UpdateBalance(PrevBalance, PNL) 
  Updates The Previous Ginve Balance To The Next PNL
  Parameters:
     PrevBalance (float) : Is The Previous Balance To Be Updated
     PNL (float) : Is The Current Trade PNL To Be Added
  Returns: Float - The Current Updated PNL
 CalculateSlpComm(PNL, MaxRate) 
  Calculates Random Slippage & Commisions Fees Based On The Parameters
  Parameters:
     PNL (float) : Is The Current Trade PNL 
     MaxRate (float) : Is The Upper Limit (In Percentage) Of The Randomized Fee
  Returns: Float - A Percentage Fee Of The Current Trade PNL
 UpdateDD(MaxBalance, Balance) 
  Calculates & Updates The DD Based On Its Given Parameters
  Parameters:
     MaxBalance (float) : Is The Maximum Balance Ever Recorded
     Balance (float) : Is The Current Account Balance
  Returns: Float - The Current Strategy DD
 CalculateWR(TotalTrades, LongID, ShortID) 
  Calculate The Total, Long & Short Trades Win Rate
  Parameters:
     TotalTrades (int) : Are The Current Total Trades That The Strategy Has Taken
     LongID (string) : Is The Order ID Of The Long Trades Of The Strategy
     ShortID (string) : Is The Order ID Of The Short Trades Of The Strategy
  Returns: Tuple Of Long WR%, Short WR%, Total WR%, Total Winning Trades, Total Losing Trades, Total Long Trades & Total Short Trades
 CalculateAvgRRR(WinTrades, LossTrades) 
  Calculates The Overall Strategy Avg Risk Reward Ratio
  Parameters:
     WinTrades (int) : Are The Strategy Winning Trades
     LossTrades (int) : Are The Strategy Losing Trades
  Returns: Float - The Average RRR Values
 CAGR(StartTime, StartPrice, EndTime, EndPrice) 
  Calculates The CAGR Over The Given Time Period © TradingView
  Parameters:
     StartTime (int) : Is The Starting Time Of The Calculation
     StartPrice (float) : Is The Starting Price Of The Calculation
     EndTime (int) : Is The Ending Time Of The Calculation
     EndPrice (float) : Is The Ending Price Of The Calculation
  Returns: Float - The CAGR Values
//====================================================================================================================================================
//  Custom Plot Functions 
//====================================================================================================================================================
 EditLabels(LabelID, X1, Y1, Text, Color, TextColor, EditCondition, DeleteCondition) 
  Edit / Delete Labels
  Parameters:
     LabelID (label) : Is The ID Of The Selected Label
     X1 (int) : Is The X1 Coordinate IN BARINDEX Xloc
     Y1 (float) : Is The Y1 Coordinate IN PRICE Yloc
     Text (string) : Is The Text Than Wants To Be Written In The Label
     Color (color) : Is The Color Value Change Of The Label Text
     TextColor (color) 
     EditCondition (int) : Is The Edit Condition of The Line (Setting Location / Color)
     DeleteCondition (bool) : Is The Delete Condition Of The Line If Ture Deletes The Prev Itteration Of The Line
  Returns: Void
 EditLine(LineID, X1, Y1, X2, Y2, Color, EditCondition, DeleteCondition) 
  Edit / Delete Lines
  Parameters:
     LineID (line) : Is The ID Of The Selected Line
     X1 (int) : Is The X1 Coordinate IN BARINDEX Xloc
     Y1 (float) : Is The Y1 Coordinate IN PRICE Yloc
     X2 (int) : Is The X2 Coordinate IN BARINDEX Xloc
     Y2 (float) : Is The Y2 Coordinate IN PRICE Yloc
     Color (color) : Is The Color Value Change Of The Line
     EditCondition (int) : Is The Edit Condition of The Line (Setting Location / Color)
     DeleteCondition (bool) : Is The Delete Condition Of The Line If Ture Deletes The Prev Itteration Of The Line
  Returns: Void
//====================================================================================================================================================
//  Custom Display Functions (Using Tables) 
//====================================================================================================================================================
 FillTable(TableID, Column, Row, Title, Value, BgColor, TextColor, ToolTip) 
  Filling The Selected Table With The Inputed Information
  Parameters:
     TableID (table) : Is The Table ID That Wants To Be Edited
     Column (int) : Is The Current Column Of The Table That Wants To Be Edited
     Row (int) : Is The Current Row Of The Table That Wants To Be Edited 
     Title (string) : Is The String Title Of The Current Cell Table
     Value (string) : Is The String Value Of The Current Cell Table
     BgColor (color) : Is The Selected Color For The Current Table
     TextColor (color) : Is The Selected Color For The Current Table
     ToolTip (string) : Is The ToolTip Of The Current Cell In The Table
  Returns: Void
 DisplayBTResults(TableID, BgColor, TextColor, StartingBalance, Balance, DollarReturn, TotalPips, MaxDD) 
  Filling The Selected Table With The Inputed Information
  Parameters:
     TableID (table) : Is The Table ID That Wants To Be Edited
     BgColor (color) : Is The Selected Color For The Current Table
     TextColor (color) : Is The Selected Color For The Current Table
     StartingBalance (float) : Is The Account Starting Balance
     Balance (float) 
     DollarReturn (float) : Is The Account Dollar Reture
     TotalPips (float) : Is The Total Pips Gained / loss
     MaxDD (float) : Is The Maximum Drawdown Over The Backtesting Period
  Returns: Void
 DisplayBTResultsV2(TableID, BgColor, TextColor, TotalWR, QTCount, LongWR, ShortWR, InitialCapital, CumProfit, CumFee, AvgRRR, MaxDD, CAGR, MeanDD) 
  Filling The Selected Table With The Inputed Information
  Parameters:
     TableID (table) : Is The Table ID That Wants To Be Edited
     BgColor (color) : Is The Selected Color For The Current Table
     TextColor (color) : Is The Selected Color For The Current Table
     TotalWR (float) : Is The Strategy Total WR In %
     QTCount (int) : Is The Strategy Questionable Trades Count
     LongWR (float) : Is The Strategy Total WR In %
     ShortWR (float) : Is The Strategy Total WR In %
     InitialCapital (float) : Is The Strategy Initial Starting Capital
     CumProfit (float) : Is The Strategy Ending Cumulative Profit
     CumFee (float) : Is The Strategy Ending Cumulative Fee (Based On Randomized Fee Assumptions)
     AvgRRR (float) : Is The Strategy Average Risk Reward Ratio
     MaxDD (float) : Is The Strategy Maximum DrawDown In Its Backtesting Period
     CAGR (float) : Is The Strategy Compounded Average GRowth In %
     MeanDD (float) : Is The Strategy Mean / Average Drawdown In The Backtesting Period
  Returns: Void
//====================================================================================================================================================
//  Custom Pattern Detection Functions 
//====================================================================================================================================================
 BullFib(priceLow, priceHigh, fibRatio) 
  Calculates A Bullish Fibonacci Value (From Swing Low To High) © ZenAndTheArtOfTrading
  Parameters:
     priceLow (float) 
     priceHigh (float) 
     fibRatio (float) 
  Returns: The Fibonacci Value Of The Given Ratio Between The Two Price Points
 BearFib(priceLow, priceHigh, fibRatio) 
  Calculates A Bearish Fibonacci Value (From Swing High To Low) © ZenAndTheArtOfTrading
  Parameters:
     priceLow (float) 
     priceHigh (float) 
     fibRatio (float) 
  Returns: The Fibonacci Value Of The Given Ratio Between The Two Price Points
 GetBodySize() 
  Gets The Current Candle Body Size IN POINTS © ZenAndTheArtOfTrading
  Returns: The Current Candle Body Size IN POINTS
 GetTopWickSize() 
  Gets The Current Candle Top Wick Size IN POINTS © ZenAndTheArtOfTrading
  Returns: The Current Candle Top Wick Size IN POINTS
 GetBottomWickSize() 
  Gets The Current Candle Bottom Wick Size IN POINTS © ZenAndTheArtOfTrading
  Returns: The Current Candle Bottom Wick Size IN POINTS
 GetBodyPercent() 
  Gets The Current Candle Body Size As A Percentage Of Its Entire Size Including Its Wicks © ZenAndTheArtOfTrading
  Returns: The Current Candle Body Size IN PERCENTAGE
 GetTopWickPercent() 
  Gets The Current Top Wick Size As A Percentage Of Its Entire Body Size
  Returns: Float - The Current Candle Top Wick Size IN PERCENTAGE
 GetBottomWickPercent() 
  Gets The Current Bottom Wick Size As A Percentage Of Its Entire Bodu Size
  Returns: Float - The Current Candle Bottom Size IN PERCENTAGE
 BullishEC(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack) 
  Checks If The Current Bar Is A Bullish Engulfing Candle
  Parameters:
     Allowance (int) : To Give Flexibility Of Engulfing Pattern Detection In Markets That Have Micro Gaps, Defval = 0
     RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bullsih Engulfing Pattern, Defval = na
     EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
     NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing Low, Defval = true
     SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
  Returns: Bool - True If The Current Bar Matches The Requirements of a Bullish Engulfing Candle
 BearishEC(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack) 
  Checks If The Current Bar Is A Bearish Engulfing Candle
  Parameters:
     Allowance (int) : To Give Flexibility Of Engulfing Pattern Detection In Markets That Have Micro Gaps, Defval = 0
     RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bearish Engulfing Pattern, Defval = na
     EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
     NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing High, Defval = true
     SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High, Defval = 10
  Returns: Bool - True If The Current Bar Matches The Requirements of a Bearish Engulfing Candle
 Hammer(Fib, ColorMatch, NearSwings, SwingLookBack, ATRFilterCheck, ATRPeriod) 
  Checks If The Current Bar Is A Hammer Candle
  Parameters:
     Fib (float) : To Specify Which Fibonacci Ratio To Use When Determining The Hammer Candle, Defval = 0.382 Ratio
     ColorMatch (bool) : To Filter Only Bullish Closed Hammer Candle Pattern, Defval = false
     NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing Low, Defval = true
     SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
     ATRFilterCheck (float) : To Filter Smaller Hammer Candles That Might Be Better Classified As A Doji Candle, Defval = 1
     ATRPeriod (simple int) : To Change ATR Period Of The ATR Filter, Defval = 20
  Returns: Bool - True If The Current Bar Matches The Requirements of a Hammer Candle
 Star(Fib, ColorMatch, NearSwings, SwingLookBack, ATRFilterCheck, ATRPeriod) 
  Checks If The Current Bar Is A Hammer Candle
  Parameters:
     Fib (float) : To Specify Which Fibonacci Ratio To Use When Determining The Hammer Candle, Defval = 0.382 Ratio
     ColorMatch (bool) : To Filter Only Bullish Closed Hammer Candle Pattern, Defval = false
     NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing Low, Defval = true
     SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
     ATRFilterCheck (float) : To Filter Smaller Hammer Candles That Might Be Better Classified As A Doji Candle, Defval = 1
     ATRPeriod (simple int) : To Change ATR Period Of The ATR Filter, Defval = 20
  Returns: Bool - True If The Current Bar Matches The Requirements of a Hammer Candle
 Doji(MaxWickSize, MaxBodySize, DojiType, NearSwings, SwingLookBack) 
  Checks If The Current Bar Is A Doji Candle
  Parameters:
     MaxWickSize (float) : To Specify The Maximum Lenght Of Its Upper & Lower Wick, Defval = 2
     MaxBodySize (float) : To Specify The Maximum Lenght Of Its Candle Body IN PERCENT, Defval = 0.05
     DojiType (int) 
     NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing High / Low (Only In Dragonlyf / Gravestone Mode), Defval = true
     SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High / Low (Only In Dragonlyf / Gravestone Mode), Defval = 10
  Returns: Bool - True If The Current Bar Matches The Requirements of a Doji Candle
 BullishIB(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack) 
  Checks If The Current Bar Is A Bullish Harami Candle
  Parameters:
     Allowance (int) : To Give Flexibility Of Harami Pattern Detection In Markets That Have Micro Gaps, Defval = 0
     RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bullsih Harami Pattern, Defval = na
     EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
     NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing Low, Defval = true
     SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
  Returns: Bool - True If The Current Bar Matches The Requirements of a Bullish Harami Candle
 BearishIB(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack) 
  Checks If The Current Bar Is A Bullish Harami Candle
  Parameters:
     Allowance (int) : To Give Flexibility Of Harami Pattern Detection In Markets That Have Micro Gaps, Defval = 0
     RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bearish Harami Pattern, Defval = na
     EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
     NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing High, Defval = true
     SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High, Defval = 10
  Returns: Bool - True If The Current Bar Matches The Requirements of a Bearish Harami Candle
//====================================================================================================================================================
//  Custom Time Functions 
//====================================================================================================================================================
 BarInSession(sess, useFilter) 
  Determines if the current price bar falls inside the specified session © ZenAndTheArtOfTrading
  Parameters:
     sess (simple string) 
     useFilter (bool) 
  Returns: A boolean - true if the current bar falls within the given time session
 BarOutSession(sess, useFilter) 
  Determines if the current price bar falls outside the specified session © ZenAndTheArtOfTrading
  Parameters:
     sess (simple string) 
     useFilter (bool) 
  Returns: A boolean - true if the current bar falls outside the given time session
 DateFilter(startTime, endTime) 
  Determines if this bar's time falls within date filter range © ZenAndTheArtOfTrading
  Parameters:
     startTime (int) 
     endTime (int) 
  Returns: A boolean - true if the current bar falls within the given dates
 DayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday) 
  Checks if the current bar's day is in the list of given days to analyze © ZenAndTheArtOfTrading
  Parameters:
     monday (bool) 
     tuesday (bool) 
     wednesday (bool) 
     thursday (bool) 
     friday (bool) 
     saturday (bool) 
     sunday (bool) 
  Returns: A boolean - true if the current bar's day is one of the given days
 AUSSess() 
  Checks If The Current Australian Forex Session In Running
  Returns: Bool - True If Currently The Australian Session Is Running
 ASIASess() 
  Checks If The Current Asian Forex Session In Running
  Returns: Bool - True If Currently The Asian Session Is Running
 EURSess() 
  Checks If The Current European Forex Session In Running
  Returns: Bool - True If Currently The European Session Is Running
 USSess() 
  Checks If The Current US Forex Session In Running
  Returns: Bool - True If Currently The US Session Is Running
 UNIXToDate(Time, ConversionType, TimeZone) 
  Converts UNIX Time To Datetime
  Parameters:
     Time (int) : Is The UNIX Time Input
     ConversionType (int) : Is The Datetime Output Format, Defval = DD-MM-YYYY
     TimeZone (string) : Is To Convert The Outputed Datetime Into The Specified Time Zone, Defval = Exchange Time Zone
  Returns: String - String Of Datetime
Candle Counter [theEccentricTrader]█   OVERVIEW 
This indicator counts the number of confirmed candle scenarios on any given candlestick chart and displays the statistics in a table, which can be repositioned and resized at the user's discretion. 
█   CONCEPTS  
 Green and Red Candles 
 
 A green candle is one that closes with a high price equal to or above the price it opened. 
 A red candle is one that closes with a low price that is lower than the price it opened. 
 
 Upper Candle Trends 
 
 A higher high candle is one that closes with a higher high price than the high price of the preceding candle.
 A lower high candle is one that closes with a lower high price than the high price of the preceding candle. 
 A double-top candle is one that closes with a high price that is equal to the high price of the preceding candle.
 
 Lower Candle Trends 
 
 A higher low candle is one that closes with a higher low price than the low price of the preceding candle. 
 A lower low candle is one that closes with a lower low price than the low price of the preceding candle.
 A double-bottom candle is one that closes with a low price that is equal to the low price of the preceding candle.
 
█   FEATURES 
 Inputs 
 
 Start Date
 End Date 
 Position 
 Text Size 
 Show Sample Period 
 Show Plots 
 
 Table 
The table is colour coded, consists of three columns and twenty-two rows. Blue cells denote all candle scenarios, green cells denote green candle scenarios and red cells denote red candle scenarios. 
The candle scenarios are listed in the first column with their corresponding total counts to the right, in the second column. The last row in column one, row twenty-two, displays the sample period which can be adjusted or hidden via indicator settings.
Rows two and three in the third column of the table display the total green and red candles as percentages of total candles. Rows four to nine in column three, coloured blue, display the corresponding candle scenarios as percentages of total candles. Rows ten to fifteen in column three, coloured green, display the corresponding candle scenarios as percentages of total green candles. And lastly, rows sixteen to twenty-one in column three, coloured red, display the corresponding candle scenarios as percentages of total red candles.
 Plots 
I have added plots as a visual aid to the various candle scenarios listed in the table. Green up-arrows denote higher high candles when above bar and higher low candles when below bar. Red down-arrows denote lower high candles when above bar and lower low candles when below bar. Similarly, blue diamonds when above bar denote double-top candles and when below bar denote double-bottom candles. These plots can also be hidden via indicator settings. 
█   HOW TO USE 
 
This indicator is intended for research purposes and strategy development. I hope it will be useful in helping to gain a better understanding of the underlying dynamics at play on any given market and timeframe. It can, for example, give you an idea of any inherent biases such as a greater proportion of green candles to red. Or a greater proportion of higher low green candles to lower low green candles. Such information can be very useful when conducting top down analysis across multiple timeframes, or considering trailing stop loss methods. 
What you do with these statistics and how far you decide to take your research is entirely up to you, the possibilities are endless. 
This is just the first and most basic in a series of indicators that can be used to study objective price action scenarios and develop a systematic approach to trading. 
█   LIMITATIONS 
 
Some higher timeframe candles on tickers with larger lookbacks such as the DXY, do not actually contain all the open, high, low and close (OHLC) data at the beginning of the chart. Instead, they use the close price for open, high and low prices. So, while we can determine whether the close price is higher or lower than the preceding close price, there is no way of knowing what actually happened intra-bar for these candles. And by default candles that close at the same price as the open price, will be counted as green. You can avoid this problem by utilising the sample period filter.
 
The green and red candle calculations are based solely on differences between open and close prices, as such I have made no attempt to account for green candles that gap lower and close below the close price of the preceding candle, or red candles that gap higher and close above the close price of the preceding candle. I can only recommend using 24-hour markets, if and where possible, as there are far fewer gaps and, generally, more data to work with. Alternatively, you can replace the scenarios with your own logic to account for the gap anomalies, if you are feeling up to the challenge.
It is also worth noting that the sample size will be limited to your Trading View subscription plan. Premium users get 20,000 candles worth of data, pro+ and pro users get 10,000, and basic users get 5,000. If upgrading is currently not an option, you can always keep a rolling tally of the statistics in an excel spreadsheet or something of the like. 
MomentumIndicatorsLibrary   "MomentumIndicators" 
This is a library of 'Momentum Indicators', also denominated as oscillators.
The purpose of this library is to organize momentum indicators in just one place, making it easy to access.
In addition, it aims to allow customized versions, not being restricted to just the price value.
An example of this use case is the popular Stochastic RSI.
# Indicators:
1. Relative Strength Index (RSI): 
Measures the relative strength of recent price gains to recent price losses of an asset.
2. Rate of Change (ROC): 
Measures the percentage change in price of an asset over a specified time period.
3. Stochastic Oscillator (Stoch): 
Compares the current price of an asset to its price range over a specified time period.
4. True Strength Index (TSI):
Measures the price change, calculating the ratio of the price change (positive or negative) in relation to the 
absolute price change.
The values of both are smoothed twice to reduce noise, and the final result is normalized 
in a range between 100 and -100.
5. Stochastic Momentum Index (SMI): 
Combination of the True Strength Index with a signal line to help identify turning points in the market.
6. Williams Percent Range (Williams %R): 
Compares the current price of an asset to its highest high and lowest low over a specified time period.
7. Commodity Channel Index (CCI): 
Measures the relationship between an asset's current price and its moving average.
8. Ultimate Oscillator (UO): 
Combines three different time periods to help identify possible reversal points.
9. Moving Average Convergence/Divergence (MACD): 
Shows the difference between short-term and long-term exponential moving averages.
10. Fisher Transform (FT): 
Normalize prices into a Gaussian normal distribution.
11. Inverse Fisher Transform (IFT): 
Transform the values of the Fisher Transform into a smaller and more easily interpretable scale is through the 
application of an inverse transformation to the hyperbolic tangent function. 
This transformation takes the values of the FT, which range from -infinity to +infinity, to a scale limited 
between -1 and +1, allowing them to be more easily visualized and compared.
12. Premier Stochastic Oscillator (PSO):
Normalizes the standard stochastic oscillator by applying a five-period double exponential smoothing average of 
the %K value, resulting in a symmetric scale of 1 to -1
# Indicators of indicators:
## Stochastic:
1. Stochastic of RSI (Relative Strengh Index)
2. Stochastic of ROC (Rate of Change)
3. Stochastic of UO (Ultimate Oscillator)
4. Stochastic of TSI (True Strengh Index)
5. Stochastic of Williams R%
6. Stochastic of CCI (Commodity Channel Index).
7. Stochastic of MACD (Moving Average Convergence/Divergence)
8. Stochastic of FT (Fisher Transform)
9. Stochastic of Volume
10. Stochastic of MFI (Money Flow Index)
11. Stochastic of On OBV (Balance Volume)
12. Stochastic of PVI (Positive Volume Index)
13. Stochastic of NVI (Negative Volume Index)
14. Stochastic of PVT (Price-Volume Trend)
15. Stochastic of VO (Volume Oscillator)
16. Stochastic of VROC (Volume Rate of Change)
## Inverse Fisher Transform:
1.Inverse Fisher Transform on RSI (Relative Strengh Index)
2.Inverse Fisher Transform on ROC (Rate of Change)
3.Inverse Fisher Transform on UO (Ultimate Oscillator)
4.Inverse Fisher Transform on Stochastic
5.Inverse Fisher Transform on TSI (True Strength Index)
6.Inverse Fisher Transform on CCI (Commodity Channel Index)
7.Inverse Fisher Transform on Fisher Transform (FT)
8.Inverse Fisher Transform on MACD (Moving Average Convergence/Divergence)
9.Inverse Fisher Transfor on Williams R% (Williams Percent Range)
10.Inverse Fisher Transfor on CMF (Chaikin Money Flow)
11.Inverse Fisher Transform on VO (Volume Oscillator)
12.Inverse Fisher Transform on VROC (Volume Rate of Change)
## Stochastic Momentum Index:
1.Stochastic Momentum Index of RSI (Relative Strength Index)
2.Stochastic Momentum Index of ROC (Rate of Change)
3.Stochastic Momentum Index of VROC (Volume Rate of Change)
4.Stochastic Momentum Index of Williams R% (Williams Percent Range)
5.Stochastic Momentum Index of FT (Fisher Transform)
6.Stochastic Momentum Index of CCI (Commodity Channel Index)
7.Stochastic Momentum Index of UO (Ultimate Oscillator)
8.Stochastic Momentum Index of MACD (Moving Average Convergence/Divergence)
9.Stochastic Momentum Index of Volume
10.Stochastic Momentum Index of MFI (Money Flow Index)
11.Stochastic Momentum Index of CMF (Chaikin Money Flow)
12.Stochastic Momentum Index of On Balance Volume (OBV)
13.Stochastic Momentum Index of Price-Volume Trend (PVT)
14.Stochastic Momentum Index of Volume Oscillator (VO)
15.Stochastic Momentum Index of Positive Volume Index (PVI)
16.Stochastic Momentum Index of Negative Volume Index (NVI)
## Relative Strength Index:
1. RSI for Volume
2. RSI for Moving Average
 rsi(source, length) 
  RSI (Relative Strengh Index). Measures the relative strength of recent price gains to recent price losses of an asset.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     length : (int) Period of loopback
  Returns: (float) Series of RSI
 roc(source, length) 
  ROC (Rate of Change). Measures the percentage change in price of an asset over a specified time period.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     length : (int) Period of loopback
  Returns: (float) Series of ROC
 stoch(kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Stochastic Oscillator. Compares the current price of an asset to its price range over a specified time period.
  Parameters:
     kLength 
     kSmoothing : (int) Period for smoothig stochastic
     dSmoothing : (int) Period for signal (moving average of stochastic)
     maTypeK : (int) Type of Moving Average for Stochastic Oscillator
     maTypeD : (int) Type of Moving Average for Stochastic Oscillator Signal
     almaOffsetKD : (float) Offset for Arnaud Legoux Moving Average for Oscillator and Signal
     almaSigmaKD : (float) Sigma for Arnaud Legoux Moving Average for Oscillator and Signal
     lsmaOffSetKD : (int) Offset for Least Squares Moving Average for Oscillator and Signal
  Returns:   A tuple of Stochastic Oscillator and Moving Average of Stochastic Oscillator
 stoch(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Stochastic Oscillator. Customized source. Compares the current price of an asset to its price range over a specified time period.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     kLength : (int) Period of loopback to calculate the stochastic
     kSmoothing : (int) Period for smoothig stochastic
     dSmoothing : (int) Period for signal (moving average of stochastic)
     maTypeK : (int) Type of Moving Average for Stochastic Oscillator
     maTypeD : (int) Type of Moving Average for Stochastic Oscillator Signal
     almaOffsetKD : (float) Offset for Arnaud Legoux Moving Average for Stoch and Signal
     almaSigmaKD : (float) Sigma for Arnaud Legoux Moving Average for Stoch and Signal
     lsmaOffSetKD : (int) Offset for Least Squares Moving Average for Stoch and Signal
  Returns:   A tuple of Stochastic Oscillator and Moving Average of Stochastic Oscillator
 tsi(source, shortLength, longLength, maType, almaOffset, almaSigma, lsmaOffSet) 
  TSI (True Strengh Index). Measures the price change, calculating the ratio of the price change (positive or negative) in relation to the absolute price change.
The values of both are smoothed twice to reduce noise, and the final result is normalized in a range between 100 and -100.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     shortLength : (int) Short length
     longLength : (int) Long length
     maType : (int) Type of Moving Average for TSI
     almaOffset : (float) Offset for Arnaud Legoux Moving Average
     almaSigma : (float) Sigma for Arnaud Legoux Moving Average
     lsmaOffSet : (int) Offset for Least Squares Moving Average
  Returns: (float) TSI
 smi(sourceTSI, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  SMI (Stochastic Momentum Index). A TSI (True Strengh Index) plus a signal line.
  Parameters:
     sourceTSI : (float) Source of series for TSI (close, high, low, etc.)
     shortLengthTSI : (int) Short length for TSI
     longLengthTSI : (int) Long length for TSI
     maTypeTSI : (int) Type of Moving Average for Signal of TSI
     almaOffsetTSI : (float) Offset for Arnaud Legoux Moving Average
     almaSigmaTSI : (float) Sigma for Arnaud Legoux Moving Average
     lsmaOffSetTSI : (int) Offset for Least Squares Moving Average
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
  Returns:   A tuple with TSI, signal of TSI and histogram of difference
 wpr(source, length) 
  Williams R% (Williams Percent Range). Compares the current price of an asset to its highest high and lowest low over a specified time period.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     length : (int) Period of loopback
  Returns: (float) Series of Williams R%
 cci(source, length, maType, almaOffset, almaSigma, lsmaOffSet) 
  CCI (Commodity Channel Index). Measures the relationship between an asset's current price and its moving average.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     length : (int) Period of loopback
     maType : (int) Type of Moving Average
     almaOffset : (float) Offset for Arnaud Legoux Moving Average
     almaSigma : (float) Sigma for Arnaud Legoux Moving Average
     lsmaOffSet : (int) Offset for Least Squares Moving Average
  Returns: (float) Series of CCI
 ultimateOscillator(fastLength, middleLength, slowLength) 
  UO (Ultimate Oscilator). Combines three different time periods to help identify possible reversal points.
  Parameters:
     fastLength : (int) Fast period of loopback
     middleLength : (int) Middle period of loopback
     slowLength : (int) Slow period of loopback
  Returns: (float) Series of Ultimate Oscilator
 ultimateOscillator(source, fastLength, middleLength, slowLength) 
  UO (Ultimate Oscilator). Customized source. Combines three different time periods to help identify possible reversal points.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     fastLength : (int) Fast period of loopback
     middleLength : (int) Middle period of loopback
     slowLength : (int) Slow period of loopback
  Returns: (float) Series of Ultimate Oscilator
 macd(source, fastLength, slowLength, signalLength, maTypeFast, maTypeSlow, maTypeMACD, almaOffset, almaSigma, lsmaOffSet) 
  MACD (Moving Average Convergence/Divergence). Shows the difference between short-term and long-term exponential moving averages.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     fastLength : (int) Period for fast moving average
     slowLength : (int) Period for slow moving average
     signalLength : (int) Signal length
     maTypeFast : (int) Type of fast moving average
     maTypeSlow : (int) Type of slow moving average
     maTypeMACD : (int) Type of MACD moving average
     almaOffset : (float) Offset for Arnaud Legoux Moving Average
     almaSigma : (float) Sigma for Arnaud Legoux Moving Average
     lsmaOffSet : (int) Offset for Least Squares Moving Average
  Returns:   A tuple with MACD, Signal, and Histgram
 fisher(length) 
  Fisher Transform. Normalize prices into a Gaussian normal distribution.
  Parameters:
     length 
  Returns:   A tuple with Fisher Transform and signal
 fisher(source, length) 
  Fisher Transform. Customized source. Normalize prices into a Gaussian normal distribution.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     length 
  Returns:   A tuple with Fisher Transform and signal
 inverseFisher(source, length, subtrahend, denominator) 
  Inverse Fisher Transform.
Transform the values of the Fisher Transform into a smaller and more easily interpretable scale is 
through the application of an inverse transformation to the hyperbolic tangent function. 
This transformation takes the values of the FT, which range from -infinity to +infinity, 
to a scale limited between -1 and +1, allowing them to be more easily visualized and compared.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     length : (int) Period for loopback
     subtrahend : (int) Denominator. Useful in unbounded indicators. For example, in CCI.
     denominator 
  Returns: (float) Series of Inverse Fisher Transform
 premierStoch(length, smoothlen) 
  Premier Stochastic Oscillator (PSO).
Normalizes the standard stochastic oscillator by applying a five-period double exponential smoothing 
average of the %K value, resulting in a symmetric scale of 1 to -1.
  Parameters:
     length : (int) Period for loopback
     smoothlen : (int) Period for smoothing
  Returns: (float) Series of PSO
 premierStoch(source, smoothlen, subtrahend, denominator) 
  Premier Stochastic Oscillator (PSO) of custom source.
Normalizes the source by applying a five-period double exponential smoothing average.
  Parameters:
     source : (float) Source of series (close, high, low, etc.)
     smoothlen : (int) Period for smoothing
     subtrahend : (int) Denominator. Useful in unbounded indicators. For example, in CCI.
     denominator 
  Returns: (float) Series of PSO
 stochRsi(sourceRSI, lengthRSI, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     sourceRSI 
     lengthRSI 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochRoc(sourceROC, lengthROC, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     sourceROC 
     lengthROC 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochUO(fastLength, middleLength, slowLength, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     fastLength 
     middleLength 
     slowLength 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochTSI(source, shortLength, longLength, maType, almaOffset, almaSigma, lsmaOffSet, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     shortLength 
     longLength 
     maType 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochWPR(source, length, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     length 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochCCI(source, length, maType, almaOffset, almaSigma, lsmaOffSet, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     length 
     maType 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochMACD(source, fastLength, slowLength, signalLength, maTypeFast, maTypeSlow, maTypeMACD, almaOffset, almaSigma, lsmaOffSet, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     fastLength 
     slowLength 
     signalLength 
     maTypeFast 
     maTypeSlow 
     maTypeMACD 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochFT(length, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     length 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochVolume(kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochMFI(source, length, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     length 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochOBV(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochPVI(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochNVI(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochPVT(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     source 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochVO(shortLen, longLen, maType, almaOffset, almaSigma, lsmaOffSet, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     shortLen 
     longLen 
     maType 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 stochVROC(length, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD) 
  Parameters:
     length 
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
 iftRSI(sourceRSI, lengthRSI, lengthIFT) 
  Parameters:
     sourceRSI 
     lengthRSI 
     lengthIFT 
 iftROC(sourceROC, lengthROC, lengthIFT) 
  Parameters:
     sourceROC 
     lengthROC 
     lengthIFT 
 iftUO(fastLength, middleLength, slowLength, lengthIFT) 
  Parameters:
     fastLength 
     middleLength 
     slowLength 
     lengthIFT 
 iftStoch(kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD, lengthIFT) 
  Parameters:
     kLength 
     kSmoothing 
     dSmoothing 
     maTypeK 
     maTypeD 
     almaOffsetKD 
     almaSigmaKD 
     lsmaOffSetKD 
     lengthIFT 
 iftTSI(source, shortLength, longLength, maType, almaOffset, almaSigma, lsmaOffSet, lengthIFT) 
  Parameters:
     source 
     shortLength 
     longLength 
     maType 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     lengthIFT 
 iftCCI(source, length, maType, almaOffset, almaSigma, lsmaOffSet, lengthIFT) 
  Parameters:
     source 
     length 
     maType 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     lengthIFT 
 iftFisher(length, lengthIFT) 
  Parameters:
     length 
     lengthIFT 
 iftMACD(source, fastLength, slowLength, signalLength, maTypeFast, maTypeSlow, maTypeMACD, almaOffset, almaSigma, lsmaOffSet, lengthIFT) 
  Parameters:
     source 
     fastLength 
     slowLength 
     signalLength 
     maTypeFast 
     maTypeSlow 
     maTypeMACD 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     lengthIFT 
 iftWPR(source, length, lengthIFT) 
  Parameters:
     source 
     length 
     lengthIFT 
 iftMFI(source, length, lengthIFT) 
  Parameters:
     source 
     length 
     lengthIFT 
 iftCMF(length, lengthIFT) 
  Parameters:
     length 
     lengthIFT 
 iftVO(shortLen, longLen, maType, almaOffset, almaSigma, lsmaOffSet, lengthIFT) 
  Parameters:
     shortLen 
     longLen 
     maType 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     lengthIFT 
 iftVROC(length, lengthIFT) 
  Parameters:
     length 
     lengthIFT 
 smiRSI(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     length 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiROC(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     length 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiVROC(length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     length 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiWPR(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     length 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiFT(length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     length 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiFT(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     length 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiCCI(source, length, maTypeCCI, almaOffsetCCI, almaSigmaCCI, lsmaOffSetCCI, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     length 
     maTypeCCI 
     almaOffsetCCI 
     almaSigmaCCI 
     lsmaOffSetCCI 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiUO(fastLength, middleLength, slowLength, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     fastLength 
     middleLength 
     slowLength 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiMACD(source, fastLength, slowLength, signalLength, maTypeFast, maTypeSlow, maTypeMACD, almaOffset, almaSigma, lsmaOffSet, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     fastLength 
     slowLength 
     signalLength 
     maTypeFast 
     maTypeSlow 
     maTypeMACD 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiVol(shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiMFI(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     length 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiCMF(length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     length 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiOBV(source, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiPVT(source, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiVO(shortLen, longLen, maType, almaOffset, almaSigma, lsmaOffSet, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     shortLen 
     longLen 
     maType 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiPVI(source, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 smiNVI(source, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal) 
  Parameters:
     source 
     shortLengthTSI 
     longLengthTSI 
     maTypeTSI 
     almaOffsetTSI 
     almaSigmaTSI 
     lsmaOffSetTSI 
     maTypeSignal 
     smoothingLengthSignal 
     almaOffsetSignal 
     almaSigmaSignal 
     lsmaOffSetSignal 
 rsiVolume(length) 
  Parameters:
     length 
 rsiMA(sourceMA, lengthMA, maType, almaOffset, almaSigma, lsmaOffSet, lengthRSI) 
  Parameters:
     sourceMA 
     lengthMA 
     maType 
     almaOffset 
     almaSigma 
     lsmaOffSet 
     lengthRSI
Bar metrics / quantifytools— Overview  
Rather than eyeball evaluating bullishness/bearishness in any given bar, bar metrics allow a quantified approach using three basic fundamental data points: relative close, relative volatility and relative volume. These data points are visualized in a discreet data dashboard form, next to all real-time bars. Each value also has a dot in front, representing color coded extremes in the values.
Relative close represents position of bar's close relative to high and low, high of bar being 100% and low of bar being 0%. Relative close indicates strength of bulls/bears in a given bar, the higher the better for bulls, the lower the better for bears. Relative volatility (bar range, high - low) and relative volume are presented in a form of a multiplier, relative to their respective moving averages (SMA 20). A value of 1x indicates volume/volatility being on par with moving average, 2x indicates volume/volatility being twice as much as moving average and so on. Relative volume and volatility can be used for measuring general market participant interest, the "weight of the bar" as it were.
 — Features 
Users can gauge past bar metrics using lookback via input menu. Past bars, especially recent ones, are helpful for giving context for current bar metrics. Lookback bars are highlighted on the chart using a yellow box and metrics presented on the data dashboard with lookback symbols:
  
To inspect bar metric data and its implications, users can highlight bars with specified bracket values for each metric:
  
When bar highlighter is toggled on and desired bar metric values set, alert for the specified combination can be toggled on via alert menu. Note that bar highlighter must be enabled in order for alerts to function.
 — Visuals 
Bar metric dots are gradient colored the following way:
Relative volatility & volume
0x -> 1x / Neutral (white) -> Light (yellow)
1x -> 1.7x / Light (yellow) -> Medium (orange)
1.7x -> 2.4x / Medium (orange) -> Heavy (red)
Relative close
0% -> 25% / Heavy bearish (red) -> Light bearish (dark red)
25% -> 45% / Light bearish (dark red) -> Neutral (white)
45% - 55% / Neutral (white)
55% -> 75% / Neutral (white) -> Light bullish (dark green) 
75% -> 100% / Light bullish (dark green) -> Heavy bullish (green)
All colors can be adjusted via input menu. Label size, label distance from bar (offset) and text format (regular/stealth) can be adjusted via input menu as well:
  
 — Practical guide  
As interpretation of bar metrics is highly contextual, it is especially important to use other means in conjunction with the metrics. Levels, oscillators, moving averages, whatever you have found useful for your process. In short, relative close indicates directional bias and relative volume/volatility indicates "weight" of directional bias. 
 General interpretation 
High relative close, low relative volume/volatility = mildly bullish, bias up/consolidation
High relative close, medium relative volume/volatility = bullish, bias up
High relative close, high relative volume/volatility = exuberantly bullish, bias up/down depending on context
Medium relative close, low relative volume/volatility = noise, no bias
Medium relative close, medium to high relative volume/volatility = indecision, further evidence needed to evaluate bias
Low relative close, low relative volume/volatility = mildly bearish, bias down/consolidation
Low relative close, medium relative volume/volatility = bearish, bias down
Low relative close, high relative volume/volatility = exuberantly bearish, bias down/up depending on context
 Nuances & considerations 
As to relative close, it's important to note that each bar is a trading range when viewed on a lower timeframe, ES 1W vs. ES 4H:
  
When relative close is high, bulls were able to push price to range high by the time of close. When relative close is low, bears were able to push price to range low by the time of close. In other words, bulls/bears were able to gain the upper hand over a given trading range, hinting strength for the side that made the final push. When relative close is around middle range (40-60%), it can be said neither side is clearly dominating the range, hinting neutral/indecision bias from a relative close perspective.
As to relative volume/volatility, low values (less than ~0.7x) imply bar has low market participant interest and therefore is likely insignificant, as it is "lacking weight". Values close to or above 1x imply meaningful market participant interest, whereas values well above 1x (greater than ~1.3x) imply exuberance. This exuberance can manifest as initiation (beginning of a trend) or as exhaustion (end of a trend):
  
 
AbdulLibraryLibrary   "AbdulLibrary" 
The library consists of three sections:
 
   Technical Analysis Functions  -  A collection of tools commonly used by day traders 
   Trading Setup Filters Functions  -  A number of filters that help day traders to screen trading signals 
   Candlestick Pattern Detection Functions  -  To detect different candlestick patterns that are used in day trading setups 
 
Note that this would have been possible without the help of @ZenAndTheArtOfTrading as I build-up this library after completing his pine script mastery course so big thanks to him
 The content of the library are:- 
 fibLevels(preDayClose, preDayHigh, preDayLow)  Calculates Daily Pivot Point and Fibonacci Key Levels
  Parameters:
     preDayClose : The previous day candle close
     preDayHigh : The previous day candle high
     preDayLow : The previous day candle low
  Returns: Returns Daily Pivot Point and Fibonacci Key Levels as a tuple
 bullishFib(canHigh, canLow, fibLevel)  Calculates Fibonacci Levels in Bullish move
  Parameters:
     canHigh : The high of the move
     canLow : The low of the move
     fibLevel : The Fib level as % you want to calculate
  Returns: Returns The Fib level for the Bullish move
 bearishFib(canHigh, canLow, fibLevel)  Calculates Fibonacci Levels in Bearish move
  Parameters:
     canHigh : The high of the move
     canLow : The low of the move
     fibLevel : The Fib level as % you want to calculate
  Returns: Returns The Fib level for the Bearish move
 getCandleSize()  Calculates the size of candle (high - low) in points
  Returns: Returns candle size in points
 getCandleBodySize()  Calculates the size of candle (close - open) in points
  Returns: Returns candle body size in points
 getHighWickSize()  Calculates the high wick size of candle in points
  Returns: Returns The high wick size of candle in points
 getLowWickSize()  Calculates the low wick size of candle in points
  Returns: Returns The low wick size of candle in points
 getBodyPercentage()  Calculates the candle body size as % of overall candle size
  Returns: Returns The candle body size as % of overall candle size
 isSwingHigh(period)  Checks if the price has created new swing high over a period of time
  Parameters:
     period : The lookback time we want to check for swing high
  Returns: Returns True if the current candle or the previous candle is a swing high
 isSwingLow(period)  Checks if the price has created new swing low over a period of time
  Parameters:
     period : The lookback time we want to check for swing low
  Returns: Returns True if the current candle or the previous candle is a swing low
 isDojiSwingHigh(period)  Checks if a doji is a swing high over a period of time
  Parameters:
     period : The lookback time we want to check for swing high
  Returns: Returns True if the doji is a swing high
 isDojiSwingLow(period)  Checks if a doji is a swing low over a period of time
  Parameters:
     period : The lookback time we want to check for swing low
  Returns: Returns True if the doji is a swing low
 isBigBody(atrFilter, atr, candleBodySize, multiplier)  Checks if a candle has big body compared to ATR
  Parameters:
     atrFilter : Check if user wants to use ATR to filter candle-setup signals
     atr : The ATR value to be used to compare candle body size
     candleBodySize : The candle body size 
     multiplier : The multiplier to be used to compare candle body size
  Returns: Returns Boolean true if the candle setup is big
 isSmallBody(atrFilter, atr, candleBodySize, multiplier)  Checks if a candle has small body compared to ATR
  Parameters:
     atrFilter : Check if user wants to use ATR to filter candle-setup signals
     atr : The ATR value to be used to compare candle body size
     candleBodySize : The candle body size 
     multiplier : The multiplier to be used to compare candle body size
  Returns: Returns Boolean true if the candle setup is small
 isHammer(fibLevel, colorMatch)  Checks if a candle is a hammer based on user input parameters and candle conditions
  Parameters:
     fibLevel : Fib level to base candle body on
     colorMatch : Checks if user needs for the candel to be green
  Returns: Returns Boolean -  True if the candle setup is hammer
 isShootingStar(fibLevel, colorMatch)  Checks if a candle is a shooting star based on user input parameters and candle conditions
  Parameters:
     fibLevel : Fib level to base candle body on
     colorMatch : Checks if user needs for the candel to be red
  Returns: Returns Boolean -  True if the candle setup is star
 isBullEngCan(allowance, period)  Check if a candle is a bullish engulfing candle
  Parameters:
     allowance : How many points the candle open is allowed to be off (To allow for gaps)
     period : The lookback period for swing low check
  Returns: Boolean - True only if the candle is a bullish engulfing candle
 isBearEngCan(allowance, period)  Check if a candle is a bearish engulfing candle
  Parameters:
     allowance : How many points the candle open is allowed to be off (To allow for gaps)
     period : The lookback period for swing high check
  Returns: Boolean - True only if the candle is a bearish engulfing candle
 isBullDoji(maxSize, wickLimit, colorFilter)  Check if a candle is a bullish doji candle
  Parameters:
     maxSize : Maximum candle body size as % of total candle size to be considered as doji
     wickLimit : Maximum wick size of one wick compared to the other wick
     colorFilter : Checks if the doji is green
  Returns: Boolean - True if the candle is a bullish doji
 isBearDoji(maxSize, wickLimit, colorFilter)  Check if a candle is a bearish doji candle
  Parameters:
     maxSize : Maximum candle body size as % of total candle size to be considered as doji
     wickLimit : Maximum wick size of one wick compared to the other wick
     colorFilter : Checks if the doji is red
  Returns: Boolean - True if the candle is a bearish doji
 isBullOutBar()  Check if a candle is a bullish outside bar
  Returns: Boolean - True if the candle is a bullish outside bar
 isInsideBar()  Check if a candle is an inside bar
  Returns: Returns Boolean - True if a candle is an inside bar
coates moving averages (cma)This indicator uses three moving averages:
2 period low simple ma
2 period high simple ma
9 period least squares ma 
The trend is determined by the angle of the moving averages, current close relative the the 9 least squares ma (lsm) and the current close relative to the prior two periods high and low. 
When there are consecutive closes inside the prior two candles high and low then a range is signaled:
 
In ranges the buy zone is between the lowest low and the lowest close of the current range. The sell zone is between the highest high and the highest close. The zones are adjusted as long as the new close is within the prior two candles range:
 
When price closes above the 2 high ma and the 9 lsm then a bull trend is signaled if all moving averages are angled upward (as seen at #4 in the chart above and #1 the chart below ). If the 9 lsm and / or the 2 low ma continue to angle downward, following a close above the 2 high ma and 9 lsm, then a prolonged range or reversal is expected (#2 in the chart below): 
 
During a bull trend the buy zone is between the 2 low ma and the 9 lsm. The profit target is the 2 high ma: 
 
During dip buying opportunities price should resist closing below the 9 lsm. If there is one close below the 9 lsm then it is a canary in the coalmine that tells us to proceed with caution. This will often signal a range, based on the conditions outlined  above. To avoid a prolonged range, or reversal, price needs to immediately react in the direction of the prevailing trend:
 
 
If the moving averages are angled down and the most recent close is below the 2 low ma and 9 lsm then trend is fully bearish: 
 
During a bear trend the short zone is between the 2 high ma and 9 lsm. The profit target is the 2 low ma: 
 
When the 2 high ma angles down and the 2 low ma angles up while price closes inside both mas then it indicates a cma squeeze: 
 
Volatility is expected in the direction of the breakout following the squeeze. In this situation traps / shakeouts are common. If there is a wick outside the cma, with a close inside, then it indicates a trap / shakeout. If there is a close outside the 2 high / low ma then it signals a breakout. 
A trend is considered balanced when the 9 lsm is roughly equidistant from the 2 low and 2 high mas. If the 9 lsm crosses the 2 high or 2 low ma then it signals exhaustion / imbalance. 
 
For a stop loss I use the prior three periods low, for bull trends, and the prior three periods high for bear trends. I would expect other reliable stops, such as the parabolic sar or bill williams fractal, to be effective as well. The default moving averages should be very effective on all timeframes and assets classes, however this indicator was developed for bitcoin with a focus on higher timeframes such as the 4h, daily and weekly. 
 As with any other technical indicator there will be bad signals. Proceed with caution and never risk more than you are willing to lose.  
Dekidaka-Ashi - Candles And Volume Teaming Up (Again)The introduction of candlestick methods for market price data visualization might be one of the most important events in the history of technical analysis, as it totally changed the way to see a trading chart. Candlestick charts are extremely efficient, as they allow the trader to visualize the opening, high, low and closing price (OHLC) each at the same time, something impossible with a traditional line chart. Candlesticks are also cleaner than bars charts and make a more efficient use of space. Japanese peoples are always better than everyone at an incredible amount of stuff, look at what they made, the candlesticks/renko/kagi/heikin-ashi charts, the Ichimoku, manga, ecchi...
However classical candlesticks only include historical market  price  data, and won't include other type of data such as volume, which is considered by many investors a key information toward effective financial forecasting as volume is an indicator of trading activity. In order to tackle to this problem solutions where proposed, the most common one being to adapt the width of the candle based on the amount of volume, this method is the most commonly accepted one when it comes to visualizing both volume and OHLC data using candlesticks.
Now why proposing an additional tool for volume data visualization ? Because the classical width approach don't provide usable data regarding volume (as the width is directly related to the volume data). Therefore a new trading tool based on candlesticks that allow the trader to gain access to information about the volume is proposed. The approach is based on rescaling the volume directly to the price without the direct use of user settings. We will also see that this tool allow to create support and resistances as well as providing signals based on a breakout methodology.
 Dekidaka-Ashi - Kakatte Koi Yo! 
"Dekidaka" (出来高) mean "Volume" in a financial context, while "Ashi" (足) mean "leg" or "bar". In general methods based on candlesticks will have "Ashi" in their name.
Now that the name of the indicator has been explained lets see how it works, the indicator should be overlayed directly to a candlestick chart. The proposed method don't alter the shape of the candlesticks and allow to visualize any information given by the candles. As you can see on the figure below the candle body of the proposed tool only return the border of the candle, this allow to show the high/low wick of the candle.
  
The body size of the candle is based on two things : the absolute close/open difference, and the volume, if the absolute close/open difference is high and the volume is high then the body of the candle will be clearly visible, if the volume is high but the absolute close/open difference is low, then the body will be less visible. This approach is used because of the rescaling method used, the volume is divided by the sum between the current volume value and the precedent volume value, this rescale the volume in a (0,1) range, this result is multiplied by the absolute close/open difference and added/subtracted to the high/low price. The original approach was based on normalization using the rolling maximum, but this approach would have led to repainting. 
You have access to certain settings that can help you obtain a better visualization, the first one being the body size setting, with higher values increasing the body amplitude.
  
In green body with size 2, in red with size 1. The smooth parameter will smooth the volume data before being used, this allow to create more visible bodies.
  
Here smooth = 100.
 Making Bands From The Dekidaka-Ashi 
This tool is made so it output two rescaled volume values, with the highest value being denoted as "Dekidaka-high" and the lowest one as "Dekidaka-low". In order to get bands we must use two moving averages, one using the Dekidaka-high as input and the other one using Dekidaka-low, the body size parameter should be fairly high, therefore i will hide the tool as it could cause trouble visualizing the bands.
  
Bands with both MA's of period 20 and the body size equal to 20. Larger periods of the MA's will require a larger amount of body size.
 Breakout Signals 
There is a wide variety of signals that can be made from candles, ones i personally like comes from the HA candles. The proposed tool is no exception and can produce a wide variety of signals. The signals generated are basic ones based on a breakout methodology, here is each signal with their associated label :
 
 Strong Bullish signal "⇈" : The high price cross the Dekidaka-high and the closing price is greater than the opening price
 Strong Bearish signal "⇊" : The low price cross the Dekidaka-low and the closing price is lower than the opening price
 Weak Bullish signal "↑" : The high price cross the Dekidaka-high and the closing price is lower than the opening price
 Weak Bearish signal "↓" : The low price cross the Dekidaka-low and the closing price is greater than the opening price
 Uncertain "↕" : The high price cross the Dekidaka-high and the low price cross the the Dekidaka-low
 
In order to see the signals on the chart check the "Show signals" option. Note that such signals are not based on an advanced study, and even if they are based on a breakout methodology we can see that volatile movement rarely produce signals, therefore signals mostly occur during low volume/volatility periods, which isn't necessarily a great thing.
  
 Conclusion 
A trading tool based on candlesticks that aim to include volume information has been presented and a brief methodology has been introduced. A study of the signals generated is required, however i'am not confident at all on their accuracy, i could work on that in the future. We have also seen how to make bands from the tool.
Candlesticks remain a beautiful charting technique that can provide an enormous amount of information to the trader, and even if the accuracy of patterns based on candlesticks is subject to debates, we can all agree that candlesticks will remain the most widely used type of financial chart. 
On a side note i mostly use a dark color for a bullish candle, and a light gray for a bearish candle, with the border color being of the same color as the bullish candle. This is in my opinion the best setup for a candlestick chart, as candles using the traditional green/red can kill the eyes and because this setup allow to apply a wide variety of colors to the plot of overlayed indicators without the fear of causing conflict with the candles color.
Thanks for reading ! :3 Nya
 A Word 
This morning i received some hateful messages on twitter, the users behind them certainly coming from tradingview, so lets be clear, i know i'am not the most liked person in this community, i know that perfectly, but no one merit to be receive hateful messages. I'am not responsible for the losses of peoples using my indicators, nor is tradingview, using technical indicators does not guarantee long term returns, your ability to be profitable will mostly be based on the quality and quantity of knowledge you have.
Opening Range Breakout with Multi-Timeframe Liquidity]═══════════════════════════════════════
 OPENING RANGE BREAKOUT WITH MULTI-TIMEFRAME LIQUIDITY 
═══════════════════════════════════════
A professional Opening Range Breakout (ORB) indicator enhanced with multi-timeframe liquidity detection, trading session visualization, volume analysis, and trend confirmation tools. Designed for intraday trading with comprehensive alert system.
───────────────────────────────────────
 WHAT THIS INDICATOR DOES 
───────────────────────────────────────
This indicator combines multiple trading concepts:
- Opening Range Breakout (ORB) - Customizable time period detection with automatic high/low identification
- Multi-Timeframe Liquidity - HTF (Higher Timeframe) and LTF (Lower Timeframe) key level detection
- Trading Sessions - Tokyo, London, New York, and Sydney session visualization
- Volume Analysis - Volume spike detection and strength measurement
- Multi-Timeframe Confirmation - Trend bias from higher timeframes
- EMA Integration - Trend filter and dynamic support/resistance
- Smart Alerts - Quality-filtered breakout notifications
───────────────────────────────────────
 HOW IT WORKS 
───────────────────────────────────────
 OPENING RANGE BREAKOUT (ORB): 
Concept:
The Opening Range is a period at the start of a trading session where price establishes an initial high and low. Breakouts beyond this range often indicate the direction of the day's trend.
Detection Method:
- Default: 15-minute opening range (configurable)
- Custom Range: Set specific session times with timezone support
- Automatically identifies ORH (Opening Range High) and ORL (Opening Range Low)
- Tracks ORB mid-point for reference
Range Establishment:
1. Session starts (or custom time begins)
2. Tracks highest high and lowest low during the period
3. Range confirmed at end of opening period
4. Levels extend throughout the session
Breakout Detection:
- Bullish Breakout: Close above ORH
- Bearish Breakout: Close below ORL
- Mid-point acts as bias indicator
Visual Display:
- Shaded box during range formation
- Horizontal lines for ORH, ORL, and mid-point
- Labels showing level values
- Color-coded fills based on selected method
Fill Color Methods:
1. Session Comparison:
   - Green: Current OR mid > Previous OR mid
   - Red: Current OR mid < Previous OR mid
   - Gray: Equal or first session
   - Shows day-over-day momentum
2. Breakout Direction (Recommended):
   - Green: Price currently above ORH (bullish breakout)
   - Red: Price currently below ORL (bearish breakout)
   - Gray: Price inside range (no breakout)
   - Real-time breakout status
MULTI-TIMEFRAME LIQUIDITY:
Two-Tier System for comprehensive level identification:
HTF (Higher Timeframe) Key Liquidity:
- Default: 4H timeframe (configurable to Daily, Weekly)
- Identifies major institutional levels
- Uses pivot detection with adjustable parameters
- Suitable for swing highs/lows where large orders rest
LTF (Lower Timeframe) Key Liquidity:
- Default: 1H timeframe (configurable)
- Provides precision entry/exit levels
- Finer granularity for intraday trading
- Captures minor swing points
Calculation Method:
- Pivot high/low detection algorithm
- Configurable left bars (lookback) and right bars (confirmation)
- Timeframe multiplier for accurate multi-timeframe detection
- Automatic level extension
Mitigation System:
- Tracks when levels are swept (broken)
- Configurable mitigation type: Wick or Close-based
- Option to remove or show mitigated levels
- Display limit prevents chart clutter
Asset-Specific Optimization:
The indicator includes quick reference settings for different assets:
- Major Forex (EUR/USD, GBP/USD): Default settings optimal
- Crypto (BTC/ETH): Left=12, Right=4, Display=7
- Gold: HTF=1D, Left=20
 TRADING SESSIONS: 
Four Major Sessions with Full Customization:
Tokyo Session:
- Default: 04:00-13:00 UTC+4
- Asian trading hours
- Often sets daily range
London Session:
- Default: 11:00-20:00 UTC+4
- Highest liquidity period
- Major institutional activity
New York Session:
- Default: 16:00-01:00 UTC+4
- US market hours
- High-impact news events
Sydney Session:
- Default: 01:00-10:00 UTC+4
- Earliest Asian activity
- Lower volatility
Session Features:
- Shaded background boxes
- Session name labels
- Optional open/close lines
- Session high/low tracking with colored lines
- Each session has independent color settings
- Fully customizable times and timezones
VOLUME ANALYSIS:
Volume-Based Trade Confirmation:
Volume MA:
- Configurable period (default: 20)
- Establishes average volume baseline
- Used for spike detection
Volume Spike Detection:
- Identifies when volume exceeds MA * multiplier
- Default: 1.5x average volume
- Confirms breakout strength
Volume Strength Measurement:
- Calculates current volume as percentage of average
- Shows relative volume intensity
- Used in alert quality filtering
High Volume Bars:
- Identifies bars above 50th percentile
- Additional confirmation layer
- Indicates institutional participation
MULTI-TIMEFRAME CONFIRMATION:
Trend Bias from Higher Timeframes:
HTF 1 (Trend):
- Default: 1H timeframe
- Uses EMA to determine intermediate trend
- Compares current timeframe EMA to HTF EMA
HTF 2 (Bias):
- Default: 4H timeframe
- Uses 50 EMA for longer-term bias
- Confirms overall market direction
Bias Classifications:
- Bullish Bias: HTF close > HTF 50 EMA AND Current EMA > HTF1 EMA
- Bearish Bias: HTF close < HTF 50 EMA AND Current EMA < HTF1 EMA
- Neutral Bias: Mixed signals between timeframes
EMA Stack Analysis:
- Compares EMA alignment across timeframes
- +1: Bullish stack (lower TF EMA > higher TF EMA)
- -1: Bearish stack (lower TF EMA < higher TF EMA)
- 0: Neutral/crossed
Usage:
- Filters false breakouts
- Confirms trend direction
- Improves trade quality
 EMA INTEGRATION: 
Dynamic EMA for Trend Reference:
Features:
- Configurable period (default: 20)
- Customizable color and width
- Acts as dynamic support/resistance
- Trend filter for ORB trades
Application:
- Above EMA: Favor long breakouts
- Below EMA: Favor short breakouts
- EMA cross: Potential trend change
- Distance from EMA: Momentum gauge
SMART ALERT SYSTEM:
Quality-Filtered Breakout Notifications:
Alert Types:
1. Standard ORB Breakout
2. High Quality ORB Breakout
Quality Criteria:
- Volume Confirmation: Volume > 1.2x average
- MTF Confirmation: Bias aligned with breakout direction
Standard Alert:
- Basic breakout detection
- Price crosses ORH or ORL
- Icon: 🚀 (bullish) or 🔻 (bearish)
High Quality Alert:
- Both volume AND MTF confirmed
- Stronger probability setup
- Icon: 🚀⭐ (bullish) or 🔻⭐ (bearish)
Alert Information Includes:
- Alert quality rating
- Breakout level and current price
- Volume strength percentage (if enabled)
- MTF bias status (if enabled)
- Recommended action
One Alert Per Bar:
- Prevents alert spam
- Uses flag system to track sent alerts
- Resets on new ORB session
───────────────────────────────────────
 HOW TO USE 
───────────────────────────────────────
 OPENING RANGE SETUP: 
Basic Configuration:
1. Select time period for opening range (default: 15 minutes)
2. Choose fill color method (Breakout Direction recommended)
3. Enable historical data display if needed
Custom Range (Advanced):
1. Enable Custom Range toggle
2. Set specific session time (e.g., 0930-0945)
3. Select appropriate timezone
4. Useful for specific market opens (NYSE, LSE, etc.)
 LIQUIDITY LEVELS SETUP: 
Quick Configuration by Asset:
- Forex: Use default settings (Left=15, Right=5)
- Crypto: Set Left=12, Right=4, Display=7
- Gold: Set HTF=1D, Left=20
HTF Liquidity:
- Purpose: Major support/resistance levels
- Recommended: 4H for day trading, 1D for swing trading
- Use as profit targets or reversal zones
LTF Liquidity:
- Purpose: Entry/exit refinement
- Recommended: 1H for day trading, 4H for swing trading
- Use for position management
Mitigation Settings:
- Wick-based: More sensitive (default)
- Close-based: More conservative
- Remove or Show mitigated levels based on preference
TRADING SESSIONS SETUP:
Enable/Disable Sessions:
- Master toggle for all sessions
- Individual session controls
- Show/hide session names
Session High/Low Lines:
- Enable to see session extremes
- Each session has custom colors
- Useful for range trading
Customization:
- Adjust session times for your broker
- Set timezone to match your location
- Customize colors for visibility
 VOLUME ANALYSIS SETUP: 
Enable Volume Analysis:
1. Toggle on Volume Analysis
2. Set MA length (20 recommended)
3. Adjust spike multiplier (1.5 typical)
Usage:
- Confirm breakouts with volume
- Identify climactic moves
- Filter false signals
MULTI-TIMEFRAME SETUP:
HTF Selection:
- HTF 1 (Trend): 1H for day trading, 4H for swing
- HTF 2 (Bias): 4H for day trading, 1D for swing
Interpretation:
- Trade only with bias alignment
- Neutral bias: Be cautious
- Bias changes: Potential reversals
EMA SETUP:
Configuration:
- Period: 20 for responsive, 50 for smoother
- Color: Choose contrasting color
- Width: 1-2 for visibility
Usage:
- Filter trades: Long above, Short below
- Dynamic support/resistance reference
- Trend confirmation
ALERT SETUP:
TradingView Alert Creation:
1. Enable alerts in indicator settings
2. Enable ORB Breakout Alerts
3. Right-click chart → Add Alert
4. Select this indicator
5. Choose "Any alert() function call"
6. Configure delivery method (mobile, email, webhook)
Alert Filtering:
- All alerts include quality rating
- High Quality alerts = Volume + MTF confirmed
- Standard alerts = Basic breakout only
───────────────────────────────────────
 TRADING STRATEGIES 
───────────────────────────────────────
CLASSIC ORB STRATEGY:
Setup:
1. Wait for opening range to complete
2. Price breaks and closes above ORH or below ORL
3. Volume > average (if enabled)
4. MTF bias aligned (if enabled)
Entry:
- Bullish: Buy on break above ORH
- Bearish: Sell on break below ORL
- Consider retest entries for better risk/reward
Stop Loss:
- Bullish: Below ORL or range mid-point
- Bearish: Above ORH or range mid-point
- Adjust based on volatility
Targets:
- Initial: Range width extension (ORH + range width)
- Secondary: HTF liquidity levels
- Final: Session high/low or major support/resistance
ORB + LIQUIDITY CONFLUENCE:
Enhanced Setup:
1. Opening range established
2. HTF liquidity level near or beyond ORH/ORL
3. Breakout occurs with volume
4. Price targets the liquidity level
Entry:
- Enter on ORB breakout
- Target the HTF liquidity level
- Use LTF liquidity for position management
Management:
- Partial profits at ORB + range width
- Move stop to breakeven at LTF liquidity
- Final exit at HTF liquidity sweep
ORB REJECTION STRATEGY (Counter-Trend):
Setup:
1. Price breaks above ORH or below ORL
2. Weak volume (below average)
3. MTF bias opposite to breakout
4. Price closes back inside range
Entry:
- Failed bullish break: Short below ORH
- Failed bearish break: Long above ORL
Stop Loss:
- Beyond the failed breakout level
- Or beyond session extreme
Target:
- Opposite end of opening range
- Range mid-point for partial profit
SESSION-BASED ORB TRADING:
Tokyo Session:
- Typically narrower ranges
- Good for range trading
- Wait for London open breakout
London Session:
- Highest volume and volatility
- Strong ORB setups
- Major liquidity sweeps common
New York Session:
- Strong trending moves
- News-driven volatility
- Good for momentum trades
Sydney Session:
- Quieter conditions
- Suitable for range strategies
- Sets up Tokyo session
EMA-FILTERED ORB:
Rules:
- Only take bullish breaks if price > EMA
- Only take bearish breaks if price < EMA
- Ignore counter-trend breaks
Benefits:
- Reduces false signals
- Aligns with larger trend
- Improves win rate
───────────────────────────────────────
CONFIGURATION GUIDE
───────────────────────────────────────
OPENING RANGE SETTINGS:
Time Period:
- 15 min: Standard for most markets
- 30 min: Wider range, fewer breakouts
- 60 min: For slower markets or swing trades
Custom Range:
- Use for specific market opens
- NYSE: 0930-1000 EST
- LSE: 0800-0830 GMT
- Set timezone to match exchange
Historical Display:
- Enable: See all previous session data
- Disable: Cleaner chart, current session only
LIQUIDITY SETTINGS:
Left Bars (5-30):
- Lower: More frequent, sensitive levels
- Higher: Fewer, more significant levels
- Recommended: 15 for most markets
Right Bars (1-25):
- Confirmation period
- Higher: More reliable, less frequent
- Recommended: 5 for balance
Display Limit (1-20):
- Number of active levels shown
- Higher: More context, busier chart
- Recommended: 7 for clarity
Extension Options:
- Short: Levels visible near formation
- Current: Extended to current bar (recommended)
- Max: Extended indefinitely
VOLUME SETTINGS:
MA Length (5-50):
- Shorter: More responsive to spikes
- Longer: Smoother baseline
- Recommended: 20 for balance
Spike Multiplier (1.0-3.0):
- Lower: More sensitive spike detection
- Higher: Only extreme spikes
- Recommended: 1.5 for day trading
MULTI-TIMEFRAME SETTINGS:
HTF 1 (Trend):
- 5m chart: Use 15m or 1H
- 15m chart: Use 1H or 4H
- 1H chart: Use 4H or 1D
HTF 2 (Bias):
- One level higher than HTF 1
- Provides longer-term context
- Don't use same as HTF 1
EMA SETTINGS:
Length:
- 20: Responsive, more signals
- 50: Smoother, stronger filter
- 200: Long-term trend only
Style:
- Choose contrasting color
- Width 1-2 for visibility
- Match your trading style
───────────────────────────────────────
BEST PRACTICES
───────────────────────────────────────
Chart Timeframe Selection:
- ORB Trading: Use 5m or 15m charts
- Session Review: Use 1H or 4H charts
- Swing Trading: Use 1H or 4H charts
Quality Over Quantity:
- Wait for high-quality alerts (volume + MTF)
- Avoid trading every breakout
- Focus on confluence setups
Risk Management:
- Position size based on range width
- Wider ranges = smaller positions
- Use stop losses always
- Take partial profits at targets
Market Conditions:
- Best results in trending markets
- Reduce position size in choppy conditions
- Consider session overlaps for volatility
- Avoid trading near major news if inexperienced
Continuous Improvement:
- Track win rate by session
- Note which confluence factors work best
- Adjust settings based on market volatility
- Review performance weekly
───────────────────────────────────────
PERFORMANCE OPTIMIZATION
───────────────────────────────────────
This indicator is optimized with:
- max_bars_back declarations for efficient processing
- Conditional calculations based on enabled features
- Proper memory management for drawing objects
- Minimal recalculation on each bar
Best Practices:
- Disable unused features (sessions, MTF, volume)
- Limit historical display to reduce rendering
- Use appropriate timeframe for your strategy
- Clear old drawing objects periodically
───────────────────────────────────────
EDUCATIONAL DISCLAIMER
───────────────────────────────────────
This indicator combines established trading concepts:
- Opening Range Breakout theory (price action)
- Liquidity level detection (pivot analysis)
- Session-based trading (time-of-day patterns)
- Volume analysis (confirmation technique)
- Multi-timeframe analysis (trend alignment)
All calculations use standard technical analysis methods:
- Pivot high/low detection algorithms
- Moving averages for trend and volume
- Session time filtering
- Timeframe security functions
The indicator identifies potential trading setups but does not predict future price movements. Success requires proper application within a complete trading strategy including risk management, position sizing, and market context.
───────────────────────────────────────
USAGE DISCLAIMER
───────────────────────────────────────
This tool is for educational and analytical purposes. Opening Range Breakout trading involves substantial risk. The alert system and quality filters are designed to identify potential setups but do not guarantee profitability. Always conduct independent analysis, use proper risk management, and never risk capital you cannot afford to lose. Past performance does not indicate future results. Trading intraday breakouts requires experience and discipline.
───────────────────────────────────────
CREDITS & ATTRIBUTION
───────────────────────────────────────
ORIGINAL SOURCE:
This indicator builds upon concepts from LuxAlgo's-ORB
cd_correlation_analys_Cxcd_correlation_analys_Cx 
 General: 
This indicator is designed for correlation analysis by classifying stocks (487 in total) and indices (14 in total) traded on Borsa İstanbul (BIST) on a sectoral basis.
Tradingview's sector classifications (20) have been strictly adhered to for sector grouping.
Depending on user preference, the analysis can be performed within sectors, between sectors, or manually (single asset).
Let me express my gratitude to the code author, @fikira, beforehand; you will find the reason for my thanks in the context.
 Details: 
First, let's briefly mention how this indicator could have been prepared using the classic method before going into details.
Classically, assets could be divided into groups of forty (40), and the analysis could be performed using the built-in function:
ta.correlation(source1, source2, length) → series float.
I chose sectoral classification because I believe there would be a higher probability of assets moving together, rather than using fixed-number classes.
In this case, 21 arrays were formed with the following number of elements: 
(3, 11, 21, 60, 29, 20, 12, 3, 31, 5, 10, 11, 6, 48, 73, 62, 16, 19, 13, 34 and indices (14)). 
However, you might have noticed that some arrays have more than 40 elements. This is exactly where @Fikira's indicator came to the rescue. When I examined their excellent indicator, I saw that it could process 120 assets in a single operation. (I believe this was the first limit overrun; thanks again.)
It was amazing to see that data for 3 pairs could be called in a single request using a special method.
You can find the details here: 
When I adapted it for BIST, I found it sufficient to call data for 2 pairs instead of 3 in a single go. Since asset prices are regular and have 2 decimal places, I used a fixed multiplier of $10^8$ and a fixed decimal count of 2 in Fikira's formulas.
With this method, the (high, low, open, close) values became accessible for each asset.
The summary up to this point is that instead of the ready-made formula + groups of 40, I used variable-sized groups and the method I will detail now.
Correlation/harmony/co-movement between assets provides advantages to market participants. Coherent assets are expected to rise or fall simultaneously.
Therefore, to convert co-movement into a mathematical value, I defined the possible movements of the current candle relative to the previous candle bar over a certain period (user-defined). These are:
 Up  := high > high  and low > low 
 Down  := high < high  and low < low 
 Inside  := high <= high  and low >= low 
 Outside  := high >= high  and low <= low  and NOT Inside.
 Ignore  := high = low = open = close
If both assets performed the same movement, 1 was added to the tracking counter.
If (Up-Up), (Down-Down), (Inside-Inside), or (Outside-Outside), then counter := counter + 1.
If the period length is 100 and the counter is 75, it means there is 75% co-movement.
Corr = counter / period ($75/100$)
Average = ta.sma(Corr, 100) is obtained.
The highest coefficients recorded in the array are presented to the user in a table.
From the user menu options, the user can choose to compare:
•	With assets in its own sector
•	With assets in the selected sector
•	By activating the confirmation box and manually entering a single asset for comparison.
Table display options can be adjusted from the Settings tab.
  
In the attached examples:
Results for AKBNK stock from the Finance sector compared with GARAN stock from the same sector:
Timeframe: Daily, Period: 50 => Harmony 76% (They performed the same movement in 38 out of 50 bars)
Comment: Opposite movements at swing high and low levels may indicate a change in the direction of the price flow (SMT).
  
Looking at ASELS from the Electronic Technology sector over the last 30 daily candles, they performed the same movements by 40% with XU100, 73.3% (22/30) with XUTEK (Technology Index), and 86.9% according to the averages.
Comment: It is more appropriate to follow ASELS stock with XUTEK (Technology index) instead of the general index (XU100). Opposite movements at swing high and low levels may indicate a change in the direction of the price flow (SMT).
  
Again, when ASELS stock is taken on H1 instead of daily, and the length is 100 instead of 30, the harmony rate is seen to be 87%.
  
Please share your thoughts and criticisms regarding the indicator, which I prepared with a bit of an educational purpose specifically for BIST.
Happy trading.
Scalper Pro Pattern Recognition & Price ActionOVERVIEW
Scalper Pro is a comprehensive multi-timeframe trading indicator that combines Smart Money Concepts (SMC) with traditional technical analysis to provide scalpers and day traders with high-probability entry and exit signals. This indicator integrates multiple analytical frameworks into a unified visual system designed specifically for short-term trading strategies.
ORIGINALITY & PURPOSE
What Makes This Script Original
This script is not a simple mashup of existing indicators. Instead, it represents a carefully orchestrated integration of complementary analytical methods that work together to solve a specific problem: identifying high-probability scalping opportunities in volatile markets.
The unique value proposition:
Adaptive Trend Filtering System - Combines a customized SuperTrend algorithm with dual-period range filters (Cirrus Cloud) and Hull Moving Average trend cloud to create a three-layer trend confirmation system
Smart Money Concepts Integration - Incorporates institutional trading concepts (Order Blocks, Fair Value Gaps, Break of Structure) with retail technical indicators for a complete market structure view
Dynamic Risk Management - Automatically calculates stop-loss and take-profit levels based on ATR volatility, providing objective position sizing
ADX-Based Market Regime Detection - Identifies ranging vs. trending markets through ADX analysis with visual bar coloring to prevent whipsaws during consolidation
Why Combine These Specific Components
Each component addresses a specific weakness in scalping:
SuperTrend provides the primary directional bias but can generate false signals in ranging markets
Range Filters smooth out noise and confirm trend direction, reducing SuperTrend false positives
ADX Analysis prevents trading during low-volatility consolidation when most indicators fail
SMC Elements identify institutional activity zones where price is likely to react strongly
ATR-Based Risk Management adapts position sizing to current volatility conditions
The synergy creates a system where signals are only generated when multiple confirmation layers align, significantly reducing false signals common in single-indicator approaches.
HOW IT WORKS
Core Calculation Methodology
1. SuperTrend Signal Generation
The script uses a modified SuperTrend algorithm with the following calculation:
ATR = Average True Range (default: 10 periods)
Factor = 7 (default sensitivity multiplier)
Upper Band = Source + (Factor × ATR)
Lower Band = Source - (Factor × ATR)
Directional Logic:
When price crosses above SuperTrend → Bullish signal
When price crosses below SuperTrend → Bearish signal
SuperTrend value is plotted as dynamic support/resistance
Key Modification: The sensitivity parameter (nsensitivity * 7) allows users to adjust the aggressiveness of trend detection without changing the core ATR calculation.
2. Range Filter System (Cirrus Cloud)
The Range Filter uses a smoothed range calculation to filter out market noise:
Smooth Range Calculation:
WPER = (Period × 2) - 1
AVRNG = EMA(|Price - Price |, Period)
Smooth Range = EMA(AVRNG, WPER) × Multiplier
Two-Layer System:
Layer 1: 22-period with 6x multiplier (broader trend)
Layer 2: 15-period with 5x multiplier (tighter price action)
Visual Output: The space between these two filters is colored:
Green fill = Bullish trend (Layer 1 > Layer 2)
Red fill = Bearish trend (Layer 1 < Layer 2)
This creates a "cloud" that expands during strong trends and contracts during consolidation.
3. ADX Market Regime Detection
Calculation:
+DM = Positive Directional Movement
-DM = Negative Directional Movement
True Range = RMA of True Range (15 periods)
+DI = 100 × RMA(+DM, 15) / True Range
-DI = 100 × RMA(-DM, 15) / True Range
ADX = 100 × RMA(|+DI - -DI| / (+DI + -DI), 15)
Threshold System:
ADX < Threshold (default 15) = Ranging market → Bar color changes to purple
ADX > Threshold = Trending market → Normal bar coloring applies
Purpose: This prevents taking trend-following signals during sideways markets where most indicators produce whipsaws.
4. Smart Money Concepts (SMC) Integration
Order Blocks (OB):
Identified using swing high/low detection with customizable pivot length
Bullish OB: Last down-close candle before bullish Break of Structure (BOS)
Bearish OB: Last up-close candle before bearish BOS
Extended forward until price breaks through them
Fair Value Gaps (FVG):
Detected when a three-candle gap exists:
Bullish FVG: Low  > High 
Bearish FVG: High  < Low 
Filtered by price delta percentage to ensure significant gaps
Displayed as boxes that delete when price fills the gap
Break of Structure (BOS) vs. Change of Character (CHoCH):
BOS = Price breaks the previous structural high/low in the current trend direction
CHoCH = Price breaks structure in the opposite direction (potential trend reversal)
Both internal (minor) and swing (major) structures are tracked
Equal Highs/Lows (EQH/EQL):
Detected when consecutive swing highs/lows are within ATR threshold
Often indicates liquidity pools that price may sweep before reversing
5. ATR-Based Risk Management
Calculation:
ATR Band = ATR(14) × Risk Multiplier (default 3%)
Stop Loss = Entry - ATR Band (for longs) or Entry + ATR Band (for shorts)
Take Profit Levels:
TP1 = Entry + (Entry - Stop Loss) × 1
TP2 = Entry + (Entry - Stop Loss) × 2
TP3 = Entry + (Entry - Stop Loss) × 3
Dynamic Labels: Stop loss and take profit levels are automatically calculated and displayed as labels on the chart when new signals trigger.
6. Hull Moving Average Trend Cloud
HMA = WMA(2 × WMA(Close, Period/2) - WMA(Close, Period), sqrt(Period))
Period = 600 bars (long-term trend)
The HMA provides a smoothed long-term trend reference that's more responsive than traditional moving averages while filtering out short-term noise.
HOW TO USE THE INDICATOR
Entry Signals
Primary Buy Signal:
SuperTrend changes to green (price crosses above)
ADX shows market is NOT ranging (bars are NOT purple)
Price is within or near a bullish Order Block OR bullish FVG
Cirrus Cloud shows green fill (Layer 1 > Layer 2)
Primary Sell Signal:
SuperTrend changes to red (price crosses below)
ADX shows market is NOT ranging
Price is within or near a bearish Order Block OR bearish FVG
Cirrus Cloud shows red fill (Layer 1 < Layer 2)
Confirmation Layers
Higher Probability Trades Include:
Bullish/Bearish BOS in the same direction as signal
Equal highs/lows being swept before entry
Price respecting premium/discount zones (above/below equilibrium)
Multiple timeframe alignment (use MTF settings)
Exit Strategy
The indicator provides three take-profit levels:
TP1: Conservative target (1:1 risk-reward)
TP2: Moderate target (2:1 risk-reward)
TP3: Aggressive target (3:1 risk-reward)
Suggested Exit Approach:
Close 1/3 position at TP1
Move stop to breakeven
Close 1/3 position at TP2
Trail remaining position or exit at TP3
Risk Management
Stop Loss:
Use the ATR-based stop loss level displayed on chart
Alternatively, use percentage-based stop (adjustable in settings)
Never risk more than 1-2% of account per trade
Position Sizing:
Position Size = (Account Risk $) / (Entry Price - Stop Loss Price)
CUSTOMIZABLE SETTINGS
Core Parameters
Buy/Sell Signals:
Toggle signals on/off
Adjust SuperTrend sensitivity (0.5 - 2.0)
Risk Management:
Show/hide TP/SL levels
ATR period (default: 14)
Risk percentage (default: 3%)
Number of decimal places for price labels
Trend Features:
Cirrus Cloud display toggle
Range filter periods (x1, x2, x3, x4)
Hull MA length for trend cloud
Smart Money Concepts:
Order Block settings (swing length, display count)
Fair Value Gap parameters (auto-threshold, extend length)
Structure detection (internal vs swing)
EQH/EQL threshold
ADX Settings:
ADX length (default: 15)
Sideways threshold (10-30, default: 15)
Bar color toggle
Display Options:
Previous day/week/month high/low levels
Premium/Discount/Equilibrium zones
Trend candle coloring (colored or monochrome)
BEST PRACTICES & TRADING TIPS
Optimal Use Cases
Scalping on lower timeframes (1m, 5m, 15m)
Rapid entry/exit with clear TP levels
ADX filter prevents choppy market entries
Day trading on medium timeframes (30m, 1H)
Stronger trend confirmation
Better risk-reward ratios
Swing trading entries on higher timeframes (4H, Daily)
Higher-probability structural setups
Larger ATR-based stops accommodate volatility
Market Conditions
Best Performance:
Trending markets with clear directional bias
Post-news volatility with defined structure
Markets respecting support/resistance levels
Avoid Trading When:
ADX indicator shows purple bars (ranging market)
Multiple conflicting signals across timeframes
Major news events without clear price structure
Low volume periods (market open/close)
Common Mistakes to Avoid
Ignoring the ADX filter - Taking signals during ranging markets leads to whipsaws
Not waiting for confirmation - Enter only when multiple layers align
Overtrading - Fewer high-quality setups outperform many mediocre ones
Ignoring risk management - Always use the calculated stop losses
Fighting the trend - Trade WITH the SuperTrend and Cirrus Cloud direction
TECHNICAL SPECIFICATIONS
Indicator Type: Overlay (plots on price chart)
Calculation Resources:
Max labels: 500
Max lines: 500
Max boxes: 500
Max bars back: 500
Pine Script Version: 5
Compatible Timeframes: All timeframes (optimized for 1m to 1D)
Compatible Instruments:
Forex pairs
Crypto assets
Stock indices
Individual stocks
Commodities
THEORETICAL FOUNDATION
Trend-Following Concepts
This indicator is based on the principle that markets trend more often than they range, and that trends tend to persist. The SuperTrend component captures this momentum while the range filters prevent premature entries during pullbacks.
Smart Money Theory
The SMC elements are based on the concept that institutional traders (banks, hedge funds) leave footprints in the form of:
Order Blocks: Areas where large orders were placed
Fair Value Gaps: Inefficient price movements that may be revisited
Liquidity Sweeps: Stop hunts before continuation (EQH/EQL)
Volatility-Based Position Sizing
Using ATR for stop-loss placement ensures that stop distances adapt to current market conditions:
Tight stops in low volatility (avoids excessive risk)
Wider stops in high volatility (avoids premature stop-outs)
PERFORMANCE EXPECTATIONS
Realistic Expectations
Win Rate:
Expected: 45-55% (trend-following systems rarely exceed 60%)
Higher win rates on trending days
Lower win rates during consolidation (even with ADX filter)
Risk-Reward Ratio:
Target: 1.5:1 minimum (TP2)
Achievable: 2:1 to 3:1 on strong trends
Drawdowns:
Normal: 10-15% of account during choppy periods
Maximum: Should not exceed 20% with proper risk management
Optimization Tips
Backtesting Recommendations:
Test on at least 1 year of historical data
Include different market conditions (trending, ranging, volatile)
Adjust SuperTrend sensitivity per instrument
Optimize ADX threshold for your specific market
Record trades to identify personal execution errors
FREQUENTLY ASKED QUESTIONS
Q: Can I use this for automated trading?
A: The indicator provides signals, but you'll need to code a strategy script separately for automation. The signals can trigger alerts that connect to trading bots.
Q: Why do I see conflicting signals?
A: This is normal during transition periods. Wait for all confirmation layers to align before entering.
Q: How often should I expect signals?
A: Depends on timeframe and market conditions. On 5m charts during trending markets: 3-7 quality setups per session.
Q: Can I use only some features?
A: Yes, all components can be toggled on/off. However, the system works best with all confirmations active.
Q: What's the difference between internal and swing structures?
A: Internal = minor price structures (smaller pivots). Swing = major price structures (larger pivots). Both provide different levels of confirmation.
DISCLAIMER
This indicator is a tool for technical analysis and should not be the sole basis for trading decisions. Past performance does not guarantee future results. Always:
Use proper risk management
Test on demo accounts first
Never risk more than you can afford to lose
Combine with fundamental analysis when applicable
Understand that no indicator is 100% accurate
License: Mozilla Public License 2.0
Author: DrFXGOD
VERSION HISTORY & UPDATES
Initial Release - Version 1.0
Integrated SuperTrend, Range Filters, ADX, SMC concepts
ATR-based risk management
Multi-timeframe support
Customizable visual elements
SUPPORT & DOCUMENTATION
For questions, suggestions, or bug reports, please comment on the script page or contact the author through TradingView.
Additional Resources:
Smart Money Concepts: Research ICT (Inner Circle Trader) materials
ATR and Volatility: Refer to Wilder's original ATR documentation
SuperTrend Indicator: Study original SuperTrend strategy papers
Volume Cluster Heatmap [BackQuant]Volume Cluster Heatmap  
A visualization tool that maps traded volume across price levels over a chosen lookback period. It highlights where the market builds balance through heavy participation and where it moves efficiently through low-volume zones. By combining a heatmap, volume profile, and high/low volume node detection, this indicator reveals structural areas of support, resistance, and liquidity that drive price behavior.
 What Are Volume Clusters? 
A volume cluster is a horizontal aggregation of traded volume at specific price levels, showing where market participants concentrated their buying and selling.
 High Volume Nodes (HVN) : Price levels with significant trading activity; often act as support or resistance.
 Low Volume Nodes (LVN) : Price levels with little trading activity; price moves quickly through these areas, reflecting low liquidity.
Volume clusters help identify key structural zones, reveal potential reversals, and gauge market efficiency by highlighting where the market is balanced versus areas of thin liquidity.
By creating heatmaps, profiles, and highlighting high and low volume nodes (HVNs and LVNs), it allows traders to see where the market builds balance and where it moves efficiently through thin liquidity zones. 
Example: Bitcoin breaking away from the high-volume zone near 118k and moving cleanly through the low-volume pocket around 113k–115k, illustrating how markets seek efficiency: 
 Core Features 
 Visual Analysis Components: 
 
 Heatmap Display : Displays volume intensity as colored boxes, lines, or a combination for a dynamic view of market participation.
 Volume Profile Overlay : Shows cumulative volume per price level along the right-hand side of the chart.
 HVN & LVN Labels : Marks high and low volume nodes with color-coded lines and labels.
 Customizable Colors & Transparency : Adjust high and low volume colors and minimum transparency for clear differentiation.
 Session Reset & Timeframe Control : Dynamically resets clusters at the start of new sessions or chosen timeframes (intraday, daily, weekly).
 
 Alerts 
 
 HVN / LVN Alerts : Notify when price reaches a significant high or low volume node.
 High Volume Zone Alerts : Trigger when price enters the top X% of cumulative volume, signaling key areas of market interest.
 
 How It Works 
Each bar’s volume is distributed proportionally across the horizontal price levels it touches. Over the lookback period, this builds a cumulative volume profile, identifying price levels with the most and least trading activity. The highest cumulative volume levels become HVNs, while the lowest are LVNs. A side volume profile shows aggregated volume per level, and a heatmap overlay visually reinforces market structure.
 Applications for Traders 
 
 Identify strong support and resistance at HVNs.
 Detect areas of low liquidity where price may move quickly (LVNs).
 Determine market balance zones where price may consolidate.
 Filter noise: because volume clusters aggregate activity into levels, minor fluctuations and irrelevant micro-moves are removed, simplifying analysis and improving strategy development.
 Combine with other indicators such as VWAP, Supertrend, or CVD for higher-probability entries and exits.
 Use volume clusters to anticipate price reactions to breaking points in thin liquidity zones.
 
 Advanced Display Options 
 
   Heatmap Styles : Boxes, lines, or both. Boxes provide a traditional heatmap, lines are better for high granularity data.
   Line Mode Example : Simplified line visualization for easier reading at high level counts: 
 Profile Width & Offset : Adjust spacing and placement of the volume profile for clarity alongside price.
   Transparency Control : Lower transparency for more opaque visualization of high-volume zones.
 
 Best Practices for Usage 
 
 Reduce the number of levels when using line mode to avoid clutter.
 Use HVN and LVN markers in conjunction with volume profiles to plan entries and exits.
 Apply session resets to monitor intraday vs. multi-day volume accumulation.
 Combine with other technical indicators to confirm high-probability trading signals.
 Watch price interactions with LVNs for potential rapid movements and with HVNs for possible support/resistance or reversals.
 
 Technical Notes 
 
  Each bar contributes volume proportionally to the price levels it spans, creating a dynamic and accurate representation of traded interest.
 Volume profiles are scaled and offset for visual clarity alongside live price.
  Alerts are fully integrated for HVN/LVN interaction and high-volume zone entries.
  Optimized to handle large lookback windows and numerous price levels efficiently without performance degradation.
 
This indicator is ideal for understanding market structure, detecting key liquidity areas, and filtering out noise to model price more accurately in high-frequency or algorithmic strategies.
RSI Donchian Channel [DCAUT]█ RSI Donchian Channel  
 📊 ORIGINALITY & INNOVATION 
The RSI Donchian Channel represents an important synthesis of two complementary analytical frameworks: momentum oscillators and breakout detection systems. This indicator addresses a common limitation in traditional RSI analysis by replacing fixed overbought/oversold thresholds with adaptive zones derived from historical RSI extremes.
 Key Enhancement: 
Traditional RSI analysis relies on static threshold levels (typically 30/70), which may not adequately reflect changing market volatility regimes. This indicator adapts the reference zones dynamically based on the actual RSI behavior over the lookback period, helping traders identify meaningful momentum extremes relative to recent price action rather than arbitrary fixed levels.
The implementation combines the proven momentum measurement capabilities of RSI with Donchian Channel's breakout detection methodology, creating a framework that identifies both momentum exhaustion points and potential continuation signals through the same analytical lens.
 📐 MATHEMATICAL FOUNDATION 
 Core Calculation Process: 
 Step 1: RSI Calculation 
The Relative Strength Index measures momentum by comparing the magnitude of recent gains to recent losses:
 
 Calculate price changes between consecutive periods
 Separate positive changes (gains) from negative changes (losses)
 Apply selected smoothing method (RMA standard, also supports SMA, EMA, WMA) to both gain and loss series
 Compute Relative Strength (RS) as the ratio of smoothed gains to smoothed losses
 Transform RS into bounded 0-100 scale using the formula: RSI = 100 - (100 / (1 + RS))
 
 Step 2: Donchian Channel Application 
The Donchian Channel identifies the highest and lowest RSI values within the specified lookback period:
 
 Upper Channel: Highest RSI value over the lookback period, represents the recent momentum peak
 Lower Channel: Lowest RSI value over the lookback period, represents the recent momentum trough
 Middle Channel (Basis): Average of upper and lower channels, serves as equilibrium reference
 
 Channel Width Dynamics: 
The distance between upper and lower channels reflects RSI volatility. Wide channels indicate high momentum variability, while narrow channels suggest momentum consolidation and potential breakout preparation. The indicator monitors channel width over a 100-period window to identify squeeze conditions that often precede significant momentum shifts.
 📊 COMPREHENSIVE SIGNAL ANALYSIS 
 Primary Signal Categories: 
 Breakout Signals: 
 
 Upper Breakout: RSI crosses above the upper channel, indicates momentum reaching new relative highs and potential trend continuation, particularly significant when accompanied by price confirmation
 Lower Breakout: RSI crosses below the lower channel, suggests momentum reaching new relative lows and potential trend exhaustion or reversal setup
 Breakout strength is enhanced when the channel is narrow prior to the breakout, indicating a transition from consolidation to directional movement
 
 Mean Reversion Signals: 
 
 Upper Touch Without Breakout: RSI reaches the upper channel but fails to break through, may indicate momentum exhaustion and potential reversal opportunity
 Lower Touch Without Breakout: RSI reaches the lower channel without breakdown, suggests potential bounce as momentum reaches oversold extremes
 Return to Basis: RSI moving back toward the middle channel after touching extremes signals momentum normalization
 
 Trend Strength Assessment: 
 
 Sustained Upper Channel Riding: RSI consistently remains near or above the upper channel during strong uptrends, indicates persistent bullish momentum
 Sustained Lower Channel Riding: RSI stays near or below the lower channel during strong downtrends, reflects persistent bearish pressure
 Basis Line Position: RSI position relative to the middle channel helps identify the prevailing momentum bias
 
 Channel Compression Patterns: 
 
 Squeeze Detection: Channel width narrowing to 100-period lows indicates momentum consolidation, often precedes significant directional moves
 Expansion Phase: Channel widening after a squeeze confirms the initiation of a new momentum regime
 Persistent Narrow Channels: Extended periods of tight channels suggest market indecision and accumulation/distribution phases
 
 🎯 STRATEGIC APPLICATIONS 
 Trend Continuation Strategy: 
This approach focuses on identifying and trading momentum breakouts that confirm established trends:
 
 Identify the prevailing price trend using higher timeframe analysis or trend-following indicators
 Wait for RSI to break above the upper channel in uptrends (or below the lower channel in downtrends)
 Enter positions in the direction of the breakout when price action confirms the momentum shift
 Place protective stops below the recent swing low (long positions) or above swing high (short positions)
 Target profit levels based on prior swing extremes or use trailing stops to capture extended moves
 Exit when RSI crosses back through the basis line in the opposite direction
 
 Mean Reversion Strategy: 
This method capitalizes on momentum extremes and subsequent corrections toward equilibrium:
 
 Monitor for RSI reaching the upper or lower channel boundaries
 Look for rejection signals (price reversal patterns, volume divergence) when RSI touches the channels
 Enter counter-trend positions when RSI begins moving back toward the basis line
 Use the basis line as the initial profit target for mean reversion trades
 Implement tight stops beyond the channel extremes to limit risk on failed reversals
 Scale out of positions as RSI approaches the basis line and closes the position when RSI crosses the basis
 
 Breakout Preparation Strategy: 
This approach positions traders ahead of potential volatility expansion from consolidation phases:
 
 Identify squeeze conditions when channel width reaches 100-period lows
 Monitor price action for consolidation patterns (triangles, rectangles, flags) during the squeeze
 Prepare conditional orders for breakouts in both directions from the consolidation
 Enter positions when RSI breaks out of the narrow channel with expanding width
 Use the channel width expansion as a confirmation signal for the breakout's validity
 Manage risk with stops just inside the opposite channel boundary
 
 Multi-Timeframe Confluence Strategy: 
Combining RSI Donchian Channel analysis across multiple timeframes can improve signal reliability:
 
 Identify the primary trend direction using a higher timeframe RSI Donchian Channel (e.g., daily or weekly)
 Use a lower timeframe (e.g., 4-hour or hourly) to time precise entry points
 Enter long positions when both timeframes show RSI above their respective basis lines
 Enter short positions when both timeframes show RSI below their respective basis lines
 Avoid trades when timeframes provide conflicting signals (e.g., higher timeframe below basis, lower timeframe above)
 Exit when the higher timeframe RSI crosses its basis line in the opposite direction
 
 Risk Management Guidelines: 
Effective risk management is essential for all RSI Donchian Channel strategies:
 
 Position Sizing: Calculate position sizes based on the distance between entry point and stop loss, limiting risk to 1-2% of capital per trade
 Stop Loss Placement: For breakout trades, place stops just inside the opposite channel boundary; for mean reversion trades, use stops beyond the channel extremes
 Profit Targets: Use the basis line as a minimum target for mean reversion trades; for trend trades, target prior swing extremes or use trailing stops
 Channel Width Context: Increase position sizes during narrow channels (lower volatility) and reduce sizes during wide channels (higher volatility)
 Correlation Awareness: Monitor correlations between traded instruments to avoid over-concentration in similar setups
 
 📋 DETAILED PARAMETER CONFIGURATION 
 RSI Source: 
Defines the price data series used for RSI calculation:
 
 Close (Default): Standard choice providing end-of-period momentum assessment, suitable for most trading styles and timeframes
 High-Low Average (HL2): Reduces the impact of closing auction dynamics, useful for markets with significant end-of-day volatility
 High-Low-Close Average (HLC3): Provides a more balanced view incorporating the entire period's range
 Open-High-Low-Close Average (OHLC4): Offers the most comprehensive price representation, helpful for identifying overall period sentiment
 Strategy Consideration: Use Close for end-of-period signals, HL2 or HLC3 for intraday volatility reduction, OHLC4 for capturing full period dynamics
 
 RSI Length: 
Controls the number of periods used for RSI calculation:
 
 Short Periods (5-9): Highly responsive to recent price changes, produces more frequent signals with increased false signal risk, suitable for short-term trading and volatile markets
 Standard Period (14): Widely accepted default balancing responsiveness with stability, appropriate for swing trading and intermediate-term analysis
 Long Periods (21-28): Produces smoother RSI with fewer signals but more reliable trend identification, better for position trading and reducing noise in choppy markets
 Optimization Approach: Test different lengths against historical data for your specific market and timeframe, consider using longer periods in ranging markets and shorter periods in trending markets
 
 RSI MA Type: 
Determines the smoothing method applied to price changes in RSI calculation:
 
 RMA (Relative Moving Average - Default): Wilder's original smoothing method providing stable momentum measurement with gradual response to changes, maintains consistency with classical RSI interpretation
 SMA (Simple Moving Average): Treats all periods equally, responds more quickly to changes than RMA but may produce more whipsaws in volatile conditions
 EMA (Exponential Moving Average): Weights recent periods more heavily, increases responsiveness at the cost of potential noise, suitable for traders prioritizing early signal generation
 WMA (Weighted Moving Average): Applies linear weighting favoring recent data, offers a middle ground between SMA and EMA responsiveness
 Selection Guidance: Maintain RMA for consistency with traditional RSI analysis, use EMA or WMA for more responsive signals in fast-moving markets, apply SMA for maximum simplicity and transparency
 
 DC Length: 
Specifies the lookback period for Donchian Channel calculation on RSI values:
 
 Short Periods (10-14): Creates tight channels that adapt quickly to changing momentum conditions, generates more frequent trading signals but increases sensitivity to short-term RSI fluctuations
 Standard Period (20): Balances channel responsiveness with stability, aligns with traditional Bollinger Bands and moving average periods, suitable for most trading styles
 Long Periods (30-50): Produces wider, more stable channels that better represent sustained momentum extremes, reduces signal frequency while improving reliability, appropriate for position traders and higher timeframes
 Calibration Strategy: Match DC length to your trading timeframe (shorter for day trading, longer for swing trading), test channel width behavior during different market regimes, consider using adaptive periods that adjust to volatility conditions
 Market Adaptation: Use shorter DC lengths in trending markets to capture momentum shifts earlier, apply longer periods in ranging markets to filter noise and focus on significant extremes
 
 Parameter Combination Recommendations: 
 
 Scalping/Day Trading: RSI Length 5-9, DC Length 10-14, EMA or WMA smoothing for maximum responsiveness
 Swing Trading: RSI Length 14, DC Length 20, RMA smoothing for balanced analysis (default configuration)
 Position Trading: RSI Length 21-28, DC Length 30-50, RMA or SMA smoothing for stable signals
 High Volatility Markets: Longer RSI periods (21+) with standard DC length (20) to reduce noise
 Low Volatility Markets: Standard RSI length (14) with shorter DC length (10-14) to capture subtle momentum shifts
 
 📈 PERFORMANCE ANALYSIS & COMPETITIVE ADVANTAGES 
 Adaptive Threshold Mechanism: 
Unlike traditional RSI analysis with fixed 30/70 thresholds, this indicator's Donchian Channel approach provides several improvements:
 
 Context-Aware Extremes: Overbought/oversold levels adjust automatically based on recent momentum behavior rather than arbitrary fixed values
 Volatility Adaptation: In low volatility periods, channels narrow to reflect tighter momentum ranges; in high volatility, channels widen appropriately
 Market Regime Recognition: The indicator implicitly adapts to different market conditions without manual threshold adjustments
 False Signal Reduction: Adaptive channels help reduce premature reversal signals that often occur with fixed thresholds during strong trends
 
 Signal Quality Characteristics: 
The indicator's dual-purpose design provides distinct advantages for different trading objectives:
 
 Breakout Trading: Channel boundaries offer clear, objective breakout levels that update dynamically, eliminating the ambiguity of when momentum becomes "too high" or "too low"
 Mean Reversion: The basis line provides a natural profit target for reversion trades, representing the midpoint of recent momentum extremes
 Trend Strength: Persistent channel boundary riding offers an objective measure of trend strength without additional indicators
 Consolidation Detection: Channel width analysis provides early warning of potential volatility expansion from compression phases
 
 Comparative Analysis: 
When compared to traditional RSI implementations and other momentum frameworks:
 
 vs. Fixed Threshold RSI: Provides market-adaptive reference levels rather than static values, helping to reduce false signals during trending markets where RSI can remain "overbought" or "oversold" for extended periods
 vs. RSI Bollinger Bands: Offers clearer breakout signals and more intuitive extreme identification through actual high/low boundaries rather than statistical standard deviations
 vs. Stochastic Oscillator: Maintains RSI's momentum measurement advantages (unbounded calculation avoiding scale compression) while adding the breakout detection capabilities of Donchian Channels
 vs. Standard Donchian Channels: Applies breakout methodology to momentum space rather than price, providing earlier signals of potential trend changes before price breakouts occur
 
 Performance Characteristics: 
The indicator exhibits specific behavioral patterns across different market conditions:
 
 Trending Markets: Excels at identifying momentum continuation through channel breakouts, RSI tends to ride one channel boundary during strong trends, providing trend confirmation
 Ranging Markets: Channel width narrows during consolidation, offering early preparation signals for potential breakout trading opportunities
 High Volatility: Channels widen to reflect increased momentum variability, automatically adjusting signal sensitivity to match market conditions
 Low Volatility: Channels contract, making the indicator more sensitive to subtle momentum shifts that may be significant in calm market environments
 Transition Periods: Channel squeezes often precede major trend changes, offering advance warning of potential regime shifts
 
 Limitations and Considerations: 
Users should be aware of certain operational characteristics:
 
 Lookback Dependency: Channel boundaries depend entirely on the lookback period, meaning the indicator has no predictive element beyond identifying current momentum relative to recent history
 Lag Characteristics: As with all moving average-based indicators, RSI calculation introduces lag, and channel boundaries update only as new extremes occur within the lookback window
 Range-Bound Sensitivity: In extremely tight ranges, channels may become very narrow, potentially generating excessive signals from minor momentum fluctuations
 Trending Persistence: During very strong trends, RSI may remain at channel extremes for extended periods, requiring patience for mean reversion setups or commitment to trend-following approaches
 No Absolute Levels: Unlike traditional RSI, this indicator provides no fixed reference points (like 50), making it less suitable for strategies that depend on absolute momentum readings
 
 USAGE NOTES 
This indicator is designed for technical analysis and educational purposes to help traders understand momentum dynamics and identify potential trading opportunities. The RSI Donchian Channel has limitations and should not be used as the sole basis for trading decisions.
Important considerations:
 
 Performance varies significantly across different market conditions, timeframes, and instruments
 Historical signal patterns do not guarantee future results, as market behavior continuously evolves
 Effective use requires understanding of both RSI momentum principles and Donchian Channel breakout concepts
 Risk management practices (stop losses, position sizing, diversification) are essential for any trading application
 Consider combining with additional analytical tools such as volume analysis, price action patterns, or trend indicators for confirmation
 Backtest thoroughly on your specific instruments and timeframes before live trading implementation
 Be aware that optimization on historical data may lead to curve-fitting and poor forward performance
 
The indicator performs best when used as part of a comprehensive trading methodology that incorporates multiple forms of market analysis, sound risk management, and realistic expectations about win rates and drawdowns.
JK_Traders_Reality_LibLibrary   "JK_Traders_Reality_Lib" 
This library contains common elements used in Traders Reality scripts
 calcPvsra(pvsraVolume, pvsraHigh, pvsraLow, pvsraClose, pvsraOpen, redVectorColor, greenVectorColor, violetVectorColor, blueVectorColor, darkGreyCandleColor, lightGrayCandleColor) 
  calculate the pvsra candle color and return the color as well as an alert if a vector candle has apperared.
Situation "Climax"
Bars with volume >= 200% of the average volume of the 10 previous chart TFs, or bars
where the product of candle spread x candle volume is >= the highest for the 10 previous
chart time TFs.
Default Colors:  Bull bars are green and bear bars are red.
Situation "Volume Rising Above Average"
Bars with volume >= 150% of the average volume of the 10 previous chart TFs.
Default Colors:  Bull bars are blue and bear are violet.
  Parameters:
     pvsraVolume (float) : the instrument volume series (obtained from request.sequrity)
     pvsraHigh (float) : the instrument high series (obtained from request.sequrity)
     pvsraLow (float) : the instrument low series (obtained from request.sequrity)
     pvsraClose (float) : the instrument close series (obtained from request.sequrity)
     pvsraOpen (float) : the instrument open series (obtained from request.sequrity)
     redVectorColor (simple color) : red vector candle color
     greenVectorColor (simple color) : green vector candle color
     violetVectorColor (simple color) : violet/pink vector candle color
     blueVectorColor (simple color) : blue vector candle color
     darkGreyCandleColor (simple color) : regular volume candle down candle color - not a vector
     lightGrayCandleColor (simple color) : regular volume candle up candle color - not a vector
@return  
 adr(length, barsBack) 
  Parameters:
     length (simple int) : how many elements of the series to calculate on
     barsBack (simple int) : starting possition for the length calculation - current bar or some other value eg last bar
@return adr the adr for the specified lenght
 adrHigh(adr, fromDo) 
  Calculate the ADR high given an ADR
  Parameters:
     adr (float) : the adr
     fromDo (simple bool) : boolean flag, if false calculate traditional adr from high low of today, if true calcualte from exchange midnight
@return adrHigh the position of the adr high in price
 adrLow(adr, fromDo) 
  Parameters:
     adr (float) : the adr
     fromDo (simple bool) : boolean flag, if false calculate traditional adr from high low of today, if true calcualte from exchange midnight
@return adrLow the position of the adr low in price
 splitSessionString(sessXTime) 
  given a session in the format 0000-0100:23456 split out the hours and minutes
  Parameters:
     sessXTime (simple string) : the session time string usually in the format 0000-0100:23456
@return  
 calcSessionStartEnd(sessXTime, gmt) 
  calculate the start and end timestamps of the session
  Parameters:
     sessXTime (simple string) : the session time string usually in the format 0000-0100:23456
     gmt (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
@return  
 drawOpenRange(sessXTime, sessXcol, showOrX, gmt) 
  draw open range for a session
  Parameters:
     sessXTime (simple string) : session string in the format 0000-0100:23456
     sessXcol (simple color) : the color to be used for the opening range box shading
     showOrX (simple bool) : boolean flag to toggle displaying the opening range
     gmt (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
@return void
 drawSessionHiLo(sessXTime, showRectangleX, showLabelX, sessXcolLabel, sessXLabel, gmt, sessionLineStyle) 
  Parameters:
     sessXTime (simple string) : session string in the format 0000-0100:23456
     showRectangleX (simple bool) 
     showLabelX (simple bool) 
     sessXcolLabel (simple color) : the color to be used for the hi/low lines and label
     sessXLabel (simple string) : the session label text
     gmt (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
     sessionLineStyle (simple string) : the line stile for the session high low lines
@return void
 calcDst() 
  calculate market session dst on/off flags
@return   indicating if DST is on or off for a particular region
 timestampPreviousDayOfWeek(previousDayOfWeek, hourOfDay, gmtOffset, oneWeekMillis) 
  Timestamp any of the 6 previous days in the week (such as last Wednesday at 21 hours GMT)
  Parameters:
     previousDayOfWeek (simple string) : Monday or Satruday
     hourOfDay (simple int) : the hour of the day when psy calc is to start
     gmtOffset (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
     oneWeekMillis (simple int) : the amount if time for a week in milliseconds
@return the timestamp of the psy level calculation start time
 getdayOpen() 
  get the daily open - basically exchange midnight
@return the daily open value which is float price
 newBar(res) 
  new_bar: check if we're on a new bar within the session in a given resolution
  Parameters:
     res (simple string) : the desired resolution
@return true/false is a new bar for the session has started
 toPips(val) 
  to_pips Convert value to pips
  Parameters:
     val (float) : the value to convert to pips
@return the value in pips
 rLabel(ry, rtext, rstyle, rcolor, valid, labelXOffset) 
  a function that draws a right aligned lable for a series during the current bar
  Parameters:
     ry (float) : series float the y coordinate of the lable
     rtext (simple string) : the text of the label
     rstyle (simple string) : the style for the lable
     rcolor (simple color) : the color for the label
     valid (simple bool) : a boolean flag that allows for turning on or off a lable
     labelXOffset (int) : how much to offset the label from the current position
 rLabelOffset(ry, rtext, rstyle, rcolor, valid, labelOffset) 
  a function that draws a right aligned lable for a series during the current bar
  Parameters:
     ry (float) : series float the y coordinate of the lable
     rtext (string) : the text of the label
     rstyle (simple string) : the style for the lable
     rcolor (simple color) : the color for the label
     valid (simple bool) : a boolean flag that allows for turning on or off a lable
     labelOffset (int) 
 rLabelLastBar(ry, rtext, rstyle, rcolor, valid, labelXOffset) 
  a function that draws a right aligned lable for a series only on the last bar
  Parameters:
     ry (float) : series float the y coordinate of the lable
     rtext (string) : the text of the label
     rstyle (simple string) : the style for the lable
     rcolor (simple color) : the color for the label
     valid (simple bool) : a boolean flag that allows for turning on or off a lable
     labelXOffset (int) : how much to offset the label from the current position
 drawLine(xSeries, res, tag, xColor, xStyle, xWidth, xExtend, isLabelValid, xLabelOffset, validTimeFrame) 
  a function that draws a line and a label for a series
  Parameters:
     xSeries (float) : series float the y coordinate of the line/label
     res (simple string) : the desired resolution controlling when a new line will start
     tag (simple string) : the text for the lable
     xColor (simple color) : the color for the label
     xStyle (simple string) : the style for the line
     xWidth (simple int) : the width of the line
     xExtend (simple string) : extend the line
     isLabelValid (simple bool) : a boolean flag that allows for turning on or off a label
     xLabelOffset (int) 
     validTimeFrame (simple bool) : a boolean flag that allows for turning on or off a line drawn
 drawLineDO(xSeries, res, tag, xColor, xStyle, xWidth, xExtend, isLabelValid, xLabelOffset, validTimeFrame) 
  a function that draws a line and a label for the daily open series
  Parameters:
     xSeries (float) : series float the y coordinate of the line/label
     res (simple string) : the desired resolution controlling when a new line will start
     tag (simple string) : the text for the lable
     xColor (simple color) : the color for the label
     xStyle (simple string) : the style for the line
     xWidth (simple int) : the width of the line
     xExtend (simple string) : extend the line
     isLabelValid (simple bool) : a boolean flag that allows for turning on or off a label
     xLabelOffset (int) 
     validTimeFrame (simple bool) : a boolean flag that allows for turning on or off a line drawn
 drawPivot(pivotLevel, res, tag, pivotColor, pivotLabelColor, pivotStyle, pivotWidth, pivotExtend, isLabelValid, validTimeFrame, levelStart, pivotLabelXOffset) 
  draw a pivot line - the line starts one day into the past
  Parameters:
     pivotLevel (float) : series of the pivot point
     res (simple string) : the desired resolution
     tag (simple string) : the text to appear
     pivotColor (simple color) : the color of the line
     pivotLabelColor (simple color) : the color of the label
     pivotStyle (simple string) : the line style
     pivotWidth (simple int) : the line width
     pivotExtend (simple string) : extend the line
     isLabelValid (simple bool) : boolean param allows to turn label on and off
     validTimeFrame (simple bool) : only draw the line and label at a valid timeframe
     levelStart (int) : basically when to start drawing the levels
     pivotLabelXOffset (int) : how much to offset the label from its current postion
@return the pivot line series
 getPvsraFlagByColor(pvsraColor, redVectorColor, greenVectorColor, violetVectorColor, blueVectorColor, lightGrayCandleColor) 
  convert the pvsra color to an internal code
  Parameters:
     pvsraColor (color) : the calculated pvsra color
     redVectorColor (simple color) : the user defined red vector color
     greenVectorColor (simple color) : the user defined green vector color
     violetVectorColor (simple color) : the user defined violet vector color
     blueVectorColor (simple color) : the user defined blue vector color
     lightGrayCandleColor (simple color) : the user defined regular up candle color
@return pvsra internal code
 updateZones(pvsra, direction, boxArr, maxlevels, pvsraHigh, pvsraLow, pvsraOpen, pvsraClose, transperancy, zoneupdatetype, zonecolor, zonetype, borderwidth, coloroverride, redVectorColor, greenVectorColor, violetVectorColor, blueVectorColor) 
  a function that draws the unrecovered vector candle zones
  Parameters:
     pvsra (int) : internal code
     direction (simple int) : above or below the current pa
     boxArr (array) : the array containing the boxes that need to be updated
     maxlevels (simple int) : the maximum number of boxes to draw
     pvsraHigh (float) : the pvsra high value series
     pvsraLow (float) : the pvsra low value series
     pvsraOpen (float) : the pvsra open value series
     pvsraClose (float) : the pvsra close value series
     transperancy (simple int) : the transparencfy of the vecor candle zones
     zoneupdatetype (simple string) : the zone update type
     zonecolor (simple color) : the zone color if overriden
     zonetype (simple string) : the zone type
     borderwidth (simple int) : the width of the border
     coloroverride (simple bool) : if the color overriden
     redVectorColor (simple color) : the user defined red vector color
     greenVectorColor (simple color) : the user defined green vector color
     violetVectorColor (simple color) : the user defined violet vector color
     blueVectorColor (simple color) : the user defined blue vector color
 cleanarr(arr) 
  clean an array from na values
  Parameters:
     arr (array) : the array to clean
@return if the array was cleaned
 calcPsyLevels(oneWeekMillis, showPsylevels, psyType, sydDST) 
  calculate the psy levels
4 hour res based on how mt4 does it
mt4 code
int Li_4 = iBarShift(NULL, PERIOD_H4, iTime(NULL, PERIOD_W1, Li_0)) - 2 - Offset;
ObjectCreate("PsychHi", OBJ_TREND, 0, Time , iHigh(NULL, PERIOD_H4, iHighest(NULL, PERIOD_H4, MODE_HIGH, 2, Li_4)), iTime(NULL, PERIOD_W1, 0), iHigh(NULL, PERIOD_H4,
iHighest(NULL, PERIOD_H4, MODE_HIGH, 2, Li_4)));
so basically because the session is 8 hours and we are looking at a 4 hour resolution we only need to take the highest high an lowest low of 2 bars
we use the gmt offset to adjust the 0000-0800 session to Sydney open which is at 2100 during dst and at 2200 otherwize. (dst - spring foward, fall back)
keep in mind sydney is in the souther hemisphere so dst is oposite of when london and new york go into dst
  Parameters:
     oneWeekMillis (simple int) : a constant value
     showPsylevels (simple bool) : should psy levels be calculated
     psyType (simple string) : the type of Psylevels - crypto or forex
     sydDST (bool) : is Sydney in DST
@return  
 adrHiLo(length, barsBack, fromDO) 
  Parameters:
     length (simple int) : how many elements of the series to calculate on
     barsBack (simple int) : starting possition for the length calculation - current bar or some other value eg last bar
     fromDO (simple bool) : boolean flag, if false calculate traditional adr from high low of today, if true calcualte from exchange midnight
@return adr, adrLow and adrHigh  - the adr, the position of the adr High and adr Low with respect to price
 drawSessionHiloLite(sessXTime, showRectangleX, showLabelX, sessXcolLabel, sessXLabel, gmt, sessionLineStyle, sessXcol) 
  Parameters:
     sessXTime (simple string) : session string in the format 0000-0100:23456
     showRectangleX (simple bool) 
     showLabelX (simple bool) 
     sessXcolLabel (simple color) : the color to be used for the hi/low lines and label
     sessXLabel (simple string) : the session label text
     gmt (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
     sessionLineStyle (simple string) : the line stile for the session high low lines
     sessXcol (simple color) : - the color for the box color that will color the session
@return void
 msToHmsString(ms) 
  converts milliseconds into an hh:mm string. For example, 61000 ms to '0:01:01'
  Parameters:
     ms (int) : - the milliseconds to convert to hh:mm
@return string - the converted hh:mm string
 countdownString(openToday, closeToday, showMarketsWeekends, oneDay) 
  that calculates how much time is left until the next session taking the session start and end times into account. Note this function does not work on intraday sessions.
  Parameters:
     openToday (int) : - timestamps of when the session opens in general - note its a series because the timestamp was created using the dst flag which is a series itself thus producing a timestamp series
     closeToday (int) : - timestamp of when the session closes in general - note its a series because the timestamp was created using the dst flag which is a series itself thus producing a timestamp series
@return a countdown of when next the session opens or 'Open' if the session is open now
     showMarketsWeekends (simple bool) 
     oneDay (simple int) 
 countdownStringSyd(sydOpenToday, sydCloseToday, showMarketsWeekends, oneDay) 
  that calculates how much time is left until the next session taking the session start and end times into account. special case of intraday sessions like sydney
  Parameters:
     sydOpenToday (int) 
     sydCloseToday (int) 
     showMarketsWeekends (simple bool) 
     oneDay (simple int)
Live Market - Performance MonitorLive Market — Performance Monitor
Study material (no code) — step-by-step training guide for learners 
________________________________________
1) What this tool is — short overview
This indicator is a live market performance monitor designed for learning. It scans price, volume and volatility, detects order blocks and trendline events, applies filters (volume & ATR), generates trade signals (BUY/SELL), creates simple TP/SL trade management, and renders a compact dashboard summarizing market state, risk and performance metrics.
Use it to learn how multi-factor signals are constructed, how Greeks-style sensitivity is replaced by volatility/ATR reasoning, and how a live dashboard helps monitor trade quality.
________________________________________
2) Quick start — how a learner uses it (step-by-step)
1.	Add the indicator to a chart (any ticker / timeframe).
2.	Open inputs and review the main groups: Order Block, Trendline, Signal Filters, Display.
3.	Start with defaults (OB periods ≈ 7, ATR multiplier 0.5, volume threshold 1.2) and observe the dashboard on the last bar.
4.	Walk the chart back in time (use the last-bar update behavior) and watch how signals, order blocks, trendlines, and the performance counters change.
5.	Run the hands-on labs below to build intuition.
________________________________________
3) Main configurable inputs (what you can tweak)
•	Order Block Relevant Periods (default ~7): number of consecutive candles used to define an order block.
•	Min. Percent Move for Valid OB (threshold): minimum percent move required for a valid order block.
•	Number of OB Channels: how many past order block lines to keep visible.
•	Trendline Period (tl_period): pivot lookback for detecting highs/lows used to draw trendlines.
•	Use Wicks for Trendlines: whether pivot uses wicks or body.
•	Extension Bars: how far trendlines are projected forward.
•	Use Volume Filter + Volume Threshold Multiplier (e.g., 1.2): requires volume to be greater than multiplier × average volume.
•	Use ATR Filter + ATR Multiplier: require bar range > ATR × multiplier to filter noise.
•	Show Targets / Table settings / Colors for visualization.
________________________________________
4) Core building blocks — what the script computes (plain language)
Price & trend:
•	Spot / LTP: current close price.
•	EMA 9 / 21 / 50: fast, medium, slow moving averages to define short/medium trend.
o	trend_bullish: EMA9 > EMA21 > EMA50
o	trend_bearish: EMA9 < EMA21 < EMA50
o	trend_neutral: otherwise
Volatility & noise:
•	ATR (14): average true range used for dynamic target and filter sizing.
•	dynamic_zone = ATR × atr_multiplier: minimum bar range required for meaningful move.
•	Annualized volatility: stdev of price changes × sqrt(252) × 100 — used to classify volatility (HIGH/MEDIUM/LOW).
Momentum & oscillators:
•	RSI 14: overbought/oversold indicator (thresholds 70/30).
•	MACD: EMA(12)-EMA(26) and a 9-period signal line; histogram used for momentum direction and strength.
•	Momentum (ta.mom 10): raw momentum over 10 bars.
Mean reversion / band context:
•	Bollinger Bands (20, 2σ): upper, mid, lower.
o	price_position measures where price sits inside the band range as 0–100.
Volume metrics:
•	avg_volume = SMA(volume, 20) and volume_spike = volume > avg_volume × volume_threshold
o	volume_ratio = volume / avg_volume
Support & Resistance:
•	support_level = lowest low over 20 bars
•	resistance_level = highest high over 20 bars
•	current_position = percent of price between support & resistance (0–100)
________________________________________
5) Order Block detection — concept & logic
What it tries to find: a bar (the base) followed by N candles in the opposite direction (a classical order block setup), with a minimum % move to qualify. The script records the high/low of the base candle, averages them, and plots those levels as OB channels.
How learners should think about it (conceptual):
1.	An order block is a signature area where institutions (theory) left liquidity — often seen as a large bar followed by a sequence of directional candles.
2.	This indicator uses a configurable number of subsequent candles to confirm that the pattern exists.
3.	When found, it stores and displays the base candle’s high/low area so students can see how price later reacts to those zones.
Implementation note for learners: the tool keeps a limited history of OB lines (ob_channels). When new OBs exceed the count, the oldest lines are removed — good practice to avoid clutter.
________________________________________
6) Trendline detection — idea & interpretation
•	The script finds pivot highs and lows using a symmetric lookback (tl_period and half that as right/left).
•	It then computes a trendline slope from successive pivots and projects the line forward (extension_bars).
•	Break detection: Resistance break = close crosses above the projected resistance line; Support break = close crosses below projected support.
Learning tip: trendlines here are computed from pivot points and time. Watch how changing tl_period (bigger = smoother, fewer pivots) alters the trendlines and break signals.
________________________________________
7) Signal generation & filters — step-by-step
1.	Primary triggers:
o	Bullish trigger: order block bullish OR resistance trendline break.
o	Bearish trigger: bearish order block OR support trendline break.
2.	Filters applied (both must pass unless disabled):
o	Volume filter: volume must be > avg_volume × volume_threshold.
o	ATR filter: bar range (high-low) must exceed ATR × atr_multiplier.
o	Not in an existing trade: new trades only start if trade_active is false.
3.	Trend confirmation:
o	The primary trigger is only confirmed if trend is bullish/neutral for buys or bearish/neutral for sells (EMA alignment).
4.	Result:
o	When confirmed, a long or short trade is activated with TP/SL calculated from ATR multiples.
________________________________________
8) Trade management — what the tool does after a signal
•	Entry management: the script marks a trade as trade_active and sets long_trade or short_trade flags.
•	TP & SL rules:
o	Long: TP = high + 2×ATR ; SL = low − 1×ATR
o	Short: TP = low − 2×ATR ; SL = high + 1×ATR
•	Monitoring & exit:
o	A trade closes when price reaches TP or SL.
o	When TP/SL hit, the indicator updates win_count and total_pnl using a very simple calculation (difference between TP/SL and previous close).
o	Visual lines/labels are drawn for TP and updated as the trade runs.
Important learner notes:
•	The script does not store a true entry price (it uses close  in its P&L math), so PnL is an approximation — treat this as a learning proxy, not a position accounting system.
•	There’s no sizing, slippage, or fee accounted — students must manually factor these when translating to real trades.
•	This indicator is not a backtesting strategy; strategy.* functions would be needed for rigorous backtest results.
________________________________________
9) Signal strength & helper utilities
•	Signal strength is a composite score (0–100) made up of four signals worth 25 points each:
1.	RSI extreme (overbought/oversold) → 25
2.	Volume spike → 25
3.	MACD histogram magnitude increasing → 25
4.	Trend existence (bull or bear) → 25
•	Progress bars (text glyphs) are used to visually show RSI and signal strength on the table.
Learning point: composite scoring is a way to combine orthogonal signals — study how changing weights changes outcomes.
________________________________________
10) Dashboard — how to read each section (walkthrough)
The dashboard is split into sections; here's how to interpret them:
1.	Market Overview
o	LTP / Change%: immediate price & daily % change.
2.	RSI & MACD
o	RSI value plus progress bar (overbought 70 / oversold 30).
o	MACD histogram sign indicates bullish/bearish momentum.
3.	Volume Analysis
o	Volume ratio (current / average) and whether there’s a spike.
4.	Order Block Status
o	Buy OB / Sell OB: the average base price of detected order blocks or “No Signal.”
5.	Signal Status
o	🔼 BUY or 🔽 SELL if confirmed, or ⚪ WAIT.
o	No-trade vs Active indicator summarizing market readiness.
6.	Trend Analysis
o	Trend direction (from EMAs), market sentiment score (composite), volatility level and band/position metrics.
7.	Performance
o	Win Rate = wins / signals (percentage)
o	Total PnL = cumulative PnL (approximate)
o	Bull / Bear Volume = accumulated volumes attributable to signals
8.	Support & Resistance
o	20-bar highest/lowest — use as nearby reference points.
9.	Risk & R:R
o	Risk Level from ATR/price as a percent.
o	R:R Ratio computed from TP/SL if a trade is active.
10.	Signal Strength & Active Trade Status
•	Numeric strength + progress bar and whether a trade is currently active with TP/SL display.
________________________________________
11) Alerts — what will notify you
The indicator includes pre-built alert triggers for:
•	Bullish confirmed signal
•	Bearish confirmed signal
•	TP hit (long/short)
•	SL hit (long/short)
•	No-trade zone
•	High signal strength (score > 75%)
Training use: enable alerts during a replay session to be notified when the indicator would have signalled.
________________________________________
12) Labs — hands-on exercises for learners (step-by-step)
Lab A — Order Block recognition
1.	Pick a 15–30 minute timeframe on a liquid ticker.
2.	Use default OB periods (7). Mark each time the dashboard shows a Buy/Sell OB.
3.	Manually inspect the chart at the base candle and the following sequence — draw the OB zone by hand and watch later price reactions to it.
4.	Repeat with OB periods 5 and 10; note stability vs noise.
Lab B — Trendline break confirmation
1.	Increase trendline period (e.g., 20), watch trendlines form from pivots.
2.	When a resistance break is flagged, compare with MACD & volume: was momentum aligned?
3.	Note false breaks vs confirmed moves — change extension_bars to see projection effects.
Lab C — Filter sensitivity
1.	Toggle Use Volume Filter off, and record the number and quality of signals in a 2-day window.
2.	Re-enable volume filter and change threshold from 1.2 → 1.6; note how many low-quality signals are filtered out.
Lab D — Trade management simulation
1.	For each signalled trade, record the time, close  entry approximation, TP, SL, and eventual hit/miss.
2.	Compute actual PnL if you had entered at the open of the next bar to compare with the script’s PnL math.
3.	Tabulate win rate and average R:R.
Lab E — Performance review & improvement
1.	Build a spreadsheet of signals over 30–90 periods with columns: Date, Signal type, Entry price (real), TP, SL, Exit, PnL, Notes.
2.	Analyze which filters or indicators contributed most to winners vs losers and adjust weights.
________________________________________
13) Common pitfalls, assumptions & implementation notes (things to watch)
•	P&L simplification: total_pnl uses close  as a proxy entry price. Real entry/exit prices and slippage are not recorded — so PnL is approximate.
•	No position sizing or money management: the script doesn’t compute position size from equity or risk percent.
•	Signal confirmation logic: composite "signal_strength" is a simple 4×25 point scheme — explore different weights or additional signals.
•	Order block detection nuance: the script defines the base candle and checks the subsequent sequence. Be sure to verify whether the intended candle direction (base being bullish vs bearish) aligns with academic/your trading definition — read the code carefully and test.
•	Trendline slope over time: slope is computed using timestamps; small differences may make lines sensitive on very short timeframes — using bar_index differences is usually more stable.
•	Not a true backtester: to evaluate performance statistically you must transform the logic into a strategy script that places hypothetical orders and records exact entry/exit prices.
________________________________________
14) Suggested improvements for advanced learners
•	Record true entry price & timestamp for accurate PnL.
•	Add position sizing: risk % per trade using SL distance and account size.
•	Convert to strategy. (Pine Strategy)* to run formal backtests with equity curves, drawdowns, and metrics (Sharpe, Sortino).
•	Log trades to an external spreadsheet (via alerts + webhook) for offline analysis.
•	Add statistics: average win/loss, expectancy, max drawdown.
•	Add additional filters: news time blackout, market session filters, multi-timeframe confirmation.
•	Improve OB detection: combine wick/body, volume spike at base bar, and liquidity sweep detection.
________________________________________
15) Glossary — quick definitions
•	ATR (Average True Range): measure of typical range; used to size targets and stops.
•	EMA (Exponential Moving Average): trend smoothing giving more weight to recent prices.
•	RSI (Relative Strength Index): momentum oscillator; >70 overbought, <30 oversold.
•	MACD: momentum oscillator using difference of two EMAs.
•	Bollinger Bands: volatility bands around SMA.
•	Order Block: a base candle area with subsequent confirmation candles; a zone of institutional interest (learning model).
•	Pivot High/Low: local turning point defined by candles on both sides.
•	Signal Strength: combined score from multiple indicators.
•	Win Rate: proportion of signals that hit TP vs total signals.
•	R:R (Risk:Reward): ratio of potential reward (TP distance) to risk (entry to SL).
________________________________________
16) Limitations & assumptions (be explicit)
•	This is an indicator for learning — not a trading robot or broker connection.
•	No slippage, fees, commissions or tie-in to real orders are considered.
•	The logic is heuristic (rule-of-thumb), not a guarantee of performance.
•	Results are sensitive to timeframe, market liquidity, and parameter choices.
________________________________________
17) Practical classroom / study plan (4 sessions)
•	Session 1 — Foundations: Understand EMAs, ATR, RSI, MACD, Bollinger Bands. Run the indicator and watch how these numbers change on a single day.
•	Session 2 — Zones & Filters: Study order blocks and trendlines. Test volume & ATR filters and note changes in false signals.
•	Session 3 — Simulated trading: Manually track 20 signals, compute real PnL and compare to the dashboard.
•	Session 4 — Improvement plan: Propose changes (e.g., better PnL accounting, alternative OB rule) and test their impact.
________________________________________
18) Quick reference checklist for each signal
1.	Was an order block or trendline break detected? (primary trigger)
2.	Did volume meet threshold? (filter)
3.	Did ATR filter (bar size) show a real move? (filter)
4.	Was trend aligned (EMA 9/21/50)? (confirmation)
5.	Signal confirmed → mark entry approximation, TP, SL.
6.	Monitor dashboard (Signal Strength, Volatility, No-trade zone, R:R).
7.	After exit, log real entry/exit, compute actual PnL, update spreadsheet.
________________________________________
19) Educational caveat & final note
This tool is built for training and analysis: it helps you see how common technical building blocks combine into trade ideas, but it is not a trading recommendation. Use it to develop judgment, to test hypotheses, and to design robust systems with proper backtesting and risk control before risking capital.
________________________________________
20) Disclaimer (must include)
Training & Educational Only — This material and the indicator are provided for educational purposes only. Nothing here is investment advice or a solicitation to buy or sell financial instruments. Past simulated or historical performance does not predict future results. Always perform full backtesting and risk management, and consider seeking advice from a qualified financial professional before trading with real capital.
________________________________________






















