Candle Range Theory | Flux Charts💎 GENERAL OVERVIEW
Introducing our new Candle Range Theory Indicator! This powerful tool offers a strategy built around the Candle Range Theory, which analyzes market movements through the relative size and structure of price candles. For more information about the process, check the "HOW DOES IT WORK" section.
Features of the new Candle Range Theory Indicator :
Implementation of the Candle Range Theory
FVG & Order Block Entry Methods
2 Different TP / SL Methods
Customizable Execution Settings
Customizable Backtesting Dashboard
Alerts for Buy, Sell, TP & SL Signals
📌 HOW DOES IT WORK ?
The Candle Range Theory (CRT) indicator operates by identifying significant price movements through the relative size and structure of candlesticks. A key part of the strategy is determining large candles based on their range compared to the Average True Range (ATR) in a higher timeframe. Once identified, a breakout of either the high wick or the low wick of the large candle is required. This breakout is considered a liquidity grab. After that, the indicator waits for confirmation through Fair Value Gaps (FVGs) or Order Blocks (OBs). The confirmation structure must be the opposite direction of the breakout, for example if the high wick is broken, a bearish FVG is required for the short entry. After a confirmation signal is received, the indicator will trigger entry points based on your chosen entry method (FVG or OB), and exit points will be calculated using either a dynamic ATR-based TP/SL method or fixed percentages. Alerts for Buy, Sell, Take-Proft, and Stop-Loss are available.
🚩 UNIQUENESS
This indicator stands out because it combines two highly effective entry methods: Fair Value Gaps (FVGs) and Order Blocks (OBs). You can choose between these strategies depending on market conditions. Additionally, the dynamic TP/SL system uses the ticker's volatility to automatically calculate stop-loss and take-profit targets. The backtesting dashboard provides metrics about the performance of the indicator. You can use it to tune the settings for best use in the current tiker. The Candle Range Theory approach offers more flexibility compared to traditional indicators, allowing for better customization and control based on your risk tolerance.
⚙️ SETTINGS
1. General Configuration
Higher Timeframe: Customize the higher timeframe for analysis. Recommended combinations include M15 -> H4, H4 -> Daily, Daily -> Weekly, and Weekly -> Monthly.
HTF Candle Size: Define the size of the higher timeframe candles as Big, Normal, or Small to filter valid setups based on their range relative to ATR.
Entry Mode: Choose between FVGs and Order Blocks for your entry triggers.
Require Retracement: Enable this option if you want a retracement to the FVG or OB for entry confirmation.
Show HTF Candle Lines: Toggle to display the higher timeframe candle lines for better visual clarity.
2. Fair Value Gaps
FVG Sensitivity: You may select between Low, Normal, High or Extreme FVG detection sensitivity. This will essentially determine the size of the spotted FVGs, with lower sensitivities resulting in spotting bigger FVGs, and higher sensitivities resulting in spotting all sizes of FVGs.
3. Order Blocks
Swing Length: Swing length is used when finding order block formations. Smaller values will result in finding smaller order blocks.
4. TP / SL
TP / SL Method:
a) Dynamic: The TP / SL zones will be auto-determined by the algorithm based on the Average True Range (ATR) of the current ticker.
b) Fixed : You can adjust the exact TP / SL ratios from the settings below.
Dynamic Risk: The risk you're willing to take if "Dynamic" TP / SL Method is selected. Higher risk usually means a better winrate at the cost of losing more if the strategy fails. This setting is has a crucial effect on the performance of the indicator, as different tickers may have different volatility so the indicator may have increased performance when this setting is correctly adjusted.
스크립트에서 "gaps"에 대해 찾기
HTF Inversion Fair Value Gap | Flux Charts💎 GENERAL OVERVIEW
Introducing our new Higher Timeframe Inversion Fair Value Gaps (IFVG) indicator! Inversion Fair Value Gaps occur when a Fair Value Gap becomes invalidated. They reverse the role of the original Fair Value Gap, making a bullish zone bearish and vice versa. This indicator finds the latest IFVG in a higher timeframe and renders it in the current chart with it's divergence. For more information about the process, read the "HOW DOES IT WORK" section of the description.
Features of the new Higher Timeframe IFVG Indicator :
Renders The Higher Timeframe IFVG
Invalidation Borders
Variety Of Zone Detection / Sensitivity / Filtering / Invalidation Settings
High Customizability
🚩 UNIQUENESS
This indicator lets you take a look at the bigger picture by rendering the latest IFVG in a higher timeframe. You can see the current IFVG divergence to see how is the price action acting around the IFVG. You also can customize the FVG Filtering method, FVG & IFVG Zone Invalidation, Detection Sensitivity etc. according to your needs to get the best performance from the indicator.
📌 HOW DOES IT WORK ?
A Fair Value Gap generally occur when there is an imbalance in the market. They can be detected by specific formations within the chart. An Inversion Fair Value Gap is when a FVG becomes invalidated, thus reversing the direction of the FVG.
This indicator then renders the IFVG in a higher timeframe in your chart like this :
The opaque dashed lines at the top and the bottom of the IFVG indicate the bars that formed the original FVG. The middle dashed line that is semi-transparent shows the candlestick that invalidated the original FVG, thus created the current IFVG. The vertical solid top & bottom wicks indicate the current divergence of the highest & lowest points to the current IFVG.
The IFVGs can act as strong support & resistance points, depending on their creation volume and invalidation volume. Traders can use them for confirmation signals to their positions.
⚙️ SETTINGS
1. General Configuration
Higher Timeframe -> The higher timeframe to detect latest IFVG from. Keep in mind that his setting must be higher than the current timeframe.
IFVG Zone Invalidation -> Select between Wick & Close price for IFVG Zone Invalidation.
2. Fair Value Gaps
FVG Zone Invalidation -> Select between Wick & Close price for FVG Zone Invalidation.
Zone Filtering -> With "Average Range" selected, algorithm will find FVG zones in comparison with average range of last bars in the chart. With the "Volume Threshold" option, you may select a Volume Threshold % to spot FVGs with a larger total volume than average.
FVG Detection -> With the "Same Type" option, all 3 bars that formed the FVG should be the same type. (Bullish / Bearish). If the "All" option is selected, bar types may vary between Bullish / Bearish.
Detection Sensitivity -> You may select between Low, Normal or High FVG detection sensitivity. This will essentially determine the size of the spotted FVGs, with lower sensitivities resulting in spotting bigger FVGs, and higher sensitivities resulting in spotting all sizes of FVGs.
3. Dasboard
You can enable / disable the mitigation dashboard and customize it here.
4. Customization
Offset -> The number of candlesticks the IFVG will be rendered to the right of the latest bar.
Width -> The width of the rendered IFVG in candlesticks.
ICT HTF FVGs v2 (fadi)NOTICE: Instead of updating the existing ICT HTF FVGs indicator, this indicator is being published separately due to the requests to keep the original by some traders and because of the drastic change in behavior/configurations. If the original v1 version is more appropriate for your style of trading, feel free to continue to use it.
ICT HTF FVGs v2
In trading, Fair Value Gaps (FVGs) refer to market inefficiencies or imbalances that occur when buying and selling activities are not equal. These gaps can be identified on various timeframes and are used in different trading strategies.
FVGs are crucial in price action trading as they highlight the difference between the current market price of an asset and its fair value. Traders use these gaps to identify potential trading opportunities, as they often indicate areas where the market may correct itself
This indicator will overlap the higher timeframe (HTF) FVGS over the current timeframe to help traders anticipate and plan their trades.
Features
Up to 6 higher timeframes (HTF) can be overlayed on a chart
Traders can limit the number of HTF FVGs to preset number of HTFs
Lower and current timeframes can be included
Configurable spacing of HTF FVGs to prevent overlapping
Configurable Smart Expansion of FVGs based on proximity to current price
Traders can decide what constitutes a Mitigated FVG
Show or hide mitigated FVGs to declutter the chart
Flexible display settings that controls how the FVGs are displayed
Flexible labeling of the FVG levels and content
Higher Timeframes Display Settings
This indicator provides the ability to select up to 6 HTF intervals. These intervals are based on the trader's timeframes including any custom timeframes.
Timeframe Configurations
Enable or Disable a Timeframe
The Timeframe to Display
Bullish / BISI FVG Color
Bearish / SIBI FVG Color
The number of FVGs For The Selected Timeframe
Limit to the next HTFs only can be used to display the selected number of HTF FVGs. For example, if the trader selects 3 then only 3 HTF FVGs will be displayed.
Note: If either of the next two options is selected, they will take up spots from this count.
Hide lower Timeframes restricts the FVGs to higher timeframes only. If this option is disabled, it will show lower timeframes FVGs as well.
Hide Current Timeframe removes current timeframe from the selected list of HTF FVGs. If this option is disabled, it will show current timeframe FVGs as well.
Background Transparency Enable or disable the background color (shaded area) of the FVG. If it is enabled, it will set the transparency amount. The higher the value, the more transparent the background.
Extend lines controls when and how to extend the FVG levels. There are three options:
Extension Only extends the FVGs by the specified number provided below only.
Current Candle Plus Extension extends all the FVGs beyond the current candle by the number provided below.
When in Range will only extend the FVGs near current price based on the advanced settings below. This setting will use Average True Range multiplier to calculate the range (shows FVGs that are higher or lower by the average candle size multiplied by the number in Advanced section).
Mitigated shows or hides the mitigated HTF FVGs. A FVG is considered mitigated based on one of the following options:
None will ignore mitigation and show all FVGs.
Touched when a HTF FVG is touched regardless of how deep the price get inside the FVG.
Wick filled the FVG is closed by a wick or body of a candle.
Body filled the FVG is closed by the body of a candle
Wick filled half a candle's wick or body has reached the C.E. of the FVG
Body filled half a candle body has reached the C.E. of the FVG
Extend mitigated lines sets the number of candles to extend the mitigated FVG levels by for better visibility.
Important Note: Mitigation is calculated based on the timeframe of the FVG, not current timeframe.
Display
Display settings focus on how the FVGs will be displayed. The trader is in total control and there are multiple ways to overlay FVGs on the chart.
Open / Close / C.E. / Link controls the borders. Traders can enable or disable any of them as well as set the thickness and style. Link is the right border.
C.E. also offers the option of setting the bullish (BISI) and bearish (SIBI) colors of the C.E. level
Labeling controls if the labels should be displayed next to the FVG, their color, background, and font size.
Label levels to display controls which levels to show. Open, High. or the C.E.
Label display content controls what to show in the labels, the timeframe of the label, is it a BISI or a SIBI, and a label to indicate if it is the Open or the Close.
Note: if the distance between the open and close has the potential of overlapping the labels, then the indicator will only show the C.E. label for visual clarity.
Advanced Settings
Advanced settings controls some internal calculations:
Proximity factor based on daily range used to calculate possible range of FVGs within a day's range to keep the chart clean. The higher the value, the more FVGs will be shown.
Combine labels factor for visibility used to calculate the distance between the open and close and if all the labels or only the C.E. should be displayed. The higher the value, the bigger the distance for combination (smaller numbers will show more labels).
Range should be within X candles used when "When in Range" option is selected. This is the ATR multiplier used to extend the FVGs. The higher the number, the more FVGs will be extended.
Once desired settings have been achieved, the settings can be saved as default from the bottom left of the indicator settings page for future use.
FVG (ICT) with Swing LevelsThis indicator, called "Fair Value Gaps (ICT) with Swing Levels", overlays on the main chart and does the following:
Initial Setup:
It defines user-adjustable parameters:
lookback: Lookback period to keep FVGs visible.
swingPeriod: Period for calculating swing highs and lows.
bullColor and bearColor: Colors for bullish and bearish FVGs.
Fair Value Gaps (FVGs) Detection:
Uses a function to identify FVGs by comparing candle high and low prices.
A bullish FVG forms when the low of two candles ago is higher than the high of the current candle.
A bearish FVG forms when the high of two candles ago is lower than the low of the current candle.
Swing Levels Calculation:
Calculates swing highs and lows over the specified period.
These swing levels define the current market range.
Current Range Verification:
Implements a function to check if an FVG is within the range defined by swing levels.
This ensures only the most relevant FVGs for the current market situation are displayed.
FVG Drawing:
When it detects an FVG (bullish or bearish) within the current range, it draws a box on the chart.
Boxes extend from the bar where the FVG formed to the current bar.
Bullish FVGs are drawn in green and bearish in red (colors are customizable).
Old FVGs Management:
On each new bar, the indicator checks all existing FVG boxes.
It removes boxes that are outside the specified lookback period.
It also removes boxes that are no longer within the current range of swing levels.
Swing Levels Visualization:
Draws lines on the chart to show swing highs (in blue) and swing lows (in purple).
These lines help visualize the current market range.
Continuous Update:
The indicator updates on each new candle, constantly refreshing FVGs and swing levels.
In summary, this indicator identifies and visualizes Fair Value Gaps according to the ICT methodology, filtering them based on higher timeframe swing levels. This helps traders focus on the most significant FVGs within the current market context, reducing visual noise and potentially improving trading decision-making.
FVG & IFVG ICT [TradingFinder] Inversion Fair Value Gap Signal🔵 Introduction
🟣 Fair Value Gap (FVG)
To spot a Fair Value Gap (FVG) on a chart, you need to perform a detailed candle-by-candle analysis.
Here’s the process :
Focus on Candles with Large Bodies : Identify a candle with a substantial body and examine it alongside the preceding candle.
Check Surrounding Candles : The candles immediately before and after the central candle should have long shadows.
Ensure No Overlap : The bodies of the candles before and after the central candle should not overlap with the body of the central candle.
Determine the FVG Range : The gap between the shadows of the first and third candles forms the FVG range.
🟣 ICT Inversion Fair Value Gap (IFVG)
An ICT Inversion Fair Value Gap, also known as a reverse FVG, is a failed fair value gap where the price does not respect the gap. An IFVG forms when a fair value gap fails to hold the price and the price moves beyond it, breaking the fair value gap.
This marks the initial shift in price momentum. Typically, when the price moves in one direction, it respects the fair value gaps and continues its trend.
However, if a fair value gap is violated, it acts as an inversion fair value gap, indicating the first change in price momentum, potentially leading to a short-term reversal or a subsequent change in direction.
🟣 Bullish Inversion Fair Value Gap (Bullish IFVG)
🟣 Bearish Inversion Fair Value Gap (Bearish IFVG)
🔵 How to Use
🟣 Identify an Inversion Fair Value Gap
To identify an IFVG, you first need to recognize a fair value gap. Just as fair value gaps come in two types, inversion fair value gaps also fall into two categories:
🟣 Bullish Inversion Fair Value Gap
A bullish IFVG is essentially a bearish fair value gap that is invalidated by the price closing above it.
Here’s how to identify it :
Identify a bearish fair value gap.
When the price closes above this bearish fair value gap, it transforms into a bullish inversion fair value gap.
This gap acts as support for the price and drives it upwards, indicating a reduction in sellers' strength and an initial shift in momentum towards buyers.
🟣 Bearish Inversion Fair Value Gap
A bearish IFVG is primarily a bullish fair value gap that fails to hold the price, with the price closing below it.
Here’s how to identify it :
Identify a bullish fair value gap.
When the price closes below this gap, it becomes a bearish inversion fair value gap.
This gap acts as resistance for the price, pushing it downwards. A bearish inversion fair value gap signifies a decrease in buyers' momentum and an increase in sellers' strength.
🔵 Setting
🟣 Global Setting
Show All FVG : If it is turned off, only the last FVG will be displayed.
S how All Inversion FVG : If it is turned off, only the last FVG will be displayed.
FVG and IFVG Validity Period (Bar) : You can specify the maximum time the FVG and the IFVG remains valid based on the number of candles from the origin.
Switching Colors Theme Mode : Three modes "Off", "Light" and "Dark" are included in this parameter. "Light" mode is for color adjustment for use in "Light Mode".
"Dark" mode is for color adjustment for use in "Dark Mode" and "Off" mode turns off the color adjustment function and the input color to the function is the same as the output color.
🟣 Logic Setting
FVG Filter
When utilizing FVG filtering, the number of identified FVG areas undergoes refinement based on a specified algorithm. This process helps to focus on higher quality signals and eliminate noise.
Here are the types of FVG filters available :
Very Aggressive Filter : Introduces an additional condition to the initial criteria. For an upward FVG, the highest price of the last candle must exceed the highest price of the middle candle. Similarly, for a downward FVG, the lowest price of the last candle should be lower than the lowest price of the middle candle. This mode minimally filters out FVGs.
Aggressive Filter : Builds upon the Very Aggressive mode by considering the size of the middle candle. It ensures the middle candle is not too small, thereby eliminating more FVGs compared to the Very Aggressive mode.
Defensive Filter : In addition to the conditions of the Very Aggressive mode, the Defensive mode incorporates criteria regarding the size and structure of the middle candle. It requires the middle candle to have a substantial body, with specific polarity conditions for the second and third candles relative to the first candle's direction. This mode filters out a significant number of FVGs, focusing on higher-quality signals.
Very Defensive Filter : Further refines filtering by adding conditions that the first and third candles should not be small-bodied doji candles. This stringent mode eliminates the majority of FVGs, retaining only the highest quality signals.
Mitigation Level FVG and IFVG : Its inputs are one of "Proximal", "Distal" or "50 % OB" modes, which you can enter according to your needs. The "50 % OB" line is the middle line between distal and proximal.
🟣 Display Setting
Show Bullish FVG : Enables the display of demand-related boxes, which can be toggled on or off.
Show Bearish FVG : Enables the display of supply-related boxes along the path, which can also be toggled on or off.
Show Bullish IFVG : Enables the display of demand-related boxes, which can be toggled on or off.
Show Bearish IFVG : Enables the display of supply-related boxes along the path, which can also be toggled on or off.
🟣 Alert Setting
Alert FVG Mitigation : If you want to receive the alert about FVG's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
Alert Inversion FVG Mitigation : If you want to receive the alert about Inversion FVG's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
Message Frequency : This parameter, represented as a string, determines the frequency of announcements. Options include: 'All' (triggers the alert every time the function is called), 'Once Per Bar' (triggers the alert only on the first call within the bar), and 'Once Per Bar Close' (activates the alert only during the final script execution of the real-time bar upon closure). The default setting is 'Once per Bar'.
Show Alert time by Time Zone : The date, hour, and minute displayed in alert messages can be configured to reflect any chosen time zone. For instance, if you prefer London time, you should input 'UTC+1'. By default, this input is configured to the 'UTC' time zone.
Display More Info : The 'Display More Info' option provides details regarding the price range of the order blocks (Zone Price), along with the date, hour, and minute. If you prefer not to include this information in the alert message, you should set it to 'Off'.
RSI TrendsThis TradingView script combines RSI trend analysis with FVG (Fair Value Gap) detection to identify potential buy and sell opportunities in financial markets. The script is customizable and provides extensive visual feedback directly on the chart, enhancing both strategic entry and exit points for traders. Raw code of FVG was taken from LuxAlgo
Features
FVG Detection: Identifies Fair Value Gaps (FVG), and provides options to display these gaps based on user settings.
RSI Trend Bars: Utilizes the Relative Strength Index (RSI) to paint bars indicating overbought and oversold conditions. This helps traders understand current market sentiment and potential reversal points.
Customizable Settings: Users can customize the timeframe, FVG types, and RSI thresholds. This flexibility allows the script to be adapted to various trading styles and timeframes.
Historical Analysis: Option to display or hide historical FVGs, helping users analyze past market behavior without cluttering the chart.
Alert System: Integrated alerts for detected buy and sell signals based on RSI conditions and the presence or absence of FVGs. This feature notifies traders of potential trading opportunities.
Trading Signals
Buy, Buy+, and Buy++ Signals: These signals are triggered based on overbought conditions without corresponding bearish FVG presence, with increasing stringency for higher tiers of buy signals.
Sell, Sell+, and Sell++ Signals: These signals are based on oversold conditions devoid of bullish FVG presence, with each subsequent plus sign indicating a higher level of confirmation required to trigger the signal.
Use Case
Ideal for traders who rely on technical analysis and are looking for an automated way to spot potential buy and sell points using both price action gaps and momentum indicators.
Customization
All input parameters are adjustable directly from the indicator's settings panel, making it easy to tailor the tool to your trading needs and preferences.
lib_fvgLibrary "lib_fvg"
further expansion of my object oriented library toolkit. This lib detects Fair Value Gaps and returns them as objects.
Drawing them is a separate step so the lib can be used with securities. It also allows for usage of current/close price to detect fill/invalidation of a gap and to adjust the fill level dynamically. FVGs can be detected while forming and extended indefinitely while they're unfilled.
method draw(this)
Namespace types: FVG
Parameters:
this (FVG)
method draw(fvgs)
Namespace types: FVG
Parameters:
fvgs (FVG )
is_fvg(mode, precondition, filter_insignificant, filter_insignificant_atr_factor, live)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
precondition (bool) : allows for other confluences to block/enable detection
filter_insignificant (bool) : allows to ignore small gaps
filter_insignificant_atr_factor (float) : allows to adjust how small (compared to a 50 period ATR)
live (bool) : allows to detect FVGs while the third bar is forming -> will cause repainting
Returns: a tuple of (bar_index of gap bar, gap top, gap bottom)
create_fvg(mode, idx, top, btm, filled_at_pc, config)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
idx (int) : the bar_index of the FVG gap bar
top (float) : the top level of the FVG
btm (float) : the bottom level of the FVG
filled_at_pc (float) : the ratio (0-1) that the fill source needs to retrace into the gap to consider it filled/invalidated/ready for removal
config (FVGConfig) : the plot configuration/styles for the FVG
Returns: a new FVG object if there was a new FVG, else na
detect_fvg(mode, filled_at_pc, precondition, filter_insignificant, filter_insignificant_atr_factor, live, config)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
filled_at_pc (float)
precondition (bool) : allows for other confluences to block/enable detection
filter_insignificant (bool) : allows to ignore small gaps
filter_insignificant_atr_factor (float) : allows to adjust how small (compared to a 50 period ATR)
live (bool) : allows to detect FVGs while the third bar is forming -> will cause repainting
config (FVGConfig)
Returns: a new FVG object if there was a new FVG, else na
method update(this, fill_src)
Namespace types: FVG
Parameters:
this (FVG)
fill_src (float) : allows for usage of different fill source series, e.g. high for bearish FVGs, low vor bullish FVGs or close for both
method update(all, fill_src)
Namespace types: FVG
Parameters:
all (FVG )
fill_src (float)
method remove_filled(unfilled_fvgs)
Namespace types: FVG
Parameters:
unfilled_fvgs (FVG )
method delete(this)
Namespace types: FVG
Parameters:
this (FVG)
method delete_filled_fvgs_buffered(filled_fvgs, max_keep)
Namespace types: FVG
Parameters:
filled_fvgs (FVG )
max_keep (int) : the number of filled, latest FVGs to retain on the chart.
FVGConfig
Fields:
box_args (|robbatt/lib_plot_objects/36;BoxArgs|#OBJ)
line_args (|robbatt/lib_plot_objects/36;LineArgs|#OBJ)
box_show (series__bool)
line_show (series__bool)
keep_filled (series__bool)
extend (series__bool)
FVG
Fields:
config (|FVGConfig|#OBJ)
startbar (series__integer)
mode (series__integer)
top (series__float)
btm (series__float)
center (series__float)
size (series__float)
fill_size (series__float)
fill_lvl_target (series__float)
fill_lvl_current (series__float)
fillbar (series__integer)
filled (series__bool)
_fvg_box (|robbatt/lib_plot_objects/36;Box|#OBJ)
_fill_line (|robbatt/lib_plot_objects/36;Line|#OBJ)
Fair Value Gap Finder with Integrated Gann BoxTitle: Fair Value Gap Finder with Integrated Gann Box Analysis
Description:
The "Fair Value Gap Finder with Integrated Gann Box Analysis" is a unique technical indicator designed for traders who wish to incorporate the concepts of Fair Value Gaps (FVG) and Gann Box methodologies into their trading strategy. This tool is beneficial for both trend-following and scalping techniques across various markets and timeframes.
Functionality:
The indicator identifies Fair Value Gaps, which are areas on the chart where price has skipped a range, creating a 'gap'. Recognizing these zones can be crucial for understanding potential price support and resistance areas. Alongside FVG detection, this script employs Gann Box principles to project potential levels of interest. Gann Boxes are drawn automatically when an FVG is identified, providing additional insights based on W.D. Gann's theories, which relate to time and price symmetry.
Usage:
Upon detecting an FVG, the indicator will highlight the gap on the chart and overlay a Gann Box between the high and low points of the gap. Traders can use these zones to make informed decisions about entry and exit points, stop loss, and take profit levels. The script offers customization options for the appearance and behavior of the FVG boxes and Gann Lines, allowing users to adapt the tool to their preferences.
Originality:
What sets this indicator apart is the integration of FVG with Gann Box levels within a single tool, streamlining the analysis process. It takes the classic approach of identifying gaps and enriches it with the geometric significance of Gann's work, all while allowing users to visualize and interact with these levels in a user-friendly manner.
Open-Source Nature:
This script is open-source, making it a transparent solution for those who wish to understand the underlying calculations. While not all traders are versed in Pine Script, the logic of identifying FVGs and applying Gann Box levels is explained through the script's annotations and the user interface itself.
Instructions for Use:
Apply the script to your chart, and it will automatically detect FVGs.
Adjust the settings in the indicator's input menu to match your trading style and preferences.
Use the FVG and Gann Box levels as potential areas of interest for trade setups.
This script does not guarantee profits and should be used as part of a comprehensive trading plan. It is best used in conjunction with other analysis methods to confirm signals and strategies.
TrendFriendOverview
TrendFriend (TF) combines various technical analysis components, including trend calculations, moving averages, RSI signals, and Fair Value Gaps (FVG) detection to determine trend reversal and continuation points. The FVG feature identifies potential consolidation periods and displays mitigation levels.
Features
Trend Analysis: Utilizes short and long-term Running Moving Averages (RMA) to identify trends.
Average True Range (ATR): Plots ATR to depict market volatility.
RSI Signals: Calculates RSI and provides buy/sell signals based on RSI conditions.
Fair Value Gaps (FVG): Detects FVG patterns and offers options for customization, including dynamic FVG, mitigation levels, and auto threshold.
Usage
Buy Signals: Generated based on pullback conditions, contra-buy signals, and crossovers of specified moving averages.
Sell Signals: Generated based on pullback conditions, contra-sell signals, and crossunders of specified moving averages.
Visualization: FVG areas are visually represented on the chart, and unmitigated levels can be displayed.
Configuration
Adjustable parameters for trend periods, ATR length, RSI settings, FVG threshold, and display preferences.
Dynamic FVG detection and mitigation level visualization can be enabled/disabled.
Usage Example
Trend Analysis: Identify trends with short and long-term moving averages.
RSI Signals: Interpret RSI signals for potential reversals.
FVG Detection: Visualize Fair Value Gaps and mitigation levels on the chart.
Buy/Sell Signals: Receive alerts for buy/sell signals based on specified conditions.
Disclaimer
This Pine Script code is subject to the terms of the Mozilla Public License 2.0. Use this code at your own risk, and always conduct additional analysis before making trading decisions.
Author
Author: devoperator84
License: Mozilla Public License 2.0
Liquidity Voids (FVG) [LuxAlgo]The Liquidity Voids (FVG) indicator is designed to detect liquidity voids/imbalances derived from the fair value gaps and highlight the distribution of the liquidity voids at specific price levels.
Fair value gaps and liquidity voids are both indicators of sell-side and buy-side imbalance in trading. The only difference is how they are represented in the trading chart. Liquidity voids occur when the price moves sharply in one direction forming long-range candles that have little trading activity, whilst a fair value is a gap in price.
🔶 USAGE
Liquidity can help you to determine where the price is likely to head next. In conjunction with higher timeframe market structure, and supply and demand, liquidity can give you insights into potential price movement. It's essential to practice using liquidity alongside trend analysis and supply and demand to read market conditions effectively.
The peculiar thing about liquidity voids is that they almost always fill up. And by “filling”, we mean the price returns to the origin of the gap. The reason for this is that during the gap, an imbalance is created in the asset that has to be made up for. The erasure of this gap is what we call the filling of the void. And while some voids waste no time in filling, some others take multiple periods before they get filled.
🔶 SETTINGS
The script takes into account user-defined parameters and detects the liquidity voids based on them, where detailed usage for each user-defined input parameter in indicator settings is provided with the related input's tooltip.
🔹 Liquidity Detection
Liquidity Voids Threshold: Act as a filter while detecting the Liquidity Voids. When set to 0 basically means no filtering is applied, increasing the value causes the script to check the width of the void compared to a fixed-length ATR value
Bullish: Color customization option for Bullish Liquidity Voids
Bearish: Color customization option for Bearish Liquidity Voids
Labels: Toggles the visibility of the Liquidity Void label
Filled Liquidity Voids: Toggles the visibility of the Filled Liquidity Voids
🔹 Display Options
Mode: Controls the lookback length of detection and visualization
# Bars: Lookback length customization, in case Mode is set to Present
🔶 RELATED SCRIPTS
Buyside-Sellside-Liquidity
Fair-Value-Gaps
Opening Range Gap + Std Dev [starclique]The ICT Opening Range Gap is a concept taught by Inner Circle Trader and is discussed in the videos: 'One Trading Setup For Life' and 2023 ICT Mentorship - Opening Range Gap Repricing Macro
ORGs, or Opening Range Gaps, are gaps that form only on the Regular Trading Hours chart.
The Regular Trading Hours gap occurs between 16:15 PM - 9:29 AM EST (UTC-4)
These times are considered overnight trading, so it is useful to filter the PA (price action) formed there.
The RTH option is only available for futures contracts and continuous futures from CME Group.
To change your chart to RTH, first things first, make sure you’re looking at a futures contract for an asset class, then on the bottom right of your chart, you’ll see ETH (by default) - Click on that, and change it to RTH.
Now your charts are filtering the price action that happened overnight.
To draw out your gap, use the Close of the 4:14 PM candle and the open of the 9:30 AM candle.
How is this concept useful?
Well, It can be used in many ways.
---
How To Use The ORG
One of the ways you can use the opening range gap is simply as support and resistance
If we extend out the ORG from the example above, we can see that there is a clean retest of the opening range gap high after breaking structure to the upside and showing acceptance outside of the gap after consolidating within it.
The ORG High (4:14 Candle Close in this case) was used as support.
We then see an expansion to the upside.
Another way to implement the ORG is by using it as a draw on liquidity (magnet for price)
In this example, if we looked to the left, there was a huge ORG to the downside, leaving a massive gap.
The market will want to rebalance that gap during the regular trading hours.
The market rallies higher, rejects, comes down to clear the current days ORG low, then closes.
That is one example of how you can combine liquidity & ICT market structure concepts with Opening Range Gaps to create a story in the charts.
Now let’s discuss standard deviations.
---
Standard Deviations
Standard Deviations are essentially projection levels for ranges / POIs (Point of Interests)
By this I mean, if you have a range, and you would like to see where it could potentially expand to, you’d place your fibonacci retracement tool on and high and low of the range, then use extension levels to find specific price points where price might reject from.
Since 0 and 1 are your Range High and Low respectively, your projection levels would be something like 1.5, 2, 2.5, and 3, for the extension from your 1 Fib Level, and -0.5, -1, -1.5, and -2 for your 0 Fib level.
The -1 and 2 level produce a 1:1 projection of your range low and high, meaning, if you expect price to expand as much as it did from the range low to range high, then you can project a -1 and 2 on your Fib, and it would show you what ICT calls “symmetrical price”
Now, how are standard deviations relevant here?
Well, if you’ve been paying attention to ICT’s recent videos, you would’ve caught that he’s recently started using Standard Deviation levels on breakers.
So my brain got going while watching his video on ORGs, and I decided to place the fib on the ORG high and low and see what it’d produce.
The results were very interesting.
Using this same example, if we place our fib on the ORG High and Low, and add some projection levels, we can see that we rejected right at the -2 Standard Deviation Level.
---
You can see that I also marked out the EQ (Equilibrium, 50%, 0.5 of Fib) of the ORG. This is because we can use this level as a take profit level if we’re using an old ORG as our draw.
In days like these, where the gap formed was within a consolidation, and it continued to consolidate within the ORG zone that we extended, we can use the EQ in the same way we’d use an EQ for a range.
If it’s showing acceptance above the EQ, we are bullish, and expect the high of the ORG to be tapped, and vice versa.
---
Using The Indicator
Here’s where our indicator comes in play.
To avoid having to do all this work of zooming in and marking out the close and open of the respective ORG candles, we created the Opening Range Gap + Standard Deviations Indicator, with the help of our dedicated Star Clique coder, a1tmaniac.
With the ORG + STD DEV indicator, you will be able to view ORG’s and their projections on the ETH (Electronic Trading Hours) chart.
---
Features
Range Box
- Change the color of your Opening Range Gap to your liking
- Enable or disable the box from appearing using the checkbox
Range Midline
- Change the color of your Opening Range Gap Equilibrium
- Enable or disable the midline from appearing using the checkbox
Std. Dev
- Add whichever standard deviation levels you’d like.
- By default, the indicator comes with 0.5, 1, 1.5, and 2 standard deviation levels.
- Ensure that you add a comma ( , ) in between each standard deviation level
- Enable or disable the standard deviations from appearing using the opacity of the color (change to 0%)
Labels / Offset
- Adjust the offset of the label for the Standard Deviations
- Enable or disable the Labels from appearing using the checkbox
Time
- Adjust the time used for the indicators range
- If you’d like to use this for a Session or ICT Killzone instead, adjust the time
- Adjust the timezone used for the time referenced
- Options are UTC, US (UTC-4, New York Local Time) or UK (UTC+1, London Time)
- By default, the indicator is set to US
Price & Volume Profile (Expo)█ Overview
The Price & Volume Profile provides a holistic perspective on market dynamics by simultaneously tracking price action and trading volume across a range of price levels. So it is not only a volume-based indicator but also a price-based one. In addition to illustrating volume distribution, it quantifies how frequently the price has fallen within a particular range, thus offering a holistic perspective on market dynamics.
This unique and comprehensive approach to market analysis by considering both price action and trading volume, two crucial dimensions of market activity. Its distinctive methodology offers several advantages:
Holistic Market View: By simultaneously tracking the frequency of specific price ranges (Price Profile) and the volume traded at those ranges (Volume Profile), this indicator provides a more complete picture of market behavior. It shows not only where the market is trading but also how much it's trading, reflecting both price acceptance levels and market participation intensity.
Point of Control (POC): The POC, as highlighted by this indicator, serves as a significant reference point for traders. It identifies the price level with the highest trading activity, thus indicating a strong consensus among market participants about the asset's fair value. Observing how price interacts with the POC can offer valuable insights into market sentiment and potential trend reversals.
Support and Resistance Levels: Price levels with high trading activity often act as support or resistance in future price movements. The indicator visually represents these levels, enabling traders to anticipate potential price reactions.
Price Profile
Price and Volume Profile
█ Calculations
The algorithm analyzes both trade frequency and volume across different price levels. It identifies these levels within the visible chart range, then examines each bar to determine if the selected price falls within these levels. If so, it increases a counter and adds the trading volume. This process repeats across the visible range and is visualized as a horizontal histogram, each bar representing a price level and the bar length reflecting trade frequency and volume. Additionally, it calculates the Point of Control (POC), signifying the price level with the highest activity.
In summary: The histogram presents a dual perspective - not only the traded volume at each price level but also the frequency of the price hitting each range. The longer the bar, the more times the price has frequented that specific range, revealing key insights into price behavior and acceptance levels. These frequently visited areas often emerge as strong support or resistance zones, helping traders navigate market movements.
Please note that the indicator adjusts to the visible price range, making it adaptable to changing market conditions. This dynamic analysis can provide more relevant and timely information than static indicators.
█ How to use
This indicator is beneficial for traders as it offers insights into the distribution of trading activity across different price levels. It helps identify key areas of support and resistance and gives a visual representation of market sentiment and liquidity.
The point of control (POC) , which is the price level with the highest traded volume or frequency count, becomes even more crucial in this context. It marks the price at which the most trading activity occurred, signaling a strong consensus among market participants about the asset's fair value. If the market price deviates significantly from the POC, it could suggest an overbought or oversold condition, potentially leading to a price reversion.
Fair Price Areas/gaps are specific price levels or zones where an asset has spent limited time in the past. These areas are considered interesting or significant because they may have an impact on future price action.
Similar to the concept of fair value gaps, which refers to discrepancies between an asset's market price and its estimated intrinsic value, Fair Price Areas/gaps focus on price levels that have been relatively underutilized in terms of trading activity. When an asset's price reaches a Fair Price Area/gap, traders and investors pay attention because they expect the price to react in some way. The rationale behind this concept is that price tends to gravitate towards areas where it has spent less time in the past, as the market perceives them as significant levels.
█ Settings
The indicator is customizable, allowing users to define the number of price levels (rows), the offset, the data source, and whether to display volume or frequency count. It also adjusts dynamically to the visible price range on the chart, ensuring that the analysis remains relevant and timely with changing market conditions.
Source: The price to use for the calculation. Typically, this is the closing price. By considering the user-selected Source (typically the closing price), the indicator determines the frequency with which the price lands within each designated price level (row) over the selected period. In essence, the indicator provides a count of bars where the Source price falls within each range, essentially creating a "Price Profile."
Row Size: The number of price levels (rows) to divide the visible price range into.
Display: Choose whether to display the number of bars ("Counter") or the total volume ("Volume") for each price level.
Offset: The distance of the histogram from the price chart.
Point of Control (POC): If enabled, the indicator will highlight the price level with the most activity.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Displacement (Two FVGs)A simple indicator that attempts to identify displacement in price by alerting you when two simultaneous Fair Value Gaps (FVGs) occur.
When two fair value gaps occur, the indicator will print a green bar (if bullish) or a red bar (if bearish). If you right click on the indicator you can turn on alerts that will pop up every time a dual FVG occurs.
Fair Value Gaps are most commonly used amongst price action traders and are defined as instances in which there are inefficiencies, or imbalances, in the market.
The concept for this indicator is very simple. Apply it to your chart and enable alerts on the instruments and timeframe you trade. When you get an alert, it could indicate larger players getting involved.
This is NOT a trading strategy. Its intention is to save time by alerting you to large imbalances in price on the instruments you trade.
FVG Sessions [LuxAlgo]The FVG Sessions indicator highlights the first fair value gap of the trading session as well as the session range. Detected fair value gaps extend to the end of the trading session.
Alerts are included on the formation of a session fair value gap, price being within a session fair value gap, mitigations, and price crossing session fair value gaps average.
🔶 USAGE
Trader ICT states that the first fair value gap of the trading session can attract the most significant reaction. Having only one FVG per session allows users to further focus on that precise imbalance as well as external elements.
The mitigation of a fair value gap is clearly indicated on the chart with a more transparent color allowing users to see inverse FVGs.
Extending the fair value gaps allows the imbalance area to provide potential support and resistance.
Do note that this script should be used on intraday charts.
🔶 ALERTS
The script includes the following alerts:
🔹 Bullish/Bearish FVG
Alerts on the formation of the first bullish or bearish FVG of the session.
🔹 Bullish/Bearish FVG Mitigation
Alerts when the first bullish or bearish FVG of the session is mitigated.
🔹 Price Within FVG
Alerts when price is within the first bullish or bearish FVG area of the session.
🔹 Price Cross FVG Average
Alerts when price cross the average level of the first bullish or bearish FVG of the session.
FVGs & CEs + Alerts: simple & efficient methodFair Value Gap indicator: Paints FVGs and their midlines (CEs). Stops painting when CE is hit, or when fully filled; user choice of threshold. This threshold is also used in the Alert conditions.
~~Plotted here on ES1! (CME), on the 15m timeframe~~
-A FVG represents a 'naked' body where the wicks/tails on either side do not meet. This can be seen as a type of 'gap', which price will have a tendency to want to re-fill (in part or in full).
-The midline (CE, or 'Consequent encroachment') of FVGs also tend to show price sensitivity.
-This indicator paints all FVGs until priced into, and should give an idea of which are more meaningful and which are best ignored (based on context: location, Time of day, market structure, etc).
-This is a simpler and more efficient method of painting Fair value gaps which auto-stop painting when price reaches them.
//Aims of Publishing:
-Education of ICT concepts of Fair Value Gaps and their midlines (CEs): To easily see via forward testing or backtesting, the sensitivity that price shows to these areas & levels.
-Demonstration of a much more efficient way of plotting FVGs which terminate at price, thanks to a modification of @Bjorgums's clever looping method referenced below.
//Settings:
-Toggle on/off upward and downward FVGs independently(blue and orange by default).
-Toggle on/off midline (CE).
-Standard color/line formatting options.
-Choose Threshold: CE of FVG or Full Fill of FVG: This will determine both the 'stop-painting' trigger and the 'Alert' trigger.
-Choose number of days lookback to control how many historical FVGs paint on chart.
//On alerts:
-Simple choice of 2 alerts:
~~One for price crossing into/above the nearest untouched 'premium' FVG above ( orange ). Trigger is user choice of CE or full fill.
~~Another for price crossing into/below the nearest untouched 'discount' FVG below (blue). Trigger is user choice of CE or full fill.
-Alerts set via the three dots in indicator status line.
//Cautionary notes:
-Do not use the alerts blindly to find trades. Wait until you have identified a good FVG above/below which you think price may show sensitivity to
-Usage on very low timeframes can cause unexpected results with alerts: due to new FVGs forming in realtime the Alert will always trigger at the most recent FVG above/ below having its threshold hit.
-Big thank you to @Bjorgum for his fantastic extendAndRemove method. Modified here for use with boxes and to integrate Alerts.
-Also Credit to ICT (inner circle trader) for the concepts used here: Fair value gaps and their Consequent Encroachment (CE).
ICT Implied Fair Value Gap (IFVG) [LuxAlgo]An Implied Fair Value Gap (IFVG) is a three candles imbalance formation conceptualized by ICT that is based on detecting a larger candle body & then measuring the average between the two adjacent candle shadows.
This indicator automatically detects this imbalance formation on your charts and can be extended by a user set number of bars.
The IFVG average can also be extended until a new respective IFVG is detected, serving as a support/resistance line.
Alerts for the detection of bullish/bearish IFVG's are also included in this script.
🔶 SETTINGS
Shadow Threshold %: Threshold percentage used to filter out IFVG's with low adjacent candles shadows.
IFVG Extension: Number of bars used to extend highlighted IFVG's areas.
Extend Averages: Extend IFVG's averages up to a new detected respective IFVG.
🔶 USAGE
Users of this indicator can primarily find it useful for trading imbalances just as they would for trading regular Fair Value Gaps or other imbalances, which aims to highlight a disparity between supply & demand.
For trading a bullish IFVG, users can find this imbalance as an area where price is likely to fill or act as an area of support.
In the same way, a user could trade bearish IFVGs by seeing it as a potential area to be filled or act as resistance within a downtrend.
Users can also extend the IFVG averages and use them as longer-term support/resistances levels. This can highlight the ability of detected IFVG to provide longer term significant support and resistance levels.
🔶 DETAILS
Various methods have been proposed for the detection of regular FVG's, and as such it would not be uncommon to see various methods for the implied version.
We propose the following identification rules for the algorithmic detection of IFVG's:
🔹 Bullish
Central candle body is larger than the body of the adjacent candles.
Current price low is higher than high price two bars ago.
Current candle lower shadow makes up more than p percent of its total candle range.
Candle upper shadow two bars ago makes up more than p percent of its total candle range.
The average of the current candle lower shadow is greater than the average of the candle upper shadow two bars ago.
where p is the user set threshold.
🔹 Bearish
Central candle body is larger than the body of the adjacent candles.
Current price high is higher than low price two bars ago.
Current candle upper shadow makes up more than p percent of its total candle range.
Candle lower shadow two bars ago makes up more than p percent of its total candle range.
The average of the candle lower shadow 2 bars ago is greater than the average of the current candle higher shadow.
where p is the user set threshold.
🔶 SUPPLEMENTARY MATERIAL
You can see our previously posted script that detects various imbalances as well as regular Fair Value Gaps which have very similar usability to Implied Fair Value Gaps here:
muh gap! [FAIR VALUE GAP FINDER]Change the colors of the indicator to contrast your chart! Make sure to also change the transparency for the colors.
---
This indicator finds fair value gaps which are inefficiencies in price delivery. Gaps can be used for entry or even bias.
I've included midpoints, lines, and boxes. Boxes have the greatest range with respect to historic PA so keep that in mind.
I will be updating this script in the future, potentially adding an MTF function, mitigation of gaps and alarms.
Let me know if you guys have any additional ideas.
Best,
P
VolatilityLibrary "Volatility"
Functions for determining if volatility (true range) is within or exceeds normal.
The "True Range" (ta.tr) is used for measuring volatility.
Values are normalized by the volume adjusted weighted moving average (VAWMA) to be more like percent moves than price.
current(len) Returns the current price adjusted volatitlity ratio.
Parameters:
len : Number of bars to get a volume adjusted weighted average price.
normal(len, maxDeviation, level, gapDays, spec, res) Returns the normal upper range of volatility. Compensates for overnight gaps within a regular session.
Parameters:
len : Number of bars to measure volatility.
maxDeviation : The limit of volatility before considered an outlier.
level : The amount of standard deviation after cleaning outliers to be considered within normal.
gapDays : The number of days in the past to measure overnight gap volaility.
spec : session.regular (default), session.extended or other time spec.
res : The resolution (default = '1440').
isNormal(len, maxDeviation, level, gapDays, spec, res) Returns true if the volatility (true range) is within normal levels. Compensates for overnight gaps within a regular session.
Parameters:
len : Number of bars to measure volatility.
maxDeviation : The limit of volatility before considered an outlier.
level : The amount of standard deviation after cleaning outliers to be considered within normal.
gapDays : The number of days in the past to measure overnight gap volaility.
spec : session.regular (default), session.extended or other time spec.
res : The resolution (default = '1440').
severity(len, maxDeviation, level, gapDays, spec, res) Returns ratio of the current value to the normal value. Compensates for overnight gaps within a regular session.
Parameters:
len : Number of bars to measure volatility.
maxDeviation : The limit of volatility before considered an outlier.
level : The amount of standard deviation after cleaning outliers to be considered within normal.
gapDays : The number of days in the past to measure overnight gap volaility.
spec : session.regular (default), session.extended or other time spec.
res : The resolution (default = '1440').
Higher TF - Repainting + Limiting backtest resultsThis strategy is for illustration purpose only. Do not use this as there is massive repainting.
As usual, I was experimenting with adding different entry/exit filters to my main strategy. Thought of adding higher frame filter, picked the code for getting higher time frame supertrend from someone else's script and copied it without thinking much about it.
security(syminfo.tickerid, f_multiple_resolution(HTFMultiplier), supertrend(SupertrendMult, SupertrendPd), lookahead = true, gaps=true)
Started getting better results with this result. I was very much impressed and while trying to enhance further, I started disabling my other entry and exit filters which I generally use.
That worked pretty well without any of my other filters. Hence, thought I will forward test this on a smaller timeframe.
To my surprise, even in forward testing, i was not able to notice repainting very much. It also appeared that smaller timeframes yielded better results. (This wasn't the case with any of my strategies)
Which then prompted me to study the security function and lookahead and gap parameters. Learned that lookahead and gap when set to true will lead to massive repainting - specially if you are using higher timeframes. Hence, these parameters are not advisable to use in strategies.
Further information here: www.tradingview.com
I added three repaint options to further illustrate how security function will work:
Yes : Use security with lookahead and merge set to true
No - set lookahead false : Use security with lookahead and merge set to false
No - do not use security : Falls back to original command on current timeframe. Switch timeframe to HTF resolution to compare the difference.
Conclusion : Always set lookahead and gaps to false when using security function in strategies.
PS: Script also contains code to limit backtesting to certain days/months/years. This can be used as is in other scripts.
Martingale Strategy Simulator [BackQuant]Martingale Strategy Simulator
Purpose
This indicator lets you study how a martingale-style position sizing rule interacts with a simple long or short trading signal. It computes an equity curve from bar-to-bar returns, adapts position size after losing streaks, caps exposure at a user limit, and summarizes risk with portfolio metrics. An optional Monte Carlo module projects possible future equity paths from your realized daily returns.
What a martingale is
A martingale sizing rule increases stake after losses and resets after a win. In its classical form from gambling, you double the bet after each loss so that a single win recovers all prior losses plus one unit of profit. In markets there is no fixed “even-money” payout and returns are multiplicative, so an exact recovery guarantee does not exist. The core idea is unchanged:
Lose one leg → increase next position size
Lose again → increase again
Win → reset to the base size
The expectation of your strategy still depends on the signal’s edge. Sizing does not create positive expectancy on its own. A martingale raises variance and tail risk by concentrating more capital as a losing streak develops.
What it plots
Equity – simulated portfolio equity including compounding
Buy & Hold – equity from holding the chart symbol for context
Optional helpers – last trade outcome, current streak length, current allocation fraction
Optional diagnostics – daily portfolio return, rolling drawdown, metrics table
Optional Monte Carlo probability cone – p5, p16, p50, p84, p95 aggregate bands
Model assumptions
Bar-close execution with no slippage or commissions
Shorting allowed and frictionless
No margin interest, borrow fees, or position limits
No intrabar moves or gaps within a bar (returns are close-to-close)
Sizing applies to equity fraction only and is capped by your setting
All results are hypothetical and for education only.
How the simulator applies it
1) Directional signal
You pick a simple directional rule that produces +1 for long or −1 for short each bar. Options include 100 HMA slope, RSI above or below 50, EMA or SMA crosses, CCI and other oscillators, ATR move, BB basis, and more. The stance is evaluated bar by bar. When the stance flips, the current trade ends and the next one starts.
2) Sizing after losses and wins
Position size is a fraction of equity:
Initial allocation – the starting fraction, for example 0.15 means 15 percent of equity
Increase after loss – multiply the next allocation by your factor after a losing leg, for example 2.00 to double
Reset after win – return to the initial allocation
Max allocation cap – hard ceiling to prevent runaway growth
At a high level the size after k consecutive losses is
alloc(k) = min( cap , base × factor^k ) .
In practice the simulator changes size only when a leg ends and its PnL is known.
3) Equity update
Let r_t = close_t / close_{t-1} − 1 be the symbol’s bar return, d_{t−1} ∈ {+1, −1} the prior bar stance, and a_{t−1} the prior bar allocation fraction. The simulator compounds:
eq_t = eq_{t−1} × (1 + a_{t−1} × d_{t−1} × r_t) .
This is bar-based and avoids intrabar lookahead. Costs, slippage, and borrowing costs are not modeled.
Why traders experiment with martingale sizing
Mean-reversion contexts – if the signal often snaps back after a string of losses, adding size near the tail of a move can pull the average entry closer to the turn
Behavioral or microstructure edges – some rules have modest edge but frequent small whipsaws; size escalation may shorten time-to-recovery when the edge manifests
Exploration and stress testing – studying the relationship between streaks, caps, and drawdowns is instructive even if you do not deploy martingale sizing live
Why martingale is dangerous
Martingale concentrates capital when the strategy is performing worst. The main risks are structural, not cosmetic:
Loss streaks are inevitable – even with a 55 percent win rate you should expect multi-loss runs. The probability of at least one k-loss streak in N trades rises quickly with N.
Size explodes geometrically – with factor 2.0 and base 10 percent, the sequence is 10, 20, 40, 80, 100 (capped) after five losses. Without a strict cap, required size becomes infeasible.
No fixed payout – in gambling, one win at even odds resets PnL. In markets, there is no guaranteed bounce nor fixed profit multiple. Trends can extend and gaps can skip levels.
Correlation of losses – losses cluster in trends and in volatility bursts. A martingale tends to be largest just when volatility is highest.
Margin and liquidity constraints – leverage limits, margin calls, position limits, and widening spreads can force liquidation before a mean reversion occurs.
Fat tails and regime shifts – assumptions of independent, Gaussian returns can understate tail risk. Structural breaks can keep the signal wrong for much longer than expected.
The simulator exposes these dynamics in the equity curve, Max Drawdown, VaR and CVaR, and via Monte Carlo sketches of forward uncertainty.
Interpreting losing streaks with numbers
A rough intuition: if your per-trade win probability is p and loss probability is q=1−p , the chance of a specific run of k consecutive losses is q^k . Over many trades, the chance that at least one k-loss run occurs grows with the number of opportunities. As a sanity check:
If p=0.55 , then q=0.45 . A 6-loss run has probability q^6 ≈ 0.008 on any six-trade window. Across hundreds of trades, a 6 to 8-loss run is not rare.
If your size factor is 1.5 and your base is 10 percent, after 8 losses the requested size is 10% × 1.5^8 ≈ 25.6% . With factor 2.0 it would try to be 10% × 2^8 = 256% but your cap will stop it. The equity curve will still wear the compounded drawdown from the sequence that led to the cap.
This is why the cap setting is central. It does not remove tail risk, but it prevents the sizing rule from demanding impossible positions
Note: The p and q math is illustrative. In live data the win rate and distribution can drift over time, so real streaks can be longer or shorter than the simple q^k intuition suggests..
Using the simulator productively
Parameter studies
Start with conservative settings. Increase one element at a time and watch how the equity, Max Drawdown, and CVaR respond.
Initial allocation – lower base reduces volatility and drawdowns across the board
Increase factor – set modestly above 1.0 if you want the effect at all; doubling is aggressive
Max cap – the most important brake; many users keep it between 20 and 50 percent
Signal selection
Keep sizing fixed and rotate signals to see how streak patterns differ. Trend-following signals tend to produce long wrong-way streaks in choppy ranges. Mean-reversion signals do the opposite. Martingale sizing interacts very differently with each.
Diagnostics to watch
Use the built-in metrics to quantify risk:
Max Drawdown – worst peak-to-trough equity loss
Sharpe and Sortino – volatility and downside-adjusted return
VaR 95 percent and CVaR – tail risk measures from the realized distribution
Alpha and Beta – relationship to your chosen benchmark
If you would like to check out the original performance metrics script with multiple assets with a better explanation on all metrics please see
Monte Carlo exploration
When enabled, the forecast draws many synthetic paths from your realized daily returns:
Choose a horizon and a number of runs
Review the bands: p5 to p95 for a wide risk envelope; p16 to p84 for a narrower range; p50 as the median path
Use the table to read the expected return over the horizon and the tail outcomes
Remember it is a sketch based on your recent distribution, not a predictor
Concrete examples
Example A: Modest martingale
Base 10 percent, factor 1.25, cap 40 percent, RSI>50 signal. You will see small escalations on 2 to 4 loss runs and frequent resets. The equity curve usually remains smooth unless the signal enters a prolonged wrong-way regime. Max DD may rise moderately versus fixed sizing.
Example B: Aggressive martingale
Base 15 percent, factor 2.0, cap 60 percent, EMA cross signal. The curve can look stellar during favorable regimes, then a single extended streak pushes allocation to the cap, and a few more losses drive deep drawdown. CVaR and Max DD jump sharply. This is a textbook case of high tail risk.
Strengths
Bar-by-bar, transparent computation of equity from stance and size
Explicit handling of wins, losses, streaks, and caps
Portable signal inputs so you can A–B test ideas quickly
Risk diagnostics and forward uncertainty visualization in one place
Example, Rolling Max Drawdown
Limitations and important notes
Martingale sizing can escalate drawdowns rapidly. The cap limits position size but not the possibility of extended adverse runs.
No commissions, slippage, margin interest, borrow costs, or liquidity limits are modeled.
Signals are evaluated on closes. Real execution and fills will differ.
Monte Carlo assumes independent draws from your recent return distribution. Markets often have serial correlation, fat tails, and regime changes.
All results are hypothetical. Use this as an educational tool, not a production risk engine.
Practical tips
Prefer gentle factors such as 1.1 to 1.3. Doubling is usually excessive outside of toy examples.
Keep a strict cap. Many users cap between 20 and 40 percent of equity per leg.
Stress test with different start dates and subperiods. Long flat or trending regimes are where martingale weaknesses appear.
Compare to an anti-martingale (increase after wins, cut after losses) to understand the other side of the trade-off.
If you deploy sizing live, add external guardrails such as a daily loss cut, volatility filters, and a global max drawdown stop.
Settings recap
Backtest start date and initial capital
Initial allocation, increase-after-loss factor, max allocation cap
Signal source selector
Trading days per year and risk-free rate
Benchmark symbol for Alpha and Beta
UI toggles for equity, buy and hold, labels, metrics, PnL, and drawdown
Monte Carlo controls for enable, runs, horizon, and result table
Final thoughts
A martingale is not a free lunch. It is a way to tilt capital allocation toward losing streaks. If the signal has a real edge and mean reversion is common, careful and capped escalation can reduce time-to-recovery. If the signal lacks edge or regimes shift, the same rule can magnify losses at the worst possible moment. This simulator makes those trade-offs visible so you can calibrate parameters, understand tail risk, and decide whether the approach belongs anywhere in your research workflow.
POC Migration Velocity (POC-MV) [PhenLabs]📊POC Migration Velocity (POC-MV)
Version: PineScript™v6
📌Description
The POC Migration Velocity indicator revolutionizes market structure analysis by tracking the movement, speed, and acceleration of Point of Control (POC) levels in real-time. This tool combines sophisticated volume distribution estimation with velocity calculations to reveal hidden market dynamics that conventional indicators miss.
POC-MV provides traders with unprecedented insight into volume-based price movement patterns, enabling the early identification of continuation and exhaustion signals before they become apparent to the broader market. By measuring how quickly and consistently the POC migrates across price levels, traders gain early warning signals for significant market shifts and can position themselves advantageously.
The indicator employs advanced algorithms to estimate intra-bar volume distribution without requiring lower timeframe data, making it accessible across all chart timeframes while maintaining sophisticated analytical capabilities.
🚀Points of Innovation
Micro-POC calculation using advanced OHLC-based volume distribution estimation
Real-time velocity and acceleration tracking normalized by ATR for cross-market consistency
Persistence scoring system that quantifies directional consistency over multiple periods
Multi-signal detection combining continuation patterns, exhaustion signals, and gap alerts
Dynamic color-coded visualization system with intensity-based feedback
Comprehensive customization options for resolution, periods, and thresholds
🔧Core Components
POC Calculation Engine: Estimates volume distribution within each bar using configurable price bands and sophisticated weighting algorithms
Velocity Measurement System: Tracks the rate of POC movement over customizable lookback periods with ATR normalization
Acceleration Calculator: Measures the rate of change of velocity to identify momentum shifts in POC migration
Persistence Analyzer: Quantifies how consistently POC moves in the same direction using exponential weighting
Signal Detection Framework: Combines trend analysis, velocity thresholds, and persistence requirements for signal generation
Visual Rendering System: Provides dynamic color-coded lines and heat ribbons based on velocity and price-POC relationships
🔥Key Features
Real-time POC calculation with 10-100 configurable price bands for optimal precision
Velocity tracking with customizable lookback periods from 5 to 50 bars
Acceleration measurement for detecting momentum changes in POC movement
Persistence scoring to validate signal strength and filter false signals
Dynamic visual feedback with blue/orange color scheme indicating bullish/bearish conditions
Comprehensive alert system for continuation patterns, exhaustion signals, and POC gaps
Adjustable information table displaying real-time metrics and current signals
Heat ribbon visualization showing price-POC relationship intensity
Multiple threshold settings for customizing signal sensitivity
Export capability for use with separate panel indicators
🎨Visualization
POC Connecting Lines: Color-coded lines showing POC levels with intensity based on velocity magnitude
Heat Ribbon: Dynamic colored ribbon around price showing POC-price basis intensity
Signal Markers: Clear exhaustion top/bottom signals with labeled shapes
Information Table: Real-time display of POC value, velocity, acceleration, basis, persistence, and current signal status
Color Gradients: Blue gradients for bullish conditions, orange gradients for bearish conditions
📖Usage Guidelines
POC Calculation Settings
POC Resolution (Price Bands): Default 20, Range 10-100. Controls the number of price bands used to estimate volume distribution within each bar
Volume Weight Factor: Default 0.7, Range 0.1-1.0. Adjusts the influence of volume in POC calculation
POC Smoothing: Default 3, Range 1-10. EMA smoothing period applied to the calculated POC to reduce noise
Velocity Settings
Velocity Lookback Period: Default 14, Range 5-50. Number of bars used to calculate POC velocity
Acceleration Period: Default 7, Range 3-20. Period for calculating POC acceleration
Velocity Significance Threshold: Default 0.5, Range 0.1-2.0. Minimum normalized velocity for continuation signals
Persistence Settings
Persistence Lookback: Default 5, Range 3-20. Number of bars examined for persistence score calculation
Persistence Threshold: Default 0.7, Range 0.5-1.0. Minimum persistence score required for continuation signals
Visual Settings
Show POC Connecting Lines: Toggle display of colored lines connecting POC levels
Show Heat Ribbon: Toggle display of colored ribbon showing POC-price relationship
Ribbon Transparency: Default 70, Range 0-100. Controls transparency level of heat ribbon
Alert Settings
Enable Continuation Alerts: Toggle alerts for continuation pattern detection
Enable Exhaustion Alerts: Toggle alerts for exhaustion pattern detection
Enable POC Gap Alerts: Toggle alerts for significant POC gaps
Gap Threshold: Default 2.0 ATR, Range 0.5-5.0. Minimum gap size to trigger alerts
✅Best Use Cases
Identifying trend continuation opportunities when POC velocity aligns with price direction
Spotting potential reversal points through exhaustion pattern detection
Confirming breakout validity by monitoring POC gap behavior
Adding volume-based context to traditional technical analysis
Managing position sizing based on POC-price basis strength
⚠️Limitations
POC calculations are estimations based on OHLC data, not true tick-by-tick volume distribution
Effectiveness may vary in low-volume or highly volatile market conditions
Requires complementary analysis tools for complete trading decisions
Signal frequency may be lower in ranging markets compared to trending conditions
Performance optimization needed for very short timeframes below 1-minute
💡What Makes This Unique
Advanced Estimation Algorithm: Sophisticated method for calculating POC without requiring lower timeframe data
Velocity-Based Analysis: Focus on POC movement dynamics rather than static levels
Comprehensive Signal Framework: Integration of continuation, exhaustion, and gap detection in one indicator
Dynamic Visual Feedback: Intensity-based color coding that adapts to market conditions
Persistence Validation: Unique scoring system to filter signals based on directional consistency
🔬How It Works
Volume Distribution Estimation:
Divides each bar into configurable price bands for volume analysis
Applies sophisticated weighting based on OHLC relationships and proximity to close
Identifies the price level with maximum estimated volume as the POC
Velocity and Acceleration Calculation:
Measures POC rate of change over specified lookback periods
Normalizes values using ATR for consistent cross-market performance
Calculates acceleration as the rate of change of velocity
Signal Generation Process:
Combines trend direction analysis using EMA crossovers
Applies velocity and persistence thresholds to filter signals
Generates continuation, exhaustion, and gap alerts based on specific criteria
💡Note:
This indicator provides estimated POC calculations based on available OHLC data and should be used in conjunction with other analysis methods. The velocity-based approach offers unique insights into market structure dynamics but requires proper risk management and complementary analysis for optimal trading decisions.
ATR SL/TPStop Loss Finder ATR
A Stop Loss Finder ATR indicator is a dynamic risk management tool leveraging the Average True Range (ATR) to identify and track optimal stop-loss levels based on current market volatility.
A stop hunt indicator is a technical tool designed to identify potential instances where large market participants, often referred to as "smart money," deliberately move the price to trigger a large number of stop-loss orders, creating a temporary price distortion before reversing the trend. These indicators aim to help traders detect these events to either avoid being stopped out or to enter trades in the direction of the anticipated reversal.
For example, a long wick below support with high volume may signal a bullish stop-hunt , indicating that the price has been driven down to trigger sell-stop orders before reversing upward. Conversely, a long wick above resistance with high volume may signal a bearish stop-hunt , suggesting the price was pushed up to trigger buy-stop orders before reversing downward. The presence of such wicks is often associated with candlestick patterns like hammers or shooting stars.
Unlike fixed stop-losses, this indicator adapts its distance from the current price using a customizable ATR multiplier, ensuring that stop-loss levels are neither too tight (prone to being triggered by normal market noise) nor too wide (exposing capital to excessive risk) . The core function calculates the true range—considering the current high-low range, gaps up, and gaps down—over a user-defined period (typically 14 bars), then applies a multiplier to generate a volatility-adjusted stop-loss distance . This approach allows the indicator to dynamically widen stops during high-volatility periods and tighten them during calm markets, providing a more responsive and context-aware exit strategy.
FVG TrackerThis indicator automatically detects and tracks Fair Value Gaps (FVGs) on your chart, helping you quickly spot imbalances in price action.
Key Features:
📍 Identifies FVGs larger than 3 contracts
📐 Draws each valid FVG as a rectangle directly on the chart
⏳ Removes FVGs once they are fully filled
🔟 Keeps track of only the 10 most recent FVGs for clarity
⚡ Lightweight and optimized for real-time charting
This tool is ideal for traders who use FVGs as part of Smart Money Concepts (SMC) or imbalance-based strategies. By visually highlighting only meaningful gaps and clearing them once filled, it ensures a clean and actionable charting experience.