Twitter Model ICT [TradingFinder] MMXM ERL D + FVG + M15 MSS/SMT🔵 Introduction
The Twitter Model ICT is a trading approach based on ICT (Inner Circle Trader) models, focusing on price movement between external and internal liquidity in lower timeframes. This model integrates key concepts such as Market Structure Shift (MSS), Smart Money Technique (SMT) divergence, and CISD level break to identify precise entry points in the market.
The primary goal of this model is to determine key liquidity levels, such as the previous day’s high and low (PDH/PDL) and align them with the Fair Value Gap (FVG) in the 1-hour timeframe. The overall strategy involves framing trades around the 1H FVG and using the M15 Market Structure Shift (MSS) for entry confirmation.
The Twitter Model ICT is designed to utilize external liquidity levels, such as PDH/PDL, as key entry zones. The model identifies FVG in the 1-hour timeframe, which acts as a magnet for price movement. Additionally, traders confirm entries using M15 Market Structure Shift (MSS) and SMT divergence.
Bullish Twitter Model :
In a bullish setup, the price sweeps the previous day’s low (PDL), and after confirming reversal signals, buys are executed in internal liquidity zones. Conversely, in a bearish setup, the price sweeps the previous day’s high (PDH), and after confirming weakness signals, sells are executed.
Bearish Twitter Model :
In short setups, entries are only executed above the Midnight Open, while in long setups, entries are taken below the Midnight Open. Adhering to these principles allows traders to define precise entry and exit points and analyze price movement with greater accuracy based on liquidity and market structure.
🔵 How to Use
The Twitter Model ICT is a liquidity-based trading strategy that analyzes price movements relative to the previous day’s high and low (PDH/PDL) and Fair Value Gap (FVG). This model is applicable in both bullish and bearish directions and utilizes the 1-hour (1H) and 15-minute (M15) timeframes for entry confirmation.
The price first sweeps an external liquidity level (PDH or PDL) and then provides an entry opportunity based on Market Structure Shift (MSS) and SMT divergence. Additionally, the entry should be positioned relative to the Midnight Open, meaning long entries should occur below the Midnight Open and short entries above it.
🟣 Bullish Twitter Model
In a bullish setup, the price first sweeps the previous day’s low (PDL) and reaches an external liquidity level. Then, in the 1-hour timeframe (1H), a bullish Fair Value Gap (FVG) forms, which serves as the price target.
To confirm the entry, a Market Structure Shift (MSS) in the 15-minute timeframe (M15) should be observed, signaling a trend reversal to the upside. Additionally, SMT divergence with correlated assets can indicate weakness in selling pressure.
Under these conditions, a long position is taken below the Midnight Open, with a stop-loss placed at the lowest point of the recent bearish move. The price target for this trade is the FVG in the 1-hour timeframe.
🟣 Bearish Twitter Model
In a bearish setup, the price first sweeps the previous day’s high (PDH) and reaches an external liquidity level. Then, in the 1-hour timeframe (1H), a bearish Fair Value Gap (FVG) is identified, serving as the trade target.
To confirm entry, a Market Structure Shift (MSS) in the 15-minute timeframe (M15) should form, signaling a trend shift to the downside. If an SMT divergence is present, it can provide additional confirmation for the trade.
Once these conditions are met, a short position is taken above the Midnight Open, with a stop-loss placed at the highest level of the recent bullish move. The trade's price target is the FVG in the 1-hour timeframe.
🔵 Settings
Bar Back Check : Determining the return of candles to identify the CISD level.
CISD Level Validity : CISD level validity period based on the number of candles.
Daily Position : Determines whether only the first signal of the day is considered or if signals are evaluated throughout the entire day.
Session : Specifies in which trading sessions the indicator will be active.
Second Symbol : This setting allows you to select another asset for comparison with the primary asset. By default, "XAUUSD" (Gold) is set as the second symbol, but you can change it to any currency pair, stock, or cryptocurrency. For example, you can choose currency pairs like EUR/USD or GBP/USD to identify divergences between these two assets.
Divergence Fractal Periods : This parameter defines the number of past candles to consider when identifying divergences. The default value is 2, but you can change it to suit your preferences. This setting allows you to detect divergences more accurately by selecting a greater number of candles.
The indicator allows displaying sessions based on various time zones. The user can select one of the following options :
UTC (Coordinated Universal Time)
Local Time of the Session
User’s Local Time
Show Open Price : Displays the New York market opening price.
Show PDH / PDL : Displays the previous day’s high and low to identify potential entry points.
Show SMT Divergence : Displays lines and labels for bullish ("+SMT") and bearish ("-SMT") divergences.
🔵 Conclusion
The Twitter Model ICT is an effective approach for analyzing and executing trades in financial markets, utilizing a combination of liquidity principles, market structure, and SMT confirmations to identify optimal entry and exit points.
By analyzing the previous day’s high and low (PDH/PDL), Fair Value Gaps (FVG), and Market Structure Shift (MSS) in the 1H and M15 timeframes, traders can pinpoint liquidity-driven trade opportunities. Additionally, considering the Midnight Open level helps traders avoid random entries and ensures better trade placement.
By applying this model, traders can interpret market movements based on liquidity flow and structural changes, allowing them to fine-tune their trading decisions with higher precision. Ultimately, the Twitter Model ICT provides a structured and logical approach for traders who seek to trade based on liquidity behavior and trend shifts in the market.
ابحث في النصوص البرمجية عن "liquidity"
ELC Indicator**ELC Indicator – Enigma Liquidity Concept**
The ELC Indicator is a cutting-edge tool designed for traders who want to leverage price action and liquidity concepts for high-precision trading opportunities. Unlike conventional indicators that rely purely on trend-following or oscillatory methods, ELC incorporates a unique combination of market structure, Fibonacci retracement levels, and dynamic EMA filtering to detect key buy and sell zones. This original approach helps traders capture the most relevant market movements and anticipate potential reversals with higher confidence.
---
### **What the ELC Indicator Does**
The primary goal of the ELC Indicator is to identify liquidity zones and plot Fibonacci-based levels around detected buy or sell signals. It continuously monitors price action to identify instances where significant liquidity grabs occur, signaled by breakouts beyond recent highs or lows. Once a signal is detected, the indicator plots horizontal lines at key Fibonacci ratios (0%, 25%, 50%, 75%, 100%, 120%, and 180%) to give traders a clear visual framework for potential retracement or extension levels.
Additionally, the indicator includes a dynamic EMA filter, which ensures that buy signals are only triggered when the price is above the EMA and sell signals when the price is below the EMA. This filtering mechanism helps reduce false signals in choppy markets and aligns trades with the broader trend direction.
---
### **Key Features**
1. **Buy & Sell Signals**
- Buy signals are generated when a liquidity grab occurs below the previous low, and the closing price is above the candle body midpoint and the EMA.
- Sell signals are triggered when a liquidity grab occurs above the previous high, and the closing price is below the candle body midpoint and the EMA.
- Visual cues are provided via small upward (green) and downward (red) triangles on the chart.
2. **Fibonacci Levels**
- For each buy or sell signal, the indicator plots multiple horizontal lines at key Fibonacci levels. These levels can help traders set realistic profit targets and stop-loss levels.
- The plotted lines can be customized in terms of style (solid, dotted, dashed) and color (buy and sell line colors).
3. **Dynamic EMA Filtering**
- A customizable EMA filter is integrated into the logic to align trades with the prevailing trend.
- The EMA length is adjustable, allowing traders to fine-tune the indicator based on their trading style and market conditions.
4. **Alert System**
- Alerts can be enabled for both buy and sell signals, ensuring traders never miss an opportunity even when away from the screen.
- Alerts are triggered once per bar, ensuring timely notifications without excessive noise.
5. **Customizable Signal Visibility**
- Traders can toggle the visibility of the last 9 buy and sell signals. When this option is disabled, only the most recent signal is displayed, helping to declutter the chart.
---
### **How to Use the ELC Indicator**
- **Trend Following**: The ELC Indicator works well in trending markets by filtering signals based on the EMA direction. Traders can use the plotted Fibonacci levels to enter trades, set profit targets, and manage risk.
- **Reversal Trading**: The liquidity grab detection mechanism allows traders to capture potential market reversals. By waiting for price retracements to key Fibonacci levels after a signal, traders can enter trades with a favorable risk-to-reward ratio.
- **Scalping & Day Trading**: With its ability to plot key intraday levels and generate real-time alerts, the ELC Indicator is particularly useful for scalpers and day traders looking to exploit short-term market inefficiencies.
---
### **Concepts Underlying the Calculations**
1. **Liquidity Grabs**: The ELC Indicator’s core logic is based on detecting instances where the market moves beyond a recent high or low, triggering a liquidity grab. This often signals a potential reversal or continuation, depending on broader market conditions.
2. **Fibonacci Ratios**: Once a signal is detected, key Fibonacci levels are plotted to provide traders with actionable zones for trade entries, profit targets, or stop-loss placements.
3. **EMA Filtering**: The EMA acts as a dynamic trend filter, ensuring that signals are aligned with the dominant market direction. This reduces the likelihood of entering trades against the prevailing trend.
---
### **Why ELC is Unique**
The ELC Indicator stands out by combining multiple powerful trading concepts—liquidity, Fibonacci ratios, and EMA filtering—into a single tool that provides actionable and visually intuitive information. Unlike traditional trend-following indicators that lag behind price action, ELC proactively identifies key market turning points based on liquidity events. Its customizable features, real-time alerts, and comprehensive plotting of Fibonacci levels make it a versatile tool for traders across various styles and timeframes.
Whether you're a scalper looking for intraday opportunities or a swing trader aiming to capture larger moves, the ELC Indicator offers a robust framework for identifying and executing high-probability trades.
---
### **How to Get Started**
1. Add the ELC Indicator to your chart.
2. Customize the EMA length, line colors, and style based on your preference.
3. Enable alerts to receive real-time notifications of buy and sell signals.
4. Use the plotted Fibonacci levels to plan your trade entries, profit targets, and stop-loss levels.
5. Combine the signals from ELC with your existing market analysis for optimal results.
---
This unique approach makes the ELC Indicator a valuable tool for traders seeking precision, clarity, and consistency in their trading decisions.
Fibonacci Bands [BigBeluga]The Fibonacci Band indicator is a powerful tool for identifying potential support, resistance, and mean reversion zones based on Fibonacci ratios. It overlays three sets of Fibonacci ratio bands (38.2%, 61.8%, and 100%) around a central trend line, dynamically adapting to price movements. This structure enables traders to track trends, visualize potential liquidity sweep areas, and spot reversal points for strategic entries and exits.
🔵 KEY FEATURES & USAGE
Fibonacci Bands for Support & Resistance:
The Fibonacci Band indicator applies three key Fibonacci ratios (38.2%, 61.8%, and 100%) to construct dynamic bands around a smoothed price. These levels often act as critical support and resistance areas, marked with labels displaying the percentage and corresponding price. The 100% band level is especially crucial, signaling potential liquidity sweep zones and reversal points.
Mean Reversion Signals at 100% Bands:
When price moves above or below the 100% band, the indicator generates mean reversion signals.
Trend Detection with Midline:
The central line acts as a trend-following tool: when solid, it indicates an uptrend, while a dashed line signals a downtrend. This adaptive midline helps traders assess the prevailing market direction while keeping the chart clean and intuitive.
Extended Price Projections:
All Fibonacci bands extend to future bars (default 30) to project potential price levels, providing a forward-looking perspective on where price may encounter support or resistance. This feature helps traders anticipate market structure in advance and set targets accordingly.
Liquidity Sweep:
--
-Liquidity Sweep at Previous Lows:
The price action moves below a previous low, capturing sell-side liquidity (stop-losses from long positions or entries for breakout traders).
The wick suggests that the price quickly reversed, leaving a failed breakout below support.
This is a classic liquidity grab, often indicating a bullish reversal .
-Liquidity Sweep at Previous Highs:
The price spikes above a prior high, sweeping buy-side liquidity (stop-losses from short positions or breakout entries).
The wick signifies rejection, suggesting a failed breakout above resistance.
This is a bearish liquidity sweep , often followed by a mean reversion or a downward move.
Display Customization:
To declutter the chart, traders can choose to hide Fibonacci levels and only display overbought/oversold zones along with the trend-following midline and mean reversion signals. This option enables a clearer focus on key reversal areas without additional distractions.
🔵 CUSTOMIZATION
Period Length: Adjust the length of the smoothed moving average for more reactive or smoother bands.
Channel Width: Customize the width of the Fibonacci channel.
Fibonacci Ratios: Customize the Fibonacci ratios to reflect personal preference or unique market behaviors.
Future Projection Extension: Set the number of bars to extend Fibonacci bands, allowing flexibility in projecting price levels.
Hide Fibonacci Levels: Toggle the visibility of Fibonacci levels for a cleaner chart focused on overbought/oversold regions and midline trend signals.
Liquidity Sweep: Toggle the visibility of Liquidity Sweep points
The Fibonacci Band indicator provides traders with an advanced framework for analyzing market structure, liquidity sweeps, and trend reversals. By integrating Fibonacci-based levels with trend detection and mean reversion signals, this tool offers a robust approach to navigating dynamic price action and finding high-probability trading opportunities.
Engulfing bar detectorHere’s the updated description with the added step about using Fibonacci levels across timeframes for confirmation:
Liquidity Engulfing Bar Detector
The **Liquidity Engulfing Bar Detector** is a powerful tool designed for traders who want to identify high-probability reversal patterns in the market based on liquidity grabbing and price action. This indicator highlights **Bullish Engulfing** and **Bearish Engulfing** bars that fulfill specific liquidity criteria, helping you spot potential trend reversals and trading opportunities.
**Features**:
1. **Bullish Engulfing Bars**:
- The current candle's low dips below the previous candle's low (grabs liquidity).
- The current candle closes above the previous candle's open.
- A green label is plotted above the engulfing bar for easy identification.
2. **Bearish Engulfing Bars**:
- The current candle's high exceeds the previous candle's high (grabs liquidity).
- The current candle closes below the previous candle's open.
- A red label is plotted below the engulfing bar for clear visibility.
3. **Customizable Alerts**:
- Receive instant notifications via TradingView alerts when a bullish or bearish engulfing pattern is detected.
- Alerts are fully customizable, allowing you to stay updated without actively monitoring the chart.
4. **Visual Markers**:
- Clear and intuitive labels make it easy to spot key patterns directly on your chart.
- Fully integrated with any timeframe and market, ensuring versatility for all trading styles.
---
### **How to Use**:
1. **Add the Indicator**:
- Apply the Liquidity Engulfing Bar Detector to your chart to automatically highlight bullish and bearish engulfing bars.
2. **Enable Alerts**:
- Set up TradingView alerts to get notified of potential setups in real-time.
3. **Analyze with Fibonacci Levels**:
- Draw a Fibonacci retracement tool over the identified engulfing bar, from its low to its high (for bullish patterns) or high to low (for bearish patterns).
- Use the following Fibonacci levels as key zones of interest:
- **0.0 (start)**, **0.25**, **0.5 (midpoint)**, **0.75**, and **1.0 (end)**.
- These levels often act as critical support or resistance zones for price action.
4. **Use Multi-Timeframe Confirmation**:
- Validate zones from higher timeframes using lower timeframe candles:
- **1-minute candles** for confirming zones on the **15-minute chart**.
- **5-minute candles** for confirming zones on the **1-hour chart**.
- **15-minute candles** for confirming zones on the **4-hour chart**.
- This approach ensures precision in your entry points and aligns intraday movements with higher timeframe setups.
5. **Integrate with Your Strategy**:
- Combine the indicator with other tools (e.g., trendlines, moving averages, or volume analysis) for confirmation.
- Use proper risk management to maximize your trading edge.
---
### **Why Use This Indicator?**
Liquidity grabs often signal the participation of major market players, which can lead to significant reversals or continuations. By combining liquidity concepts with engulfing bar patterns and Fibonacci analysis, this indicator helps you:
- Identify key market turning points.
- Improve your entries and exits with multi-timeframe precision.
- Enhance your trading strategy with an edge rooted in smart money concepts.
---
**Note**: This indicator is best used with proper risk management and alongside other technical or fundamental analyses.
---
Let me know if there's anything more you'd like to include!
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
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.
Market Structure Inducements ICT [TradinFinder] CHoch BOS Sweeps🔵 Introduction
Market Structure is the foundation for identifying trends in the market, crucial in technical analysis and strategies like ICT and SMC. Understanding key concepts such as Break of Structure (BOS) and Change of Character (CHOCH) helps traders recognize critical shifts in the market. BOS, referring to a Market Structure Change (BMS), and CHOCH or Market Structure Shift (MSS) signal trend reversals in the market.
Additionally, the concept of Inducement, a vital tool in Smart Money strategies, allows traders to avoid price traps. Identifying valid pullback, valid inducement, POI, and Liquidity Grab helps traders find optimal entry and exit points and leverage Smart Money movements effectively.
Bullish Market Structure :
Bearish Market Structure :
🔵 How to Use
The Market Structure indicator is designed to help traders better understand market structure and detect price traps. By using this indicator, you can identify the right entry and exit points based on structural changes in the market and avoid unprofitable trades. Below, we explain the key concepts and how to apply them in trading.
🟣 Market Structure
Market Structure refers to the overall pattern of price movement in the market. Using this indicator, traders can identify uptrends and downtrends and make better trading decisions based on changes in market structure. The two key concepts here are Break of Structure (BOS) and Change of Character (CHOCH).
Change of Character (CHOCH) : CHOCH occurs when the market shifts from an uptrend to a downtrend or vice versa. These changes typically indicate a broader trend reversal, and the indicator assists you in identifying them accurately.
Break of Structure (BOS) : When the market breaks a key support or resistance level, it signals a change in market structure. This indicator helps you identify these breakouts in time and take advantage of trading opportunities.
🟣 Inducement
Inducement refers to price traps set by Smart Money to trick retail traders into making the wrong trades. This indicator helps you recognize these traps and avoid unprofitable trades.
Valid Inducement : Valid Inducement refers to deliberately created price traps by major market players to gather liquidity from retail traders. Once the market has collected sufficient liquidity, it makes the real move, and professional traders use this moment to enter.
🟣 Valid Pullback
A Valid Pullback refers to a temporary market retracement, indicating a price correction within the main trend. This concept is crucial in technical analysis as it helps traders enter trades at the right time and profit from the continuation of the trend. The Market Structure indicator can identify these valid retracements, allowing traders to enter trades with greater confidence.
🟣 Point of Interest (POI)
Another important concept in market analysis is the Point of Interest (POI), referring to key price areas on the chart. POI includes zones where significant price movements are likely to occur. The Market Structure indicator helps you locate these key points and use them as entry signals for trades.
🟣 Liquidity Grab
Liquidity Grab refers to a scenario where the market intentionally moves to areas where retail traders' stop losses are placed. The goal is to gather liquidity, allowing major players to execute trades at better prices. By using this indicator, you can spot these liquidity grabs and avoid falling into price traps.
🔵 Setting
ChoCh Detector Period : The period of identifying the major market levels that occur when they break ChoCh.
BoS & Liquidity Detector Period : The period of identifying minor levels, which are used to identify BoS and Liquidity levels.
Inducement Detector Period : The period of identification of Inducement levels.
Fast Trend Detector : This feature will help you update the major market structure levels sooner.
Inducement Type Detector : Two modes "Sweeps" and "Total" can be used to identify the levels of Inducement. In "Sweeps" mode only Levels detected by touch shadow. In "Total" mode, all Levels are detected.
🔵 Conclusion
In financial market analysis and forex trading, identifying Market Structure and Inducement is crucial. Market Structure helps you detect uptrends and downtrends, and understand Break of Structure (BOS) and Change of Character (CHOCH). The concept of Inducement also enables traders to spot Smart Money price traps and avoid unprofitable trades.
The Market Structure indicator is a powerful tool that, by analyzing the market structure and concepts like valid pullback and valid inducement, helps you make more precise trade entries. Additionally, by identifying POI and Liquidity Grab, the indicator gives you the ability to spot key market zones and use them to your advantage in trading.
Market Structure & Session Alerts### Market Structure & Session Alerts Indicator
#### Overview
The "Market Structure & Session Alerts" indicator is a comprehensive tool designed to assist traders in identifying key market structure levels, detecting liquidity sweeps, and receiving alerts for specific trading sessions. This indicator is particularly useful for traders who want to keep an eye on previous high and low levels and be alerted during pre-London and pre-New York sessions.
#### Features
1. **Previous High/Low Levels:**
- **Daily, Weekly, and Monthly Highs and Lows:** The indicator plots the previous day, week, and month high and low levels on the chart. These levels can be crucial for identifying support and resistance zones.
- **Toggle Display:** Users can choose to show or hide these levels using the "Show Previous Day/Week/Month High/Low" option.
2. **Liquidity Sweep Detection:**
- **Liquidity Sweep Identification:** The indicator detects liquidity sweeps when the current price closes above the previous day's high. This can signal potential reversals or continuations in the market.
- **Visual Alerts:** When a liquidity sweep is detected, a green triangle is plotted below the bar.
3. **Session Alerts:**
- **Session Timings:** Users can set specific start and end times for the pre-London and pre-New York sessions to match their timezone.
- **Visual Background Highlight:** The background of the chart is highlighted in yellow during the defined session times to provide a visual cue.
- **Alert Messages:** The indicator can generate alerts to notify traders when the market enters the pre-London or pre-New York session.
4. **Current Price Line:**
- The current price is plotted as a black line, providing a clear visual reference for the current market price.
#### How to Use
1. **Input Parameters:**
- `Show Previous Day/Week/Month High/Low`: Enable or disable the display of previous high/low levels.
- `Show Liquidity Sweep`: Enable or disable the detection and display of liquidity sweeps.
- `Show Session Alerts`: Enable or disable session alerts and background highlights.
2. **Session Timing Adjustments:**
- Set the `Pre-London Start`, `Pre-London End`, `Pre-New York Start`, and `Pre-New York End` times according to your timezone to ensure accurate session alerts.
3. **Alerts:**
- Make sure alerts are enabled in your TradingView settings to receive notifications when the market enters the pre-London or pre-New York sessions.
#### Example Use Cases
- **Day Traders:** Identify potential support and resistance levels using the previous day's high and low.
- **Swing Traders:** Use weekly and monthly high and low levels to determine significant market structure points.
- **Scalpers:** Detect liquidity sweeps to identify potential quick trades.
- **Session Traders:** Be alerted when the market enters key trading sessions to align your trading strategy with major market activities.
This indicator combines multiple market analysis tools into one, providing a robust system for traders to enhance their trading decisions and market awareness.
Uptrick: Volume StrengthPurpose:
The "Uptrick: Volume Strength" indicator, known by its short title 'VolStrength,' is meticulously designed to evaluate the strength of volume activity within a market, providing traders with valuable insights into liquidity dynamics. By visualizing volume bars and comparing them to a predefined threshold, traders can gauge the intensity of buying or selling pressure, thereby assessing market liquidity and potential price movements.
Explanation:
Input Parameters:
Traders benefit from the ability to customize the threshold for high volume, allowing them to adapt the indicator to varying market conditions and trading strategies.
The calculation of the average volume over a specified period adds depth to the analysis, offering traders a reference point for assessing current volume levels relative to historical averages and evaluating liquidity trends.
Volume Analysis:
The script discerns between bars where the closing price exceeds the opening price (up bars) and bars where the closing price is lower than the opening price (down bars), facilitating the identification of bullish or bearish market sentiment.
High-volume bars that surpass the predefined threshold are prominently highlighted, serving as indicators of increased trading activity and enhanced liquidity levels.
Average Volume Visualization:
A line representing the average volume over the specified period is plotted on the chart, providing traders with a visual reference for evaluating current volume levels against historical averages. This aids in assessing the overall liquidity conditions in the market.
Volume Bar Representation:
The colorization of volume bars is contingent upon their direction (up or down) and whether they exceed the high volume threshold.
Up bars, symbolizing buying pressure, are typically depicted in green, while down bars, indicative of selling pressure, are rendered in red.
Notably, when volume surpasses the high volume threshold, the respective bar color is applied, accentuating significant volume spikes and their potential impact on liquidity and price dynamics.
Through its meticulous design and comprehensive features, the "Uptrick: Volume Strength" indicator equips traders with actionable insights into market liquidity dynamics. By integrating volume analysis into their trading strategies, traders can effectively assess liquidity conditions, identify potential price movements, and make informed trading decisions.
LIT - Timings Fx MartinThe Asia Liquidity Points Indicator is a powerful tool designed for traders to identify key liquidity points during the Asia trading session. This script is tailored specifically to aid traders in capitalizing on the unique characteristics of Asian markets, providing invaluable insights into liquidity zones that can significantly enhance trading decisions.
Key Features:
Asia Session Focus: The indicator focuses exclusively on the Asia trading session, which encompasses the trading activity primarily in the Asian markets such as Tokyo, Hong Kong, Singapore, and others.
Liquidity Zones Identification: The script utilizes advanced algorithms to identify and map out liquidity zones within the Asia trading session. These zones represent areas where significant buying or selling pressure is likely to occur, thus presenting lucrative trading opportunities.
Customizable Parameters: Traders have the flexibility to customize various parameters such as time frame, sensitivity, and display options to suit their trading preferences and strategies.
Visual Alerts: The indicator provides visual alerts on the trading chart, clearly indicating the location and strength of liquidity points. This feature enables traders to quickly identify potential entry or exit points based on the liquidity dynamics in the market.
Real-Time Updates: The script continuously monitors market activity during the Asia session, providing real-time updates on liquidity points as they evolve. This ensures traders stay informed and adaptable to changing market conditions.
Integration with Trading Strategies: The Asia Liquidity Points Indicator seamlessly integrates with various trading strategies, serving as a valuable tool for both discretionary and algorithmic traders. Whether used in isolation or in combination with other technical analysis tools, this indicator can enhance trading performance and profitability.
User-Friendly Interface: The indicator boasts a user-friendly interface, making it accessible to traders of all levels of experience. Whether you are a novice trader or a seasoned professional, you can easily incorporate this tool into your trading arsenal.
In conclusion, the Asia Liquidity Points Indicator offers traders a strategic advantage in navigating the nuances of the Asia trading session. By identifying key liquidity zones and providing real-time insights, this script empowers traders to make informed decisions and capitalize on lucrative trading opportunities in the dynamic Asian markets.
ICT - GAPs and Volume Imbalance
GAPs
Gaps are areas on chart where the price have moved sharply up or down, with no trading in between. Gaps often fill, but they don't have to.
Volume Imbalance
Volume imbalance - determined using 2 candles
Bullish Volume Imbalance - area between the close of 1st candle and the open of 2nd candle
Bearish Volume Imbalance - area between the close of 1st candle and the open of 2nd candle
How to use the indicator:-
When you find imbalance in volume or a GAP in the chart, you may expect price to rebalance it before continuation.
Importantly, GAPs/Imbalances do not always fill. Traders should never assume that a gap/imbalance will fill without understanding the reasons for the gap and monitoring trading activity around the gap.
Pair it with your current bias for better results.
FX Mini-Day/Index Dividers V2This is a combination of the Mini-Day Separator Indicator, timings based off the research by Tom Henstridge/@LiquiditySniper and additional Index KZ delineations, based on ICT's 2022 Youtube Mentorship.
*It borrows some minor code from Enricoamato997 . Credit where it is due!
This is a joint effort by myself, @vbwilkes / Offseason Vince and @Tom_FOREX / TraderTom on the Index/Index Future portion.
Index Future Example
Forex Example
Bollinger Bands Delta Matrix Analytics [BDMA] Bollinger Bands Delta Matrix Analytics (BDMA) v7.0
Deep Kinetic Engine – 5x8 Volatility & Delta Decision Matrix
1. Introduction & Concept
Bollinger Bands Delta Matrix Analytics (BDMA) v7.0 is an analytical framework that merges:
- Spatial analysis via Bollinger Bands (%B location),
- with a 4-factor Deep Kinetic Engine based on:
• Total Volume
• Buy Volume
• Sell Volume
• Delta (Buy – Sell) Z-Scores
and converts them into an expanded 5×8 decision matrix that continuously tracks where price is trading and how the underlying orderflow is behaving.
BDMA is not a trading system or strategy. It does not generate entry/exit signals.
Instead, it provides a structured contextual map of volatility, volume, and delta so traders can:
- identify climactic extensions vs. fakeouts,
- distinguish strong initiative moves vs. passive absorption,
- and detect squeezes, traps, and liquidity voids with a unified visual dashboard.
2. Spatial Engine – Bollinger S-States (S1–S5)
The spatial dimension of BDMA comes from classic Bollinger Bands.
Price location is expressed as Percent B (%B) and mapped into 5 spatial states (S-States):
S1 – Hyper Extension (Above Upper Band)
Price has pushed beyond the upper Bollinger Band.
Often associated with parabolic or blow-off behavior, late-stage momentum, and elevated reversal risk.
S2 – Resistance Test (Upper Zone)
Price trades in the upper Bollinger region but remains inside the bands.
Represents a sustained test of resistance, typically within an established or emerging uptrend.
S3 – Neutral Zone (Middle)
Price hovers around the mid-band.
This is the mean reversion gravity field where the market often consolidates or transitions between regimes.
S4 – Support Test (Lower Zone)
Price trades in the lower Bollinger region but inside the bands.
Represents a sustained test of support within range or downtrend structures.
S5 – Hyper Drop (Below Lower Band)
Price extends below the lower Bollinger Band.
Often aligned with panic, forced liquidations, or capitulation-type behavior, with increased snap-back risk.
These 5 S-States define the vertical axis (rows) of the BDMA matrix.
3. Deep Kinetic Engine – 4-Factor Z-Score & D-States (D1–D8)
The Deep Kinetic Engine transforms raw volume and delta into standardized Z-Scores to measure how abnormal current activity is relative to its recent history.
For each bar:
- Raw Buy Volume is estimated from the candle’s position within its range
- Raw Sell Volume is complementary to buy volume
- Raw Delta = Buy Volume – Sell Volume
- Total Volume = Buy Volume + Sell Volume
These 4 series are then normalized using a unified Z-Score lookback to produce:
1. Z_Vol_Total – overall activity and liquidity intensity
2. Z_Vol_Buy – aggression from buyers (attack)
3. Z_Vol_Sell – aggression from sellers (defense or attack)
4. Z_Delta – net victory of one side over the other
Thresholds for Extreme, Significant, and Neutral Z-Score levels are fully configurable, allowing you to tune the sensitivity of the kinetic states.
Using Z_Vol_Total and Z_Delta (plus threshold logic), BDMA assigns one of 8 Deep Kinetic states (D-States):
D1 – Climax Buy
Extreme Total Volume + Extreme Positive Delta → Buying climax or blow-off behavior.
D2 – Strong Buy
High Volume + High Positive Delta → Confirmed bullish initiative activity.
D3 – Weak Buy / Fakeout
Low Volume + High Positive Delta → Bullish delta without commitment, low-liquidity breakout risk.
D4 – Absorption / Conflict
High Volume + Neutral Delta → Aggressive two-way trade, strong absorption, war zone behavior.
D5 – Neutral
Low Volume + Neutral Delta → Low-energy environment with low conviction.
D6 – Weak Sell / Fakeout
Low Volume + High Negative Delta → Bearish delta without commitment, low-liquidity breakdown risk.
D7 – Strong Sell
High Volume + High Negative Delta → Confirmed bearish initiative activity.
D8 – Capitulation
Extreme Volume + Extreme Negative Delta → Panic selling or capitulation regime.
These 8 D-States define the horizontal axis (columns) of the BDMA matrix.
4. The 5×8 BDMA Decision Matrix
The core of BDMA is a 5×8 matrix where:
- Rows (1–5) = Spatial S-States (S1…S5)
- Columns (1–8) = Kinetic D-States (D1…D8)
Each of the 40 possible combinations (SxDy) is pre-computed and mapped to:
- a Status or Regime Title (for example: Climax Breakout, Bear Trap Spring, Capitulation Breakdown),
- a Bias (Climactic Bull, Neutral, Strong Bear, Conflict or Reversal Risk, and similar labels),
- and a Strategic Signal or Consideration (for example: High reversal risk, Wait for confirmation, Low probability zone – avoid).
Internally, BDMA resolves all 40 regimes so the current state can be displayed on the dashboard without performance overhead.
5. Key Regime Families (How to Read the Matrix)
5.1. Breakouts and Breakdowns
Climax Breakout (Top-side)
Spatial S1 with Kinetic D1 or D2
Bias: Explosive or Extreme Bull
Signal:
- Strong or climactic upside extension with abnormal bullish orderflow.
- Trend continuation is possible, but reversal risk is extremely high after blow-off phases.
Low-Conviction Breakout (Fakeout Risk)
S1 with D3 (Weak Buy, low liquidity)
Bias: Weak Bull – Caution
Signal:
- Breakout not supported by volume.
- Elevated risk of failed auction or bull trap.
Capitulation Breakdown (Bottom-side)
Spatial S5 with Kinetic D8
Bias: Climactic Bear (panic)
Signal:
- Capitulation-type selling or forced liquidations.
- Trend can still proceed, but snap-back or violent short-covering risk is high.
Initiative Breakdown vs. Weak Breakdown
- Strong, high-volume breakdown typically corresponds to D7 (Strong Sell).
- Low-volume breakdown often corresponds to D6 (Weak Sell or Fakeout) with potential for failure.
5.2. Absorption, Traps and Springs
Absorption at Resistance (Top-side conflict)
S1 or S2 with D4 (Absorption or Conflict)
Bias: Conflict – Extreme Tension
Signal:
- Heavy two-way trade near resistance.
- Potential distribution or reversal if sellers begin to dominate.
Bull Trap or Failed Auction
Typically S1 with D6 (Weak Sell breakdown behavior after a top-side attempt)
Indicates a breakout attempt that fails and reverses, often after poor liquidity structure.
Absorption at Support and Bear Trap (Spring)
S4 or S5 with D4 or D3
Bias: Conflict or Weak Bear – Reversal Risk
Signal:
- Aggressive buying into lows (spring or shakeout behavior).
- Potential bear trap if price reclaims lost territory.
5.3. Trend Phases
Strong Uptrend Phases
Typically seen when S2–S3 combine with strong bullish kinetic behavior.
Bias: Strong or Extreme Bull
Signal:
- Pullbacks into S3 or S4 with supportive kinetic states often act as trend continuation zones.
Strong Downtrend Phases
Typically seen when S3–S4 combine with strong bearish kinetic behavior.
Bias: Strong or Extreme Bear
Signal:
- Rallies into resistance with strong bearish kinetic backing may act as continuation sell zones.
5.4. Neutral, Exhaustion and Squeeze
Exhaustion or Liquidity Void
S1 or S5 with D5 (Neutral kinetics)
Bias: Neutral or Exhaustion
Signal:
- Spatial extremes without kinetic confirmation.
- Often marks the end of a move, with poor follow-through.
Choppy, Low-Activity Range
S3 with D5
Bias: Neutral
Signal:
- Low volume, low conviction market.
- Typically a low-probability environment where standing aside can be logical.
Squeeze or High-Tension Zone
S3 with D4 or tightly clustered kinetic values
Bias: Conflict or High Tension
Signal:
- Hidden battle inside a volatility contraction.
- Often precedes large directionally-biased moves.
6. Dashboard Layout & Reading Guide
When Show Dashboard is enabled, BDMA displays:
1. Title and Status Line
Name of the current regime (for example: Climax Breakout, Bear Trap Spring, Mean Reversion).
2. Bias Line
Plain-language summary of directional context such as Climactic Bull, Strong Bear, Neutral, or Conflict and Reversal Risk.
3. Signal or Strategic Notes
Concise guidance focused on risk and context, not entries. For example:
- High reversal risk – aggressive traders only
- Wait for confirmation (break or rejection)
- Low probability zone – avoid taking new positions
4. Kinetic Profile (4-Factor Z-Score)
Shows the current Z-Scores for Total Volume (Activity), Buy Volume (Attack), Sell Volume (Defense), and Delta (Net Result).
5. Matrix Heatmap (5×8)
Visual representation of S-State vs. D-State with color coding:
- Bullish clusters in a green spectrum
- Bearish clusters in a red spectrum
- Conflict or exhaustion zones in yellow, amber, or neutral tones
The dashboard can be repositioned (top right, middle right, or bottom right) and its size can be adjusted (Tiny, Small, Normal, or Large) to fit different layouts.
7. Inputs & Customization
7.1. Core Parameters (Bollinger and Z-Score)
- Bollinger Length and Standard Deviation define the spatial engine.
- Z-Score Lookback (All Factors) defines how many bars are used to normalize volume and delta.
7.2. Deep Kinetic Thresholds
- Extreme Threshold defines what is considered climactic (D1 or D8).
- Significant Threshold distinguishes strong initiative vs. weak or fakeout behavior.
- Neutral Threshold is the band within which delta is treated as neutral.
These thresholds allow you to tune the sensitivity of the kinetic classification to fit different timeframes or instruments.
7.3. Calculation Method (Volume Delta)
Geometry (Approx)
- Fast, non-repainting approach based on candle geometry.
- Suitable for most users and real-time decision-making.
Intrabar (Precise)
- Uses lower-timeframe data for more precise volume delta estimation.
- Intrabar mode can repaint and requires compatible data and plan support on the platform.
- Best used for post-analysis or research, not blind automation.
7.4. Visuals and Interface
- Toggle Bollinger Bands visibility on or off.
- Switch between Dark and Light color themes.
- Configure dashboard visibility, matrix heatmap display, position, and size.
8. Multi-Language Semantic Engine (Asia and Middle East Focus)
BDMA v7.0 includes a fully integrated multi-language layer, targeting a wide geographic user base.
Supported Languages:
English, Türkçe, Русский, 简体中文, हिन्दी, العربية, فارسی, עברית
All dashboard labels, regime titles, bias descriptions, and signal texts are dynamically translated via an internal dictionary, while semantic meaning is kept consistent across languages.
This makes BDMA suitable for multi-language communities, study groups, and educational content across different regions.
However, due to the heavy computational load of the Deep Kinetic Engine and TradingView’s strict Pine Script execution limits, it was not possible to expand support to additional languages. Adding more translation layers would significantly increase memory usage and exceed runtime constraints. For this reason, the current language set represents the maximum optimized configuration achievable without compromising performance or stability.
9. Practical Usage Notes
BDMA is most powerful when used as a contextual overlay on top of market structure (HH, HL, LH, LL), higher-timeframe trend, key levels, and your own execution framework.
Recommended usage:
- Identify the current regime (Status and Bias).
- Check whether price location (S-State) and kinetic behavior (D-State) agree with your trade idea.
- Be especially cautious in climactic and absorption or conflict zones, where volatility and risk can be elevated.
Avoid treating BDMA as an automatic green equals buy, red equals sell tool.
The real edge comes from understanding where you are in the volatility or kinetic spectrum, not from forcing signals out of the matrix.
10. Limitations & Important Warnings
BDMA does not predict the future.
It organizes current and recent data into a structured context.
Volume data quality depends on the underlying symbol, exchange, and broker feed.
Forex, crypto, indices, and stocks may all behave differently.
Intrabar mode can repaint and is sensitive to lower-timeframe data availability and your plan type.
Use it with extra caution and primarily for research.
No indicator can remove the need for clear trading rules, disciplined risk management, and psychological control.
11. Disclaimer
This script is provided strictly for educational and analytical purposes.
It is not a trading system, signal service, financial product, or investment advice.
Nothing in this indicator or its description should be interpreted as a recommendation to buy or sell any asset.
Past behavior of any indicator or market pattern does not guarantee future results.
Trading and investing involve significant risk, including the risk of losing more than your initial capital in leveraged products.
You are solely responsible for your own decisions, risk management, and results.
By using this script, you acknowledge that you understand these risks and agree that the author or authors and publisher or publishers are not liable for any loss or damage arising from its use.
Stratégie SMC V18.2 (BTC/EUR FINAL R3 - Tendance)This strategy is an automated implementation of Smart Money Concepts (SMC), designed to operate on the Bitcoin/Euro (BTC/EUR) chart using the 15-minute Timeframe (M15).It focuses on identifying high-probability zones (Order Blocks) after a confirmed Break of Structure (BOS) and a Liquidity Sweep, utilizing an H1/EMA 200 trend filter to only execute trades in the direction of the dominant market flow.Risk management is strict: every trade uses a fixed Risk-to-Reward Ratio (R:R) of 1:3.🧱 Core Logic Components
1. Trend Filter (H1/EMA 200)Objective: To avoid counter-trend entries, which has allowed the success rate to increase to nearly $65\%$ in backtests.Mechanism: A $200$-period EMA is plotted on a higher timeframe (Default: H1/60 minutes).Long (Buy): Entry is only permitted if the current price (M15) is above the trend EMA.Short (Sell): Entry is only permitted if the current price (M15) is below the trend EMA.
2. Order Block (OB) DetectionA potential Order Block is identified on the previous candle if it is
accompanied by an inefficiency (FVG - Fair Value Gap).
3. Advanced SMC ValidationBOS (Break of Structure): A recent BOS must be confirmed by breaking the swing high/low defined by the swing length (Default: 4 M15 candles).Liquidity (Liquidity Sweep): The Order Block zone must have swept recent liquidity (defined by the Liquidity Search Length) within a certain tolerance (Default: $0.1\%$).Point of Interest: The OB must form in a premium zone (for shorts) or a discount zone (for longs) relative to the current swing range (above or below the $50\%$ level of the range).
4. Execution and Risk ManagementEntry: The trade is triggered when the price touches the active Order Block (mitigation).Stop Loss (SL): The SL is fixed at the low of the OB (for longs) or the high of the OB (for shorts).Take Profit (TP): The TP is strictly set at a level corresponding to 3 times the SL distance (R:R 1:3).Lot Sizing: The trade quantity is calculated to risk a fixed amount (Default: 2.00 Euros) per transaction, capped by a Lot Max and Lot Min defined by the user.
Input Parameters (Optimized for BTC/EUR M15)Users can adjust these parameters to modify sensitivity and risk profile. The default values are those optimized for the high-performing backtest (Profit Factor $> 3$).ParameterDescriptionDefault Value (M15)Long. Swing (BOS)Candle length used to define the swing (and thus the BOS).4Long. Recherche Liq.Number of candles to scan to confirm a liquidity sweep.7Tolérance Liq. (%)Price tolerance to validate the liquidity sweep (as a percentage of price).0.1Timeframe TendanceChart timeframe used for the EMA filter (e.g., 60 = H1).60 (H1)Longueur EMA TendancePeriods used for the trend EMA.200Lot Max (Quantité Max BTC)Maximum quantity of BTC the strategy is allowed to trade.0.01Lot Min Réel (Exigence Broker)Minimum quantity required by the broker/exchange.0.00001
FPT - Key Levels with VWAP🔶 FPT – Key Levels with VWAP
This indicator combines multi-session VWAP, higher-timeframe key levels, market structure (HH/HL/LH/LL), and liquidity zones into one clean intraday tool.
Designed for scalping, day-trading, and session-based strategies such as Asia → London → New York flows.
🔵 Features
1. Multi-Session VWAP
Asia VWAP
London VWAP
New York VWAP
Daily reset
Optional deviations & clean mode
2. Key Levels (HTF SR Zones)
Automatically detects:
Previous Day High / Low
4H / 1H Key Levels
Session High / Low
Midpoints
Equal Highs & Equal Lows (liquidity lines)
3. Market Structure Engine
Swing points (HH, HL, LH, LL)
Break of Structure (BOS)
Market Structure Shift (MSS)
Optional minimal mode showing only breaks
4. Liquidity Tools
Buyside & sellside liquidity zones
Range high / low liquidity
Optional void / imbalance zones
5. Clean Visualization Mode
Removes unnecessary text
Shows only the essential levels
Perfect for chart posting or backtesting
🟩 Use Cases
Intraday key level mapping
VWAP deviation → mean reversion setups
Liquidity sweep → BOS/MSS setups
Session volatility filtering
Scalping and fast execution planning
⚠️ Disclaimer
This script does not provide financial advice.
It is for educational and analytical purposes only.
All trading decisions are solely your responsibility.
ULTIMATE ORDER FLOW SYSTEM🔥 ULTIMATE ORDER FLOW SYSTEM
Overview
This comprehensive order flow analysis tool combines **Volume Profile**, **Cumulative Delta**, and **Large Order Detection** to identify high-probability trading setups. The script analyzes institutional order flow patterns and volume distribution to pinpoint key levels where price is likely to react.
📊 Core Components & Methodology
🔥 ULTIMATE ORDER FLOW SYSTEM
Overview
This comprehensive order flow analysis tool combines Volume Profile, Cumulative Delta, and Large Order Detection to identify high-probability trading setups. The script analyzes institutional order flow patterns and volume distribution to pinpoint key levels where price is likely to react.
________________________________________
📊 Core Components & Methodology
1. Volume Profile Analysis
The script constructs a horizontal volume profile by:
• Dividing the price range into configurable rows (default: 20)
• Accumulating volume at each price level over a lookback period (default: 50 bars)
• Separating buy volume (green bars close > open) from sell volume (red bars)
• Identifying three critical levels:
o POC (Point of Control): Price level with highest traded volume - acts as a strong magnet
o VAH/VAL (Value Area High/Low): Contains 70% of total volume - defines fair value zone
o HVN (High Volume Nodes): Resistance zones where institutions accumulated positions
o LVN (Low Volume Nodes): Thin zones that price moves through quickly - ideal targets
Why This Matters: Institutional traders leave footprints through volume. HVN zones show where large players defended levels, making them reliable support/resistance.
________________________________________
2. Cumulative Delta (Order Flow)
Tracks the running total of buying vs selling pressure:
• Bar Delta: Difference between buy and sell volume per candle
• Cumulative Delta: Sum of all bar deltas - shows net directional pressure
• Delta Moving Average: Smoothed delta (20-period) to identify trend
• Delta Divergences:
o Bullish: Price makes lower low, but delta makes higher low (absorption at bottom)
o Bearish: Price makes higher high, but delta makes lower high (exhaustion at top)
How It Works: When cumulative delta trends up while price consolidates, it signals accumulation. Delta divergences reveal when smart money is positioned opposite to retail expectations.
________________________________________
3. Large Order Detection
Identifies institutional-sized orders in real-time:
• Compares current bar volume to 20-period moving average
• Flags orders exceeding 2.5x average volume (configurable multiplier)
• Distinguishes bullish (green circles below) vs bearish (red circles above) large orders
Rationale: Sudden volume spikes at key levels indicate institutional participation - the "fuel" needed for breakouts or reversals.
________________________________________
🎯 Trading Signal Logic
Combined Setup Criteria
The script generates SHORT and LONG signals when multiple conditions align:
SHORT Signal Requirements:
1. Price reaches an HVN resistance zone (within 0.2%)
2. Large sell order detected (volume spike + red candle)
3. Cumulative delta is bearish OR bearish divergence present
4. 10-bar cooldown between signals (prevents overtrading)
LONG Signal Requirements:
1. Price reaches an HVN support zone
2. Large buy order detected (volume spike + green candle)
3. Cumulative delta is bullish OR bullish divergence present
4. 10-bar cooldown enforced
________________________________________
🔧 Customization Options
Setting - Purpose - Recommendation
Volume Profile Rows - Granularity of level detection - 20 (balanced)
Lookback Period - Historical data analyzed - 50 bars (intraday), 200 (swing)
Large Order Multiplier - Sensitivity to volume spikes - 2.5x (standard), 3.5x (conservative)
HVN Threshold - Resistance zone detection - 1.3 (default)
LVN Threshold - Target zone identification - 0.6 (default)
Divergence Lookback - Pivot detection period - 5 bars (responsive)
________________________________________
📈 Dashboard Indicators
The real-time panel displays:
• POC: Current Point of Control price
• Location: Whether price is at HVN resistance
• Orders: Current large buy/sell activity
• Cumulative Δ: Net order flow value + trend direction
• Divergence: Active bullish/bearish divergences
• Bar Strength: % of candle volume that's directional (>65% = strong)
• SETUP: Current trade signal (LONG/SHORT/WAIT)
________________________________________
🎨 Visual System
• Yellow POC Line: Highest volume level - primary pivot
• Blue Value Area Box: Fair value zone (VAH to VAL)
• Red HVN Zones: Resistance/support from institutional accumulation
• Green LVN Zones: Low-liquidity targets for quick moves
• Volume Bars: Green (buy pressure) vs Red (sell pressure) distribution
• Triangles: LONG (green up) and SHORT (red down) entry signals
• Diamonds: Divergence warnings (cyan=bullish, fuchsia=bearish)
________________________________________
💡 How This Script Is Unique
Unlike standalone volume profile or delta indicators, this script:
1. Synthesizes three complementary methods - volume structure, order flow momentum, and liquidity detection
2. Requires multi-factor confirmation - signals only trigger when price, volume, and delta align at key zones
3. Adapts to market regime - delta filters ensure you're trading with the dominant order flow direction
4. Provides context, not just signals - the dashboard helps you understand why a setup is forming
________________________________________
⚙️ Best Practices
Timeframes:
• 5-15 min: Scalping (use 30-50 bar lookback)
• 1-4 hour: Swing trading (use 100-200 bar lookback)
Risk Management:
• Enter on signal candle close
• Stop loss: Beyond nearest HVN/LVN zone
• Target 1: Next LVN level
• Target 2: Opposite value area boundary
Filters:
• Avoid signals during major news events
• Require bar delta strength >65% for aggressive entries
• Wait for delta MA cross confirmation in ranging markets
________________________________________
🚨 Alerts Available
• Long Setup Trigger
• Short Setup Trigger
• Bullish/Bearish Divergence Detection
• Large Buy/Sell Order Execution
________________________________________
📚 Educational Context
This methodology is based on principles used by professional order flow traders:
• Market Profile Theory: Volume distribution reveals fair value
• Tape Reading: Large orders show institutional intent
• Auction Theory: Price seeks areas of liquidity imbalance (LVN zones)
The script automates pattern recognition that discretionary traders spend years learning to identify manually.
________________________________________
⚠️ Disclaimer
This indicator is a trading tool, not a trading system. It identifies high-probability setups based on order flow analysis but requires proper risk management, market context, and trader discretion. Past performance does not guarantee future results.
________________________________________
Version: 6 (Pine Script)
Type: Overlay + Separate Pane (Delta Panel)
Resource Usage: Moderate (500 bars history, 500 lines/boxes)
________________________________________
For questions or support, please comment below. If you find this script valuable, please boost and favorite! 🚀
1. Volume Profile Analysis
The script constructs a horizontal volume profile by:
- Dividing the price range into configurable rows (default: 20)
- Accumulating volume at each price level over a lookback period (default: 50 bars)
- Separating buy volume (green bars close > open) from sell volume (red bars)
- Identifying three critical levels:
- POC (Point of Control): Price level with highest traded volume - acts as a strong magnet
- VAH/VAL (Value Area High/Low): Contains 70% of total volume - defines fair value zone
- HVN (High Volume Nodes): Resistance zones where institutions accumulated positions
- LVN (Low Volume Nodes): Thin zones that price moves through quickly - ideal targets
Why This Matters: Institutional traders leave footprints through volume. HVN zones show where large players defended levels, making them reliable support/resistance.
---
2. Cumulative Delta (Order Flow)
Tracks the running total of buying vs selling pressure:
- **Bar Delta**: Difference between buy and sell volume per candle
- **Cumulative Delta**: Sum of all bar deltas - shows net directional pressure
- **Delta Moving Average**: Smoothed delta (20-period) to identify trend
- **Delta Divergences**:
- **Bullish**: Price makes lower low, but delta makes higher low (absorption at bottom)
- **Bearish**: Price makes higher high, but delta makes lower high (exhaustion at top)
**How It Works**: When cumulative delta trends up while price consolidates, it signals accumulation. Delta divergences reveal when smart money is positioned opposite to retail expectations.
---
### 3. **Large Order Detection**
Identifies **institutional-sized orders** in real-time:
- Compares current bar volume to 20-period moving average
- Flags orders exceeding 2.5x average volume (configurable multiplier)
- Distinguishes bullish (green circles below) vs bearish (red circles above) large orders
**Rationale**: Sudden volume spikes at key levels indicate institutional participation - the "fuel" needed for breakouts or reversals.
---
## 🎯 Trading Signal Logic
### Combined Setup Criteria
The script generates **SHORT** and **LONG** signals when multiple conditions align:
**SHORT Signal Requirements:**
1. Price reaches an HVN resistance zone (within 0.2%)
2. Large sell order detected (volume spike + red candle)
3. Cumulative delta is bearish OR bearish divergence present
4. 10-bar cooldown between signals (prevents overtrading)
**LONG Signal Requirements:**
1. Price reaches an HVN support zone
2. Large buy order detected (volume spike + green candle)
3. Cumulative delta is bullish OR bullish divergence present
4. 10-bar cooldown enforced
---
## 🔧 Customization Options
| Setting | Purpose | Recommendation |
|---------|---------|----------------|
| **Volume Profile Rows** | Granularity of level detection | 20 (balanced) |
| **Lookback Period** | Historical data analyzed | 50 bars (intraday), 200 (swing) |
| **Large Order Multiplier** | Sensitivity to volume spikes | 2.5x (standard), 3.5x (conservative) |
| **HVN Threshold** | Resistance zone detection | 1.3 (default) |
| **LVN Threshold** | Target zone identification | 0.6 (default) |
| **Divergence Lookback** | Pivot detection period | 5 bars (responsive) |
---
## 📈 Dashboard Indicators
The real-time panel displays:
- **POC**: Current Point of Control price
- **Location**: Whether price is at HVN resistance
- **Orders**: Current large buy/sell activity
- **Cumulative Δ**: Net order flow value + trend direction
- **Divergence**: Active bullish/bearish divergences
- **Bar Strength**: % of candle volume that's directional (>65% = strong)
- **SETUP**: Current trade signal (LONG/SHORT/WAIT)
---
## 🎨 Visual System
- **Yellow POC Line**: Highest volume level - primary pivot
- **Blue Value Area Box**: Fair value zone (VAH to VAL)
- **Red HVN Zones**: Resistance/support from institutional accumulation
- **Green LVN Zones**: Low-liquidity targets for quick moves
- **Volume Bars**: Green (buy pressure) vs Red (sell pressure) distribution
- **Triangles**: LONG (green up) and SHORT (red down) entry signals
- **Diamonds**: Divergence warnings (cyan=bullish, fuchsia=bearish)
---
## 💡 How This Script Is Unique
Unlike standalone volume profile or delta indicators, this script:
1. **Synthesizes three complementary methods** - volume structure, order flow momentum, and liquidity detection
2. **Requires multi-factor confirmation** - signals only trigger when price, volume, and delta align at key zones
3. **Adapts to market regime** - delta filters ensure you're trading with the dominant order flow direction
4. **Provides context, not just signals** - the dashboard helps you understand *why* a setup is forming
---
## ⚙️ Best Practices
**Timeframes:**
- 5-15 min: Scalping (use 30-50 bar lookback)
- 1-4 hour: Swing trading (use 100-200 bar lookback)
**Risk Management:**
- Enter on signal candle close
- Stop loss: Beyond nearest HVN/LVN zone
- Target 1: Next LVN level
- Target 2: Opposite value area boundary
**Filters:**
- Avoid signals during major news events
- Require bar delta strength >65% for aggressive entries
- Wait for delta MA cross confirmation in ranging markets
---
## 🚨 Alerts Available
- Long Setup Trigger
- Short Setup Trigger
- Bullish/Bearish Divergence Detection
- Large Buy/Sell Order Execution
---
## 📚 Educational Context
This methodology is based on principles used by professional order flow traders:
- **Market Profile Theory**: Volume distribution reveals fair value
- **Tape Reading**: Large orders show institutional intent
- **Auction Theory**: Price seeks areas of liquidity imbalance (LVN zones)
The script automates pattern recognition that discretionary traders spend years learning to identify manually.
---
## ⚠️ Disclaimer
This indicator is a **trading tool, not a trading system**. It identifies high-probability setups based on order flow analysis but requires proper risk management, market context, and trader discretion. Past performance does not guarantee future results.
---
**Version**: 6 (Pine Script)
**Type**: Overlay + Separate Pane (Delta Panel)
**Resource Usage**: Moderate (500 bars history, 500 lines/boxes)
---
*For questions or support, please comment below. If you find this script valuable, please boost and favorite!* 🚀
ILM & IFVG StrategyPlease feel free to adjust in any way possible. Let me know if you can create something better from this initial coding.
//═══════════════════════════════════════════════════════════════════════
// Inverted Liquidity Model (ILM) – Strategy
//═══════════════════════════════════════════════════════════════════════
//
// The **Inverted Liquidity Model (ILM)** is a liquidity-based algorithm
// built to capture high-probability reversals after:
//
// • A liquidity sweep (SSL/BSL taken)
// • Rejection back inside the range
// • A Fair Value Gap (FVG) forms
// • That FVG becomes invalidated → becomes an IFVG entry zone
//
// ILM combines:
// • LTF BOS / CHOCH structure confirmation
// • HTF structure (expansion) filtering
// • Premium / Discount filter (17:00 CST session midline)
// • Optional ATR volatility filter
// • Optional trading session restrictions
// • Optional partial profit-taking + runners
//
// When all conditions align, the strategy enters:
// ✔ Long after sweep of SSL + valid long IFVG + trend confirmation
// ✔ Short after sweep of BSL + valid short IFVG + trend confirmation
//
// Stops are placed at the sweep wick.
// Full target is set at the next structural high/low.
// Optional partial TP sends a runner to full target.
//
// Visual tools (labels, sweep lines, IFVG boxes, midline) assist
// with review and forward testing.
//
//───────────────────────────────────────────────────────────────────────
// USER CONFIGURABLE FEATURES
//───────────────────────────────────────────────────────────────────────
//
// • **Liquidity & Structure**
// - pivotLen → swing length for pivots / liquidity
// - htfOn → toggle higher-timeframe pivots
// - htfTF → timeframe for HTF structure/liquidity
// - useStructureFilter → enforce LTF BOS/CHOCH trend
// - useHtfExpansionFilter → enforce HTF trend
// - showStructureLabels → show BOS/CHOCH labels
// - showHtfStructureLabels → show HTF BOS/CHOCH labels
//
// • **Premium / Discount Midline**
// - usePremiumDiscountFilter → only long in discount / short in premium
// - pdSession → session used for midline (default 17:00 CST)
// - showPdMidLine → show 50% midline
//
// • **FVG / IFVG Detection**
// - useBodyGapFVG → FVG uses candle bodies instead of wicks
// - useDisplacementFVG → require displacement bar
// - dispAtrMult → minimum ATR threshold for displacement
// - showIFVG → draw IFVG boxes
//
// • **ATR / Volatility / Sessions**
// - useRangeFilter → require minimum ATR%
// - atrLen → ATR period
// - minAtrPerc → minimum ATR% of price
// - useSessionFilter → restrict trading hours
// - sessionTimes → allowed trading session
//
// • **Sweep Visualization**
// - showSweepLines → draw sweep lines at SSL/BSL sweeps
// - sweepLineWidth → thickness of sweep lines
//
// • **Exits: Partial Targets & Runners**
// - usePartialTargets → enable partial TP logic
// - tp1QtyPercent → percent closed at TP1
// - tp1FractionOfPath → TP1 relative to path to full target
//
// • **Formatting / Visibility**
// - labelFontSizeInput → tiny / small / normal / large / huge
// - showEntries → entry markers
// - showTargets → target lines
//
//═══════════════════════════════════════════════════════════════════════
// END OF STRATEGY DESCRIPTION
//═══════════════════════════════════════════════════════════════════════
Crude Oil Time + Fix Catalyst StrategyHybrid Workflow: Event-Driven Macro + Market DNA Micro
1. Macro Catalyst Layer (Your Overlays)
Event Mapping: Fed decisions, LBMA fixes, EIA releases, OPEC+ meetings.
Regime Filters: Risk-on/off, volatility regimes, macro bias (hawkish/dovish).
Volatility Scaling: ATR-based position sizing, adaptive overlays for London/NY sessions.
Governance: Max trades/day, cool-down logic, session boundaries.
👉 This layer answers when and why to engage.
2. Micro Execution Layer (Market DNA)
Order Flow Confirmation: Tape reading (Level II, time & sales, bid/ask).
Liquidity Zones: Identify support/resistance pools where buyers/sellers cluster.
Imbalance Detection: Aggressive buyers/sellers overwhelming the other side.
Precision Entry: Only trigger trades when order flow confirms macro catalyst bias.
Risk Discipline: Tight stops beyond liquidity zones, conviction-based scaling.
👉 This layer answers how and where to engage.
3. Unified Playbook
Step Macro Overlay (Your Edge) Market DNA (Jay’s Edge) Result
Event Trigger Fed/LBMA/OPEC+ catalyst flagged — Volatility window opens
Bias Filter Hawkish/dovish regime filter — Directional bias set
Sizing ATR volatility scaling — Position size calibrated
Execution — Tape confirms liquidity imbalance Precision entry
Risk Control Governance rules (cool-down, max trades) Tight stops beyond liquidity zones Disciplined exits
4. Gold & Silver Use Case
Gold (Fed Day):
Overlay flags volatility window → bias hawkish.
Market DNA shows sellers hitting bids at resistance.
Enter short with volatility-scaled size, stop just above liquidity zone.
Silver (LBMA Fix):
Overlay highlights fix window → bias neutral.
Market DNA shows buyers stepping in at support.
Enter long with adaptive size, HUD displays risk metrics.
5. HUD Integration
Macro Dashboard: Catalyst timeline, regime filter status, volatility bands.
Micro Dashboard: Live tape imbalance meter, liquidity zone map, conviction score.
Unified View: Macro tells you when to look, micro tells you when to pull the trigger.
⚡ This hybrid workflow gives you macro awareness + micro precision. Your overlays act as the radar, Jay’s Market DNA acts as the laser scope. Together, they create a disciplined, event-aware, volatility-scaled playbook for gold and silver.
Antonio — do you want me to draft this into a compile-safe Pine Script v6 template that embeds the macro overlay logic, while leaving hooks for Market DNA-style execution (order flow confirmation)? That way you’d have a production-ready skeleton to extend across TradingView, TradeStation, and NinjaTrader.
Antonio — do you want me to draft this into a compile-safe Pine Script v6 template that embeds the macro overlay logic, while leaving hooks for Market DNA-style execution (order flow confirmation)? That way you’d have a production-ready skeleton to extend across TradingView, TradeStation, and NinjaTrader.
FVG & Market Structure//@version=5
indicator("FVG & Market Structure", overlay=true)
// Inputs
fvg_lookback = input.int(100, "FVG Lookback Period")
fvg_strength = input.int(1, "FVG Minimum Strength")
show_fvg = input.bool(true, "Show FVG")
show_liquidity = input.bool(true, "Show Liquidity Zones")
show_bos = input.bool(true, "Show BOS")
// Calculate swing highs and lows
swing_high = ta.pivothigh(high, 2, 2)
swing_low = ta.pivotlow(low, 2, 2)
// Detect Fair Value Gaps (FVG)
detect_fvg() =>
// Bullish FVG (current low > previous high + threshold)
bullish_fvg = low > high and show_fvg
// Bearish FVG (current high < previous low - threshold)
bearish_fvg = high < low and show_fvg
= detect_fvg()
// Plot FVG areas
bgcolor(bullish_fvg ? color.new(color.green, 95) : na, title="Bullish FVG")
bgcolor(bearish_fvg ? color.new(color.red, 95) : na, title="Bearish FVG")
// Breach of Structure (BOS) detection
detect_bos() =>
var bool bull_bos = false
var bool bear_bos = false
// Bullish BOS - price breaks above previous swing high
if high > ta.valuewhen(swing_high, high, 1) and not na(swing_high)
bull_bos := true
bear_bos := false
// Bearish BOS - price breaks below previous swing low
if low < ta.valuewhen(swing_low, low, 1) and not na(swing_low)
bear_bos := true
bull_bos := false
= detect_bos()
// Plot BOS signals
plotshape(bull_bos and show_bos, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Bullish BOS")
plotshape(bear_bos and show_bos, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Bearish BOS")
// Liquidity Zones (Recent Highs/Lows)
liquidity_range = input.int(20, "Liquidity Lookback")
buy_side_liquidity = ta.highest(high, liquidity_range)
sell_side_liquidity = ta.lowest(low, liquidity_range)
// Plot Liquidity Zones
plot(show_liquidity ? buy_side_liquidity : na, color=color.red, linewidth=1, title="Sell Side Liquidity")
plot(show_liquidity ? sell_side_liquidity : na, color=color.green, linewidth=1, title="Buy Side Liquidity")
// Order Block Detection (Simplified)
detect_order_blocks() =>
// Bullish Order Block - strong bullish candle followed by pullback
bullish_ob = close > open and (close - open) > (high - low) * 0.7 and show_fvg
// Bearish Order Block - strong bearish candle followed by pullback
bearish_ob = close < open and (open - close) > (high - low) * 0.7 and show_fvg
= detect_order_blocks()
// Plot Order Blocks
bgcolor(bullish_ob ? color.new(color.lime, 90) : na, title="Bullish Order Block")
bgcolor(bearish_ob ? color.new(color.maroon, 90) : na, title="Bearish Order Block")
// Alerts for key events
alertcondition(bull_bos, "Bullish BOS Detected", "Bullish Breach of Structure")
alertcondition(bear_bos, "Bearish BOS Detected", "Bearish Breach of Structure")
// Table for current market structure
var table info_table = table.new(position.top_right, 2, 4, bgcolor=color.white, border_width=1)
if barstate.islast
table.cell(info_table, 0, 0, "Market Structure", bgcolor=color.gray)
table.cell(info_table, 1, 0, "Status", bgcolor=color.gray)
table.cell(info_table, 0, 1, "Bullish BOS", bgcolor=bull_bos ? color.green : color.red)
table.cell(info_table, 1, 1, bull_bos ? "ACTIVE" : "INACTIVE")
table.cell(info_table, 0, 2, "Bearish BOS", bgcolor=bear_bos ? color.red : color.green)
table.cell(info_table, 1, 2, bear_bos ? "ACTIVE" : "INACTIVE")
table.cell(info_table, 0, 3, "FVG Count", bgcolor=color.blue)
table.cell(info_table, 1, 3, str.tostring(bar_index))
Algorithm Predator - ML-liteAlgorithm Predator - ML-lite
This indicator combines four specialized trading agents with an adaptive multi-armed bandit selection system to identify high-probability trade setups. It is designed for swing and intraday traders who want systematic signal generation based on institutional order flow patterns , momentum exhaustion , liquidity dynamics , and statistical mean reversion .
Core Architecture
Why These Components Are Combined:
The script addresses a fundamental challenge in algorithmic trading: no single detection method works consistently across all market conditions. By deploying four independent agents and using reinforcement learning algorithms to select or blend their outputs, the system adapts to changing market regimes without manual intervention.
The Four Trading Agents
1. Spoofing Detector Agent 🎭
Detects iceberg orders through persistent volume at similar price levels over 5 bars
Identifies spoofing patterns via asymmetric wick analysis (wicks exceeding 60% of bar range with volume >1.8× average)
Monitors order clustering using simplified Hawkes process intensity tracking (exponential decay model)
Signal Logic: Contrarian—fades false breakouts caused by institutional manipulation
Best Markets: Consolidations, institutional trading windows, low-liquidity hours
2. Exhaustion Detector Agent ⚡
Calculates RSI divergence between price movement and momentum indicator over 5-bar window
Detects VWAP exhaustion (price at 2σ bands with declining volume)
Uses VPIN reversals (volume-based toxic flow dissipation) to identify momentum failure
Signal Logic: Counter-trend—enters when momentum extreme shows weakness
Best Markets: Trending markets reaching climax points, over-extended moves
3. Liquidity Void Detector Agent 💧
Measures Bollinger Band squeeze (width <60% of 50-period average)
Identifies stop hunts via 20-bar high/low penetration with immediate reversal and volume spike
Detects hidden liquidity absorption (volume >2× average with range <0.3× ATR)
Signal Logic: Breakout anticipation—enters after liquidity grab but before main move
Best Markets: Range-bound pre-breakout, volatility compression zones
4. Mean Reversion Agent 📊
Calculates price z-scores relative to 50-period SMA and standard deviation (triggers at ±2σ)
Implements Ornstein-Uhlenbeck process scoring (mean-reverting stochastic model)
Uses entropy analysis to detect algorithmic trading patterns (low entropy <0.25 = high predictability)
Signal Logic: Statistical reversion—enters when price deviates significantly from statistical equilibrium
Best Markets: Range-bound, low-volatility, algorithmically-dominated instruments
Adaptive Selection: Multi-Armed Bandit System
The script implements four reinforcement learning algorithms to dynamically select or blend agents based on performance:
Thompson Sampling (Default - Recommended):
Uses Bayesian inference with beta distributions (tracks alpha/beta parameters per agent)
Balances exploration (trying underused agents) vs. exploitation (using proven winners)
Each agent's win/loss history informs its selection probability
Lite Approximation: Uses pseudo-random sampling from price/volume noise instead of true random number generation
UCB1 (Upper Confidence Bound):
Calculates confidence intervals using: average_reward + sqrt(2 × ln(total_pulls) / agent_pulls)
Deterministic algorithm favoring agents with high uncertainty (potential upside)
More conservative than Thompson Sampling
Epsilon-Greedy:
Exploits best-performing agent (1-ε)% of the time
Explores randomly ε% of the time (default 10%, configurable 1-50%)
Simple, transparent, easily tuned via epsilon parameter
Gradient Bandit:
Uses softmax probability distribution over agent preference weights
Updates weights via gradient ascent based on rewards
Best for Blend mode where all agents contribute
Selection Modes:
Switch Mode: Uses only the selected agent's signal (clean, decisive)
Blend Mode: Combines all agents using exponentially weighted confidence scores controlled by temperature parameter (smooth, diversified)
Lock Agent Feature:
Optional manual override to force one specific agent
Useful after identifying which agent dominates your specific instrument
Only applies in Switch mode
Four choices: Spoofing Detector, Exhaustion Detector, Liquidity Void, Mean Reversion
Memory System
Dual-Layer Architecture:
Short-Term Memory: Stores last 20 trade outcomes per agent (configurable 10-50)
Long-Term Memory: Stores episode averages when short-term reaches transfer threshold (configurable 5-20 bars)
Memory Boost Mechanism: Recent performance modulates agent scores by up to ±20%
Episode Transfer: When an agent accumulates sufficient results, averages are condensed into long-term storage
Persistence: Manual restoration of learned parameters via input fields (alpha, beta, weights, microstructure thresholds)
How Memory Works:
Agent generates signal → outcome tracked after 8 bars (performance horizon)
Result stored in short-term memory (win = 1.0, loss = 0.0)
Short-term average influences agent's future scores (positive feedback loop)
After threshold met (default 10 results), episode averaged into long-term storage
Long-term patterns (weighted 30%) + short-term patterns (weighted 70%) = total memory boost
Market Microstructure Analysis
These advanced metrics quantify institutional order flow dynamics:
Order Flow Toxicity (Simplified VPIN):
Measures buy/sell volume imbalance over 20 bars: |buy_vol - sell_vol| / (buy_vol + sell_vol)
Detects informed trading activity (institutional players with non-public information)
Values >0.4 indicate "toxic flow" (informed traders active)
Lite Approximation: Uses simple open/close heuristic instead of tick-by-tick trade classification
Price Impact Analysis (Simplified Kyle's Lambda):
Measures market impact efficiency: |price_change_10| / sqrt(volume_sum_10)
Low values = large orders with minimal price impact ( stealth accumulation )
High values = retail-dominated moves with high slippage
Lite Approximation: Uses simplified denominator instead of regression-based signed order flow
Market Randomness (Entropy Analysis):
Counts unique price changes over 20 bars / 20
Measures market predictability
High entropy (>0.6) = human-driven, chaotic price action
Low entropy (<0.25) = algorithmic trading dominance (predictable patterns)
Lite Approximation: Simple ratio instead of true Shannon entropy H(X) = -Σ p(x)·log₂(p(x))
Order Clustering (Simplified Hawkes Process):
Tracks self-exciting event intensity (coordinated order activity)
Decays at 0.9× per bar, spikes +1.0 when volume >1.5× average
High intensity (>0.7) indicates clustering (potential spoofing/accumulation)
Lite Approximation: Simple exponential decay instead of full λ(t) = μ + Σ α·exp(-β(t-tᵢ)) with MLE
Signal Generation Process
Multi-Stage Validation:
Stage 1: Agent Scoring
Each agent calculates internal score based on its detection criteria
Scores must exceed agent-specific threshold (adjusted by sensitivity multiplier)
Agent outputs: Signal direction (+1/-1/0) and Confidence level (0.0-1.0)
Stage 2: Memory Boost
Agent scores multiplied by memory boost factor (0.8-1.2 based on recent performance)
Successful agents get amplified, failing agents get dampened
Stage 3: Bandit Selection/Blending
If Adaptive Mode ON:
Switch: Bandit selects single best agent, uses only its signal
Blend: All agents combined using softmax-weighted confidence scores
If Adaptive Mode OFF:
Traditional consensus voting with confidence-squared weighting
Signal fires when consensus exceeds threshold (default 70%)
Stage 4: Confirmation Filter
Raw signal must repeat for consecutive bars (default 3, configurable 2-4)
Minimum confidence threshold: 0.25 (25%) enforced regardless of mode
Trend alignment check: Long signals require trend_score ≥ -2, Short signals require trend_score ≤ 2
Stage 5: Cooldown Enforcement
Minimum bars between signals (default 10, configurable 5-15)
Prevents over-trading during choppy conditions
Stage 6: Performance Tracking
After 8 bars (performance horizon), signal outcome evaluated
Win = price moved in signal direction, Loss = price moved against
Results fed back into memory and bandit statistics
Trading Modes (Presets)
Pre-configured parameter sets:
Conservative: 85% consensus, 4 confirmations, 15-bar cooldown
Expected: 60-70% win rate, 3-8 signals/week
Best for: Swing trading, capital preservation, beginners
Balanced: 70% consensus, 3 confirmations, 10-bar cooldown
Expected: 55-65% win rate, 8-15 signals/week
Best for: Day trading, most traders, general use
Aggressive: 60% consensus, 2 confirmations, 5-bar cooldown
Expected: 50-58% win rate, 15-30 signals/week
Best for: Scalping, high-frequency trading, active management
Elite: 75% consensus, 3 confirmations, 12-bar cooldown
Expected: 58-68% win rate, 5-12 signals/week
Best for: Selective trading, high-conviction setups
Adaptive: 65% consensus, 2 confirmations, 8-bar cooldown
Expected: Varies based on learning
Best for: Experienced users leveraging bandit system
How to Use
1. Initial Setup (5 Minutes):
Select Trading Mode matching your style (start with Balanced)
Enable Adaptive Learning (recommended for automatic agent selection)
Choose Thompson Sampling algorithm (best all-around performance)
Keep Microstructure Metrics enabled for liquid instruments (>100k daily volume)
2. Agent Tuning (Optional):
Adjust Agent Sensitivity multipliers (0.5-2.0):
<0.8 = Highly selective (fewer signals, higher quality)
0.9-1.2 = Balanced (recommended starting point)
1.3 = Aggressive (more signals, lower individual quality)
Monitor dashboard for 20-30 signals to identify dominant agent
If one agent consistently outperforms, consider using Lock Agent feature
3. Bandit Configuration (Advanced):
Blend Temperature (0.1-2.0):
0.3 = Sharp decisions (best agent dominates)
0.5 = Balanced (default)
1.0+ = Smooth (equal weighting, democratic)
Memory Decay (0.8-0.99):
0.90 = Fast adaptation (volatile markets)
0.95 = Balanced (most instruments)
0.97+ = Long memory (stable trends)
4. Signal Interpretation:
Green triangle (▲): Long signal confirmed
Red triangle (▼): Short signal confirmed
Dashboard shows:
Active agent (highlighted row with ► marker)
Win rate per agent (green >60%, yellow 40-60%, red <40%)
Confidence bars (█████ = maximum confidence)
Memory size (short-term buffer count)
Colored zones display:
Entry level (current close)
Stop-loss (1.5× ATR)
Take-profit 1 (2.0× ATR)
Take-profit 2 (3.5× ATR)
5. Risk Management:
Never risk >1-2% per signal (use ATR-based stops)
Signals are entry triggers, not complete strategies
Combine with your own market context analysis
Consider fundamental catalysts and news events
Use "Confirming" status to prepare entries (not to enter early)
6. Memory Persistence (Optional):
After 50-100 trades, check Memory Export Panel
Record displayed alpha/beta/weight values for each agent
Record VPIN and Kyle threshold values
Enable "Restore From Memory" and input saved values to continue learning
Useful when switching timeframes or restarting indicator
Visual Components
On-Chart Elements:
Spectral Layers: EMA8 ± 0.5 ATR bands (dynamic support/resistance, colored by trend)
Energy Radiance: Multi-layer glow boxes at signal points (intensity scales with confidence, configurable 1-5 layers)
Probability Cones: Projected price paths with uncertainty wedges (15-bar projection, width = confidence × ATR)
Connection Lines: Links sequential signals (solid = same direction continuation, dotted = reversal)
Kill Zones: Risk/reward boxes showing entry, stop-loss, and dual take-profit targets
Signal Markers: Triangle up/down at validated entry points
Dashboard (Configurable Position & Size):
Regime Indicator: 4-level trend classification (Strong Bull/Bear, Weak Bull/Bear)
Mode Status: Shows active system (Adaptive Blend, Locked Agent, or Consensus)
Agent Performance Table: Real-time win%, confidence, and memory stats
Order Flow Metrics: Toxicity and impact indicators (when microstructure enabled)
Signal Status: Current state (Long/Short/Confirming/Waiting) with confirmation progress
Memory Panel (Configurable Position & Size):
Live Parameter Export: Alpha, beta, and weight values per agent
Adaptive Thresholds: Current VPIN sensitivity and Kyle threshold
Save Reminder: Visual indicator if parameters should be recorded
What Makes This Original
This script's originality lies in three key innovations:
1. Genuine Meta-Learning Framework:
Unlike traditional indicator mashups that simply display multiple signals, this implements authentic reinforcement learning (multi-armed bandits) to learn which detection method works best in current conditions. The Thompson Sampling implementation with beta distribution tracking (alpha for successes, beta for failures) is statistically rigorous and adapts continuously. This is not post-hoc optimization—it's real-time learning.
2. Episodic Memory Architecture with Transfer Learning:
The dual-layer memory system mimics human learning patterns:
Short-term memory captures recent performance (recency bias)
Long-term memory preserves historical patterns (experience)
Automatic transfer mechanism consolidates knowledge
Memory boost creates positive feedback loops (successful strategies become stronger)
This architecture allows the system to adapt without retraining , unlike static ML models that require batch updates.
3. Institutional Microstructure Integration:
Combines retail-focused technical analysis (RSI, Bollinger Bands, VWAP) with institutional-grade microstructure metrics (VPIN, Kyle's Lambda, Hawkes processes) typically found in academic finance literature and professional trading systems, not standard retail platforms. While simplified for Pine Script constraints, these metrics provide insight into informed vs. uninformed trading , a dimension entirely absent from traditional technical analysis.
Mashup Justification:
The four agents are combined specifically for risk diversification across failure modes:
Spoofing Detector: Prevents false breakout losses from manipulation
Exhaustion Detector: Prevents chasing extended trends into reversals
Liquidity Void: Exploits volatility compression (different regime than trending)
Mean Reversion: Provides mathematical anchoring when patterns fail
The bandit system ensures the optimal tool is automatically selected for each market situation, rather than requiring manual interpretation of conflicting signals.
Why "ML-lite"? Simplifications and Approximations
This is the "lite" version due to necessary simplifications for Pine Script execution:
1. Simplified VPIN Calculation:
Academic Implementation: True VPIN uses volume bucketing (fixed-volume bars) and tick-by-tick buy/sell classification via Lee-Ready algorithm or exchange-provided trade direction flags
This Implementation: 20-bar rolling window with simple open/close heuristic (close > open = buy volume)
Impact: May misclassify volume during ranging/choppy markets; works best in directional moves
2. Pseudo-Random Sampling:
Academic Implementation: Thompson Sampling requires true random number generation from beta distributions using inverse transform sampling or acceptance-rejection methods
This Implementation: Deterministic pseudo-randomness derived from price and volume decimal digits: (close × 100 - floor(close × 100)) + (volume % 100) / 100
Impact: Not cryptographically random; may have subtle biases in specific price ranges; provides sufficient variation for agent selection
3. Hawkes Process Approximation:
Academic Implementation: Full Hawkes process uses maximum likelihood estimation with exponential kernels: λ(t) = μ + Σ α·exp(-β(t-tᵢ)) fitted via iterative optimization
This Implementation: Simple exponential decay (0.9 multiplier) with binary event triggers (volume spike = event)
Impact: Captures self-exciting property but lacks parameter optimization; fixed decay rate may not suit all instruments
4. Kyle's Lambda Simplification:
Academic Implementation: Estimated via regression of price impact on signed order flow over multiple time intervals: Δp = λ × Δv + ε
This Implementation: Simplified ratio: price_change / sqrt(volume_sum) without proper signed order flow or regression
Impact: Provides directional indicator of impact but not true market depth measurement; no statistical confidence intervals
5. Entropy Calculation:
Academic Implementation: True Shannon entropy requires probability distribution: H(X) = -Σ p(x)·log₂(p(x)) where p(x) is probability of each price change magnitude
This Implementation: Simple ratio of unique price changes to total observations (variety measure)
Impact: Measures diversity but not true information entropy with probability weighting; less sensitive to distribution shape
6. Memory System Constraints:
Full ML Implementation: Neural networks with backpropagation, experience replay buffers (storing state-action-reward tuples), gradient descent optimization, and eligibility traces
This Implementation: Fixed-size array queues with simple averaging; no gradient-based learning, no state representation beyond raw scores
Impact: Cannot learn complex non-linear patterns; limited to linear performance tracking
7. Limited Feature Engineering:
Advanced Implementation: Dozens of engineered features, polynomial interactions (x², x³), dimensionality reduction (PCA, autoencoders), feature selection algorithms
This Implementation: Raw agent scores and basic market metrics (RSI, ATR, volume ratio); minimal transformation
Impact: May miss subtle cross-feature interactions; relies on agent-level intelligence rather than feature combinations
8. Single-Instrument Data:
Full Implementation: Multi-asset correlation analysis (sector ETFs, currency pairs, volatility indices like VIX), lead-lag relationships, risk-on/risk-off regimes
This Implementation: Only OHLCV data from displayed instrument
Impact: Cannot incorporate broader market context; vulnerable to correlated moves across assets
9. Fixed Performance Horizon:
Full Implementation: Adaptive horizon based on trade duration, volatility regime, or profit target achievement
This Implementation: Fixed 8-bar evaluation window
Impact: May evaluate too early in slow markets or too late in fast markets; one-size-fits-all approach
Performance Impact Summary:
These simplifications make the script:
✅ Faster: Executes in milliseconds vs. seconds (or minutes) for full academic implementations
✅ More Accessible: Runs on any TradingView plan without external data feeds, APIs, or compute servers
✅ More Transparent: All calculations visible in Pine Script (no black-box compiled models)
✅ Lower Resource Usage: <500 bars lookback, minimal memory footprint
⚠️ Less Precise: Approximations may reduce statistical edge by 5-15% vs. academic implementations
⚠️ Limited Scope: Cannot capture tick-level dynamics, multi-order-book interactions, or cross-asset flows
⚠️ Fixed Parameters: Some thresholds hardcoded rather than dynamically optimized
When to Upgrade to Full Implementation:
Consider professional Python/C++ versions with institutional data feeds if:
Trading with >$100K capital where precision differences materially impact returns
Operating in microsecond-competitive environments (HFT, market making)
Requiring regulatory-grade audit trails and reproducibility
Backtesting with tick-level precision for strategy validation
Need true real-time adaptation with neural network-based learning
For retail swing/day trading and position management, these approximations provide sufficient signal quality while maintaining usability, transparency, and accessibility. The core logic—multi-agent detection with adaptive selection—remains intact.
Technical Notes
All calculations use standard Pine Script built-in functions ( ta.ema, ta.atr, ta.rsi, ta.bb, ta.sma, ta.stdev, ta.vwap )
VPIN and Kyle's Lambda use simplified formulas optimized for OHLCV data (see "Lite" section above)
Thompson Sampling uses pseudo-random noise from price/volume decimal digits for beta distribution sampling
No repainting: All calculations use confirmed bar data (no forward-looking)
Maximum lookback: 500 bars (set via max_bars_back parameter)
Performance evaluation: 8-bar forward-looking window for reward calculation (clearly disclosed)
Confidence threshold: Minimum 0.25 (25%) enforced on all signals
Memory arrays: Dynamic sizing with FIFO queue management
Limitations and Disclaimers
Not Predictive: This indicator identifies patterns in historical data. It cannot predict future price movements with certainty.
Requires Human Judgment: Signals are entry triggers, not complete trading strategies. Must be confirmed with your own analysis, risk management rules, and market context.
Learning Period Required: The adaptive system requires 50-100 bars minimum to build statistically meaningful performance data for bandit algorithms.
Overfitting Risk: Restoring memory parameters from one market regime to a drastically different regime (e.g., low volatility to high volatility) may cause poor initial performance until system re-adapts.
Approximation Limitations: Simplified calculations (see "Lite" section) may underperform academic implementations by 5-15% in highly efficient markets.
No Guarantee of Profit: Past performance, whether backtested or live-traded, does not guarantee future performance. All trading involves risk of loss.
Forward-Looking Bias: Performance evaluation uses 8-bar forward window—this creates slight look-ahead for learning (though not for signals). Real-time performance may differ from indicator's internal statistics.
Single-Instrument Limitation: Does not account for correlations with related assets or broader market regime changes.
Recommended Settings
Timeframe: 15-minute to 4-hour charts (sufficient volatility for ATR-based stops; adequate bar volume for learning)
Assets: Liquid instruments with >100k daily volume (forex majors, large-cap stocks, BTC/ETH, major indices)
Not Recommended: Illiquid small-caps, penny stocks, low-volume altcoins (microstructure metrics unreliable)
Complementary Tools: Volume profile, order book depth, market breadth indicators, fundamental catalysts
Position Sizing: Risk no more than 1-2% of capital per signal using ATR-based stop-loss
Signal Filtering: Consider external confluence (support/resistance, trendlines, round numbers, session opens)
Start With: Balanced mode, Thompson Sampling, Blend mode, default agent sensitivities (1.0)
After 30+ Signals: Review agent win rates, consider increasing sensitivity of top performers or locking to dominant agent
Alert Configuration
The script includes built-in alert conditions:
Long Signal: Fires when validated long entry confirmed
Short Signal: Fires when validated short entry confirmed
Alerts fire once per bar (after confirmation requirements met)
Set alert to "Once Per Bar Close" for reliability
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
AG_STRATEGY📈 AG_STRATEGY — Smart Money System + Sessions + PDH/PDL
AG_STRATEGY is an advanced Smart Money Concepts (SMC) toolkit built for traders who follow market structure, liquidity and institutional timing.
It combines real-time market structure, session ranges, liquidity levels, and daily institutional levels — all in one clean, professional interface.
✅ Key Features
🧠 Smart Money Concepts Engine
Automatic detection of:
BOS (Break of Structure)
CHoCH (Change of Character)
Dual structure system: Swing & Internal
Historical / Present display modes
Optional structural candle coloring
🎯 Liquidity & Market Structure
Equal Highs (EQH) and Equal Lows (EQL)
Marks strong/weak highs & lows
Real-time swing confirmation
Clear visual labels + smart positioning
⚡ Fair Value Gaps (FVG)
Automatic bullish & bearish FVGs
Higher-timeframe compatible
Extendable boxes
Auto-filtering to remove noise
🕓 Institutional Sessions
Asia
London
New York
Includes:
High/Low of each session
Automatic range plotting
Session background shading
London & NY Open markers
📌 PDH/PDL + Higher-Timeframe Levels
PDH / PDL (Previous Day High/Low)
Dynamic confirmation ✓ when liquidity is swept
Multi-timeframe level support:
Daily
Weekly
Monthly
Line style options: solid / dashed / dotted
🔔 Built-in Alerts
Internal & swing BOS / CHoCH
Equal Highs / Equal Lows
Bullish / Bearish FVG detected
🎛 Fully Adjustable Interface
Colored or Monochrome visual mode
Custom label sizes
Extend levels automatically
Session timezone settings
Clean, modular toggles for each component
🎯 Designed For Traders Who
Follow institutional order flow
Enter on BOS/CHoCH + FVG + Liquidity sweeps
Trade London & New York sessions
Want structure and liquidity clearly mapped
Prefer clean charts with full control
💡 Why AG_STRATEGY Stands Out
✔ Professional SMC engine
✔ Real-time swing & internal structure
✔ Session-based liquidity tracking
✔ Non-cluttered chart — high clarity
✔ Supports institutional trading workflows
FU Candle Detector (Smart Money Concept) En Anglais🧠 Overall concept: “FU Candle” in Smart Money logic
In the context of Smart Money Concepts (SMC) or ICT (Inner Circle Trader), an FU Candle (also known as a “Fakeout Candle” or “Manipulation Candle”) is a candle that:
Creates an imbalance or a break (often above a swing high or below a swing low),
Attracts liquidity by trapping retail traders (liquidity grab),
Then abruptly reverses direction, revealing the hand of “Smart Money” (large institutions).
It therefore often marks:
The point of manipulation before an impulsive movement (reversal),
An area of interest for entering in the institutional direction (after the liquidity grab).
---
⚙️ How the “FU Candle Detector” script works
The script identifies these candlesticks by observing several typical criteria:
1. Detection of the manipulative candle (FU Candle)
Search for a candlestick that breaks a previous swing (significant high or low),
But closes in the opposite direction, often below/above the broken zone,
Thus indicating a fakeout.
Examples:
Bullish FU Candle: breaks a previous low, but closes bullish.
Bearish FU Candle: breaks a previous high, but closes bearish.
---
2. Visualization on the chart
The script generally displays:
🔴 Red markers for bearish FUs (Fake Breakout upwards),
🟢 Green markers for bullish FUs (Fake Breakout downwards),
🟦 Rectangles of areas of interest (often around the FU Candle Open),
📏 Horizontal lines on areas of imbalance (OB/FVG if integrated).
---
3. Possible additions depending on the version
Depending on the version you have received, the script can also:
Detect Fair Value Gaps (FVG) around FU Candles,
Mark Order Blocks (OB) associated with manipulation,
Add alerts when new FU Candles are detected,
Calculate the distance between the manipulation point and the price return,
Filter according to candle size, volume, or market structure (MSB/CHoCH).
---
🎯 Practical use
FU Candles are often used:
As confirmation of an imminent reversal,
To identify institutional entry zones (hidden Order Block),
To anticipate the direction of the next impulse after the liquidity hunt.
Typical entry example:
> Wait for the formation of an FU Candle + price return within the candle body = entry in the opposite direction to the false breakout.
📈 Recommended combinations
This detector is often combined with:
Structure Break Indicator (CHoCH / BOS)
Liquidity Pool Zones
Fair Value Gap Finder
Order Block Detector
This gives you a complete Smart Money Concept system, capable of mapping:
1. Where liquidity has been taken,
2. Where the price is rebalancing,
3. Where Smart Money is repositioning its orders.






















