Dynamic Support and Resistance ### Indicator: Dynamic Support and Resistance
#### Overview:
The *Dynamic Support and Resistance* indicator is a powerful tool designed to help traders identify key price levels on a chart. It dynamically calculates support and resistance levels based on pivot points and the Average True Range (ATR). The indicator also highlights broken support and resistance zones, providing visual cues for potential trend reversals or continuations.
---
### Key Features:
1. *Dynamic Support and Resistance Levels*:
- The indicator identifies support and resistance levels using pivot highs and lows within a user-defined range.
- These levels are adjusted using the ATR to account for market volatility, making them more responsive to changing market conditions.
2. *Support and Resistance Zones*:
- The indicator draws boxes around the support and resistance levels, with customizable colors and widths.
- The width of the zones is determined by the ATR and a user-defined multiplier, allowing traders to adjust the sensitivity of the zones.
3. *Broken Zones*:
- When price breaks through a support or resistance zone, the zone is highlighted with a distinct color to indicate a potential shift in market sentiment.
- Traders can limit the number of broken zones displayed on the chart to avoid clutter.
4. *Customizable Inputs*:
- *Range Candle Count*: Defines the number of candles analyzed to determine pivot points. Increasing this value will result in fewer but more significant levels, while decreasing it will produce more levels that are sensitive to shorter-term price movements.
- *ATR Period*: Controls the sensitivity of the ATR calculation. A shorter period makes the ATR more responsive to recent price changes, while a longer period smooths it out.
- *Box Width Multiplier*: Adjusts the width of the support and resistance zones. A higher multiplier creates wider zones, which may be useful in more volatile markets.
- *Max Broken Zones*: Limits the number of broken zones displayed on the chart. This helps keep the chart clean and focused on the most recent breaks.
---
### How It Works:
1. *Pivot Points*:
- The indicator identifies pivot highs and lows within the specified range. These pivots serve as the basis for calculating support and resistance levels.
2. *ATR Adjustment*:
- The ATR is used to adjust the support and resistance levels, making them more dynamic and responsive to market volatility.
3. *Zone Creation*:
- Support and resistance zones are drawn as boxes around the pivot levels. The width of these zones is determined by the ATR and the box width multiplier.
4. *Zone Breaks*:
- When price breaks through a zone, the zone is highlighted with a distinct color, and the broken zone is added to an array. If the number of broken zones exceeds the user-defined limit, the oldest broken zone is removed from the chart.
---
### How to Use:
1. *Trend Identification*:
- Use the support and resistance levels to identify key price levels where the market may reverse or consolidate.
- Broken zones can signal potential trend reversals or continuations.
2. *Entry and Exit Points*:
- Traders can use the support and resistance zones as potential entry or exit points. For example, buying near support or selling near resistance.
- Broken zones can be used as confirmation for breakout strategies.
3. *Risk Management*:
- The width of the zones can help traders set stop-loss levels. For example, placing a stop-loss just outside a support or resistance zone.
4. *Customization*:
- Adjust the input parameters to suit your trading style and the specific market conditions. For example, increase the range candle count for longer-term analysis or decrease it for shorter-term trading.
---
### Who Should Use This Indicator?
- *Swing Traders*: Can use the indicator to identify key levels for potential reversals or breakouts.
- *Day Traders*: Can benefit from the dynamic levels and zones, especially in volatile markets.
- *Position Traders*: Can use the indicator to identify long-term support and resistance levels.
- *Breakout Traders*: Can use the broken zones to confirm breakouts and plan their trades accordingly.
---
### Input Parameters and Their Effects:
1. *Range Candle Count*:
- *Increase*: Produces fewer but more significant levels, suitable for longer-term analysis.
- *Decrease*: Produces more levels, sensitive to shorter-term price movements.
2. *ATR Period*:
- *Increase*: Smoothens the ATR, making the levels less sensitive to recent price changes.
- *Decrease*: Makes the ATR more responsive to recent price changes, resulting in more dynamic levels.
3. *Box Width Multiplier*:
- *Increase*: Creates wider zones, suitable for more volatile markets.
- *Decrease*: Creates narrower zones, suitable for less volatile markets.
4. *Max Broken Zones*:
- *Increase*: Displays more broken zones on the chart, providing more historical context.
- *Decrease*: Keeps the chart clean by displaying only the most recent broken zones.
---
### Conclusion:
The *Dynamic Support and Resistance* indicator is a versatile tool that can be adapted to various trading styles and market conditions. By dynamically adjusting to market volatility and highlighting key price levels, it provides traders with valuable insights into potential support and resistance areas. Whether you're a swing trader, day trader, or position trader, this indicator can help you make more informed trading decisions.
---
### Publishing on TradingView:
- *Title*: Dynamic Support and Resistance
- *Description*: A dynamic support and resistance indicator that uses pivot points and ATR to identify key price levels. Includes customizable support/resistance zones and highlights broken zones for breakout trading.
- *Tags*: support, resistance, ATR, pivot points, breakout, trading, indicator
- *Access*: Public or Invite-only, depending on your preference.
This indicator is ready to be published on TradingView, and the detailed description above will help users understand its functionality and how to use it effectively.
Wyszukaj w skryptach "break"
15-Minute ORB by @RhinoTradezOverview
Hey traders, ready to jump on the morning breakout train? The 15-Minute ORB by @RhinoTradez
is your go-to pal for rocking the Opening Range Breakout (ORB) scene, zeroing in on the first 15 minutes of the U.S. market day—9:30 to 9:45 AM Eastern Time. Picture this: sleek orange lines mark the high and low of that opening rush, but they only hang out during regular trading hours (9:30 AM-4:00 PM ET) and reset fresh each day—no old baggage here! Built in Pine Script v6 for that cutting-edge feel, it’s loaded with breakout signals and alerts to keep your trading game strong—ideal for SPY, QQQ, or any ticker you love.
Crafted by @RhinoTradez
to fuel your daily grind—let’s hit those breakouts running!
What It Does
The ORB strategy is all about that early market spark: the 9:30-9:45 AM range sets the battlefield, and breakouts signal the charge. Here’s the rundown:
Captures the Range : Snags the high and low from the 9:30-9:45 AM ET candle—U.S. market kickoff, locked in.
Daily Refresh : Wipes yesterday’s lines at 9:30 AM ET each day—today’s all that matters.
Regular Hours Focus : Orange lines shine from 9:45 AM to 4:00 PM ET, vanishing outside those hours.
Breakout Signals : Green triangles for upside breaks, red for downside, all within regular hours.
Alerts You : Chimes in with “Price broke above 15-min ORB High: 597” (or below the low) when the move hits.
It’s your morning breakout blueprint—simple, focused, and trader-ready.
Functionality Breakdown:
15-Minute ORB Snap:
Locks the high and low of the 9:30-9:45 AM ET candle on a 15-minute chart (EST/EDT auto-adjusted).
Resets daily at 9:30 AM ET—yesterday’s range is outta here.
Regular Hours Only:
Lines glow from 9:45 AM to 4:00 PM ET, keeping pre-market and after-hours clean.
Breakout Flags:
Marks price busting above the ORB high (green triangle below bar) or below the low (red triangle above), only during 9:30 AM-4:00 PM.
Alert Action:
Drops a custom alert with the breakout price (e.g., “Price broke below 15-min ORB Low: 594”)—stay in the know, hands-free.
Customization Options
Keep it chill with one slick tweak:
ORB Line Color : Starts at orange—vibrant and trader-cool! Flip it to blue, purple, or any shade you dig in the settings. Make it yours.
How to Use It
Pop It On: Add it to a 15-minute chart—SPY, QQQ, or your hot pick works like a dream.
Time It Right: Set your chart to “America/New_York” time (Chart Settings > Time Zone) to sync with 9:30 AM ET.
Choose Your Color: Dive into the indicator settings and pick your ORB line color—orange kicks it off, but you’re in charge.
Set Alerts: Right-click the indicator, add an alert with “Any alert() function call,” and catch breakouts live.
Ride the Wave: Green triangle? Upward vibe. Red? Downside alert. Mix with volume or candles for extra punch.
Pro Tips
15-Minute Only : Tailored for that 9:30-9:45 AM ET candle—other timeframes won’t sync up.
Daily Reset : Lines refresh at 9:30 AM ET—always today’s play.
Breakout Boost : High volume or RSI can seal the deal on those triangle signals.
No Clutter : Lines stick to 9:30 AM-4:00 PM ET—your chart stays tidy.
Brought to you by @RhinoTradez
in Pine Script v6, this ORB script’s your morning breakout wingman. Slap it on, pick a color, and let’s chase those moves together! Happy trading!
ORB with 100 EMAORB Trading Strategy for FX Pairs on the 30-Minute Time Frame
Overview
This Opening Range Breakout (ORB) strategy is designed for trading FX pairs on the 30-minute time frame. The strategy is structured to take advantage of price momentum while aligning trades with the overall trend using the 100-period Exponential Moving Average (100EMA). The primary objective is to enter trades when price breaks and closes above or below the Opening Range (OR), with additional confirmation from a retest of the OR level if the initial entry is missed.
Strategy Rules
1. Defining the Opening Range (OR)
- The OR is determined by the high and low of the first 30-minute candle after market open.
- This range acts as the key level for breakout trading.
2. Trend Confirmation Using the 100EMA
- The 100EMA serves as a filter to determine trade direction:
- Buy Setup: Only take buy trades when the OR is above the 100EMA.
- Sell Setup: Only take sell trades when the OR is below the 100EMA.
3. Entry Criteria
- Buy Trade: Enter a long position when a candle breaks and closes above the OR high, confirming the breakout.
- Sell Trade: Enter a short position when a candle breaks and closes below the OR low, confirming the breakout.
- Retest Entry: If the initial entry is missed, wait for a price retest of the OR level for a secondary entry opportunity.
4. Risk-to-Reward Ratio (R2R)
- The goal is to target a 1:1 Risk-to-Reward (R2R) ratio.
- Stop-loss placement:
- Buy Trade: Place stop-loss just below the OR low.
- Sell Trade: Place stop-loss just above the OR high.
- Take profit at a distance equal to the stop-loss for a 1:1 R2R.
5. Risk Management
- Risk per trade should be based on personal risk tolerance.
- Adjust lot sizes accordingly to maintain a controlled risk percentage of account balance.
- Avoid over-leveraging, and consider moving stop-loss to breakeven if the price moves favourably.
Additional Considerations
- Avoid trading during major news events that may cause high volatility and unpredictable price movements.
- Monitor market conditions to ensure breakout confirmation with strong momentum rather than false breakouts.
- Use additional confluences such as candlestick patterns, support/resistance zones, or volume analysis for stronger trade validation.
This ORB strategy is designed to provide structured trade opportunities by combining breakout momentum with trend confirmation via the 100EMA. The strategy is straightforward, allowing traders to capitalise on clear breakout movements while implementing effective risk management practices. While the 1:1 R2R target provides a balanced approach, traders should always adapt their risk tolerance and market conditions to optimise trade performance.
By following these rules and maintaining discipline, traders can use this strategy effectively across various FX pairs on the 30-minute time frame.
BRT Cluster VolumeTitle and Purpose
BRT Cluster Volume is a powerful market analysis tool designed to identify key support and resistance levels, cluster volumes, and breakout signals. This script is highly beneficial for traders who aim to gain deeper insights into market trends and pinpoint zones of interest for buyers and sellers.
Key Features
1. Support and Resistance Levels:
- The script automatically detects chart extremums by analyzing a specified number of bars on the left and right to form levels. This approach effectively identifies local highs and lows.
- The uniqueness of this implementation lies in its dynamic data processing. For each extremum, the "channel width" is calculated, allowing insignificant levels to be filtered out based on a user-defined minimum width. This method eliminates noise and ensures focus on critical levels.
- Extremum lines can be extended to the right (when enabled), allowing traders to track current price movements relative to historical levels.
2. Cluster Volume:
- The cluster analysis is based on lower timeframe data, providing precise identification of key zones of market participant activity. The script dynamically requests close prices and volumes from lower timeframes, calculates the average volume, and identifies levels where volumes exceed a defined threshold.
- The visualization of cluster volumes is unique: volumes exceeding the threshold are displayed as candles with customizable colors and markers. These indicators help traders identify zones of significant interest.
- Cluster volume is only displayed when it interacts with support or resistance levels, ensuring that the visualization remains precise and relevant for market analysis.
3. Breakout Signals:
- The script evaluates "breakout strength" for each breakout of support or resistance levels by comparing the current price with the level. This helps filter false breakouts and focus on significant price movements.
- Traders can select the source for breakout signals (close price or high/low), offering flexibility for various trading styles and strategies.
- By incorporating the concept of "maximum breakout strength," the script highlights only meaningful breakouts, ignoring minor fluctuations.
4. Integration of Trading Sessions:
- Extremum levels for major trading sessions (Asia, Europe, USA) are identified and labeled on the chart. This allows traders to see when significant price levels were formed during the day.
- The script uses timestamps to automatically detect session times, ensuring accuracy and minimizing manual adjustments.
5. Dynamic Data Updates:
- The script dynamically updates support and resistance levels in real time as new data becomes available. This feature is crucial for traders working in fast-moving markets.
- Outdated information (such as obsolete levels) is automatically removed to keep the chart clean and focused on relevant data.
6. Visualization of Activity Zones:
- Trend direction is visualized using color-coded candles based on cluster volumes. For instance, candles with volumes exceeding the average are highlighted with specific colors, helping traders quickly identify areas of heightened activity.
- The unique aspect of this visualization is that cluster volumes appear only in zones where they interact with breakout levels, providing an intuitive and streamlined presentation of critical data.
Usage
- Support and Resistance: Adjust the "Left Bars" and "Right Bars" settings to determine extremums. Use the "Channel Min Width" setting to filter out insignificant levels.
- Cluster Volume: Customize the analysis period and volume threshold to identify high-activity zones. Enable breakout clusters to see how volumes interact with breakouts.
- Session Extremums: Highlight significant levels for Asia, Europe, and US trading sessions to gain insights into market dynamics across different time zones.
- Breakout Signals: Configure the breakout strength and source (close or high/low) for precise signal detection.
Parameter Details
1. Support & Resistance:
- `Left Bars` / `Right Bars`: Number of bars to consider for determining extremums.
- `# of Lines`: Maximum number of support/resistance lines to display.
- `Channel Min Width`: Minimum channel width to filter insignificant levels.
2. Breakout:
- `Show Breakouts`: Toggle breakout signal display.
- `Max breakout strength`: Maximum strength for valid breakouts.
- `Breakout source`: Data source for breakouts (close or high/low).
3. Cluster Volume:
- `Lookback`: Number of bars to analyze for cluster volumes.
- `Threshold`: Volume threshold (percentage above the average).
- `Cluster Volume Timeframe`: Timeframe for cluster volume analysis.
- `Breakout Cluster`: Display cluster volumes only for breakout-related zones.
4. Visual Settings:
- `Extend extremum lines to the right`: Extend support/resistance lines to the right.
- `Show ASIA/EU/US Session Extremums`: Display extremums for trading sessions.
Features and Benefits
- The script provides flexible parameter customization, allowing it to adapt to different trading styles and timeframes.
- The visualization is designed to be clean and intuitive, ensuring users can easily interpret the data.
- Suitable for all timeframes, making it ideal for both intraday and long-term market analysis.
Limitations
- The script is not suitable for analysis on non-standard chart types (e.g., Heikin Ashi, Renko, Kagi).
- To ensure accurate performance, realistic data for commission and slippage should be used.
Warnings
- The script relies on historical data for calculations, which may cause discrepancies in real-time conditions.
- Users should fully understand the functionality of cluster analysis and breakout signals before using the script in live trading.
This script combines advanced data processing logic, dynamic level adjustments, and unique visualization approaches, making it an indispensable tool for market analysis and trading decision-making.
Simple Decesion Matrix Classification Algorithm [SS]Hello everyone,
It has been a while since I posted an indicator, so thought I would share this project I did for fun.
This indicator is an attempt to develop a pseudo Random Forest classification decision matrix model for Pinescript.
This is not a full, robust Random Forest model by any stretch of the imagination, but it is a good way to showcase how decision matrices can be applied to trading and within Pinescript.
As to not market this as something it is not, I am simply calling it the "Simple Decision Matrix Classification Algorithm". However, I have stolen most of the aspects of this machine learning algo from concepts of Random Forest modelling.
How it works:
With models like Support Vector Machines (SVM), Random Forest (RF) and Gradient Boosted Machine Learning (GBM), which are commonly used in Machine Learning Classification Tasks (MLCTs), this model operates similarity to the basic concepts shared amongst those modelling types. While it is not very similar to SVM, it is very similar to RF and GBM, in that it uses a "voting" system.
What do I mean by voting system?
How most classification MLAs work is by feeding an input dataset to an algorithm. The algorithm sorts this data, categorizes it, then introduces something called a confusion matrix (essentially sorting the data in no apparently order as to prevent over-fitting and introduce "confusion" to the algorithm to ensure that it is not just following a trend).
From there, the data is called upon based on current data inputs (so say we are using RSI and Z-Score, the current RSI and Z-Score is compared against other RSI's and Z-Scores that the model has saved). The model will process this information and each "tree" or "node" will vote. Then a cumulative overall vote is casted.
How does this MLA work?
This model accepts 2 independent variables. In order to keep things simple, this model was kept as a three node model. This means that there are 3 separate votes that go in to get the result. A vote is casted for each of the two independent variables and then a cumulative vote is casted for the overall verdict (the result of the model's prediction).
The model actually displays this system diagrammatically and it will likely be easier to understand if we look at the diagram to ground the example:
In the diagram, at the very top we have the classification variable that we are trying to predict. In this case, we are trying to predict whether there will be a breakout/breakdown outside of the normal ATR range (this is either yes or no question, hence a classification task).
So the question forms the basis of the input. The model will track at which points the ATR range is exceeded to the upside or downside, as well as the other variables that we wish to use to predict these exceedences. The ATR range forms the basis of all the data flowing into the model.
Then, at the second level, you will see we are using Z-Score and RSI to predict these breaks. The circle will change colour according to "feature importance". Feature importance basically just means that the indicator has a strong impact on the outcome. The stronger the importance, the more green it will be, the weaker, the more red it will be.
We can see both RSI and Z-Score are green and thus we can say they are strong options for predicting a breakout/breakdown.
So then we move down to the actual voting mechanisms. You will see the 2 pink boxes. These are the first lines of voting. What is happening here is the model is identifying the instances that are most similar and whether the classification task we have assigned (remember out ATR exceedance classifier) was either true or false based on RSI and Z-Score.
These are our 2 nodes. They both cast an individual vote. You will see in this case, both cast a vote of 1. The options are either 1 or 0. A vote of 1 means "Yes" or "Breakout likely".
However, this is not the only voting the model does. The model does one final vote based on the 2 votes. This is shown in the purple box. We can see the final vote and result at the end with the orange circle. It is 1 which means a range exceedance is anticipated and the most likely outcome.
The Data Table Component
The model has many moving parts. I have tried to represent the pivotal functions diagrammatically, but some other important aspects and background information must be obtained from the companion data table.
If we bring back our diagram from above:
We can see the data table to the left.
The data table contains 2 sections, one for each independent variable. In this case, our independent variables are RSI and Z-Score.
The data table will provide you with specifics about the independent variables, as well as about the model accuracy and outcome.
If we take a look at the first row, it simply indicates which independent variable it is looking at. If we go down to the next row where it reads "Weighted Impact", we can see a corresponding percent. The "weighted impact" is the amount of representation each independent variable has within the voting scheme. So in this case, we can see its pretty equal, 45% and 55%, This tells us that there is a slight higher representation of z-score than RSI but nothing to worry about.
If there was a major over-respresentation of greater than 30 or 40%, then the model would risk being skewed and voting too heavily in favour of 1 variable over the other.
If we move down from there we will see the next row reads "independent accuracy". The voting of each independent variable's accuracy is considered separately. This is one way we can determine feature importance, by seeing how well one feature augments the accuracy. In this case, we can see that RSI has the greatest importance, with an accuracy of around 87% at predicting breakouts. That makes sense as RSI is a momentum based oscillator.
Then if we move down one more, we will see what each independent feature (node) has voted for. In this case, both RSI and Z-Score voted for 1 (Breakout in our case).
You can weigh these in collaboration, but its always important to look at the final verdict of the model, which if we move down, we can see the "Model prediction" which is "Bullish".
If you are using the ATR breakout, the model cannot distinguish between "Bullish" or "Bearish", must that a "Breakout" is likely, either bearish or bullish. However, for the other classification tasks this model can do, the results are either Bullish or Bearish.
Using the Function:
Okay so now that all that technical stuff is out of the way, let's get into using the function. First of all this function innately provides you with 3 possible classification tasks. These include:
1. Predicting Red or Green Candle
2. Predicting Bullish / Bearish ATR
3. Predicting a Breakout from the ATR range
The possible independent variables include:
1. Stochastics,
2. MFI,
3. RSI,
4. Z-Score,
5. EMAs,
6. SMAs,
7. Volume
The model can only accept 2 independent variables, to operate within the computation time limits for pine execution.
Let's quickly go over what the numbers in the diagram mean:
The numbers being pointed at with the yellow arrows represent the cases the model is sorting and voting on. These are the most identical cases and are serving as the voting foundation for the model.
The numbers being pointed at with the pink candle is the voting results.
Extrapolating the functions (For Pine Developers:
So this is more of a feature application, so feel free to customize it to your liking and add additional inputs. But here are some key important considerations if you wish to apply this within your own code:
1. This is a BINARY classification task. The prediction must either be 0 or 1.
2. The function consists of 3 separate functions, the 2 first functions serve to build the confusion matrix and then the final "random_forest" function serves to perform the computations. You will need all 3 functions for implementation.
3. The model can only accept 2 independent variables.
I believe that is the function. Hopefully this wasn't too confusing, it is very statsy, but its a fun function for me! I use Random Forest excessively in R and always like to try to convert R things to Pinescript.
Hope you enjoy!
Safe trades everyone!
Eze Profit Range Detection FilterThe Range Detection Filter is a technical analysis tool designed to help traders identify range-bound market conditions and focus on breakout opportunities. It combines the ATR (Average True Range) for volatility analysis and the ADX (Average Directional Index) for trend strength evaluation to highlight consolidation phases and alert traders when the market is ready to break out.
This indicator provides visual cues and customizable alerts, making it suitable for traders looking to avoid false signals during choppy markets and capitalize on trending moves following a breakout.
What Makes It Unique?
ATR for Volatility:
Measures market volatility by comparing ATR with its moving average.
Consolidation phases are flagged when ATR remains below its moving average for a sustained period.
ADX for Trend Strength:
Monitors trend strength, confirming range-bound conditions when ADX falls below a user-defined threshold (default: 20).
Combines with ATR to ensure accurate detection of trendless periods.
Breakout Alerts:
Notifies traders of breakout opportunities when the price moves outside the highest high or lowest low of the range.
How It Works:
Range Detection:
The market is considered "in range" when:
ATR is below its moving average, indicating low volatility.
ADX is below the threshold, confirming a lack of trend strength.
Visual Indication:
A yellow background highlights range-bound conditions, allowing traders to avoid low-probability trades.
Breakout Detection:
Alerts are triggered for breakouts above or below the range to help traders identify potential opportunities.
Features:
Range Highlighting:
Automatically detects and highlights range-bound markets using a yellow background.
Breakout Alerts:
Sends alerts for breakouts above or below the range once the market exits consolidation.
Customizable Inputs:
ATR length, moving average length, and ADX parameters are fully adjustable to adapt to various trading styles and asset classes.
Multi-Timeframe Compatibility:
Suitable for all markets and timeframes, including stocks, forex, and cryptocurrencies.
How to Use:
Identify Ranges:
Avoid trading when the yellow background appears, signaling a range-bound market.
Focus on Breakouts:
Look for alerts indicating breakouts above or below the range for potential trending opportunities.
Combine with Other Indicators:
Use volume analysis, momentum oscillators, or candlestick patterns to confirm breakout signals.
Credits:
This script utilizes widely accepted methodologies for ATR and ADX calculations. ADX is calculated manually using directional movement (+DI and -DI) for precise trend detection. The concept has been adapted and enhanced to create this comprehensive range-detection tool.
Notes:
This indicator is intended for educational purposes and should not be used as standalone financial advice.
Always incorporate this tool into a broader trading strategy for optimal results.
ICT Master Suite [Trading IQ]Hello Traders!
We’re excited to introduce the ICT Master Suite by TradingIQ, a new tool designed to bring together several ICT concepts and strategies in one place.
The Purpose Behind the ICT Master Suite
There are a few challenges traders often face when using ICT-related indicators:
Many available indicators focus on one or two ICT methods, which can limit traders who apply a broader range of ICT related techniques on their charts.
There aren't many indicators for ICT strategy models, and we couldn't find ICT indicators that allow for testing the strategy models and setting alerts.
Many ICT related concepts exist in the public domain as indicators, not strategies! This makes it difficult to verify that the ICT concept has some utility in the market you're trading and if it's worth trading - it's difficult to know if it's working!
Some users might not have enough chart space to apply numerous ICT related indicators, which can be restrictive for those wanting to use multiple ICT techniques simultaneously.
The ICT Master Suite is designed to offer a comprehensive option for traders who want to apply a variety of ICT methods. By combining several ICT techniques and strategy models into one indicator, it helps users maximize their chart space while accessing multiple tools in a single slot.
Additionally, the ICT Master Suite was developed as a strategy . This means users can backtest various ICT strategy models - including deep backtesting. A primary goal of this indicator is to let traders decide for themselves what markets to trade ICT concepts in and give them the capability to figure out if the strategy models are worth trading!
What Makes the ICT Master Suite Different
There are many ICT-related indicators available on TradingView, each offering valuable insights. What the ICT Master Suite aims to do is bring together a wider selection of these techniques into one tool. This includes both key ICT methods and strategy models, allowing traders to test and activate strategies all within one indicator.
Features
The ICT Master Suite offers:
Multiple ICT strategy models, including the 2022 Strategy Model and Unicorn Model, which can be built, tested, and used for live trading.
Calculation and display of key price areas like Breaker Blocks, Rejection Blocks, Order Blocks, Fair Value Gaps, Equal Levels, and more.
The ability to set alerts based on these ICT strategies and key price areas.
A comprehensive, yet practical, all-inclusive ICT indicator for traders.
Customizable Timeframe - Calculate ICT concepts on off-chart timeframes
Unicorn Strategy Model
2022 Strategy Model
Liquidity Raid Strategy Model
OTE (Optimal Trade Entry) Strategy Model
Silver Bullet Strategy Model
Order blocks
Breaker blocks
Rejection blocks
FVG
Strong highs and lows
Displacements
Liquidity sweeps
Power of 3
ICT Macros
HTF previous bar high and low
Break of Structure indications
Market Structure Shift indications
Equal highs and lows
Swings highs and swing lows
Fibonacci TPs and SLs
Swing level TPs and SLs
Previous day high and low TPs and SLs
And much more! An ongoing project!
How To Use
Many traders will already be familiar with the ICT related concepts listed above, and will find using the ICT Master Suite quite intuitive!
Despite this, let's go over the features of the tool in-depth and how to use the tool!
The image above shows the ICT Master Suite with almost all techniques activated.
ICT 2022 Strategy Model
The ICT Master suite provides the ability to test, set alerts for, and live trade the ICT 2022 Strategy Model.
The image above shows an example of a long position being entered following a complete setup for the 2022 ICT model.
A liquidity sweep occurs prior to an upside breakout. During the upside breakout the model looks for the FVG that is nearest 50% of the setup range. A limit order is placed at this FVG for entry.
The target entry percentage for the range is customizable in the settings. For instance, you can select to enter at an FVG nearest 33% of the range, 20%, 66%, etc.
The profit target for the model generally uses the highest high of the range (100%) for longs and the lowest low of the range (100%) for shorts. Stop losses are generally set at 0% of the range.
The image above shows the short model in action!
Whether you decide to follow the 2022 model diligently or not, you can still set alerts when the entry condition is met.
ICT Unicorn Model
The image above shows an example of a long position being entered following a complete setup for the ICT Unicorn model.
A lower swing low followed by a higher swing high precedes the overlap of an FVG and breaker block formed during the sequence.
During the upside breakout the model looks for an FVG and breaker block that formed during the sequence and overlap each other. A limit order is placed at the nearest overlap point to current price.
The profit target for this example trade is set at the swing high and the stop loss at the swing low. However, both the profit target and stop loss for this model are configurable in the settings.
For Longs, the selectable profit targets are:
Swing High
Fib -0.5
Fib -1
Fib -2
For Longs, the selectable stop losses are:
Swing Low
Bottom of FVG or breaker block
The image above shows the short version of the Unicorn Model in action!
For Shorts, the selectable profit targets are:
Swing Low
Fib -0.5
Fib -1
Fib -2
For Shorts, the selectable stop losses are:
Swing High
Top of FVG or breaker block
The image above shows the profit target and stop loss options in the settings for the Unicorn Model.
Optimal Trade Entry (OTE) Model
The image above shows an example of a long position being entered following a complete setup for the OTE model.
Price retraces either 0.62, 0.705, or 0.79 of an upside move and a trade is entered.
The profit target for this example trade is set at the -0.5 fib level. This is also adjustable in the settings.
For Longs, the selectable profit targets are:
Swing High
Fib -0.5
Fib -1
Fib -2
The image above shows the short version of the OTE Model in action!
For Shorts, the selectable profit targets are:
Swing Low
Fib -0.5
Fib -1
Fib -2
Liquidity Raid Model
The image above shows an example of a long position being entered following a complete setup for the Liquidity Raid Modell.
The user must define the session in the settings (for this example it is 13:30-16:00 NY time).
During the session, the indicator will calculate the session high and session low. Following a “raid” of either the session high or session low (after the session has completed) the script will look for an entry at a recently formed breaker block.
If the session high is raided the script will look for short entries at a bearish breaker block. If the session low is raided the script will look for long entries at a bullish breaker block.
For Longs, the profit target options are:
Swing high
User inputted Lib level
For Longs, the stop loss options are:
Swing low
User inputted Lib level
Breaker block bottom
The image above shows the short version of the Liquidity Raid Model in action!
For Shorts, the profit target options are:
Swing Low
User inputted Lib level
For Shorts, the stop loss options are:
Swing High
User inputted Lib level
Breaker block top
Silver Bullet Model
The image above shows an example of a long position being entered following a complete setup for the Silver Bullet Modell.
During the session, the indicator will determine the higher timeframe bias. If the higher timeframe bias is bullish the strategy will look to enter long at an FVG that forms during the session. If the higher timeframe bias is bearish the indicator will look to enter short at an FVG that forms during the session.
For Longs, the profit target options are:
Nearest Swing High Above Entry
Previous Day High
For Longs, the stop loss options are:
Nearest Swing Low
Previous Day Low
The image above shows the short version of the Silver Bullet Model in action!
For Shorts, the profit target options are:
Nearest Swing Low Below Entry
Previous Day Low
For Shorts, the stop loss options are:
Nearest Swing High
Previous Day High
Order blocks
The image above shows indicator identifying and labeling order blocks.
The color of the order blocks, and how many should be shown, are configurable in the settings!
Breaker Blocks
The image above shows indicator identifying and labeling order blocks.
The color of the breaker blocks, and how many should be shown, are configurable in the settings!
Rejection Blocks
The image above shows indicator identifying and labeling rejection blocks.
The color of the rejection blocks, and how many should be shown, are configurable in the settings!
Fair Value Gaps
The image above shows indicator identifying and labeling fair value gaps.
The color of the fair value gaps, and how many should be shown, are configurable in the settings!
Additionally, you can select to only show fair values gaps that form after a liquidity sweep. Doing so reduces "noisy" FVGs and focuses on identifying FVGs that form after a significant trading event.
The image above shows the feature enabled. A fair value gap that occurred after a liquidity sweep is shown.
Market Structure
The image above shows the ICT Master Suite calculating market structure shots and break of structures!
The color of MSS and BoS, and whether they should be displayed, are configurable in the settings.
Displacements
The images above show indicator identifying and labeling displacements.
The color of the displacements, and how many should be shown, are configurable in the settings!
Equal Price Points
The image above shows the indicator identifying and labeling equal highs and equal lows.
The color of the equal levels, and how many should be shown, are configurable in the settings!
Previous Custom TF High/Low
The image above shows the ICT Master Suite calculating the high and low price for a user-defined timeframe. In this case the previous day’s high and low are calculated.
To illustrate the customizable timeframe function, the image above shows the indicator calculating the previous 4 hour high and low.
Liquidity Sweeps
The image above shows the indicator identifying a liquidity sweep prior to an upside breakout.
The image above shows the indicator identifying a liquidity sweep prior to a downside breakout.
The color and aggressiveness of liquidity sweep identification are adjustable in the settings!
Power Of Three
The image above shows the indicator calculating Po3 for two user-defined higher timeframes!
Macros
The image above shows the ICT Master Suite identifying the ICT macros!
ICT Macros are only displayable on the 5 minute timeframe or less.
Strategy Performance Table
In addition to a full-fledged TradingView backtest for any of the ICT strategy models the indicator offers, a quick-and-easy strategy table exists for the indicator!
The image above shows the strategy performance table in action.
Keep in mind that, because the ICT Master Suite is a strategy script, you can perform fully automatic backtests, deep backtests, easily add commission and portfolio balance and look at pertinent metrics for the ICT strategies you are testing!
Lite Mode
Traders who want the cleanest chart possible can toggle on “Lite Mode”!
In Lite Mode, any neon or “glow” like effects are removed and key levels are marked as strict border boxes. You can also select to remove box borders if that’s what you prefer!
Settings Used For Backtest
For the displayed backtest, a starting balance of $1000 USD was used. A commission of 0.02%, slippage of 2 ticks, a verify price for limit orders of 2 ticks, and 5% of capital investment per order.
A commission of 0.02% was used due to the backtested asset being a perpetual future contract for a crypto currency. The highest commission (lowest-tier VIP) for maker orders on many exchanges is 0.02%. All entered positions take place as maker orders and so do profit target exits. Stop orders exist as stop-market orders.
A slippage of 2 ticks was used to simulate more realistic stop-market orders. A verify limit order settings of 2 ticks was also used. Even though BTCUSDT.P on Binance is liquid, we just want the backtest to be on the safe side. Additionally, the backtest traded 100+ trades over the period. The higher the sample size the better; however, this example test can serve as a starting point for traders interested in ICT concepts.
Community Assistance And Feedback
Given the complexity and idiosyncratic applications of ICT concepts amongst its proponents, the ICT Master Suite’s built-in strategies and level identification methods might not align with everyone's interpretation.
That said, the best we can do is precisely define ICT strategy rules and concepts to a repeatable process, test, and apply them! Whether or not an ICT strategy is trading precisely how you would trade it, seeing the model in action, taking trades, and with performance statistics is immensely helpful in assessing predictive utility.
If you think we missed something, you notice a bug, have an idea for strategy model improvement, please let us know! The ICT Master Suite is an ongoing project that will, ideally, be shaped by the community.
A big thank you to the @PineCoders for their Time Library!
Thank you!
Trading IQ - ICT LibraryLibrary "ICTlibrary"
Used to calculate various ICT related price levels and strategies. An ongoing project.
Hello Coders!
This library is meant for sourcing ICT related concepts. While some functions might generate more output than you require, you can specify "Lite Mode" as "true" in applicable functions to slim down necessary inputs.
isLastBar(userTF)
Identifies the last bar on the chart before a timeframe change
Parameters:
userTF (simple int) : the timeframe you wish to calculate the last bar for, must be converted to integer using 'timeframe.in_seconds()'
Returns: bool true if bar on chart is last bar of higher TF, dalse if bar on chart is not last bar of higher TF
necessaryData(atrTF)
returns necessaryData UDT for historical data access
Parameters:
atrTF (float) : user-selected timeframe ATR value.
Returns: logZ. log return Z score, used for calculating order blocks.
method gradBoxes(gradientBoxes, idColor, timeStart, bottom, top, rightCoordinate)
creates neon like effect for box drawings
Namespace types: array
Parameters:
gradientBoxes (array) : an array.new() to store the gradient boxes
idColor (color)
timeStart (int) : left point of box
bottom (float) : bottom of box price point
top (float) : top of box price point
rightCoordinate (int) : right point of box
Returns: void
checkIfTraded(tradeName)
checks if recent trade is of specific name
Parameters:
tradeName (string)
Returns: bool true if recent trade id matches target name, false otherwise
checkIfClosed(tradeName)
checks if recent closed trade is of specific name
Parameters:
tradeName (string)
Returns: bool true if recent closed trade id matches target name, false otherwise
IQZZ(atrMult, finalTF)
custom ZZ to quickly determine market direction.
Parameters:
atrMult (float) : an atr multiplier used to determine the required price move for a ZZ direction change
finalTF (string) : the timeframe used for the atr calcuation
Returns: dir market direction. Up => 1, down => -1
method drawBos(id, startPoint, getKeyPointTime, getKeyPointPrice, col, showBOS, isUp)
calculates and draws Break Of Structure
Namespace types: array
Parameters:
id (array)
startPoint (chart.point)
getKeyPointTime (int) : the actual time of startPoint, simplystartPoint.time
getKeyPointPrice (float) : the actual time of startPoint, simplystartPoint.price
col (color) : color of the BoS line / label
showBOS (bool) : whether to show label/line. This function still calculates internally for other ICT related concepts even if not drawn.
isUp (bool) : whether BoS happened during price increase or price decrease.
Returns: void
method drawMSS(id, startPoint, getKeyPointTime, getKeyPointPrice, col, showMSS, isUp, upRejections, dnRejections, highArr, lowArr, timeArr, closeArr, openArr, atrTFarr, upRejectionsPrices, dnRejectionsPrices)
calculates and draws Market Structure Shift. This data is also used to calculate Rejection Blocks.
Namespace types: array
Parameters:
id (array)
startPoint (chart.point)
getKeyPointTime (int) : the actual time of startPoint, simplystartPoint.time
getKeyPointPrice (float) : the actual time of startPoint, simplystartPoint.price
col (color) : color of the MSS line / label
showMSS (bool) : whether to show label/line. This function still calculates internally for other ICT related concepts even if not drawn.
isUp (bool) : whether MSS happened during price increase or price decrease.
upRejections (array)
dnRejections (array)
highArr (array) : array containing historical highs, should be taken from the UDT "necessaryData" defined above
lowArr (array) : array containing historical lows, should be taken from the UDT "necessaryData" defined above
timeArr (array) : array containing historical times, should be taken from the UDT "necessaryData" defined above
closeArr (array) : array containing historical closes, should be taken from the UDT "necessaryData" defined above
openArr (array) : array containing historical opens, should be taken from the UDT "necessaryData" defined above
atrTFarr (array) : array containing historical atr values (of user-selected TF), should be taken from the UDT "necessaryData" defined above
upRejectionsPrices (array) : array containing up rejections prices. Is sorted and used to determine selective looping for invalidations.
dnRejectionsPrices (array) : array containing down rejections prices. Is sorted and used to determine selective looping for invalidations.
Returns: void
method getTime(id, compare, timeArr)
gets time of inputted price (compare) in an array of data
this is useful when the user-selected timeframe for ICT concepts is greater than the chart's timeframe
Namespace types: array
Parameters:
id (array) : the array of data to search through, to find which index has the same value as "compare"
compare (float) : the target data point to find in the array
timeArr (array) : array of historical times
Returns: the time that the data point in the array was recorded
method OB(id, highArr, signArr, lowArr, timeArr, sign)
store bullish orderblock data
Namespace types: array
Parameters:
id (array)
highArr (array) : array of historical highs
signArr (array) : array of historical price direction "math.sign(close - open)"
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
sign (int) : orderblock direction, -1 => bullish, 1 => bearish
Returns: void
OTEstrat(OTEstart, future, closeArr, highArr, lowArr, timeArr, longOTEPT, longOTESL, longOTElevel, shortOTEPT, shortOTESL, shortOTElevel, structureDirection, oteLongs, atrTF, oteShorts)
executes the OTE strategy
Parameters:
OTEstart (chart.point)
future (int) : future time point for drawings
closeArr (array) : array of historical closes
highArr (array) : array of historical highs
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
longOTEPT (string) : user-selected long OTE profit target, please create an input.string() for this using the example below
longOTESL (int) : user-selected long OTE stop loss, please create an input.string() for this using the example below
longOTElevel (float) : long entry price of selected retracement ratio for OTE
shortOTEPT (string) : user-selected short OTE profit target, please create an input.string() for this using the example below
shortOTESL (int) : user-selected short OTE stop loss, please create an input.string() for this using the example below
shortOTElevel (float) : short entry price of selected retracement ratio for OTE
structureDirection (string) : current market structure direction, this should be "Up" or "Down". This is used to cancel pending orders if market structure changes
oteLongs (bool) : input.bool() for whether OTE longs can be executed
atrTF (float) : atr of the user-seleceted TF
oteShorts (bool) : input.bool() for whether OTE shorts can be executed
@exampleInputs
oteLongs = input.bool(defval = false, title = "OTE Longs", group = "Optimal Trade Entry")
longOTElevel = input.float(defval = 0.79, title = "Long Entry Retracement Level", options = , group = "Optimal Trade Entry")
longOTEPT = input.string(defval = "-0.5", title = "Long TP", options = , group = "Optimal Trade Entry")
longOTESL = input.int(defval = 0, title = "How Many Ticks Below Swing Low For Stop Loss", group = "Optimal Trade Entry")
oteShorts = input.bool(defval = false, title = "OTE Shorts", group = "Optimal Trade Entry")
shortOTElevel = input.float(defval = 0.79, title = "Short Entry Retracement Level", options = , group = "Optimal Trade Entry")
shortOTEPT = input.string(defval = "-0.5", title = "Short TP", options = , group = "Optimal Trade Entry")
shortOTESL = input.int(defval = 0, title = "How Many Ticks Above Swing Low For Stop Loss", group = "Optimal Trade Entry")
Returns: void (0)
displacement(logZ, atrTFreg, highArr, timeArr, lowArr, upDispShow, dnDispShow, masterCoords, labelLevels, dispUpcol, rightCoordinate, dispDncol, noBorders)
calculates and draws dispacements
Parameters:
logZ (float) : log return of current price, used to determine a "significant price move" for a displacement
atrTFreg (float) : atr of user-seleceted timeframe
highArr (array) : array of historical highs
timeArr (array) : array of historical times
lowArr (array) : array of historical lows
upDispShow (int) : amount of historical upside displacements to show
dnDispShow (int) : amount of historical downside displacements to show
masterCoords (map) : a map to push the most recent displacement prices into, useful for having key levels in one data structure
labelLevels (string) : used to determine label placement for the displacement, can be inside box, outside box, or none, example below
dispUpcol (color) : upside displacement color
rightCoordinate (int) : future time for displacement drawing, best is "last_bar_time"
dispDncol (color) : downside displacement color
noBorders (bool) : input.bool() to remove box borders, example below
@exampleInputs
labelLevels = input.string(defval = "Inside" , title = "Box Label Placement", options = )
noBorders = input.bool(defval = false, title = "No Borders On Levels")
Returns: void
method getStrongLow(id, startIndex, timeArr, lowArr, strongLowPoints)
unshift strong low data to array id
Namespace types: array
Parameters:
id (array)
startIndex (int) : the starting index for the timeArr array of the UDT "necessaryData".
this point should start from at least 1 pivot prior to find the low before an upside BoS
timeArr (array) : array of historical times
lowArr (array) : array of historical lows
strongLowPoints (array) : array of strong low prices. Used to retrieve highest strong low price and see if need for
removal of invalidated strong lows
Returns: void
method getStrongHigh(id, startIndex, timeArr, highArr, strongHighPoints)
unshift strong high data to array id
Namespace types: array
Parameters:
id (array)
startIndex (int) : the starting index for the timeArr array of the UDT "necessaryData".
this point should start from at least 1 pivot prior to find the high before a downside BoS
timeArr (array) : array of historical times
highArr (array) : array of historical highs
strongHighPoints (array)
Returns: void
equalLevels(highArr, lowArr, timeArr, rightCoordinate, equalHighsCol, equalLowsCol, liteMode)
used to calculate recent equal highs or equal lows
Parameters:
highArr (array) : array of historical highs
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
rightCoordinate (int) : a future time (right for boxes, x2 for lines)
equalHighsCol (color) : user-selected color for equal highs drawings
equalLowsCol (color) : user-selected color for equal lows drawings
liteMode (bool) : optional for a lite mode version of an ICT strategy. For more control over drawings leave as "True", "False" will apply neon effects
Returns: void
quickTime(timeString)
used to quickly determine if a user-inputted time range is currently active in NYT time
Parameters:
timeString (string) : a time range
Returns: true if session is active, false if session is inactive
macros(showMacros, noBorders)
used to calculate and draw session macros
Parameters:
showMacros (bool) : an input.bool() or simple bool to determine whether to activate the function
noBorders (bool) : an input.bool() to determine whether the box anchored to the session should have borders
Returns: void
po3(tf, left, right, show)
use to calculate HTF po3 candle
@tip only call this function on "barstate.islast"
Parameters:
tf (simple string)
left (int) : the left point of the candle, calculated as bar_index + left,
right (int) : :the right point of the candle, calculated as bar_index + right,
show (bool) : input.bool() whether to show the po3 candle or not
Returns: void
silverBullet(silverBulletStratLong, silverBulletStratShort, future, userTF, H, L, H2, L2, noBorders, silverBulletLongTP, historicalPoints, historicalData, silverBulletLongSL, silverBulletShortTP, silverBulletShortSL)
used to execute the Silver Bullet Strategy
Parameters:
silverBulletStratLong (simple bool)
silverBulletStratShort (simple bool)
future (int) : a future time, used for drawings, example "last_bar_time"
userTF (simple int)
H (float) : the high price of the user-selected TF
L (float) : the low price of the user-selected TF
H2 (float) : the high price of the user-selected TF
L2 (float) : the low price of the user-selected TF
noBorders (bool) : an input.bool() used to remove the borders from box drawings
silverBulletLongTP (series silverBulletLevels)
historicalPoints (array)
historicalData (necessaryData)
silverBulletLongSL (series silverBulletLevels)
silverBulletShortTP (series silverBulletLevels)
silverBulletShortSL (series silverBulletLevels)
Returns: void
method invalidFVGcheck(FVGarr, upFVGpricesSorted, dnFVGpricesSorted)
check if existing FVGs are still valid
Namespace types: array
Parameters:
FVGarr (array)
upFVGpricesSorted (array) : an array of bullish FVG prices, used to selective search through FVG array to remove invalidated levels
dnFVGpricesSorted (array) : an array of bearish FVG prices, used to selective search through FVG array to remove invalidated levels
Returns: void (0)
method drawFVG(counter, FVGshow, FVGname, FVGcol, data, masterCoords, labelLevels, borderTransp, liteMode, rightCoordinate)
draws FVGs on last bar
Namespace types: map
Parameters:
counter (map) : a counter, as map, keeping count of the number of FVGs drawn, makes sure that there aren't more FVGs drawn
than int FVGshow
FVGshow (int) : the number of FVGs to show. There should be a bullish FVG show and bearish FVG show. This function "drawFVG" is used separately
for bearish FVG and bullish FVG.
FVGname (string) : the name of the FVG, "FVG Up" or "FVG Down"
FVGcol (color) : desired FVG color
data (FVG)
masterCoords (map) : a map containing the names and price points of key levels. Used to define price ranges.
labelLevels (string) : an input.string with options "Inside", "Outside", "Remove". Determines whether FVG labels should be inside box, outside,
or na.
borderTransp (int)
liteMode (bool)
rightCoordinate (int) : the right coordinate of any drawings. Must be a time point.
Returns: void
invalidBlockCheck(bullishOBbox, bearishOBbox, userTF)
check if existing order blocks are still valid
Parameters:
bullishOBbox (array) : an array declared using the UDT orderBlock that contains bullish order block related data
bearishOBbox (array) : an array declared using the UDT orderBlock that contains bearish order block related data
userTF (simple int)
Returns: void (0)
method lastBarRejections(id, rejectionColor, idShow, rejectionString, labelLevels, borderTransp, liteMode, rightCoordinate, masterCoords)
draws rejectionBlocks on last bar
Namespace types: array
Parameters:
id (array) : the array, an array of rejection block data declared using the UDT rejection block
rejectionColor (color) : the desired color of the rejection box
idShow (int)
rejectionString (string) : the desired name of the rejection blocks
labelLevels (string) : an input.string() to determine if labels for the block should be inside the box, outside, or none.
borderTransp (int)
liteMode (bool) : an input.bool(). True = neon effect, false = no neon.
rightCoordinate (int) : atime for the right coordinate of the box
masterCoords (map) : a map that stores the price of key levels and assigns them a name, used to determine price ranges
Returns: void
method OBdraw(id, OBshow, BBshow, OBcol, BBcol, bullishString, bearishString, isBullish, labelLevels, borderTransp, liteMode, rightCoordinate, masterCoords)
draws orderblocks and breaker blocks for data stored in UDT array()
Namespace types: array
Parameters:
id (array) : the array, an array of order block data declared using the UDT orderblock
OBshow (int) : the number of order blocks to show
BBshow (int) : the number of breaker blocks to show
OBcol (color) : color of order blocks
BBcol (color) : color of breaker blocks
bullishString (string) : the title of bullish blocks, which is a regular bullish orderblock or a bearish orderblock that's converted to breakerblock
bearishString (string) : the title of bearish blocks, which is a regular bearish orderblock or a bullish orderblock that's converted to breakerblock
isBullish (bool) : whether the array contains bullish orderblocks or bearish orderblocks. If bullish orderblocks,
the array will naturally contain bearish BB, and if bearish OB, the array will naturally contain bullish BB
labelLevels (string) : an input.string() to determine if labels for the block should be inside the box, outside, or none.
borderTransp (int)
liteMode (bool) : an input.bool(). True = neon effect, false = no neon.
rightCoordinate (int) : atime for the right coordinate of the box
masterCoords (map) : a map that stores the price of key levels and assigns them a name, used to determine price ranges
Returns: void
FVG
UDT for FVG calcualtions
Fields:
H (series float) : high price of user-selected timeframe
L (series float) : low price of user-selected timeframe
direction (series string) : FVG direction => "Up" or "Down"
T (series int) : => time of bar on user-selected timeframe where FVG was created
fvgLabel (series label) : optional label for FVG
fvgLineTop (series line) : optional line for top of FVG
fvgLineBot (series line) : optional line for bottom of FVG
fvgBox (series box) : optional box for FVG
labelLine
quickly pair a line and label together as UDT
Fields:
lin (series line) : Line you wish to pair with label
lab (series label) : Label you wish to pair with line
orderBlock
UDT for order block calculations
Fields:
orderBlockData (array) : array containing order block x and y points
orderBlockBox (series box) : optional order block box
vioCount (series int) : = 0 violation count of the order block. 0 = Order Block, 1 = Breaker Block
traded (series bool)
status (series string) : = "OB" status == "OB" => Level is order block. status == "BB" => Level is breaker block.
orderBlockLab (series label) : options label for the order block / breaker block.
strongPoints
UDT for strong highs and strong lows
Fields:
price (series float) : price of the strong high or strong low
timeAtprice (series int) : time of the strong high or strong low
strongPointLabel (series label) : optional label for strong point
strongPointLine (series line) : optional line for strong point
overlayLine (series line) : optional lines for strong point to enhance visibility
overlayLine2 (series line) : optional lines for strong point to enhance visibility
displacement
UDT for dispacements
Fields:
highPrice (series float) : high price of displacement
lowPrice (series float) : low price of displacement
timeAtPrice (series int) : time of bar where displacement occurred
displacementBox (series box) : optional box to draw displacement
displacementLab (series label) : optional label for displacement
po3data
UDT for po3 calculations
Fields:
dHigh (series float) : higher timeframe high price
dLow (series float) : higher timeframe low price
dOpen (series float) : higher timeframe open price
dClose (series float) : higher timeframe close price
po3box (series box) : box to draw po3 candle body
po3line (array) : line array to draw po3 wicks
po3Labels (array) : label array to label price points of po3 candle
macros
UDT for session macros
Fields:
sessions (array) : Array of sessions, you can populate this array using the "quickTime" function located above "export macros".
prices (matrix) : Matrix of session data -> open, high, low, close, time
sessionTimes (array) : Array of session names. Pairs with array sessions.
sessionLines (matrix) : Optional array for sesion drawings.
OTEtimes
UDT for data storage and drawings associated with OTE strategy
Fields:
upTimes (array) : time of highest point before trade is taken
dnTimes (array) : time of lowest point before trade is taken
tpLineLong (series line) : line to mark tp level long
tpLabelLong (series label) : label to mark tp level long
slLineLong (series line) : line to mark sl level long
slLabelLong (series label) : label to mark sl level long
tpLineShort (series line) : line to mark tp level short
tpLabelShort (series label) : label to mark tp level short
slLineShort (series line) : line to mark sl level short
slLabelShort (series label) : label to mark sl level short
sweeps
UDT for data storage and drawings associated with liquidity sweeps
Fields:
upSweeps (matrix) : matrix containing liquidity sweep price points and time points for up sweeps
dnSweeps (matrix) : matrix containing liquidity sweep price points and time points for down sweeps
upSweepDrawings (array) : optional up sweep box array. Pair the size of this array with the rows or columns,
dnSweepDrawings (array) : optional up sweep box array. Pair the size of this array with the rows or columns,
raidExitDrawings
UDT for drawings associated with the Liquidity Raid Strategy
Fields:
tpLine (series line) : tp line for the liquidity raid entry
tpLabel (series label) : tp label for the liquidity raid entry
slLine (series line) : sl line for the liquidity raid entry
slLabel (series label) : sl label for the liquidity raid entry
m2022
UDT for data storage and drawings associated with the Model 2022 Strategy
Fields:
mTime (series int) : time of the FVG where entry limit order is placed
mIndex (series int) : array index of FVG where entry limit order is placed. This requires an array of FVG data, which is defined above.
mEntryDistance (series float) : the distance of the FVG to the 50% range. M2022 looks for the fvg closest to 50% mark of range.
mEntry (series float) : the entry price for the most eligible fvg
fvgHigh (series float) : the high point of the eligible fvg
fvgLow (series float) : the low point of the eligible fvg
longFVGentryBox (series box) : long FVG box, used to draw the eligible FVG
shortFVGentryBox (series box) : short FVG box, used to draw the eligible FVG
line50P (series line) : line used to mark 50% of the range
line100P (series line) : line used to mark 100% (top) of the range
line0P (series line) : line used to mark 0% (bottom) of the range
label50P (series label) : label used to mark 50% of the range
label100P (series label) : label used to mark 100% (top) of the range
label0P (series label) : label used to mark 0% (bottom) of the range
sweepData (array)
silverBullet
UDT for data storage and drawings associated with the Silver Bullet Strategy
Fields:
session (series bool)
sessionStr (series string) : name of the session for silver bullet
sessionBias (series string)
sessionHigh (series float) : = high high of session // use math.max(silverBullet.sessionHigh, high)
sessionLow (series float) : = low low of session // use math.min(silverBullet.sessionLow, low)
sessionFVG (series float) : if applicable, the FVG created during the session
sessionFVGdraw (series box) : if applicable, draw the FVG created during the session
traded (series bool)
tp (series float) : tp of trade entered at the session FVG
sl (series float) : sl of trade entered at the session FVG
sessionDraw (series box) : optional draw session with box
sessionDrawLabel (series label) : optional label session with label
silverBulletDrawings
UDT for trade exit drawings associated with the Silver Bullet Strategy
Fields:
tpLine (series line) : tp line drawing for strategy
tpLabel (series label) : tp label drawing for strategy
slLine (series line) : sl line drawing for strategy
slLabel (series label) : sl label drawing for strategy
unicornModel
UDT for data storage and drawings associated with the Unicorn Model Strategy
Fields:
hPoint (chart.point)
hPoint2 (chart.point)
hPoint3 (chart.point)
breakerBlock (series box) : used to draw the breaker block required for the Unicorn Model
FVG (series box) : used to draw the FVG required for the Unicorn model
topBlock (series float) : price of top of breaker block, can be used to detail trade entry
botBlock (series float) : price of bottom of breaker block, can be used to detail trade entry
startBlock (series int) : start time of the breaker block, used to set the "left = " param for the box
includes (array) : used to store the time of the breaker block, or FVG, or the chart point sequence that setup the Unicorn Model.
entry (series float) : // eligible entry price, for longs"math.max(topBlock, FVG.get_top())",
tpLine (series line) : optional line to mark PT
tpLabel (series label) : optional label to mark PT
slLine (series line) : optional line to mark SL
slLabel (series label) : optional label to mark SL
rejectionBlocks
UDT for data storage and drawings associated with rejection blocks
Fields:
rejectionPoint (chart.point)
bodyPrice (series float) : candle body price closest to the rejection point, for "Up" rejections => math.max(open, close),
rejectionBox (series box) : optional box drawing of the rejection block
rejectionLabel (series label) : optional label for the rejection block
equalLevelsDraw
UDT for data storage and drawings associated with equal highs / equal lows
Fields:
connector (series line) : single line placed at the first high or low, y = avgerage of distinguished equal highs/lows
connectorLab (series label) : optional label to be placed at the highs or lows
levels (array) : array containing the equal highs or lows prices
times (array) : array containing the equal highs or lows individual times
startTime (series int) : the time of the first high or low that forms a sequence of equal highs or lows
radiate (array) : options label to "radiate" the label in connector lab. Can be used for anything
necessaryData
UDT for data storage of historical price points.
Fields:
highArr (array) : array containing historical high points
lowArr (array) : array containing historical low points
timeArr (array) : array containing historical time points
logArr (array) : array containing historical log returns
signArr (array) : array containing historical price directions
closeArr (array) : array containing historical close points
binaryTimeArr (array) : array containing historical time points, uses "push" instead of "unshift" to allow for binary search
binaryCloseArr (array) : array containing historical close points, uses "push" instead of "unshift" to allow the correct
binaryOpenArr (array) : array containing historical optn points, uses "push" instead of "unshift" to allow the correct
atrTFarr (array) : array containing historical user-selected TF atr points
openArr (array) : array containing historical open points
Judas Swing ICT 01 [TradingFinder] New York Midnight Opening M15🔵 Introduction
The Judas Swing (ICT Judas Swing) is a trading strategy developed by Michael Huddleston, also known as Inner Circle Trader (ICT). This strategy allows traders to identify fake market moves designed by smart money to deceive retail traders.
By concentrating on market structure, price action patterns, and liquidity flows, traders can align their trades with institutional movements and avoid common pitfalls. It is particularly useful in FOREX and stock markets, helping traders identify optimal entry and exit points while minimizing risks from false breakouts.
In today's volatile markets, understanding how smart money manipulates price action across sessions such as Asia, London, and New York is essential for success. The ICT Judas Swing strategy helps traders avoid common pitfalls by focusing on key movements during the opening time and range of each session, identifying breakouts and false breakouts.
By utilizing various time frames and improving risk management, this strategy enables traders to make more informed decisions and take advantage of significant market movements.
In the Judas Swing strategy, for a bullish setup, the price first touches the high of the 15-minute range of New York midnight and then the low. After that, the price returns upward, breaks the high, and if there’s a candlestick confirmation during the pullback, a buy signal is generated.
bearish setup, the price first touches the low of the range, then the high. With the price returning downward and breaking the low, if there’s a candlestick confirmation during the pullback to the low, a sell signal is generated.
🔵 How to Use
To effectively implement the Judas Swing strategy (ICT Judas Swing) in trading, traders must first identify the price range of the 15-minute window following New York midnight. This range, consisting of highs and lows, sets the stage for the upcoming movements in the London and New York sessions.
🟣 Bullish Setup
For a bullish setup, the price first moves to touch the high of the range, then the low, before returning upward to break the high. Following this, a pullback occurs, and if a valid candlestick confirmation (such as a reversal pattern) is observed, a buy signal is generated. This confirmation could indicate the presence of smart money supporting the bullish movement.
🟣 Bearish Setup
For a bearish setup, the process is the reverse. The price first touches the low of the range, then the high. Afterward, the price moves downward again and breaks the low. A pullback follows to the broken low, and if a bearish candlestick confirmation is seen, a sell signal is generated. This confirmation signals the continuation of the downward price movement.
Using the Judas Swing strategy enables traders to avoid fake breakouts and focus on strong market confirmations. The strategy is versatile, applying to FOREX, stocks, and other financial instruments, offering optimal trading opportunities through market structure analysis and time frame synchronization.
To execute this strategy successfully, traders must combine it with effective risk management techniques such as setting appropriate stop losses and employing optimal risk-to-reward ratios. While the Judas Swing is a powerful tool for predicting price movements, traders should remember that no strategy is entirely risk-free. Proper capital management remains a critical element of long-term success.
By mastering the ICT Judas Swing strategy, traders can better identify entry and exit points and avoid common traps from fake market movements, ultimately improving their trading performance.
🔵 Setting
Opening Range : High and Low identification time range.
Extend : The time span of the dashed line.
Permit : Signal emission time range.
🔵 Conclusion
The Judas Swing strategy (ICT Judas Swing) is a powerful tool in technical analysis that helps traders identify fake moves and align their trades with institutional actions, reducing risk and enhancing their ability to capitalize on market opportunities.
By leveraging key levels such as range highs and lows, fake breakouts, and candlestick confirmations, traders can enter trades with more precision. This strategy is applicable in forex, stocks, and other financial markets and, with proper risk management, can lead to consistent trading success.
Dynamic Darvas BoxBu Darvas Box göstergesi, finansal piyasadaki potansiyel fiyat kırılımlarını hacimle birlikte analiz eden dinamik bir sistem sunar. Geliştirdiğiniz bu Pine Script, belirli bir "bakış aralığı" parametresi kullanarak geçmiş fiyat hareketlerinden yüksek ve düşük noktalar oluşturur ve bu seviyelerin kırılımını takip eder. Hacimli veya hacimsiz kırılımlar da ayrıca işaretlenir. Aşağıda hem Türkçe hem de İngilizce açıklamalar yer almakta:
Türkçe Açıklama:
Darvas Kutusu ve Hacim Kırılımı
Bu gösterge, fiyatların Darvas Kutusu mantığıyla analiz edilmesini sağlar ve kutunun kırılım seviyelerini hacimle birlikte değerlendirir.
Bakış Aralığı (bakis_araligi): Bu parametre, fiyatın geçmişte kaç bar geri giderek yeni bir yüksek veya düşük seviyenin tespit edilmesi gerektiğini belirler.
Hacim SMA (hacim_sma): Hacim için kullanılan basit hareketli ortalamanın (SMA) uzunluğunu belirler. Gösterge, hacim ortalamasının üzerinde veya altında olup olmadığını bu SMA değerine göre değerlendirir.
Kapanış Fiyatı ile Tamamlama (kapanis_kullan): Eğer bu seçenek aktifse, kutu kapanış fiyatı baz alınarak tamamlanır. Aksi takdirde, yüksek ve düşük seviyelerle tamamlanır.
Kırılım Fiyatını Göster (kirilim_goster): Hacim yetersiz olsa bile kırılım seviyesini etiketlemek için kullanılır.
Bu göstergede, yüksek bir fiyatın oluşması durumunda bir kutu başlatılır. Kutu, bakış aralığı boyunca yüksek ve düşük seviyeler ile onaylanır. Sonrasında, fiyatın kutu seviyesini kırıp kırmadığı izlenir. Eğer fiyat kutunun üzerine çıkarsa veya altına düşerse, hacim durumu kontrol edilerek bir "Hacimli Kırılım" veya "Hacimsiz Kırılım" etiketi gösterilir.
Kutu Arka Plan Renkleri: Kutu içerisindeki fiyat hareketinin durumu, renklerle gösterilir:
Yukarı Kırılım: Kutunun üst seviyesinin kırılması durumunda yeşil renk.
Aşağı Kırılım: Kutunun alt seviyesinin kırılması durumunda kırmızı renk.
Nötr: Kutu içinde tarafsız durum için sarı renk.
Ayrıca, kutunun orta hattı (orta_hat), yüksek ve düşük seviyelerin ortalamasını temsil eder ve fiyatın bu çizgiyi kaç kez kestiğini analiz etmek için kullanılabilir.
English Description:
Darvas Box and Volume Breakout
This indicator implements a dynamic Darvas Box strategy that tracks potential price breakouts in combination with volume analysis.
Lookback Period (bakis_araligi): This parameter defines how many bars back the price needs to look for determining a new high or low.
Volume SMA (hacim_sma): Specifies the length of the Simple Moving Average (SMA) for volume. The indicator uses this value to determine if volume is above or below average.
Completion with Closing Price (kapanis_kullan): If this option is enabled, the box is completed based on the closing price. Otherwise, the high and low prices are used for completion.
Show Breakout Price (kirilim_goster): This option is used to label the breakout price, even if the volume is below the average.
The indicator starts a box when a new high price is detected. The box is confirmed over the lookback period using high and low levels. The breakout levels are then monitored. If the price breaks above the upper or lower box boundary, it checks the volume condition and labels the breakout as either "Volume Breakout" or "Non-Volume Breakout."
Box Background Colors: The price movement within the box is represented with colors:
Upward Breakout: The background is green if the upper box boundary is broken.
Downward Breakout: The background is red if the lower boundary is broken.
Neutral: The background is yellow for neutral price movement within the box.
Additionally, the middle line (orta_hat) represents the average of the high and low levels and can be used to analyze how many times the price crosses this midline.
Price Action Analyst [OmegaTools]Price Action Analyst (PAA) is an advanced trading tool designed to assist traders in identifying key price action structures such as order blocks, market structure shifts, liquidity grabs, and imbalances. With its fully customizable settings, the script offers both novice and experienced traders insights into potential market movements by visually highlighting premium/discount zones, breakout signals, and significant price levels.
This script utilizes complex logic to determine significant price action patterns and provides dynamic tools to spot strong market trends, liquidity pools, and imbalances across different timeframes. It also integrates an internal backtesting function to evaluate win rates based on price interactions with supply and demand zones.
The script combines multiple analysis techniques, including market structure shifts, order block detection, fair value gaps (FVG), and ICT bias detection, to provide a comprehensive and holistic market view.
Key Features:
Order Block Detection: Automatically detects order blocks based on price action and strength analysis, highlighting potential support/resistance zones.
Market Structure Analysis: Tracks internal and external market structure changes with gradient color-coded visuals.
Liquidity Grabs & Breakouts: Detects potential liquidity grab and breakout areas with volume confirmation.
Fair Value Gaps (FVG): Identifies bullish and bearish FVGs based on historical price action and threshold calculations.
ICT Bias: Integrates ICT bias analysis, dynamically adjusting based on higher-timeframe analysis.
Supply and Demand Zones: Highlights supply and demand zones using customizable colors and thresholds, adjusting dynamically based on market conditions.
Trend Lines: Automatically draws trend lines based on significant price pivots, extending them dynamically over time.
Backtesting: Internal backtesting engine to calculate the win rate of signals generated within supply and demand zones.
Percentile-Based Pricing: Plots key percentile price levels to visualize premium, fair, and discount pricing zones.
High Customizability: Offers extensive user input options for adjusting zone detection, color schemes, and structure analysis.
User Guide:
Order Blocks: Order blocks are significant support or resistance zones where strong buyers or sellers previously entered the market. These zones are detected based on pivot points and engulfing price action. The strength of each block is determined by momentum, volume, and liquidity confirmations.
Demand Zones: Displayed in shades of blue based on their strength. The darker the color, the stronger the zone.
Supply Zones: Displayed in shades of red based on their strength. These zones highlight potential resistance areas.
The zones will dynamically extend as long as they remain valid. Users can set a maximum number of order blocks to be displayed.
Market Structure: Market structure is classified into internal and external shifts. A bullish or bearish market structure break (MSB) occurs when the price moves past a previous high or low. This script tracks these breaks and plots them using a gradient color scheme:
Internal Structure: Short-term market structure, highlighting smaller movements.
External Structure: Long-term market shifts, typically more significant.
Users can choose how they want the structure to be visualized through the "Market Structure" setting, choosing from different visual methods.
Liquidity Grabs: The script identifies liquidity grabs (false breakouts designed to trap traders) by monitoring price action around highs and lows of previous bars. These are represented by diamond shapes:
Liquidity Buy: Displayed below bars when a liquidity grab occurs near a low.
Liquidity Sell: Displayed above bars when a liquidity grab occurs near a high.
Breakouts: Breakouts are detected based on strong price momentum beyond key levels:
Breakout Buy: Triggered when the price closes above the highest point of the past 20 bars with confirmation from volume and range expansion.
Breakout Sell: Triggered when the price closes below the lowest point of the past 20 bars, again with volume and range confirmation.
Fair Value Gaps (FVG): Fair value gaps (FVGs) are periods where the price moves too quickly, leaving an unbalanced market condition. The script identifies these gaps:
Bullish FVG: When there is a gap between the low of two previous bars and the high of a recent bar.
Bearish FVG: When a gap occurs between the high of two previous bars and the low of the recent bar.
FVGs are color-coded and can be filtered by their size to focus on more significant gaps.
ICT Bias: The script integrates the ICT methodology by offering an auto-calculated higher-timeframe bias:
Long Bias: Suggests the market is in an uptrend based on higher timeframe analysis.
Short Bias: Indicates a downtrend.
Neutral Bias: Suggests no clear directional bias.
Trend Lines: Automatic trend lines are drawn based on significant pivot highs and lows. These lines will dynamically adjust based on price movement. Users can control the number of trend lines displayed and extend them over time to track developing trends.
Percentile Pricing: The script also plots the 25th percentile (discount zone), 75th percentile (premium zone), and a fair value price. This helps identify whether the current price is overbought (premium) or oversold (discount).
Customization:
Zone Strength Filter: Users can set a minimum strength threshold for order blocks to be displayed.
Color Customization: Users can choose colors for demand and supply zones, market structure, breakouts, and FVGs.
Dynamic Zone Management: The script allows zones to be deleted after a certain number of bars or dynamically adjusts zones based on recent price action.
Max Zone Count: Limits the number of supply and demand zones shown on the chart to maintain clarity.
Backtesting & Win Rate: The script includes a backtesting engine to calculate the percentage of respect on the interaction between price and demand/supply zones. Results are displayed in a table at the bottom of the chart, showing the percentage rating for both long and short zones. Please note that this is not a win rate of a simulated strategy, it simply is a measure to understand if the current assets tends to respect more supply or demand zones.
How to Use:
Load the script onto your chart. The default settings are optimized for identifying key price action zones and structure on intraday charts of liquid assets.
Customize the settings according to your strategy. For example, adjust the "Max Orderblocks" and "Strength Filter" to focus on more significant price action areas.
Monitor the liquidity grabs, breakouts, and FVGs for potential trade opportunities.
Use the bias and market structure analysis to align your trades with the prevailing market trend.
Refer to the backtesting win rates to evaluate the effectiveness of the zones in your trading.
Terms & Conditions:
By using this script, you agree to the following terms:
Educational Purposes Only: This script is provided for informational and educational purposes and does not constitute financial advice. Use at your own risk.
No Warranty: The script is provided "as-is" without any guarantees or warranties regarding its accuracy or completeness. The creator is not responsible for any losses incurred from the use of this tool.
Open-Source License: This script is open-source and may be modified or redistributed in accordance with the TradingView open-source license. Proper credit to the original creator, OmegaTools, must be maintained in any derivative works.
Smart Money Concept Strategy - Uncle SamThis strategy combines concepts from two popular TradingView scripts:
Smart Money Concepts (SMC) : The strategy identifies key levels in the market (swing highs and lows) and draws trend lines to visualize potential breakouts. It uses volume analysis to gauge the strength of these breakouts.
Smart Money Breakouts : This part of the strategy incorporates the idea of "Smart Money" – institutional traders who often lead market movements. It looks for breakouts of established levels with significant volume, aiming to catch the beginning of new trends.
How the Strategy Works:
Identification of Key Levels: The script identifies swing highs and swing lows based on a user-defined lookback period. These levels are considered significant points where price has reversed in the past.
Drawing Trend Lines: Trend lines are drawn connecting these key levels, creating a visual representation of potential support and resistance zones.
Volume Analysis: The script analyzes the volume during the formation of these levels and during breakouts. Higher volume suggests stronger moves and increases the probability of a successful breakout.
Entry Conditions:
Long Entry: A long entry is triggered when the price breaks above a resistance line with significant volume, and the moving average trend filter (optional) is bullish.
Short Entry: A short entry is triggered when the price breaks below a support line with significant volume, and the moving average trend filter (optional) is bearish.
Exit Conditions:
Stop Loss: Customizable stop loss percentages are implemented to protect against adverse price movements.
Take Profit: Customizable take profit percentages are used to lock in profits.
Credits and Compliance:
This strategy is inspired by the concepts and code from "Smart Money Concepts (SMC) " and "Smart Money Breakouts ." I've adapted and combined elements of both scripts to create this strategy. Full credit is given to the original authors for their valuable contributions to the TradingView community.
To comply with TradingView's House Rules, I've made the following adjustments:
Clearly Stated Inspiration: The description explicitly mentions the original scripts and authors as the inspiration for this strategy.
No Direct Copying: The code has been modified and combined, not directly copied from the original scripts.
Educational Purpose: The primary purpose of this strategy is for learning and backtesting. It's not intended as financial advice.
Important Note:
This strategy is intended for educational and backtesting purposes only. It should not be used for live trading without thorough testing and understanding of the underlying concepts. Past performance is not indicative of future results.
Mean and Standard Deviation Lines Description:
Calculates the mean and standard deviation of close-to-close price differences over a specified period, providing insights into price volatility and potential breakouts.
Manually calculates mean and standard deviation for a deeper understanding of statistical concepts.
Plots the mean line, upper bound (mean + standard deviation), and lower bound (mean - standard deviation) to visualize price behavior relative to these levels.
Highlights bars that cross the upper or lower bounds with green (above) or red (below) triangles for easy identification of potential breakouts or breakdowns.
Customizable period input allows for analysis of short-term or long-term volatility patterns.
Probability Interpretations based on Standard Deviation:
50% probability: mean or expected value
68% probability: Values within 1 standard deviation of the mean (mean ± stdev) represent roughly 68% of the data in a normal distribution. This implies that around 68% of closing prices in the past period fell within this range.
95% probability: Expanding to 2 standard deviations (mean ± 2*stdev) captures approximately 95% of the data. So, in theory, there's a 95% chance that future closing prices will fall within this wider range.
99.7% probability: Going further to 3 standard deviations (mean ± 3*stdev) encompasses nearly 99.7% of the data. However, these extreme values become less likely as you move further away from the mean.
Key Features:
Uses manual calculations for mean and standard deviation, providing a hands-on approach.
Excludes the current bar's close price from calculations for more accurate analysis of past data.
Ensures valid index usage for robust calculation logic.
Employs unbiased standard deviation calculation for better statistical validity.
Offers clear visual representation of mean and volatility bands.
Considerations:
Manual calculations might have a slight performance impact compared to built-in functions.
Not a perfect normal distribution: Financial markets often deviate from a perfect normal distribution. This means probability interpretations based on standard deviation shouldn't be taken as absolute truths.
Non-stationarity: Market conditions and price behavior can change over time, impacting the validity of past data as a future predictor.
Other factors: Many other factors influence price movements beyond just the mean and standard deviation.
Always consider other technical and fundamental factors when making trading decisions.
Potential Use Cases:
Identifying periods of high or low volatility.
Discovering potential breakout or breakdown opportunities.
Comparing volatility across different timeframes.
Complementing other technical indicators for confirmation.
Understanding statistical concepts for financial analysis.
Fibonacci Ranges (Real-Time) [LuxAlgo]The "Fibonacci Ranges" indicator combines Fibonacci ratio-derived ranges (channels), together with a Fibonacci pattern of the latest swing high/low.
🔶 USAGE
The indicator draws real-time ranges based on Fibonacci ratios as well as retracements. Breakouts from a Fibonacci Channel are also indicated by labels, indicating a potential reversal.
Each range extremity/area can also be used as support/resistance.
🔶 CONCEPTS
Fibonacci Channels
Latest Fibonacci
Both, Latest Fibonacci and Fibonacci Channels , display different Fibonacci levels (labels not included in the code):
However, the 2 react in a totally different way.
🔹 Fibonacci Channels
2 conditions must be fulfilled until a Fibonacci Channel is displayed:
New swing high/low
close has to be between chosen limits/levels ( Break level )
As visual guidance, chosen Break levels are accentuated by 2 small gray blocks:
Once the channel is displayed, it will remain visible until x consecutive bars break out of the chosen Break level at closing time.
• x consecutive bars is set by Break count .
The amount of breaks is counted in the code. When the price, without breaking the user-set limit, closes back between the 2 levels, the count is reset to 0.
By enabling Channels and Shadows you can see previous channels (" Shadows ", which is always delayed with 1 bar)
Previous channels can be helpful in finding potential support/resistance areas, especially from large channel blocks
The more narrow Break levels are set the less chance the price closes between these 2 levels, and the quicker close breaks out.
In other words, narrow levels give fewer & smaller channels, broader levels give more & larger channels.
Note:
• swing settings: L & R
• Break count (x consecutive bars that close outside chosen levels to invalidate the Fibonacci Channel )
will also be of influence in displaying the channels.
• Show breaks enable you to visualize signals when there is a break:
• Alerts can also be set ( Break Down / Break Up )
🔹 Latest Fibonacci
This displays the Fibonacci levels between the latest swing high and swing low, independently from the Fibonacci Channel .
The Lastest Fibonacci can be helpful in detecting the current trend against the larger Fibonacci Channel .
🔶 SETTINGS
🔹 Swing Settings
L: set left of pivothigh / pivotlow
R: set right of pivothigh / pivotlow
🔹 Fibonacci Channels
Channel : Channel / Channels + Shadows / None
Break level
-0.382 - 1.382
0.000 - 1.000
0.236 - 0.764
0.382 - 0.618
Break count
🔹 Fibonacci
Toggle
Colours: [ -0.382 - 0 ], [ 0.236 - 0.382 ], [ 0.5 ], [ 0.618 - 0.764 ], [ 1 - 1.382 ]
RVol LabelThis Code is update version of Code Provided by @ssbukam, Here is Link to his original Code and review the Description
Below is Original Description
1. When chart resolution is Daily or Intraday (D, 4H, 1H, 5min, etc), Relative Volume shows value based on DAILY. RVol is measured on daily basis to compare past N number of days.
2. When resolution is changed to Weekly or Monthly, then Relative Volume shows corresponding value. i.e. Weekly shows weekly relative volume of this week compared to past 'N' weeks. Likewise for Monthly. You would see change in label name. Like, Weekly chart shows W_RVol (Weekly Relative Volume). Likewise, Daily & Intraday shows D_RVol. Monthly shows M_RVol (Monthly Relative Volume).
3. Added a plot (by default hidden) for this specific reason: When you move the cursor to focus specific candle, then Indicator Value displays relative volume of that specific candle. This applies to Intraday as well. So if you're in 1HR chart and move the cursor to a specific candle, Indicator Value shows relative volume for that specific candlestick bar.
4. Updating the script so that text size and location can be customized.
Changes to Updated Label by me
1. Added Today's Volume to the Label
2. Added Total Average Volume to the Label
3. Comparison vs Both in Single Line and showing how much volume has traded vs the average volume for that time of the day
4. Aesthetic Look of the Label
How to Use Relative Volume for Trading
Using Relative Volume (RVol) in trading can be a valuable tool to help you identify potential trading opportunities and gain insight into market behavior. Here are some ways to use RVol in your trading strategy:
Identifying High-Volume Breakouts: RVol can help you spot potential breakouts when the volume surges significantly above its average. High RVol during a breakout suggests strong market interest, increasing the probability of a sustained move in the direction of the breakout.
Confirming Trends and Reversals: RVol can act as a confirmation tool for trends and reversals. A trend accompanied by rising RVol indicates a strong and sustainable move. Conversely, a trend with declining RVol might suggest a weakening trend or potential reversal.
Spotting Volume Divergence: When the price is moving in one direction, but RVol is declining or not confirming the move, it may indicate a divergence. This discrepancy could suggest a potential reversal or trend change.
Support and Resistance Confirmation: High RVol near key support or resistance levels can indicate potential price reactions at those levels. This confirmation can be valuable in determining whether a level is likely to hold or break.
Filtering Trade Signals: Incorporate RVol into your existing trading strategy as a filter. For example, you might consider taking trades only if RVol is above a certain threshold, ensuring that you focus on high-impact trading opportunities.
Avoiding Low-Volume Traps: Low RVol can indicate a lack of interest or participation in the market. In such situations, price movements may be erratic and less reliable, so it's often wise to avoid trading during low RVol periods.
Monitoring News Events: Around significant news events or earnings releases, RVol can help you gauge the market's reaction to the information. High RVol during such events can present trading opportunities but be cautious of increased volatility and potential gaps.
Adjusting Trade Size: During periods of extremely high RVol, it might be prudent to adjust your position size to account for higher risk.
Using Relative Volume in Morning Session
If the Volume traded in first 15 minute to 30 Minutes is already at 50% or 100% depending upon the ticker, it means that it is going to have very high Volume vs average by end of the day.
This gives me conviction for Long or Short Trades
Remember that RVol is not a standalone indicator; it works best when used in conjunction with other technical and fundamental analysis tools. Additionally, RVol's effectiveness may vary across different markets and trading strategies. Therefore, backtesting and validating the use of RVol in your trading approach is essential.
Lastly, risk management is crucial in trading. While RVol can provide valuable insights, it cannot guarantee profitable trades. Always use appropriate risk management strategies, such as setting stop-loss levels, and avoid overexposing yourself to the market based solely on RVol readings.
Volume Orderbook (Expo)█ Overview
The Volume Orderbook indicator is a volume analysis tool that visually resembles an order book. It's used for displaying trading volume data in a way that may be easier to interpret or more intuitive for certain traders, especially those familiar with order book analysis.
This indicator aggregate and display the total trading volume at different price levels over the entire range of data available on the chart, similar to how an order book displays current buy and sell orders at different price levels. However, unlike a real-time order book, it only considers historical trading data, not current bid and ask orders. This provides a 'historical order book' of sorts, indicating where most trading activities have taken place.
Summary
This is a volume-based indicator that shows the volume traded at specific price levels, highlighting areas of high and low activity.
█ Calculations
The algorithm operates by calculating the cumulative volume traded in each specific price zone within the range of data displayed on the chart. The length of each horizontal bar corresponds to the total volume of trades that occurred within that particular price zone.
In essence, when the price is in a specific zone, the volume is added to the bar representing that zone. A thicker bar implies a larger price zone, meaning that more volume is accumulated within that bar. Therefore, the thickness of the bar visually indicates the amount of trading activity that took place within the associated price zone.
█ How to use
The Volume Orderbook indicator serves as a beneficial tool for traders by identifying key price levels with a significant amount of trading activity. These high-volume areas could represent potential support or resistance levels due to the large number of orders situated there. The indicator's ability to spotlight these zones might be particularly advantageous in pinpointing breakouts or breakdowns when prices move beyond these high-volume regions. Moreover, the indicator could also assist traders in recognizing anomalies, such as when an unusually large volume of trades occurs at unconventional price levels.
Identify Key Price Levels: The indicator highlights high-volume areas where a significant number of trades have occurred, which could act as potential support or resistance levels. This is based on the notion that many traders have established positions at these prices, so these levels may serve as significant areas for market activity in the future.
Volume Nodes: These are the peaks (high-volume areas) and troughs (low-volume areas) seen on the indicator. High-volume nodes represent price levels at which a large amount of volume has been traded, typically areas of strong support or resistance. Conversely, low-volume nodes, where very little volume has been traded, indicate price levels that traders have shown little interest in the past and could potentially act as barriers to price. It's important to note that while high trading volume can imply significant market interest, it doesn't always mean the price will stop or reverse at these levels. Sometimes, prices can quickly move through high-volume areas if there are no current orders (demand) to match with the new orders (supply).
Analyze Market Psychology: The distribution of volume across different price levels can provide insights into the market's psychology, revealing the balance of power between buyers and sellers.
Highlight Potential Reversal Points: The indicator can help identify price levels with high traded volume where the market might be more likely to reverse since these levels have previously attracted significant interest from traders.
Validate Breakouts or Breakdowns: If the price moves convincingly past a high-volume node, it could indicate a strong trend, suggesting a potential breakout or breakdown. Conversely, if the price struggles to move past a high-volume node, it could suggest that the trend is weak and might potentially reverse.
Trade Reversals: High-volume areas could also indicate potential turning points in the market. If the price reaches these levels and then starts to move away, it might suggest a possible price reversal.
Confirm Other Signals: As with all technical indicators, the "Volume Orderbook" should ideally be used in conjunction with other forms of technical and fundamental analysis to confirm signals and increase the odds of successful trades.
Summary
The Volume Orderbook indicator allows traders to identify key price levels, analyze market psychology, highlight potential reversal points, validate breakouts or breakdowns, confirm other trading signals, and anticipate possible trade reversals, thereby serving as a robust tool for trading analysis.
█ Settings
Source: The user can select the source, the default of which is "close." This implies that volume is added to the volume order book when the closing price falls within a specific zone. Users can modify this to any indicator present on their chart. For example, if it's set to an SMA (Simple Moving Average) of 20, the volume will be added to the volume order book when the SMA 20 falls within the specific zone.
Rows and width: These settings allow users to adjust the representation of volume order book zones. "ROWS" pertains to the number of volume order book zones displayed, while "WIDTH" refers to the breadth of each zone.
Table and Grid: These settings allow traders to customize the Volume order-book's position and appearance. By adjusting the "left" parameter, users can shift the position of the Volume order book on the chart; a higher value pushes the order book further to the right. Additionally, users can enable "Table Border" and "Table Grid" options to add gridlines or borders to the Volume order book for easier viewing and interpretation.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Trading BehnamI've read around here various definitions for engulfs along the lines of "an engulf consumes all orders at a level to allow price to easily pass through it." . That doesn't make much sense to me, if the guys with billions of dollars want to break a level, they will break it and price will run off very often. We've seen it time and time again, they don't need to engulf levels to give us a nice opportunity to get into the trade with them, if they want to blast through a level, they will do so and price will run off. If they want an opportunity to accumulate more orders before price runs away, then it doesn't make sense to engulf the level, better to let price bounce from that level and then fill more orders, if the level breaks then they have to deliberately stop the market running away and move it back to the pre-engulf area as the market momentum would naturally make it run off after an engulf. Other ideas about it being a secret signal between the institutions don't make sense to me either. To be honest, I think any secret signals between competing institutions come in the form of them in a heavily encrypted chatroom telling each other what to do. This collusion has been reported on previously as traders align their activities at important moments.
So I think we can all agree something along the lines of:
Fakeout:
Fakeout is an engulf of an obvious swing high/low in order to stop out traders and induce breakout traders to trade in the wrong direction, thus generating liquidity for the move in the opposite direction.
What's not so clear is the definition of the engulf, I'd like to try to give some ideas on the purpose of the engulf and it's definition and see what others think.
Engulf:
An engulf is the consumption of orders at an important level, not necessarily a swing/high low but an area where we expect to see supply or demand. Taking out of the orders tells us that the supply or demand which was or should have been present is now not present and tells us the intent direction of the market. If price runs off as is often the case, this is not tradeable and is effectively just a "breakout", although breakouts are usually considered to be breaks of swing high and lows which are obvious to the average trader. For an engulf to be tradeable there must be a retrace following the engulf back in the original direction. This adds confusion as it initially resembles a fakeout. So the question is, why does price retrace after the engulf? If an engulf to the short side is a genuine engulf and not a fakeout to generate long liquidity, why does it not travel immediately south if market momentum is ultimately south.
A small pocket of demand beneath the engulfed level may make it retrace north as price moves between areas of liquidity, this pocket of demand may give price enough momentum to make it back up to the supply which broke the demand level if key market participants do not favour an immediate market drop.
Alternatively key market participants may step in and drive the market back upwards.
Price moving north back to supply after the engulf may occur or be favourable for various reasons:
1) We often talk about FO generating liquidity because of breakout trading, but an engulf can also generate liquidity from breakout traders. Short breakout traders would place their stop losses a small distance above the engulf (breakout). If key players absorb this selling or allow a demand level to push price back up, they can run price back up to supply taking out the stops of the breakout short traders and make quick profit and/or generate more liquidity for their own shorts.
2) To confuse traders, the ITs don't want the puzzle that is Forex to be easy to solve, if price never retraced after an engulf then engulfs of all levels would be FOs. Price would either break and immediately runoff or it would turn and runoff in the other direction. In order to keep people confused about whether price is faking out or breaking out, sometimes price should whipsaw by breaking out, briefly faking out and then continuing in the direction of the breakout. This whipsaw pattern is to us a tradeable engulf.
3) Market momentum may be mixed, key players are indecisive or inactive or the market is behaving erratically.
4) As previously mentioned there may be a small pocket of supply/demand just past the engulf which is causing a reaction. This could also be viewed as a FO on a different timeframe. If the market engulfs an H1 demand level, then retraces for 30 mins upwards to supply, this engulf would be a valid and very profitable FO for an M1 trader looking to get long.
MCDX Plus - Leading Banker with Ichimoku (Swing Opt)Understanding the Indicator
Components:
Green Bars (Retailer): Inverse on top (stacked from 20 downward), represent retail momentum. High values (>15) with a lime background signal retail dominance—often a sell or avoid zone.
Yellow Bars (Hot Money): Middle layer, indicate speculative momentum. Useful as a secondary confirmation.
Red/Fuchsia Bars (Banker): Bottom layer, show institutional (banker/hedge fund) momentum. Red when RSI_Banker ≥ BankerMA, fuchsia otherwise. Crossings above 5, 10, 15 are key buy signals.
Blue Line (Banker MA): Hull Moving Average (HMA) of Banker RSI, tracks institutional trend with minimal lag.
Orange Line (Hot Money MA): HMA of Hot Money RSI.
Green Line (Retailer MA): HMA of Retailer RSI.
Reference Lines: 0 (base), 5 (25% Banker Entry), 10 (50% Banker Building), 15 (75% Banker Control), buildThreshold (2.0 for early signals).
Backgrounds: Red (RSI_Banker > 15, strong buy), Lime (RSI_Retailer > 15, sell/avoid), Blue (earlyBuildSignal, potential entry).
Precision Features:
HMAs reduce lag for faster cross signals.
Shortened MA periods (default 8) align with quick price moves.
PriceEMA (50-period) filters entries/exits with trend confirmation.
Pro-Level Usage Strategy
1. Master Entry Timing
Signal: Look for a Golden Cross (Banker MA crosses above Retailer MA or Hot Money MA) + red bars >5 + price > priceEMA (50-period EMA of close) + blue background (earlyBuildSignal).
Why It Works: The HMA’s low lag catches early institutional buying (red bars rising), while price > priceEMA confirms an uptrend. The blue background (RSI_Banker > 2, positive ROC, volume > volMA) flags pre-breakout accumulation.
Pro Action:
Enter a small position on the Golden Cross with blue background.
Add to the position as red bars hit 10, confirmed by volume spikes (volume > volMA).
Set a stop-loss 2-3% below the recent low or the 20-period price EMA.
Target a take-profit at 10-15% or when red bars approach 15.
2. Nail Exit Timing
Signal: Look for a Dead Cross (Banker MA crosses below Retailer MA or Hot Money MA) + green bars >15 + price < priceEMA + lime background.
Why It Works: The HMA’s precision flags waning institutional interest (red bars falling), while green bars >15 and a lime background indicate retail overextension—a classic reversal point. Price < priceEMA confirms a downtrend.
Pro Action:
Exit partial profits on the Dead Cross if red bars drop below 10.
Full exit when green bars >15 and lime background appear, with a stop-loss moved to break-even.
Target a re-entry on the next Golden Cross if red bars recover.
3. Use Cross Signals as Triggers
Golden Cross (Buy): Banker MA > Retailer MA or Hot Money MA. Confirm with red bars >5 and price > priceEMA.
Dead Cross (Sell/Avoid): Banker MA < Retailer MA or Hot Money MA. Confirm with green bars >15 and price < priceEMA.
Pro Action:
Set TradingView alerts for these conditions (e.g., "GC: Banker > Retailer MA and Price > EMA50" for buy).
Use multiple timeframes (e.g., 1H for entry, 4H for exit) to filter noise.
Combine with candlestick patterns (e.g., bullish engulfing for entry) for confirmation.
4. Leverage Backgrounds for Momentum
Red Background (RSI_Banker > 15): Strong institutional control—hold or add to longs.
Lime Background (RSI_Retailer > 15): Retail dominance—exit or short (if your broker allows).
Blue Background (earlyBuildSignal): Early banker accumulation—prepare for entry, watch for Golden Cross.
Pro Action:
Scale into trades during red zones, scale out in lime zones.
Use blue zones to anticipate breakouts, entering only after cross confirmation.
5. Optimize with Volume and Price
Volume Confirmation: Enter only when volume > volMA (10-period SMA) during Golden Cross or red bar rises.
Price Action: Align entries with support/resistance breaks, exits with trendline breaks.
Pro Action:
Add a volume oscillator (e.g., OBV) to your chart to confirm spikes.
Use Fibonacci retracement (e.g., 50% level) with MCDX signals for precise targets.
6. Pro Risk Management
Position Sizing: Risk 1-2% of capital per trade, adjusting based on red bar height (e.g., larger size at 15).
Stop-Loss: Dynamic—below recent low for entries, above recent high for exits, or trailing 2% below price EMA.
Take-Profit: Scale out at 5-10-15 red bar levels or key price targets (e.g., 20% gain).
Risk-Reward: Aim for 1:3 or better, validated by backtesting.
Ichimoku Cloud
What It Does: Combines five lines—Tenkan-sen (conversion line), Kijun-sen (base line), Senkou Span A/B (cloud edges), and Chikou Span (lagging span)—to provide trend direction, support/resistance, and momentum. The cloud (area between Span A and B) acts as a dynamic zone to filter trades.
Benefits for MCDX Plus:
Trend Confirmation: Entry is stronger when a Golden Cross (Banker MA > Retailer MA) occurs above the cloud (bullish), or exit on Dead Cross below the cloud (bearish). This aligns with priceEMA (50-period) filtering.
Support/Resistance: The cloud’s edges (e.g., Senkou Span B) can act as profit targets or stop-loss levels, enhancing precision on CleanSpark’s sharp moves.
Leading Edge: The Tenkan-sen (default 9-period) and Kijun-sen (default 26-period) cross can signal momentum shifts before MCDX crosses, complementing the blue earlyBuildSignal.
Visual Clarity: Adds a contextual layer to your chart, making it easier to see if red bars >5 align with a bullish cloud breakout.
Drawbacks:
Complexity: Requires learning (e.g., cloud thickness indicates strength), which might clutter your workflow if you’re focused solely on red bars.
Lag in Volatile Markets: The cloud’s 26-period base can lag in fast reversals
Best For: Swing traders or those wanting a holistic trend filter. Backtests on similar scripts (e.g., Smart Money Flow Pro + Ichimoku) show 70-80% accuracy when cloud aligns with MCDX signals.
Third Eye ORB Pro (0915-0930 IST, no-plot)Third Eye ORB Pro (Opening Range Breakout + Range Mode)
This indicator is designed specifically for Indian stocks and indices (NIFTY, BANKNIFTY, FINNIFTY, MIDCAP, etc.) to track the Opening Range (09:15–09:30 IST) and generate actionable intraday trade signals. It combines two key modes — Range Mode (mean reversion inside the opening range) and Breakout Mode (momentum trading beyond the range).
1. Opening Range Framework (09:15–09:30 IST)
The indicator automatically plots the Opening Range High (ORH) and Opening Range Low (ORL) after the first 15 minutes of market open.
The area between ORH and ORL acts as the intraday battlefield where most price action occurs (historically ~70–80% of the day is spent inside this zone).
A shaded box and horizontal lines mark this range, serving as a visual reference for support and resistance throughout the day.
2. Range Mode (Mean Reversion Inside OR)
When price trades inside the Opening Range, the indicator looks for edge rejections to capture range-bound trades.
Range BUY (RB): Triggered near ORL when a bullish rejection candle forms (strong body + long lower wick).
Range SELL (RS): Triggered near ORH when a bearish rejection candle forms (strong body + long upper wick).
Optional filters (toggleable in settings):
RSI Filter: Only allow range buys if RSI is oversold (≤45) and range sells if RSI is overbought (≥55).
VWAP Filter: Only allow range trades if price is not too far from VWAP (distance ≤ X% of OR size).
Labels show suggested Stop Loss (just outside the OR band) and Target (midline/VWAP).
Cooldown logic prevents consecutive whipsaw signals.
3. Breakout Mode (Directional Moves Beyond OR)
When price closes strongly outside the ORH/ORL with momentum, the indicator confirms a breakout/breakdown trade.
Buffers are applied to avoid false breakouts:
ATR Buffer: Price must extend at least ATR × multiplier beyond the range edge.
% Buffer: Price must extend at least a percentage of OR size (default 10%).
Confirmation Filters:
Candle must have a strong body (≥60% of total bar range).
Optional “two closes” rule: price must close outside the range for 2 consecutive candles.
BUY BO: Trigger when price closes above ORH + buffer with momentum.
SELL BD: Trigger when price closes below ORL – buffer with momentum.
Labels and alerts are plotted for quick action.
4. Practical Usage
Works best on 5-minute charts for intraday trading.
Designed to help traders capture both:
Range-bound moves during the day (mean reversion plays).
Strong directional breakouts when institutions push price beyond the opening range.
Particularly effective on expiry days, trending sessions, and major news days when breakouts are more likely.
On sideways days, Range Mode provides reliable scalp opportunities at the OR edges.
5. Features
Auto-plots Opening Range High, Low, Midline.
Box + line visuals (no repainting).
Buy/Sell labels for both Range Mode and Breakout Mode.
Customizable buffers (ATR, % of range) to suit volatility.
Alerts for all signals (breakouts and range plays).
Built with risk management in mind (suggested SL and TP shown on chart).
Smart Money Trades Pro [BOSWaves]Smart Money Trades Pro – Advanced Market Structure & Liquidity Visualizer
Overview
Smart Money Trades Pro is a comprehensive trading tool designed for traders seeking an in-depth understanding of market structure, liquidity dynamics, and institutional flow. The indicator systematically identifies key market turning points, including break of structure (BOS) and change of character (CHoCH) events, and overlays these with adaptive visualizations to highlight high-probability trade setups. By integrating ATR-based risk zones, progressive take-profit levels, and real-time trade analytics, Smart Money Trades Pro transforms complex price action into an interpretable framework suitable for multiple trading styles, including scalping, intraday, and swing trading.
Unlike traditional static indicators, Smart Money Trades Pro adapts continuously to market conditions. It evaluates swing highs and lows over a configurable lookback period, then determines structural breaks using customizable confirmation methods (candle body or wick). The resulting signals are augmented with dynamic entry, stop-loss, and target levels, allowing traders to analyze potential trade opportunities with both precision and context. The indicator’s design ensures that each visual element—trend-colored candles, signal markers, and risk/reward boxes—reflects real-time market conditions, offering an actionable interpretation of institutional activity.
How It Works
The indicator’s foundation is built upon market structure analysis. By calculating pivot highs and lows over a specified period, Smart Money Trades Pro identifies potential points of liquidity accumulation and exhaustion. When price breaks a pivot high or low, the indicator evaluates whether this constitutes a BOS or a CHoCH, signaling trend continuation or reversal. These events are marked on the chart with distinct visual cues, allowing traders to quickly discern shifts in market sentiment without manually analyzing historical price action.
Once a structural break is confirmed, the indicator automatically determines entry levels, stop-loss placements, and progressive take-profit zones (TP1, TP2, TP3). These calculations are based on ATR-derived volatility, ensuring that targets scale with current market conditions. Risk and reward zones are plotted as shaded boxes, providing a clear visual representation of potential profit relative to risk for each trade setup. This system allows traders to maintain discipline and consistency, with dynamic trade management baked directly into the visualization.
Trend direction is further reinforced by color-coded candles, which reflect the prevailing market bias. Bullish trends are represented by one color, bearish trends by another, and neutral conditions are displayed in muted tones. This continuous visual feedback simplifies the process of trend assessment and helps confirm the validity of trade setups alongside BOS and CHoCH markers.
Signals and Breakouts
Smart Money Trades Pro includes structured visual signals to indicate actionable price movements:
Bullish Break Signals – Triangular markers below the candle appear when a swing high is broken, suggesting potential long opportunities.
Bearish Break Signals – Triangular markers above the candle appear when a swing low is broken, indicating potential short setups.
Change of Character (CHoCH) – Special markers highlight trend reversals, showing where momentum shifts from bullish to bearish or vice versa.
These markers are strategically spaced to prevent overlap and remain clear during high-volatility periods. Traders can use them in combination with trend-colored candles, risk/reward zones, and ATR-based targets to assess the strength and reliability of each setup. The integrated table provides live trade information, including entry price, stop-loss level, take-profit levels, risk/reward ratio, and trade direction, ensuring that trade decisions are informed and data-driven.
Interpretation
Trend Analysis : The indicator’s trend coloring, combined with BOS and CHoCH detection, provides an immediate view of market direction. Rising structures indicate bullish momentum, while falling structures signal bearish momentum. CHoCH markers highlight potential trend reversals or significant liquidity sweeps.
Volatility and Risk Assessment : ATR-based calculations determine stop-loss distances and target levels, giving a quantitative measure of risk relative to market volatility. Wide ATR readings indicate periods of high price fluctuation, whereas narrow readings suggest consolidation and reduced risk exposure.
Market Structure Insights : By monitoring swing highs and lows alongside break confirmations, traders can identify where institutional players are likely active. Areas with multiple structural breaks or overlapping targets can indicate liquidity hotspots, potential reversal zones, or areas of market congestion.
Trade Management : The built-in trade zones allow traders to visualize entry, risk, and reward simultaneously. Progressive targets (TP1, TP2, TP3) reflect incremental profit-taking strategies, while dynamic stop-loss levels help preserve capital during adverse moves.
Strategy Integration
Smart Money Trades Pro supports a range of trading approaches:
Trend Following : Enter trades in the direction of confirmed BOS while using CHoCH markers and trend-colored candles to validate momentum.
Pullback Entries : Use failed breakout retests or minor reversals toward broken structure levels for lower-risk entries.
Mean Reversion : In consolidated zones with narrow ATR and repeated BOS/CHoCH activity, anticipate reversals or short-term corrective moves.
Multi-Timeframe Confirmation : Overlay signals on higher or lower timeframes to filter noise and improve trade accuracy.
Stop-loss levels should be placed just beyond the opposing structural point, while take-profit targets can be scaled using the ATR-based zones. Progressive targets allow for partial exits or scaling out of trades while maintaining exposure to larger moves.
Advanced Techniques
Traders seeking greater precision can combine Smart Money Trades Pro with volume, momentum, or volatility indicators to validate signals. Observing sequences of BOS and CHoCH markers across multiple timeframes provides insight into liquidity accumulation and depletion trends. Tracking the expansion or contraction of ATR-based zones helps anticipate shifts in volatility, enabling better timing for entries and exits.
Customizing the structure period and confirmation type allows the indicator to adapt to different asset classes and timeframes. Shorter periods increase sensitivity to smaller swings, while longer periods filter noise and emphasize higher-probability structural breaks. By integrating these features, the indicator offers a robust statistical framework for disciplined, data-driven trading decisions.
Inputs and Customization
Structure Detection Period : Defines the lookback window for pivot high and low calculation.
Break Confirmation : Choose whether to confirm breaks using candle body or wick.
Display CHoCH : Toggle visibility of change-of-character markers.
Color Trend Bars : Enable color-coding of candles based on market structure direction.
Show Info Table : Display trade dashboard showing entry, stop-loss, take-profits, risk/reward, and bias.
Table Position : Choose from top-left, top-right, bottom-left, or bottom-right placement.
Color Customization : Configure bullish, bearish, neutral, risk, reward, and text colors for enhanced visual clarity.
Why Use Smart Money Trades Pro
Smart Money Trades Pro transforms complex market behavior into an actionable visual framework. By combining market structure analysis, liquidity tracking, ATR-based risk/reward mapping, and a dynamic trade dashboard, it provides a multidimensional view of the market. Traders can focus on execution, interpret trends, and evaluate overextensions or reversals without relying on guesswork. The indicator is suitable for scalping, intraday, and swing strategies, offering a comprehensive system for understanding and trading alongside institutional participants.
Buy/Sell Volume BalanceDESCRIPTION
Buy/Sell Volume Balance is a simple yet powerful indicator designed to measure and visualize the balance between buying and selling volume over a customizable number of recent candles. It helps traders quickly assess market pressure during consolidation phases or ranges, in order to anticipate the most likely breakout direction.
How it works
The indicator analyzes the last N candles (default = 100, user-editable).
Each candle’s total volume is classified as:
Bullish volume (Buy volume): if the candle closes above or equal to its open.
Bearish volume (Sell volume): if the candle closes below its open.
The volumes are summed separately to calculate:
Total Buy Volume
Total Sell Volume
The percentage of each side relative to the total is also displayed.
All results are shown in a fixed table at the top of the chart for quick interpretation.
Purpose
This tool is specifically designed to help traders evaluate the internal battle between buyers and sellers during a range or sideways market. By understanding which side is accumulating more volume within the range, traders can anticipate which direction is more likely when the price breaks out.
If Buy volume dominates → potential bullish breakout.
If Sell volume dominates → potential bearish breakout.
If both sides are nearly balanced, it signals indecision and a higher chance of false breakouts.
Imbalance Threshold
In practice, traders often consider a clear imbalance when one side reaches at least 55–60% of the total volume.
Above this threshold, the dominant side is more likely to dictate the breakout direction.
Below this threshold, the market is usually in indecision and further confirmation is needed before acting.
How to use it
Add the indicator to your chart and choose the lookback period (number of candles).
Focus on ranges or consolidation zones where price is moving sideways.
Observe the balance of Buy vs Sell volume in the top-right box:
A clear imbalance (>55–60%) suggests the stronger side is more likely to push the breakout.
A balanced ratio (<55–60%) indicates indecision and possible false breakouts.
Use it in combination with support/resistance zones, breakout patterns, or volume spikes for best results.
✅ In summary: This indicator does not give direct buy/sell signals, but it provides valuable context about market pressure, helping you to align your trades with the most probable breakout direction.
Pure Price Zone Flow🔎 What this indicator is
It’s a price-action-based zone indicator. Unlike moving average systems, this one relies only on:
1. Swing Highs & Swing Lows → The highest and lowest points within a recent lookback period (like "mini support & resistance").
2. ATR (Average True Range) → A volatility measure that expands the zone, making it more adaptive to different market conditions.
3. Breakouts & Retests → When price breaks above a swing high (bullish) or below a swing low (bearish), the indicator marks it and highlights the new trend.
👉 The goal is to spot clean structure shifts and define clear trend zones where traders can position themselves.
________________________________________
⚙️ How it is calculated
1. Swing High & Swing Low
o We look back len candles (default 20).
o Find the highest high (swingHigh) and the lowest low (swingLow) in that window.
o This forms the price range zone.
2. ATR Expansion
o We calculate ATR over the same len.
o Add/subtract it (multiplied by atrMult) to the zone edges to expand them.
o This ensures the zones breathe with volatility (tight in quiet markets, wide in choppy ones).
3. Mid-Zone
o Simply the average of swingHigh and swingLow.
o If price is above mid → bullish bias.
o If below mid → bearish bias.
o This gives us the trend color for candles.
4. Breakouts
o If the close crosses above swingHigh, we mark a bullish breakout with a label.
o If the close crosses below swingLow, we mark a bearish breakdown.
________________________________________
📊 How it helps traders
This indicator helps by:
1. Identifying Structure Shifts
o Many traders watch swing highs/lows for breakouts or reversals.
o This automates the process and visually confirms when structure is broken.
2. Dynamic Zone Trading
o Instead of fixed support/resistance, the ATR expansion adapts to volatility.
o This avoids false signals in high-volatility conditions.
3. Trend Bias at a Glance
o Candle coloring instantly tells you whether price is in bullish or bearish territory relative to the mid-zone.
4. Breakout Confirmation
o The labels show when a breakout has occurred, so traders can react quickly (e.g., enter with trend, wait for retest, or avoid fading moves).
________________________________________
🌍 Markets it works best in
• Crypto (Bitcoin, Ethereum, etc.): Very effective since crypto is breakout-driven and respects swing levels.
• Forex: Good for volatility-adaptive structure analysis, especially in trending pairs.
• Indices (SPX, NASDAQ, DAX, NIFTY): Useful for breakout trading during session opens or key news events.
• Commodities (Gold, Oil, Silver): Works well to define intraday ranges and breakout levels.
⚠️ Less useful in low-volatility, mean-reverting assets (like some penny stocks or sideways ranges), because breakouts may be rare or fake.
________________________________________
💡 How it adds value
• Strips away unnecessary complexity (no lagging averages).
• Focuses directly on what price is doing structurally.
• Adaptive → works across different markets & timeframes.
• Easy visualization → zones, trend coloring, breakout markers.
• Helps traders trade with the flow of the market, instead of guessing tops/bottoms.
________________________________________
👉 In short:
This indicator turns raw price action into clear, actionable zones.
It highlights when the market shifts from balance to breakout, so traders can align with momentum rather than fighting it.
Linh's Anomaly Radar v2What this script does
It’s an event detector for price/volume anomalies that often precede or confirm moves.
It watches a bunch of patterns (Wyckoff tests, squeezes, failed breakouts, turnover bursts, etc.), applies robust z-scores, optional trend filters, cooldowns (to avoid spam), and then fires:
A shape/label on the bar,
A row in the mini panel (top-right),
A ready-made alertcondition you can hook into.
How to add & set up (TradingView)
Paste the script → Save → Add to chart on Daily first (works on any TF).
Open Settings → Inputs:
General
• Use Robust Z (MAD): more outlier-resistant; keep on.
• Z Lookback: 60 bars is ~3 months; bump to 120 for slower regimes.
• Cooldown: min bars to wait before the same signal can fire again (default 5).
• Use trend filter: if on, “bullish” signals only fire above SMA(tfLen), “bearish” below.
Thresholds: fine-tune sensitivity (defaults are sane).
To create alerts: Right-click chart → Add alert
Condition: Linh’s Anomaly Radar v2 → choose a specific signal or Composite (Σ).
Options: “Once per bar close” (recommended).
Customize message if you want ticker/timeframe in your phone push.
The mini panel (top-right)
Signal column: short code (see cheat sheet below).
Fired column: a dot “•” means that on the latest bar this signal fired.
Score (right column): total count of signals that fired this bar.
Σ≥N shows your composite threshold (how many must fire to trigger the “Composite” alert).
Shapes & codes (what’s what)
Code Name (category) What it’s looking for Why it matters
STL Stealth Volume z(volume)>5 & ** z(return)
EVR Effort vs Result squeeze z(vol)>3 & z(TR)<−0.5 Heavy effort, tiny spread → absorption
TGV Tight+Heavy (HL/ATR)<0.6 & z(vol)>3 Tight bar + heavy tape → pro activity
CLS Accumulation cluster ≥3 of last 5 bars: up, vol↑, close near high Classic accumulation footprint
GAP Open drive failure Big gap not filled (≥80%) & vol↑ One-sided open stalls → fade risk
BB↑ BB squeeze breakout Squeeze (z(BBWidth)<−1.3) → close > upperBB & vol↑ Regime shift with confirmation
ER↑ Effort→Result inversion Down day on vol then next bar > prior high Demand overwhelms supply
OBV OBV divergence OBV slope up & ** z(ret20)
WER Wide Effort, Opposite Result z(vol)>3, close+1 Selling into strength / distribution
NS No-Supply (Wyckoff) Down bar, HL<0.6·ATR, vol << avg Sellers absent into weakness
ND No-Demand (Wyckoff) Up bar, HL<0.6·ATR, vol << avg Buyers absent into strength
VAC Liquidity Vacuum z(vol)<−1.5 & ** z(ret)
UTD UTAD (failed breakout) Breaks swing-high, closes back below, vol↑ Stop-run, reversal risk
SPR Spring (failed breakdown) Breaks swing-low, closes back above, vol↑ Bear trap, reversal risk
PIV Pocket Pivot Up bar; vol > max down-vol in lookback Quiet base → sudden demand
NR7 Narrow Range 7 + Vol HL is 7-bar low & z(vol)>2 Coiled spring with participation
52W 52-wk breakout quality New 52-wk close high + squeeze + vol↑ High-quality breakouts
VvK Vol-of-Vol kink z(ATR20,200)>0.5 & z(ATR5,60)<0 Long-vol wakes up, short-vol compresses
TAC Turnover acceleration SMA3 vol / SMA20 vol > 1.8 & muted return Participation surging before move
RBd RSI Bullish div Price LL, RSI HL, vol z>1 Exhaustion of sellers
RS↑ RSI Bearish div Price HH, RSI LH, vol z>1 Exhaustion of buyers
Σ Composite Count of all fired signals ≥ threshold High-conviction bar
Placement:
Triangles up (below bar) → bullish-leaning events.
Triangles down (above bar) → bearish-leaning events.
Circles → neutral context (VAC, VvK, Composite).
Key inputs (quick reference)
General
Use Robust Z (MAD): keep on for noisy tickers.
Z Lookback (lenZ): 60 default; 120 if you want fewer alerts.
Trend filter: when on, bullish signals require close > SMA(tfLen), bearish require <.
Cooldown: prevents repeated firing of the same signal within N bars.
Phase-1 thresholds (core)
Stealth: vol z > 5, |ret z| < 1.
EVR: vol z > 3, TR z < −0.5.
Tight+Heavy: (HL/ATR) < 0.6, vol z > 3.
Cluster: window=5, min=3 strong bars.
GapFail: gap/ATR ≥1.5, fill <80%, vol z > 2.
BB Squeeze: z(BBWidth)<−1.3 then breakout with vol z > 2.
Eff→Res Up: prev bar heavy down → current bar > prior high.
OBV Div: OBV uptrend + |z(ret20)|<0.3.
Phase-2 thresholds (extras)
WER: vol z > 3, close1.
No-Supply/No-Demand: tight bar & very light volume vs SMA20.
Vacuum: vol z < −1.5, |ret z|>1.5.
UTAD/Spring: swing lookback N (default 20), vol z > 2.
Pocket Pivot: lookback for prior down-vol max (default 10).
NR7: 7-bar narrowest range + vol z > 2.
52W Quality: new 52-wk high + squeeze + vol z > 2.
VoV Kink: z(ATR20,200)>0.5 AND z(ATR5,60)<0.
Turnover Accel: SMA3/SMA20 > 1.8 and |ret z|<1.
RSI Divergences: compare to n bars back (default 14).
How to use it (playbooks)
A) Daily scan workflow
Run on Daily for your VN watchlist.
Turn Composite (Σ) alert on with Σ≥2 or ≥3 to reduce noise.
When a bar fires Σ (or a fav combo like STL + BB↑), drop to 60-min to time entries.
B) Breakout quality check
Look for 52W together with BB↑, TAC, and OBV.
If WER/ND appear near highs → downgrade the breakout.
C) Spring/UTAD reversals
If SPR fires near major support and RBd confirms → long bias with stop below spring low.
If UTD + WER/RS↑ near resistance → short/fade with stop above UTAD high.
D) Accumulation basing
During bases, you want CLS, OBV, TGV, STL, NR7.
A pocket pivot (PIV) can be your early add; manage risk below base lows.
Tuning tips
Too many signals? Raise stealthVolZ to 5.5–6, evrVolZ to 3.5, use Σ≥3.
Fast movers? Lower bbwZthr to −1.0 (less strict squeeze), keep trend filter on.
Illiquid tickers? Keep MAD z-scores on, increase lookbacks (e.g., lenZ=120).
Limitations & good habits
First lenZ bars on a new symbol are less reliable (incomplete z-window).
Some ideas (VWAP magnet, close auction spikes, ETF/foreign flows, options skew) need intraday/external feeds — not included here.
Pine can’t “screen” across the whole market; set alerts or cycle your watchlist.
Quick troubleshooting
Compilation errors: make sure you’re on Pine v6; don’t nest functions in if blocks; each var int must be declared on its own line.
No shapes firing: check trend filter (maybe price is below SMA and you’re waiting for bullish signals), and verify thresholds aren’t too strict.