Swing Highs/Lows & Candle Patterns [LuxAlgo]This script labels swing highs and swing lows as well as the candle pattern that occurred at that precise point. The script can detect the following 6 candle patterns: hammer, inverse hammer, bullish engulfing, hanging man, shooting star, and bearish engulfing.
This indicator by its very nature backpaints by default, meaning that the displayed components are offset in the past.
🔶 USAGE
It can be interesting to see if a top or bottom is associated with a specific candle pattern, this allows us to study the potential of such a pattern to indicate a reversal. You can hover on a label with a specific pattern to see more details about it.
The notations HH, HL, LH, and LL you can see on the labels are defined as follows:
HH : Higher high
HL : Higher low
LH : Lower high
LL : Lower low
🔶 SETTING
Length: Sensitivity of the swing high/low detection, with lower values returning the maximum/minimum of shorter-term price variations.
在腳本中搜尋"luxalgo"
Percentile Nearest Rank Using Arrays [LuxAlgo]The new array feature is extremely powerful, as it will allow pinescript users to do more complex things, or compute existing calculations more efficiently, it will also be possible to shine some light to some already existing functions, one of them being percentile_nearest_rank .
We have been working on this new feature with our pal alexgrover, and made this script which computes a rolling percentile using the nearest rank method.
Settings
Length: Window of the rolling percentile, determine the number of past data to be used.
Percentage: Return the current value if Percentage % of the data fall below that value, the setting is in a range (0,100).
Src: Input source of the indicator.
Usage
A rolling percentile can have many usages when it comes to technical analysis, this is due to its ability to return the value of three common rolling statistics, the rolling median, which can be obtained using a percentage equal to 50, the rolling maximum, obtained with a percentage equal to 100, and the rolling minimum, obtained with a percentage equal to 0.
When we use our rolling percentile as a rolling median, we can obtain a robust estimation of the underlying trend in the price, while using it as a rolling maximum/minimum can allow us to determine if the market is trending, and at which direction. The rolling maximum/minimum is a rolling statistic used to calculate the well known stochastic oscillator and Donchian channel indicator.
We can also compute rolling quartiles, which can be obtained using a percentage of 25 or 75, with one of 25 returning the lower quartile and 75 the upper quartile.
In blue the upper rolling quartile (%75), in orange the lower rolling quartile (%25), both using a window size of 100.
Details
In order to compute a rolling percentile nearest rank, we must first take the most recent length closing prices, then order them in ascending order, we then return the value of the ordered observations at index (percentage/100*length) - 1 (we use - 1 because our array index starts at 0).
Rally Base Drop SND Pivots Strategy [LuxAlgo X PineIndicators]This strategy is based on the Rally Base Drop (RBD) SND Pivots indicator developed by LuxAlgo. Full credit for the concept and original indicator goes to LuxAlgo.
The Rally Base Drop SND Pivots Strategy is a non-repainting supply and demand trading system that detects pivot points based on Rally, Base, and Drop (RBD) candles. This strategy automatically identifies key market structure levels, allowing traders to:
Identify pivot-based supply and demand (SND) zones.
Use fixed criteria for trend continuation or reversals.
Filter out market noise by requiring structured price formations.
Enter trades based on breakouts of key SND pivot levels.
How the Rally Base Drop SND Pivots Strategy Works
1. Pivot Point Detection Using RBD Candles
The strategy follows a rigid market structure methodology, where pivots are detected only when:
A Rally (R) consists of multiple consecutive bullish candles.
A Drop (D) consists of multiple consecutive bearish candles.
A Base (B) is identified as a transition between Rallies and Drops, acting as a pivot point.
The pivot level is confirmed when the formation is complete.
Unlike traditional fractal-based pivots, RBD Pivots enforce stricter structural rules, ensuring that each pivot:
Has a well-defined bullish or bearish price movement.
Reduces false signals caused by single-bar fluctuations.
Provides clear supply and demand levels based on structured price movements.
These pivot levels are drawn on the chart using color-coded boxes:
Green zones represent bullish pivot levels (Rally Base formations).
Red zones represent bearish pivot levels (Drop Base formations).
Once a pivot is confirmed, the high or low of the base candle is used as the reference level for future trades.
2. Trade Entry Conditions
The strategy allows traders to select from three trading modes:
Long Only – Only takes long trades when bullish pivot breakouts occur.
Short Only – Only takes short trades when bearish pivot breakouts occur.
Long & Short – Trades in both directions based on pivot breakouts.
Trade entry signals are triggered when price breaks through a confirmed pivot level:
Long Entry:
A bullish pivot level is formed.
Price breaks above the bullish pivot level.
The strategy enters a long position.
Short Entry:
A bearish pivot level is formed.
Price breaks below the bearish pivot level.
The strategy enters a short position.
The strategy includes an optional mode to reverse long and short conditions, allowing traders to experiment with contrarian entries.
3. Exit Conditions Using ATR-Based Risk Management
This strategy uses the Average True Range (ATR) to calculate dynamic stop-loss and take-profit levels:
Stop-Loss (SL): Placed 1 ATR below entry for long trades and 1 ATR above entry for short trades.
Take-Profit (TP): Set using a Risk-Reward Ratio (RR) multiplier (default = 6x ATR).
When a trade is opened:
The entry price is recorded.
ATR is calculated at the time of entry to determine stop-loss and take-profit levels.
Trades exit automatically when either SL or TP is reached.
If reverse conditions mode is enabled, stop-loss and take-profit placements are flipped.
Visualization & Dynamic Support/Resistance Levels
1. Pivot Boxes for Market Structure
Each pivot is marked with a colored box:
Green boxes indicate bullish demand zones.
Red boxes indicate bearish supply zones.
These boxes remain on the chart to act as dynamic support and resistance levels, helping traders identify key price reaction zones.
2. Horizontal Entry, Stop-Loss, and Take-Profit Lines
When a trade is active, the strategy plots:
White line → Entry price.
Red line → Stop-loss level.
Green line → Take-profit level.
Labels display the exact entry, SL, and TP values, updating dynamically as price moves.
Customization Options
This strategy offers multiple adjustable settings to optimize performance for different market conditions:
Trade Mode Selection → Choose between Long Only, Short Only, or Long & Short.
Pivot Length → Defines the number of required Rally & Drop candles for a pivot.
ATR Exit Multiplier → Adjusts stop-loss distance based on ATR.
Risk-Reward Ratio (RR) → Modifies take-profit level relative to risk.
Historical Lookback → Limits how far back pivot zones are displayed.
Color Settings → Customize pivot box colors for bullish and bearish setups.
Considerations & Limitations
Pivot Breakouts Do Not Guarantee Reversals. Some pivot breaks may lead to continuation moves instead of trend reversals.
Not Optimized for Low Volatility Conditions. This strategy works best in trending markets with strong momentum.
ATR-Based Stop-Loss & Take-Profit May Require Optimization. Different assets may require different ATR multipliers and RR settings.
Market Noise May Still Influence Pivots. While this method filters some noise, fake breakouts can still occur.
Conclusion
The Rally Base Drop SND Pivots Strategy is a non-repainting supply and demand system that combines:
Pivot-based market structure analysis (using Rally, Base, and Drop candles).
Breakout-based trade entries at confirmed SND levels.
ATR-based dynamic risk management for stop-loss and take-profit calculation.
This strategy helps traders:
Identify high-probability supply and demand levels.
Trade based on structured market pivots.
Use a systematic approach to price action analysis.
Automatically manage risk with ATR-based exits.
The strict pivot detection rules and built-in breakout validation make this strategy ideal for traders looking to:
Trade based on market structure.
Use defined support & resistance levels.
Reduce noise compared to traditional fractals.
Implement a structured supply & demand trading model.
This strategy is fully customizable, allowing traders to adjust parameters to fit their market and trading style.
Full credit for the original concept and indicator goes to LuxAlgo.
Fair Value Gaps BOOSTED [LuxAlgo & mqsxn] Fair Value Gaps BOOSTED
This enhanced version of LuxAlgo’s Fair Value Gap indicator takes market imbalance detection to the next level. Built on the trusted foundation of the original, this extension introduces powerful new features designed for traders who want deeper insight and more control:
Extended Visualization – Fair Value Gaps now stretch farther into the past with customizable bar extensions, so you can easily track unmitigated gaps over longer distances of time.
Intersection Highlights – Automatically identify and shade overlapping bullish/bearish FVGs, giving instant visual clarity on high-confluence zones.
Center Lines & Mitigation Tracking – Optional center lines improve precision, while mitigation markers help confirm when gaps are filled.
Advanced Filtering – Control visibility with minimum gap sizes, custom start dates for gap formations, and per-direction display limits.
Dashboard Stats – On-chart metrics show the number of detected and mitigated gaps, plus percentages, at a glance.
Alerts Ready – Set up alerts for fresh FVG formation or mitigation events, so you never miss a key signal.
Whether you’re scalping, day trading, or swing trading, Fair Value Gaps BOOSTED helps you pinpoint institutional price imbalances and trade around them with confidence.
------
Inputs & Settings
Threshold % / Auto
Defines the minimum gap size as a percentage of price. Enable Auto to let the script automatically adapt thresholding based on volatility.
Unmitigated Lines (combined)
Draws guide lines for a set number of the most recent unmitigated gaps.
Mitigation Levels
Shows dashed lines where gaps have been fully mitigated (filled).
Timeframe
Lets you calculate Fair Value Gaps on a higher or lower timeframe than the chart you’re viewing.
Style
Dynamic Mode
Keeps the most recent gap area actively updating with price as long as it remains unmitigated.
Extend Right (bars)
Controls how many bars into the future each gap visualization will project.
Bullish / Bearish Colors
Customize the fill colors of bullish and bearish gaps.
Center Line & Width
Adds a dotted line through the midpoint of each gap for visual precision.
Filter
Min Gap Size (ticks)
Only display gaps greater than or equal to this size.
Min Formation Date (days ago)
Show gaps formed within a given lookback window (e.g., only last 4 days).
Display
Show Last Bullish / Bearish (unmitigated)
Limit how many recent bullish or bearish gaps appear at once (set to 0 for unlimited).
Intersections
Show Intersections
Highlight overlapping bullish and bearish gaps as shaded zones.
Show Intersections Only
Hide individual gaps and show only the overlapping regions.
Intersection Color
Customize the fill for overlap areas.
Intersection Center Line / Width
Optionally plot a midpoint line through the overlap zone.
Dashboard
Show Dashboard
Display a compact on-chart table of bullish vs bearish counts and mitigation percentages.
Location
Choose where the dashboard sits (top right, bottom right, bottom left).
Size
Adjust text size (Tiny, Small, Normal).
Rolling VWAP Channel [LuxAlgo]The Rolling VWAP Channel indicator creates a channel by analyzing a large number of Volume Weighted Average Prices (VWAPs) and determining a Channel based on percentile linear interpolation throughout the VWAPs.
🔶 USAGE
In this indicator, we have formed a Channel by first calculating multiple VWAPs, each with their respective anchor, then locating prices using "Percentile Linear Interpolation".
Note: Percentile Linear Interpolation locates the price point at which a specified percentage of VWAPs fall below it.
For example, a percentile of 50% would mean that 50% of the VWAP values fall below this price.
This method of analysis is important since the VWAPs are not often evenly distributed; therefore, we are able to draw importance to different levels by analyzing in percentiles.
When visualized, there is typically clustering of the VWAP values, which occurs at any given time, as seen below.
The channel can be tailored to each individual, with full control of each percentile represented in the channel. That being said, a general concept is that these clustered areas are clear results of sideways price action, which would lead us to believe that after interactions at these levels, we should expect to see a directional decision made by the market closely after.
🔶 DETAILS
The Rolling VWAP calculation calculates a user-specified number of VWAPs (up to 500), each anchored to a unique starting point in the chart based on the start of a new timeframe.
Each new timeframe that occurs causes a new VWAP to initialize. When the total number of desired VWAPs is reached, the oldest VWAP is removed and re-initialized, anchored to the current bar. Hence, the name " Rolling " VWAPs
This method allows us to automatically generate and manage large amounts of VWAPs without the need for user interaction.
After we have generated these VWAPs, we are able to run analyses on their returned values, such as the "Percentile Linear Interpolation" mentioned in the section above.
🔶 SETTINGS
Anchor Period: Choose which time period to use as the anchor point to initialize new VWAPs from.
VWAP Source: Choose the source for your VWAPs to calculate.
VWAP Amount: Sets the number of VWAPs to use. After this amount is on the chart, the oldest will be rolled.
🔹 Channel Lines
Toggle: Enable the associated VWAP Channel percentile line.
Percentile: Adjust each line's percentile independently for your needs.
Width: Adjust the width of the associated percentile line.
🔹 Calculation
Calculated Bars: Tells the indicator how many bars to calculate on, for faster calculations with less history, use a lower value. Setting this to 0 will remove the bar constraint.
ATH/ATL Tracker [LuxAlgo]The ATH/ATL Tracker effectively displays changes made between new All-Time Highs (ATH)/All-Time Lows (ATL) and their previous respective values, over the entire history of available data.
The indicator shows a histogram of the change between a new ATH/ATL and its respective preceding ATH/ATL. A tooltip showing the price made during a new ATH/ATL alongside its date is included.
🔶 USAGE
By tracking the change between new ATHs/ATLs and older ATHs/ATLs, traders can gain insight into market sentiment, breadth, and rotation.
If many stocks are consistently setting new ATHs and the number of new ATHs is increasing relative to old ATHs, it could indicate broad market participation in a rally. If only a few stocks are reaching new ATHs or the number is declining, it might signal that the market's upward momentum is decreasing.
A significant increase in new ATHs suggests optimism and willingness among investors to buy at higher prices, which could be considered a positive sentiment. On the other hand, a decrease or lack of new ATHs might indicate caution or pessimism.
By observing the sectors where stocks are consistently setting new ATHs, users can identify which sectors are leading the market. Sectors with few or no new ATHs may be losing momentum and could be identified as lagging behind the overall market sentiment.
🔶 DETAILS
The indicator's main display is a histogram-style readout that displays the change in price from older ATH/ATLs to Newer/Current ATH/ATLs. This change is determined by the distance that the current values have overtaken the previous values, resulting in the displayed data.
The largest changes in ATH/ATLs from the ticker's history will appear as the largest bars in the display.
The most recent bars (depending on the selected display setting) will always represent the current ATH or ATL values.
When determining ATH & ATL values, it is important to filter out insignificant highs and lows that may happen constantly when exploring higher and lower prices. To combat this, the indicator looks to a higher timeframe than your chart's timeframe in order to determine these more significant ATHs & ATLs.
For Example: If a user was on a 1-minute chart and 5 highs-new highs occur across 5 adjacent bars, this has the potential to show up as 5 new ATHs. When looking at a higher timeframe, 5 minutes, only the highest of the 5 bars will indicate a new ATH. To assist with this, the indicator will display warnings in the dashboard when a suboptimal timeframe is selected as input.
🔹 Dashboard
The dashboard displays averages from the ATH/ATL data to aid in the anticipation and expectations for new ATH/ATLs.
The average duration is an average of the time between each new ATH/ATL, in this indicator it is calculated in "Days" to provide a more comprehensive understanding.
The average change is the average of all change data displayed in the histogram.
🔶 SETTINGS
Duration: The designated higher timeframe to use for filtering out insignificant ATHs & ATLs.
Order: The display order for the ATH/ATL Bars, Options are to display in chronological (oldest to newest) or reverse chronological order (newest to oldest).
Bar Width: Sets the width for each ATH/ATL bar.
Bar Spacing: Sets the # of empty bars in between each ATH/ATL bar.
Dashboard Settings: Parameters for the dashboard's size and location on the chart.
Dynamic Order Blocks [LuxAlgo]The Dynamic Order Blocks indicator displays the most recent unmitigated bullish and bearish order blocks on the chart, providing dynamic support/resistance areas.
When price sweeps an order block, this is highlighted by the script indicating a potential reversal.
The average between the displayed order blocks is also displayed.
🔶 USAGE
Order blocks are a popular method of price action analysis, representing price areas where more significant market participants accumulate their orders.
Displaying order blocks dynamically allows obtaining relevant areas of support/resistance. Users can obtain longer-term order blocks using a higher "Swing Lookback" setting.
Users can also use mitigation events to assess the current trend direction, with price mitigating a bearish order block (breaking above the upper extremity) indicating an uptrend, and price mitigating a bullish order block (breaking below the lower extremity) indicating a downtrend.
🔹 Average Level
An average level obtained from the displayed bullish and bearish order blocks is included in the indicator and offers an additional polyvalent dynamic support/resistance level.
The change of direction of the average line can also be indicative of the current trend direction.
🔹 Dynamic Sweeps
Price sweeping the mitigation level of an order block is highlighted on the chart using bordered rectangles. These highlight a breakout failure and can be indicative of a potential reversal.
🔶 SETTINGS
Swing Lookback: Period of the swing detection used to construct order blocks. Higher values will return longer-term order blocks.
Use Candle Body: Use the candle body as the order block area instead of the candle full range.
ICT Unicorn Model [LuxAlgo]The ICT Unicorn Model indicator highlights the presence of "unicorn" patterns on the user's chart which is derived from the lectures of "The Inner Circle Trader" (ICT) .
Detected patterns are followed by targets with a distance controlled by the user.
🔶 USAGE
At its core, the ICT Unicorn Model relies on two popular concepts, Fair Value Gaps and Breaker Blocks. This combination highlights a future area of support/resistance.
A Bullish Unicorn Pattern consists out of:
A Lower Low (LL), followed by a Higher High (HH)
A Fair Value Gap (FVG), overlapping the established Breaker Block
A successful re-test of the FVG which confirms the pattern.
A Bearish Unicorn Pattern consists of:
A Higher High (HH), followed by a Lower Low (LL)
A Fair Value Gap (FVG), overlapping the established Breaker Block
A successful re-test of the FVG which confirms the pattern
The pattern detection depends on detected swings, which can be controlled by the Swing setting. Using higher values of this setting will return longer-term breaker blocks.
🔹 Using Risk/Reward Targets
A confirmed Unicorn pattern will show a blue ( Target ) / grey ( Stop Loss) "Risk/Reward" areas (RR).
When the Stop Loss or Target is hit, a white line is shown on the concerned side.
The Risk/Reward ratio can be adjusted in the "Targets" settings.
🔹 Trailing Stop
As seen in the previous snapshots, besides the RR areas, this indicator also includes an optional Trailing Stop .
This can be helpful to lower your risk, by exiting earlier than if you would wait until the Stop Loss is hit.
This example shows a successful bullish and bearish Unicorn Pattern . In this scenario, the Trailing Stop could be used for partial Take Profit.
The goal of this publication is to show confirmed Unicorn Patterns . To increase the chance of success, it is important to evaluate the bigger picture & use this in confluence with your price action analysis. For example, look for potential areas of liquidity, consider this pattern only during certain market sessions, avoid trading during heavy impact news, &/or incorporate other aspects of technical analysis rather than just following this pattern blindly.
🔶 DETAILS
🔹 Combine
When disabled, all potential Unicorn Patterns will delete previous unconfirmed patterns:
Enabling Combine ensures the last Unicorn Patterns in the opposite direction will remain.
While the latter bullish pattern became invalid, another one formed.
The combination of the previous bearish pattern, and looking at the big picture, the bullish pattern did not have much chance to be successful.
While disabling 'combine' helps minimize clutter, enabling this feature can give a pattern more chance to hit the SL/Target level.
🔹 Mitigated FVG
Users can determine if a pattern becomes invalid due to a mitigated FVG, causing the pattern to be deleted.
🔹 New pattern detected
When a new pattern is detected, the previous unconfirmed pattern in the same direction (bullish - bullish or bearish - bearish) will be deleted. This will always be the case, whether "Combine' is enabled or disabled.
When the previous pattern was confirmed but no SL or Target level was hit, this pattern will stop updating.
🔶 SETTINGS
🔹 Unicorn
Swings: This sets the length of swings, used for the underlying ZigZag and Unicorn Patterns detection.
Bull: Enable/disable Bullish patterns, and set the color of FVG box and Trailing Stop .
Bear: Enable/disable Bearish patterns, and set the color of FVG box and Trailing Stop .
Combine: When enabled, patterns in opposite directions (bullish/bearish) can exist at the same time. disabling this feature tends to give less clutter. See the "Usage" section for more information.
🔹 Targets
Risk/Reward: Sets the Risk/Reward ratio.
Trailing Stop: Set the length of small swings, which is used for the Trailing Stop .
Targets For Overlay Indicators [LuxAlgo]The Targets For Overlay Indicators is a useful utility tool able to display targets during crossings made between the price and external indicators on the user chart. Users can display a series of two targets, one for crossover events and another one for crossunder event.
Alerts are included for the occurrence of a new target as well as for reached targets.
🔶 USAGE
In order for targets to be displayed users need to select an appropriate input source from the "Source" drop-down input setting. In the example above we apply the indicator to a volatility stop.
This can also easily be done by adding the "Targets For Overlay Indicators" script on the VStop indicator directly.
Targets can help users determine the price limit where the price might start deviating from an indication given by one or multiple indicators. In the context of trading, targets can help secure profits/reduce losses of a trade, as such this tool can be useful to evaluate/determine user take profits/stop losses.
Due to these essentially being horizontal levels, they can also serve as potential support/resistances, with breakouts potentially confirming new trends.
Users might be interested in obtaining new targets once one is reached, this can be done by enabling "New Target When Reached" in the target logic setting section, resulting in more frequent targets.
Lastly, users can restrict new target creation until current ones are reached. This can result in fewer and longer-term targets, with a higher reach rate.
🔹 Examples
The indicator can be applied to many overlay indicators that naturally produce crosses with the price, such as moving average, trailing stops, bands...etc.
Users can use trailing stops such as the SuperTrend or VStop to more easily create clean targets. Do note that certain SuperTrend scripts separate the upper and lower extremities of the SuperTrend into two different plot, which cannot be used with this tool, you may use the provided SuperTrend script below to have a compatible version with our tool:
//@version=5
indicator("SuperTrend", overlay = true)
factor = input.float(3, 'Factor', minval = 0)
atrLen = input.int(10, 'ATR Length', minval = 1)
= ta.supertrend(factor, atrLen)
plot(spt, 'SuperTrend', dir != dir ? na : dir < 0 ? #089981 : #f23645, 2)
plot(spt, 'Circles', dir > dir ? #f23645 : dir < dir ? #089981 : na, 3, plot.style_circles)
Using moving averages can produce more targets than other overlay indicators.
Users can apply the tool twice when using bands or any overlay indicator returning two outputs, using crossover targets for obtaining targets using the upper band as source and crossunder targets for targets using the lower band. We can also use the Trendlines with breaks indicator as example:
🔹 Dashboard
A dashboard is displayed on the top right of the chart, displaying the amount, reach rate of targets 1/2, and total amount.
This dashboard can be useful to evaluate the selected target distances relative to the selected conditions, with a higher reach rate suggesting the distance of the targets from the price allows them to be reached.
🔶 SETTINGS
Source: Indicator source used to create targets. Targets are created when the closing price crosses the specified source.
Show Target Labels: Display target labels on the chart.
Candle Coloring: Apply candle coloring based on the most recent active target.
🔹 Target
Crossover and Crossunder targets use the same settings below:
Show Target: Determines if the target is displayed or not.
Above Price Target: If selected, will create targets above the closing price.
Wait Until Reached: When enabled will not create a new target until an existing one is reached.
New Target When Reached: Will create a new target when an existing one is reached.
Evaluate Wicks: Will use high/low prices to determine if a target is reached. Unselecting this setting will use the closing price.
Target Distance From Price: Controls the distance of a target from the price. Can be determined in currencies/points, percentages, ATR multiples, or ticks.
MA Sabres [LuxAlgo]The "MA Sabres" indicator highlights potential trend reversals based on a moving average direction. Detected reversals are accompanied by an extrapolated "Sabre" looking shape that can be used as support/resistance and as a source of breakouts.
🔶 USAGE
If a selected moving average (MA) continues in the same direction for a certain time, a change in that direction could signify a potential reversal.
In this publication, when a trend change occurs, a sabre-shaped figure is drawn which can be used as support/resistance:
A sabre can be indicative of a direction, however, it can also act as a stop-loss when the price should go in the opposite direction:
Or show potential areas of interest:
🔶 DETAILS
This publication will look for a change in direction after the MA went in the same direction during x consecutive bars (settings: " Reversal after x bars in the same direction ").
Then a circle-shaped drawing will be drawn 1 bar back, at the previous high/low, dependable of the previous direction.
From there originates a sabre-shaped figure where the tip lies as far as the user-set MA length.
The angle of the "sabre" relies on the ATR of the previous 14 bars.
Less volatility will create a flatter sabre while the opposite is true when there is more volatility in the previous 14 bars.
The sabre is created by the latest feature, polylines , which enables us to connect several 'points', resulting in a polyline.new() object.
Do note that sabres are offset by one bar to the past to align their locations.
🔶 SETTINGS
MA Type: SMA, EMA, SMMA (RMA), HullMA, WMA, VWMA, DEMA, TEMA, NONE (off)
Length: this sets the length of MA, and the length of the sabre shape
Previous Trend Duration: After the MA direction is the same for x consecutive bars, the first time the direction changes, a sabre is drawn
Supply and Demand Visible Range [LuxAlgo]The Supply and Demand Visible Range indicator displays areas & levels on the user's chart for the visible range using a novel volume-based method. The script also makes use of intra-bar data to create precise Supply & Demand zones.
🔶 SETTINGS
Threshold %: Percentage of the total visible range volume used as a threshold to set supply/demand areas. Higher values return wider areas.
Resolution: Determines the number of bins used to find each area. Higher values will return more precise results.
Intra-bar TF: Timeframe used to obtain intra-bar data.
🔶 USAGE
The supply/demand areas and levels displayed by the script are aimed at providing potential supports/resistances for users. The script's behavior makes it recalculate each time the visible chart interval/range changes, as such this script is more suited as a descriptive tool.
Price reaching a supply (upper) area that might have been tested a few times might be indicative of a potential reversal down, while price reaching a demand (lower) area that might have been tested a few times could be indicative of a potential reversal up.
The width of each area can also indicate which areas are more liquid, with thinner areas indicating more significant liquidity.
The user can control the width of each area using the Threshold % setting, with a higher setting returning wider areas. The precision setting can also return wider supply/demand areas if very low values are used and has the benefit of improving the script execution time at the cost of precision.
The Supply and Demand Zones indicator returns various levels. The solid-colored levels display the average of each area, while dashed colored lines display the weighted averages of each area. These weighted averages can highlight more liquid price levels within the supply/demand areas.
Central solid/dashed lines display the average between the areas' averages and weighted averages.
🔶 DETAILS
Each supply/demand area is constructed from volume data. The calculation is done as follows:
The accumulated volume within the chart visible range is calculated.
The chart visible range is divided into N bins of equal width (where N is the resolution setting)
Calculation start from the highest visible range price value for the supply area, and lowest value for the demand area.
The volume within each bin after the starting calculation level is accumulated, once this accumulated volume is equal or exceed the threshold value ( p % of the total visible range volume) the area is set.
Each bin volume accumulation within an area is displayed on the left, this can help indicate how fast volume accumulates within an area.
🔶 LIMITATIONS
The script execution time is dependent on all of the script's settings, using more demanding settings might return errors so make sure to be aware of the potential scenarios that might make the script exceed the allowed execution time:
Having a chart's visible range including a high number of bars.
Using a high number of bins (high resolution value) will increase computation time, this can be worsened by using a high threshold %.
Using very low intra-bar timeframe can drastically increase computation time but can also simply throw an error if the chart timeframe is high.
Users facing issues can lower the resolution value or use the chart timeframe for intra-bar data.
Seasonality Chart [LuxAlgo]The Seasonality Chart script displays seasonal variations of price changes that are best used on the daily timeframe. Users have the option to select the calculation lookback (in years) as well as show the cumulative sum of the seasonal indexes.
🔶 SETTINGS
Lookback (Years): Number of years to use for the calculation of the seasonality chart.
Cumulative Sum: Displays the cumulative sum of seasonal indexes.
Use Percent Change: Uses relative price changes (as a percentage) instead of absolute changes.
Linear Regression: Fits a line on the seasonality chart results using the method of least squares.
🔶 USAGE
Seasonality refers to the recurrent tendencies in a time series to increase or decrease at specific times of the year. The proposed tool can highlight the seasonal variation of price changes.
It is common for certain analysts to use a cumulative sum of these indexes to display the results, highlighting months with the most significant bullish/bearish progressions.
The above chart allows us to highlight which months prices tended to have their worst performances over the selected number of years.
🔹 Note
Daily price changes are required for the construction of the seasonal chart. Thus, charts using a low timeframe might lack data compared to higher ones. We recommend using the daily timeframe for the best user experience.
🔶 DETAILS
To construct our seasonal chart, we obtain the average price changes for specific days on a specific month over a user-set number of years from January to December. These individual averages form "seasonal indexes."
This is a common method in classical time series decomposition.
Example:
To obtain the seasonal index of price changes on January first we record every price change occuring on January first over the years of interest, we then average the result.
This operation is done for all days in each month to construct our seasonal chart.
Seasonal variations are often highlighted if the underlying time series is affected by seasonal factors. For market prices, it is difficult to assess if there are stable seasonal variations on all securities.
The consideration of seasonality by market practitioners has often been highlighted through strategies or observations. One of the most common is expressed by the adage "Sell in May and Go Away" for the US market. We can also mention:
January Effect
Santa Claus Rally
Mark Twain Effect
...etc.
These are commonly known as calendar effects and appear from the study of seasonal variations over certain years.
Elliott Wave [LuxAlgo]The Elliott Wave indicator allows users to detect Elliott Wave (EW) impulses as well as corrective segments automatically on the chart. These are detected and displayed serially, allowing users to keep track of the evolution of an impulse or corrective wave.
Fibonacci retracements constructed from detected impulse waves are also included.
This script additionally allows users to get alerted on a wide variety of trigger conditions (see the ALERTS section below).
🔶 SETTINGS
🔹 Source
• "high" -> options high, close, maximum of open/close
• "low" -> options low, close, minimum of open/close
🔹 ZigZag
• The source and length are used to check whether a new Pivot Point is found.
Example:
• source = high/low, length = 10:
• There is a new pivot high when:
- previous high is higher than current high
- the highs of 10 bars prior to previous high are all lower
• These pivot points are used to form the ZigZag lines, which in their turn are used for pattern recognition
🔶 USAGE
The basic principles we use to identify Elliott Wave impulses are:
• A movement in the direction of the trend ( Motive/Impulse wave ) is divided in 5 waves (Wave 1 -> 5)
• The Corrective Wave (against the trend) is divided in 3 waves (Wave A -> C)
• The waves can be subdivided in smaller waves
• Wave 2 can’t retrace more than the beginning of Wave 1
• Wave 4 does not overlap with the price territory of Wave 1
Here we see an example:
Let's look at the development:
• 1 bar after point (5) a confirmed 5 Motive Wave pattern is found (1 -> 5; The 5 Waves can also be seen as one large Wave 1 ).
• Next, the script draws a set of Fibonacci lines, which are area's where the Corrective Wave potentially will bounce.
Here we see the fifth wave is getting larger, the previous highest point is updated, and the Wave 5 is larger than Wave 3 :
(At this point, the pattern is invalidated, and it display as dotted)
Further progression in time:
At this point, a confirmed " 3 Corrective Wave pattern " is found (a -> c)
When a new high has developed, a circle is drawn (in the same color of the lines)
However, when the bottom of the drawn box has breached, a red cross will be visualized.
Further progression:
Later on, a bearish confirmed " 5 Motive Wave pattern " is found (1 -> 5):
When a Corrective Wave becomes invalidated, the ABC pattern will display as dashed (not dotted):
🔶 TECHNIQUES
Pine Script™ introduces methods!
• More information can be found here:
• Pine Script™ v5 User Manual 👉 Methods
• Pine Script™ language reference manual 👉 method
🔶 ALERTS
Dynamic alerts are included in the script, you only need to set 1 alert to receive following messages:
• When a new EW Motive Pattern is found (Bullish/Bearish )
• When a new EW Corrective Pattern is found (Bullish/Bearish )
• When an EW Motive Pattern is invalidated (Bullish/Bearish )
• When an EW Corrective Pattern is invalidated (Bullish/Bearish )
• When possible, a start of a new EW Motive Wave is found (Bullish/Bearish )
• Here is information how you can set these alerts()
Buy Sell Calendar [LuxAlgo]The Buy Sell Calendar indicator displays a calendar showing the sentiment for the current day/month. Three different methods can be used to determine this sentiment.
The calendar can also highlight the percentage of bullish days/months for a month/year.
🔶 SETTINGS
Frequency: Calendar frequency, options include "Daily" and "Monthly"
Sentiment Method: Method used to determine the sentiment for the day/month, options include: "Linreg", "Accumulated Deltas", and "Max/Min"
Timezone Offset: UTC time zone offset.
Limit Date: Limit date used by the calendar, the sentiment of days/months outside this limit will not be returned.
🔹 Calendar
Show Calendar: Determines whether to display or hide the calendar.
Location: Location of the calendar on the chart.
Size: Calendar size.
🔶 USAGE
The proposed script can allow users to quickly determine if a specific day/month is considered bullish or bearish. A green cell is used for bullish days/months, while a red one is used for bearish days/months.
Additionally vertical lines are displayed on new days/months with a color highlighting the current sentiment for this specific day/month. Note that this is done retrospectively, the color of a line set at time t might differ at time t+n .
🔶 SENTIMENT METHODS
Determining whether a day/month is bullish or bearish can be done using three different methods. Note that each method makes use of the closing price as the input, and as such can eventually return different results depending on the selected timeframe. Each method is described below:
🔹 Linreg
The Linreg method fit lines between each day/month using the method of least squares and determines if that particular day is bullish or bearish based on the line slope sign. For example, a rising line would indicate a bullish day/month.
🔹 Accumulated Deltas
The method of accumulated deltas simply accumulates bullish and bearish price changes for the current day/month, the result with the highest magnitude determines the sentiment for that day/month.
🔹 Max/Min
The max/min method computes a trailing maximum and a trailing minimum for the current day/month. The sentiment is determined by the price position relative to the average between the obtained maximum/minimum, with a bullish sentiment being determined if price is above the average.
SMA Directional Matrix [LuxAlgo]This script was created in collaboration with alexgrover and displays a simple & elegant panel showing the direction of simple moving averages with periods in a user-selected range (Min, Max). The displayed number in the panel is the period of a simple moving average and the symbol situated at the right of it is associated with the direction this moving average is taking.
Settings
Min: Minimum period of the moving average
Max: Maximum period of the moving average
Src: Source input of the moving averages
Number Of Columns: Number of columns to be displayed in the panel, handy when using a large range of periods.
Usage
Looking at the direction of moving averages with different periods is extremely useful when it comes to having information about the short/mid/long term overall market sentiment, and can also tell us if the market is trending or ranging.
Here we use periods ranging from 25 to 50, we can see that shorter moving averages react to the recent upward price variation, longer-term moving averages however are still affected by the overall downward variation you can see on the image. We can as such get information about the presence of potentials divergences, with shorter-term moving averages reacting to the divergence while the longer-term moving averages will still display the direction of the main trend.
As such the indicator can give information about how clean a trend is, with a clean trend being defined as a variation containing no retracements. When our trend contains no retracement, the mid/long term moving averages will all have the same direction, however, when a retracement is present, the midterm moving averages might be affected by it, thus displaying a direction contrary to the main trend.
When the market is ranging we can expect the panel to display an equal number of decreasing/increasing moving averages.
Possible Issues
When using a large range of periods, you might have an error message showing: "String is too long", try lowering the range of periods by increasing Min or decreasing Max .
If the script displays the error message "Loop is too long to execute", try resetting the settings and change them back to the one you wanted to use.
LuxAlgo Swing Highs/Lows & Candle Patterns [edited by AlexsOptioThis script plots higher highs and lower lows as well as lower highs and higher lows.
This is an edited script created by LuxAlgo that allows you to turn off the lower highs and higher lows.
This makes it very easy to time your entry signals.
Entering into an up trending market after lower lows and entering into downtrending market after higher highs
You can also use HH and LL to time market tops and bottoms
I plan on adding the ability to draw the broadening formation & gauge the magnitude of where price is going in the near future
ICT Opening Gaps & EHPDA [LuxAlgo Modified]Modified version of LuxAlgo's original opening gap indicator to include NMOGs and NYOGs
Horns Pattern Identifier with alertsUpdated version of LuxAlgo indicator to add the ability to change the displayed line widths and to raise alerts when the pattern is detected.
The original indicator and it's history are at
Their description:
The following script detects regular and inverted horn patterns. Detected patterns are displayed alongside their respective confirmation and take profit levels derived from the pattern measure rule. Breakout of the confirmation levels are highlighted with labels.
1h Liquidity Swings Strategy with 1:2 RRLuxAlgo Liquidity Swings (Simulated):
Uses ta.pivothigh and ta.pivotlow to detect 1h swing highs (resistance) and swing lows (support).
The lookback parameter (default 5) controls swing point sensitivity.
Entry Logic:
Long: Uptrend, price crosses above 1h swing low (ta.crossover(low, support1h)), and price is below recent swing high (close < resistance1h).
Short: Downtrend, price crosses below 1h swing high (ta.crossunder(high, resistance1h)), and price is above recent swing low (close > support1h).
Take Profit (1:2 Risk-Reward):
Risk:
Long: risk = entryPrice - initialStopLoss.
Short: risk = initialStopLoss - entryPrice.
Take-profit price:
Long: takeProfitPrice = entryPrice + 2 * risk.
Short: takeProfitPrice = entryPrice - 2 * risk.
Set via strategy.exit’s limit parameter.
Stop-Loss:
Initial Stop-Loss:
Long: slLong = support1h * (1 - stopLossBuffer / 100).
Short: slShort = resistance1h * (1 + stopLossBuffer / 100).
Breakout Stop-Loss:
Long: close < support1h.
Short: close > resistance1h.
Managed via strategy.exit’s stop parameter.
Visualization:
Plots:
50-period SMA (trendMA, blue solid line).
1h resistance (resistance1h, red dashed line).
1h support (support1h, green dashed line).
Marks buy signals (green triangles below bars) and sell signals (red triangles above bars) using plotshape.
Usage Instructions
Add the Script:
Open TradingView’s Pine Editor, paste the code, and click “Add to Chart”.
Set Timeframe:
Use the 1-hour (1h) chart for intraday trading.
Adjust Parameters:
lookback: Swing high/low lookback period (default 5). Smaller values increase sensitivity; larger values reduce noise.
stopLossBuffer: Initial stop-loss buffer (default 0.5%).
maLength: Trend SMA period (default 50).
Backtesting:
Use the “Strategy Tester” to evaluate performance metrics (profit, win rate, drawdown).
Optimize parameters for your target market.
Notes on Limitations
LuxAlgo Liquidity Swings:
Simulated using ta.pivothigh and ta.pivotlow. LuxAlgo may include proprietary logic (e.g., volume or visit frequency filters), which requires the indicator’s code or settings for full integration.
Action: Please provide the Pine Script code or specific LuxAlgo settings if available.
Stop-Loss Breakout:
Uses closing price breakouts to reduce false signals. For more sensitive detection (e.g., high/low-based), I can modify the code upon request.
Market Suitability:
Ideal for high-liquidity markets (e.g., BTC/USD, EUR/USD). Choppy markets may cause false breakouts.
Action: Backtest in your target market to confirm suitability.
Fees:
Take-profit/stop-loss calculations exclude fees. Adjust for trading costs in live trading.
Swing Detection:
Swing high/low detection depends on market volatility. Optimize lookback for your market.
Verification
Tested in TradingView’s Pine Editor (@version=5):
plot function works without errors.
Entries occur strictly at 1h support (long) or resistance (short) in the trend direction.
Take-profit triggers at 1:2 risk-reward.
Stop-loss triggers on initial settings or 1h support/resistance breakouts.
Backtesting performs as expected.
Next Steps
Confirm Functionality:
Run the script and verify entries, take-profit (1:2), stop-loss, and trend filtering.
If issues occur (e.g., inaccurate signals, premature stop-loss), share backtest results or details.
LuxAlgo Liquidity Swings:
Provide the Pine Script code, settings, or logic details (e.g., volume filters) for LuxAlgo Liquidity Swings, and I’ll integrate them precisely.
Fibonacci HH LL TRAMA BandLuxAlgo's Trend Moving Adaptive Moving Average was used as a reference to create bands by reading the highest and lowest prices of past bars based on Fibonacci numbers and then multiplying them by the Fibonacci ratio.
LuxAlgo/ LuxAlgo/
In particular, the so-called TRAMA is characterized by its adaptation to the average of the highest and lowest prices over a specific period of time and is used to identify support/resistance.
In order to apply this feature to the maximum extent possible, I used the high or low prices as the source of input, rather than the closing price.
For example,
src = high
not original like
src = close
In addition, I created 6 levels by multiplying the Fibonacci ratio
//Midline
mah = ama1
mal = ama2
m = (mah + mal)/2
//Half Mean Range
dist = (mah - mal)/2
//Levels
h6 = m + dist * 11.089
h5 = m + dist * 6.857
h4 = m + dist * 4.235
h3 = m + dist * 2.618
h2 = m + dist * 1.618
h1 = m + dist * 0.618
l1 = m - dist * 0.618
l2 = m - dist * 1.618
l3 = m - dist * 2.618
l4 = m - dist * 4.235
l5 = m - dist * 6.857
l6 = m - dist * 11.089
If you want to use it for scalping, such as 15 minutes, you can include Fibonacci numbers such as 21,34,55 for a quick reaction type to detect the trend. Also, by including Fibonacci numbers such as 89,144,233, you can see where you stand in the larger trend. Some examples are included below.
For Investors
BTCUSDT 1day Chart Fibonacci number "55"
For Daytraders
BTCUSDT 4hour Chart Fibonacci number "34"
For Scalpers
BTCUSDT 15min Chart Fibonacci number "55"
BTCUSDT 15min Chart Fibonacci number "89"
BTCUSDT 15min Chart Fibonacci number "233"
Fibonacci numbers are 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, etc.,
Fibonacci ratios are 0.618, 1.618, 2.618, 4.236, 6.854, 11.089, etc.,
TradeIQ - Crazy Scalping Trading Strategy [Kaspricci]This strategy script is a combination of two indicators developed by LuxAlgo:
Triangular Momentum Oscillator & Real Time Divergences ( TMO )
Adjustable MA & Alternating Extremities (AMA)
The script combines the BUY and SELL signals from the TMO indicator with the BUY and SELL extremities shown by the AMA script and waits for the smoothed candles to grow in size. It places a SHORT or LONG order and sets a stop loss at the latest swing high or low (highes high or lowest low for a defined number of recent bars). A new LONG trade is highlighted by a green background. A new SHORT trade is highlighted by red background.
The trades will be closed once a new TMO indicator BUY or SELL signal appears or the color of the AMA extremities is switching from green to red and vice versa.
All parameters of TOM and AMA indicators are added as well and work the same way as in the original scripts provided by LuxAlgo.
The idea to combine these two indicators has been provided to me by TradIQ in his youtube video.
Please leave a comment in case you find a bug. In case you find a combination of parameters with a high win rat and high PnL I would be interested as well.
PriceActionLibrary "PriceAction"
Hi all!
This library will help you to plot the market structure and liquidity. By now, the only part in the price action section is liquidity, but I plan to add more later on. The market structure will be split into two parts, 'Internal' and 'Swing' with separate pivot lengths. For these two trends it will show you:
• Break of structure (BOS)
• Change of character (CHoCH/CHoCH+) (mandatory)
• Equal high/low (EQH/EQL)
It's inspired by "Smart Money Concepts (SMC) " by LuxAlgo.
This library is now the same code as the code in my library 'MarketStructure', but it has evolved into a more price action oriented library than just a market structure library. This is more accurate and I will continue working on this library to keep it growing.
This code does not provide any examples, but you can look at my indicators 'Market structure' () and 'Order blocks' (), where I use the 'MarketStructure' library (which is the same code).
Market structure
Both of these market structures can be enabled/disabled by setting them to 'na'. The pivots lengths can be configured separately. The pivots found will be the 'base' of and will show you when price breaks it. When that happens a break of structure or a change of character will be created. The latest 5 pivots found within the current trends will be kept to take action on. They are cleared on a change of character, so nothing (break of structures or change of characters) can happen on pivots before a trend change. The internal market structure is shown with dashed lines and swing market structure is shown with solid lines.
Labels for a change of character can have either the text 'CHoCH' or 'CHoCH+'. A Change of Character plus is formed when price fails to form a higher high or a lower low before reversing. Note that a pivot that is created after the change of character might have a higher high or a lower low, thus not making the break a 'CHoCH+'. This is not changed after the pivot is found but is kept as is.
A break of structure is removed if an earlier pivot within the same trend is broken, i.e. another break of structure (with a longer distance) is created. Like in the images below, the first pivot (in the first image) is removed when an earlier pivot's higher price within the same trend is broken (the second image):
[image [https://www.tradingview.com/x/PRP6YtPA/
Equal high/lows have a configurable color setting and can be configured to be extended to the right. Equal high/lows are only possible if it's not been broken by price. A factor (percentage of width) of the Average True Length (of length 14) that the pivot must be within to to be considered an Equal high/low. Equal highs/lows can be of 2 pivots or more.
You are able to show the pivots that are used. "HH" (higher high), "HL" (higher low), "LH" (lower high), "LL" (lower low) and "H"/"L" (for pivots (high/low) when the trend has changed) are the labels used. There are also labels for break of structures ('BOS') and change of characters ('CHoCH' or 'CHoCH+'). The size of these texts is set in the 'FontSize' setting.
When programming I focused on simplicity and ease of read. I did not focus on performance, I will do so if it's a problem (haven't noticed it is one yet).
You can set alerts for when a change of character, break of structure or an equal high/low (new or an addition to a previously found) happens. The alerts that are fired are on 'once_per_bar_close' to avoid repainting. This has the drawback to alert you when the bar closes.
Price action
The indicator will create lines and zones for spotted liquidity. It will draw a line (with dotted style) at the price level that was liquidated, but it will also draw a zone from that level to the bar that broke the pivot high or low price. If that zone is large the liquidation is big and might be significant. This can be disabled in the settings. You can also change the confirmation candles (that does not close above or below the pivot level) needed after a liquidation and how many pivots back to look at.
The lines and boxes drawn will look like this if the color is orange:
Hope this is of help!
Will draw out the market structure for the disired pivot length.
Liqudity(liquidity)
Will draw liquidity.
Parameters:
liquidity (Liquidity) : The 'PriceAction.Liquidity' object.
Pivot(structure)
Sets the pivots in the structure.
Parameters:
structure (Structure)
PivotLabels(structure)
Draws labels for the pivots found.
Parameters:
structure (Structure)
EqualHighOrLow(structure)
Draws the boxes for equal highs/lows. Also creates labels for the pivots included.
Parameters:
structure (Structure)
BreakOfStructure(structure)
Will create lines when a break of strycture occures.
Parameters:
structure (Structure)
Returns: A boolean that represents if a break of structure was found or not.
ChangeOfCharacter(structure)
Will create lines when a change of character occures. This line will have a label with "CHoCH" or "CHoCH+".
Parameters:
structure (Structure)
Returns: A boolean that represents if a change of character was found or not.
VisualizeCurrent(structure)
Will create a box with a background for between the latest high and low pivots. This can be used as the current trading range (if the pivots broke strucure somehow).
Parameters:
structure (Structure)
StructureBreak
Holds drawings for a structure break.
Fields:
Line (series line) : The line object.
Label (series label) : The label object.
Pivot
Holds all the values for a found pivot.
Fields:
Price (series float) : The price of the pivot.
BarIndex (series int) : The bar_index where the pivot occured.
Type (series int) : The type of the pivot (-1 = low, 1 = high).
Time (series int) : The time where the pivot occured.
BreakOfStructureBroken (series bool) : Sets to true if a break of structure has happened.
LiquidityBroken (series bool) : Sets to true if a liquidity of the price level has happened.
ChangeOfCharacterBroken (series bool) : Sets to true if a change of character has happened.
Structure
Holds all the values for the market structure.
Fields:
LeftLength (series int) : Define the left length of the pivots used.
RightLength (series int) : Define the right length of the pivots used.
Type (series Type) : Set the type of the market structure. Two types can be used, 'internal' and 'swing' (0 = internal, 1 = swing).
Trend (series int) : This will be set internally and can be -1 = downtrend, 1 = uptrend.
EqualPivotsFactor (series float) : Set how the limits are for an equal pivot. This is a factor of the Average True Length (ATR) of length 14. If a low pivot is considered to be equal if it doesn't break the low pivot (is at a lower value) and is inside the previous low pivot + this limit.
ExtendEqualPivotsZones (series bool) : Set to true if you want the equal pivots zones to be extended.
ExtendEqualPivotsStyle (series string) : Set the style of equal pivot zones.
ExtendEqualPivotsColor (series color) : Set the color of equal pivot zones.
EqualHighs (array) : Holds the boxes for zones that contains equal highs.
EqualLows (array) : Holds the boxes for zones that contains equal lows.
BreakOfStructures (array) : Holds all the break of structures within the trend (before a change of character).
Pivots (array) : All the pivots in the current trend, added with the latest first, this is cleared when the trend changes.
FontSize (series int) : Holds the size of the font displayed.
AlertChangeOfCharacter (series bool) : Holds true or false if a change of character should be alerted or not.
AlertBreakOfStructure (series bool) : Holds true or false if a break of structure should be alerted or not.
AlerEqualPivots (series bool) : Holds true or false if equal highs/lows should be alerted or not.
Liquidity
Holds all the values for liquidity.
Fields:
LiquidityPivotsHigh (array) : All high pivots for liquidity.
LiquidityPivotsLow (array) : All low pivots for liquidity.
LiquidityConfirmationBars (series int) : The number of bars to confirm that a liquidity is valid.
LiquidityPivotsLookback (series int) : A number of pivots to look back for.
FontSize (series int) : Holds the size of the font displayed.
PriceAction
Holds all the values for the general price action and the market structures.
Fields:
Liquidity (Liquidity)
Swing (Structure) : Placeholder for all objects used for the swing market structure.
Internal (Structure) : Placeholder for all objects used for the internal market structure.
Fractals + FVG [Combined]Звісно, ось варіант опису англійською, який можна використати для публікації індикатора в TradingView.
Description
This script combines two powerful and widely-used trading concepts into a single, comprehensive indicator: Bill Williams Fractals with dynamic support/resistance lines and Fair Value Gaps (FVG) based on the popular logic from LuxAlgo.
The goal is to provide a cleaner chart by merging two essential tools, allowing traders to analyze market structure and imbalances simultaneously.
Features
1. Williams Fractals with Invalidation Lines
This part of the indicator identifies classic Bill Williams fractals and enhances them with a unique visualization feature.
Fractal Detection: Automatically identifies both bullish (bottom) and bearish (top) fractals. You can choose between a 3-bar or 5-bar pattern in the settings.
Dynamic S/R Lines: A horizontal line is automatically drawn from every confirmed fractal, acting as a potential support or resistance level.
Automatic Invalidation: A line is considered "invalidated" or breached when the body of a candle closes past it. When this happens, the line stops extending, changes its color to the "invalidated" color, and remains on the chart as a historical reference. This provides a clear, objective signal that a level has been broken.
Customization: You can fully customize the colors for the support, resistance, and invalidated lines to match your chart theme.
2. Fair Value Gaps (FVG) / Imbalance
This module incorporates the robust FVG detection logic from LuxAlgo to automatically identify and display market imbalances.
FVG Detection: Highlights bullish and bearish Fair Value Gaps on the chart with colored boxes, representing inefficiencies in price delivery.
Automatic Mitigation: The FVG boxes are automatically removed from the chart once the price has "mitigated" or filled the gap, keeping your workspace clean and focused on active imbalances.
Multi-Timeframe (MTF): You can set the indicator to find and display FVGs from a higher timeframe directly on your current chart.
Dashboard: An optional on-screen dashboard provides a quick summary of the total count of bullish/bearish FVGs and the percentage that have been mitigated.
Full Customization: Control the colors of FVG boxes, extend their length, and configure other visual style settings.
How to Use
Fractal Lines: Use the active support and resistance lines as key levels for potential bounces or breaks. A line's invalidation can serve as confirmation of a shift in market structure.
FVG Zones: Fair Value Gaps often act as "magnets" for price. Use these zones as potential targets for your trades or as areas of interest for entries when price retraces to fill the imbalance.
Combined Strategy: The true power of this indicator comes from combining both concepts. For example, a bullish FVG forming near a key fractal support level can create a high-probability confluence zone for a long entry. Similarly, a break and invalidation of a fractal resistance line might signal that price is heading towards the next bearish FVG above.
This indicator is a tool for analysis and should be used in conjunction with your own trading strategy and risk management rules.