Order Block plusIndicator Description: “Order Block Plus”
This indicator is designed for traders who aim to identify the strength and position of supply and demand zones on the chart and receive key signals for entry or exit. Below is a detailed explanation of its functionality:
Features and Applications:
1. Identifying Supply and Demand Zones:
• Supply (Resistance) and Demand (Support) zones are visually displayed on the chart.
• Each zone is marked with a specific color (Yellow for supply, Blue for demand) for easy identification.
2. Breakout and Reversal Signals:
• The indicator detects Breakout and Reversal patterns and highlights them with alerts.
• Example: Detecting price breaking above or below key levels.
3. Candlestick Pattern Support:
• Identifies powerful patterns such as Bullish Engulf, Bearish Engulf, Three White Soldiers, and Three Black Crows.
4. Displaying Zone Strength:
• The indicator shows the strength of supply and demand zones using text displayed inside each zone.
5. Alerts:
• Provides alerts for zone breakouts, breakdowns, and new zone formations.
• Example: Alerts for breaking a demand or supply zone.
How to Use:
1. Adding to the Chart:
• The indicator can be applied to any time frame and is suitable for Forex, stocks, or cryptocurrency charts.
2. Identifying Trading Opportunities:
• Demand zones indicate strong support levels where prices are likely to rise.
• Supply zones indicate resistance levels where prices are likely to fall.
3. Examining Zone Strength:
• The strength of each zone is displayed with text inside the zone.
Indicator Settings:
• Zone Colors:
• The default colors for supply and demand zones are yellow and blue, but they can be customized.
• Alerts:
• Configurable alerts for breakouts or reversals.
Advantages:
• Automatic detection of key price levels.
• Accurate and timely alerts for trades.
• Customizable for professional traders.
Note: This indicator is designed for technical analysis and should be used alongside a suitable trading strategy.
Komut dosyalarını "break" için ara
SCE Price Action SuiteThis is an indicator designed to use past market data to mark key price action levels as well as provide a different kind of insight. There are 8 different features in the script that users can turn on and off. This description will go in depth on all 8 with chart examples.
#1 Absorption Zones
I defined Absorption Zones as follows.
//----------------------------------------------
//---------------Absorption---------------------
//----------------------------------------------
box absorptionBox = na
absorptionBar = ta.highest(bodySize, absorptionLkb)
bsab = ta.barssince(bool(ta.change(absorptionBar)))
if bsab == 0 and upBar and showAbsorption
absorptionBox := box.new(left = bar_index - 1, top = close, right = bar_index + az_strcuture, bottom = open, border_color = color.rgb(0, 80, 75), border_width = boxLineSize, bgcolor = color.rgb(0, 80, 75))
absorptionBox
else if bsab == 0 and downBar and showAbsorption
absorptionBox := box.new(left = bar_index - 1, top = close, right = bar_index + az_strcuture, bottom = open, border_color = color.rgb(105, 15, 15), border_width = boxLineSize, bgcolor = color.rgb(105, 15, 15))
absorptionBox
What this means is that absorption bars are defined as the bars with the largest bodies over a selected lookback period. Those large bodies represent areas where price may react. I was inspired by the concept of a Fair Value Gap for this concept. In that body price may enter to be a point of support or resistance, market participants get “absorbed” in the area so price can continue in whichever direction.
#2 Candle Wick Theory/Strategy
I defined Candle Wick Theory/Strategy as follows.
//----------------------------------------------
//---------------Candle Wick--------------------
//----------------------------------------------
highWick = upBar ? high - close : downBar ? high - open : na
lowWick = upBar ? open - low : downBar ? close - low : na
upWick = upBar ? close + highWick : downBar ? open + highWick : na
downWick = upBar ? open - lowWick : downBar ? close - lowWick : na
downDelivery = upBar and downBar and high > upWick and highWick > lowWick and totalSize > totalSize and barstate.isconfirmed and session.ismarket
upDelivery = downBar and upBar and low < downWick and highWick < lowWick and totalSize > totalSize and barstate.isconfirmed and session.ismarket
line lG = na
line lE = na
line lR = na
bodyMidpoint = math.abs(body) / 2
upWickMidpoint = math.abs(upWickSize) / 2
downWickkMidpoint = math.abs(downWickSize) / 2
if upDelivery and showCdTheory
cpE = chart.point.new(time, bar_index - 1, downWickkMidpoint)
cpE2 = chart.point.new(time, bar_index + bl, downWickkMidpoint)
cpG = chart.point.new(time, bar_index + bl, downWickkMidpoint * (1 + tp))
cpR = chart.point.new(time, bar_index + bl, downWickkMidpoint * (1 - sl))
cpG1 = chart.point.new(time, bar_index - 1, downWickkMidpoint * (1 + tp))
cpR1 = chart.point.new(time, bar_index - 1, downWickkMidpoint * (1 - sl))
lG := line.new(cpG1, cpG, xloc.bar_index, extend.none, color.green, line.style_solid, 1)
lE := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.white, line.style_solid, 1)
lR := line.new(cpR1, cpR, xloc.bar_index, extend.none, color.red, line.style_solid, 1)
lR
else if downDelivery and showCdTheory
cpE = chart.point.new(time, bar_index - 1, upWickMidpoint)
cpE2 = chart.point.new(time, bar_index + bl, upWickMidpoint)
cpG = chart.point.new(time, bar_index + bl, upWickMidpoint * (1 - tp))
cpR = chart.point.new(time, bar_index + bl, upWickMidpoint * (1 + sl))
cpG1 = chart.point.new(time, bar_index - 1, upWickMidpoint * (1 - tp))
cpR1 = chart.point.new(time, bar_index - 1, upWickMidpoint * (1 + sl))
lG := line.new(cpG1, cpG, xloc.bar_index, extend.none, color.green, line.style_solid, 1)
lE := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.white, line.style_solid, 1)
lR := line.new(cpR1, cpR, xloc.bar_index, extend.none, color.red, line.style_solid, 1)
lR
First I get the size of the wicks for the top and bottoms of the candles. This depends on if the bar is red or green. If the bar is green the wick is the high minus the close, if red the high minus the open, and so on. Next, the script defines the upper and lower bounds of the wicks for further comparison. If the candle is green, it's the open price minus the bottom wick. If the candle is red, it's the close price minus the bottom wick, and so on. Next we have the condition for when this strategy is present.
Down delivery:
Occurs when the previous candle is green, the current candle is red, and:
The high of the current candle is above the upper wick of the previous candle.
The size of the current candle's top wick is greater than its bottom wick.
The total size of the previous candle is greater than the total size of the current candle.
The current bar is confirmed (barstate.isconfirmed).
The session is during market hours (session.ismarket).
Up delivery:
Occurs when the previous candle is red, the current candle is green, and:
The low of the current candle is below the lower wick of the previous candle.
The size of the current candle's bottom wick is greater than its top wick.
The total size of the previous candle is greater than the total size of the current candle.
The current bar is confirmed.
The session is during market hours
Then risk is plotted from the percentage that users can input from an ideal entry spot.
#3 Candle Size Theory
I defined Candle Size Theory as follows.
//----------------------------------------------
//---------------Candle displacement------------
//----------------------------------------------
line lECD = na
notableDown = bodySize > bodySize * candle_size_sensitivity and downBar and session.ismarket and barstate.isconfirmed
notableUp = bodySize > bodySize * candle_size_sensitivity and upBar and session.ismarket and barstate.isconfirmed
if notableUp and showCdSizeTheory
cpE = chart.point.new(time, bar_index - 1, close)
cpE2 = chart.point.new(time, bar_index + bl_strcuture, close)
lECD := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.rgb(0, 80, 75), line.style_solid, 3)
lECD
else if notableDown and showCdSizeTheory
cpE = chart.point.new(time, bar_index - 1, close)
cpE2 = chart.point.new(time, bar_index + bl_strcuture, close)
lECD := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.rgb(105, 15, 15), line.style_solid, 3)
lECD
This plots candles that are “notable” or out of the ordinary. Candles that are larger than the last by a value users get to specify. These candles' highs or lows, if they are green or red, act as levels for support or resistance.
#4 Candle Structure Theory
I defined Candle Structure Theory as follows.
//----------------------------------------------
//---------------Structure----------------------
//----------------------------------------------
breakDownStructure = low < low and low < low and high > high and upBar and downBar and upBar and downBar and session.ismarket and barstate.isconfirmed
breakUpStructure = low > low and low > low and high < high and downBar and upBar and downBar and upBar and session.ismarket and barstate.isconfirmed
if breakUpStructure and showStructureTheory
cpE = chart.point.new(time, bar_index - 1, close)
cpE2 = chart.point.new(time, bar_index + bl_strcuture, close)
lE := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.teal, line.style_solid, 3)
lE
else if breakDownStructure and showStructureTheory
cpE = chart.point.new(time, bar_index - 1, open)
cpE2 = chart.point.new(time, bar_index + bl_strcuture, open)
lE := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.red, line.style_solid, 3)
lE
It is a series of candles to create a notable event. 2 lower lows in a row, a lower high, then green bar, red bar, green bar is a structure for a breakdown. 2 higher lows in a row, a higher high, red bar, green bar, red bar for a break up.
#5 Candle Swing Structure Theory
I defined Candle Swing Structure Theory as follows.
//----------------------------------------------
//---------------Swing Structure----------------
//----------------------------------------------
line htb = na
line ltb = na
if totalSize * swing_struct_sense < totalSize and upBar and downBar and high > high and showSwingSturcture and session.ismarket and barstate.isconfirmed
cpS = chart.point.new(time, bar_index - 1, high)
cpE = chart.point.new(time, bar_index + bl_strcuture, high)
htb := line.new(cpS, cpE, xloc.bar_index, color = color.red, style = line.style_dashed)
htb
else if totalSize * swing_struct_sense < totalSize and downBar and upBar and low > low and showSwingSturcture and session.ismarket and barstate.isconfirmed
cpS = chart.point.new(time, bar_index - 1, low)
cpE = chart.point.new(time, bar_index + bl_strcuture, low)
ltb := line.new(cpS, cpE, xloc.bar_index, color = color.teal, style = line.style_dashed)
ltb
A bearish swing structure is defined as the last candle’s total size, times a scalar that the user can input, is less than the current candles. Like a size imbalance. The last bar must be green and this one red. The last high should also be less than this high. For a bullish swing structure the same size imbalance must be present, but we need a red bar then a green bar, and the last low higher than the current low.
#6 Fractal Boxes
I define the Fractal Boxes as follows
//----------------------------------------------
//---------------Fractal Boxes------------------
//----------------------------------------------
box b = na
int indexx = na
if bar_index % (n * 2) == 0 and session.ismarket and showBoxes
b := box.new(left = bar_index, top = topBox, right = bar_index + n, bottom = bottomBox, border_color = color.rgb(105, 15, 15), border_width = boxLineSize, bgcolor = na)
indexx := bar_index + 1
indexx
The idea of this strategy is that the market is fractal. It is considered impossible to be able to tell apart two different time frames from just the chart. So inside the chart there are many many breakouts and breakdowns happening as price bounces around. The boxes are there to give you the view from your timeframe if the market is in a range from a time frame that would be higher than it. Like if we are inside what a larger time frame candle’s range. If we break out or down from this, we might be able to trade it. Users can specify a lookback period and the box is that period’s, as an interval, high and low. I say as an interval because it is plotted every n * 2 bars. So we get a box, price moves, then a new box.
#7 Potential Move Width
I define the Potential Move Width as follows
//----------------------------------------------
//---------------Move width---------------------
//----------------------------------------------
velocity = V(n)
line lC = na
line l = na
line l2 = na
line l3 = na
line l4 = na
line l5 = na
line l6 = na
line l7 = na
line l8 = na
line lGFractal = na
line lRFractal = na
cp2 = chart.point.new(time, bar_index + n, close + velocity)
cp3 = chart.point.new(time, bar_index + n, close - velocity)
cp4 = chart.point.new(time, bar_index + n, close + velocity * 5)
cp5 = chart.point.new(time, bar_index + n, close - velocity * 5)
cp6 = chart.point.new(time, bar_index + n, close + velocity * 10)
cp7 = chart.point.new(time, bar_index + n, close - velocity * 10)
cp8 = chart.point.new(time, bar_index + n, close + velocity * 15)
cp9 = chart.point.new(time, bar_index + n, close - velocity * 15)
cpG = chart.point.new(time, bar_index + n, close + R)
cpR = chart.point.new(time, bar_index + n, close - R)
if ((bar_index + n) * 2 - bar_index) % n == 0 and session.ismarket and barstate.isconfirmed and showPredictionWidtn
cp = chart.point.new(time, bar_index, close)
cpG1 = chart.point.new(time, bar_index, close + R)
cpR1 = chart.point.new(time, bar_index, close - R)
l := line.new(cp, cp2, xloc.bar_index, extend.none, color.aqua, line.style_solid, 1)
l2 := line.new(cp, cp3, xloc.bar_index, extend.none, color.aqua, line.style_solid, 1)
l3 := line.new(cp, cp4, xloc.bar_index, extend.none, color.red, line.style_solid, 1)
l4 := line.new(cp, cp5, xloc.bar_index, extend.none, color.red, line.style_solid, 1)
l5 := line.new(cp, cp6, xloc.bar_index, extend.none, color.teal, line.style_solid, 1)
l6 := line.new(cp, cp7, xloc.bar_index, extend.none, color.teal, line.style_solid, 1)
l7 := line.new(cp, cp8, xloc.bar_index, extend.none, color.blue, line.style_solid, 1)
l8 := line.new(cp, cp9, xloc.bar_index, extend.none, color.blue, line.style_solid, 1)
l8
By using the past n bar’s velocity, or directional speed, every n * 2 bars. I can use it to scale the close value and get an estimate for how wide the next moves might be.
#8 Linear regression
//----------------------------------------------
//---------------Linear Regression--------------
//----------------------------------------------
lr = showLR ? ta.linreg(close, n, 0) : na
plot(lr, 'Linear Regression', color.blue)
I used TradingView’s built in linear regression to not reinvent the wheel. This is present to see past market strength of weakness from a different perspective.
User input
Users can control a lot about this script. For the strategy based plots you can enter what you want the risk to be in percentages. So the default 0.01 is 1%. You can also control how far forward the line goes.
Look back at where it is needed as well as line width for the Fractal Boxes are controllable. Also users can check on and off what they would like to see on the charts.
No indicator is 100% reliable, do not follow this one blindly. I encourage traders to make their own decisions and not trade solely based on technical indicators. I encourage constructive criticism in the comments below. Thank you.
Enhanced VIP-like IndicatorSettings Breakdown Tutorial: Optimizing a Trading Strategy
This guide explains the key trading strategy settings and how to customize them based on your trading style and goals. Each parameter is essential for tailoring the strategy to market conditions and your risk appetite.
1. Short Moving Average Length (Default: 9)
• Purpose: Tracks short-term trends using a small number of candles.
• Settings Tips:
• Smaller Values (e.g., 9): Quickly react to price changes, useful for fast-moving markets.
• Larger Values (e.g., 12-15): Generate smoother signals for less volatile trades.
2. Long Moving Average Length (Default: 21)
• Purpose: Identifies long-term trends.
• Settings Tips:
• Higher Values (e.g., 50): Spot broader trends at the expense of slower signals.
• Trend Analysis: The interaction of short and long MAs helps determine bullish or bearish trends (e.g., bullish when short MA crosses above long MA).
3. Higher Timeframe MA Length (Default: 200)
• Purpose: Filters long-term trends on a higher timeframe (e.g., daily).
• Settings Tips:
• 200 Periods: Standard for defining bullish (price above) or bearish (price below) markets.
• Adjustable: Use 100 for faster responses or stick with 200 for reliability.
4. Higher Timeframe (Default: 1 Day)
• Purpose: Defines the timeframe for the higher moving average.
• Settings Tips:
• Shorter Timeframes (e.g., 4 Hours): More frequent trading signals.
• Daily Timeframe: Best for swing trading and identifying macro trends.
5. RSI Length (Default: 14)
• Purpose: Measures momentum over a specific number of candles.
• Settings Tips:
• Lower Values (e.g., 7): More sensitive to price changes, ideal for quick trades.
• Higher Values (e.g., 20): Smooth signals for more stable markets.
6. RSI Overbought (70) and Oversold (30) Levels
• Purpose: Marks thresholds for overbought and oversold conditions.
• Settings Tips:
• Stricter Levels (e.g., 80/20): Fewer, higher-quality signals.
• Looser Levels (e.g., 65/35): More frequent signals, suitable for active trading.
7. Pivot Left Bars (5) and Pivot Right Bars (5)
• Purpose: Confirms pivot points (support/resistance) based on surrounding candles.
• Settings Tips:
• Higher Values (e.g., 10): Stronger but less frequent pivot points.
• Lower Values: More responsive, for traders seeking quick pivots.
8. Take Profit Percentage (Default: 2%)
• Purpose: Defines the profit level to exit trades.
• Settings Tips:
• Higher Values (e.g., 5%): For swing traders holding positions longer.
• Lower Values (e.g., 1%): For scalpers focusing on quick trades.
9. Minimum Volume (Default: 1,000,000)
• Purpose: Ensures sufficient liquidity for trading.
• Settings Tips:
• Lower Values: For lower-volume markets.
• Higher Values: Reduces risk in high-liquidity assets.
10. Stop Loss Percentage (Default: 1%)
• Purpose: Sets the maximum acceptable loss per trade.
• Settings Tips:
• Lower Values (e.g., 0.5%): Reduces risk, suited for conservative trading.
• Higher Values (e.g., 2%): Allows more price fluctuation, ideal for volatile markets.
11. Entry Conditions
• Options:
• MA Crossover & RSI: Combines trend-following and momentum for well-rounded signals.
• Pivot Breakout: Focuses on support/resistance breakouts for high-impact trades.
• Settings Tips:
• Trend-Following Traders: Use MA Crossover & RSI.
12. Exit Conditions
• Options:
• Opposite Signal: Exits when the trade’s opposite condition occurs (e.g., bullish to bearish).
• Fixed Take Profit/Stop Loss: Exits based on predefined profit/loss thresholds.
• Settings Tips:
• Opposite Signal: Ideal for trend-following strategies.
Summary
Customizing these settings aligns the strategy with your trading goals. Test configurations in a demo environment before live trading to refine the approach and optimize results. Always balance profit potential with risk management.
• Fixed Levels: Better for strict risk management.
• Breakout Traders: Opt for Pivot Breakout.
BTC Trendline Patterns with Signals BTC Trendline Patterns with Signals
This custom Pine Script indicator automatically detects key pivot points in Bitcoin price action and draws support and resistance trendlines. The indicator provides buy (long) and sell (short) signals when these trendlines are broken. This can help traders identify potential breakout opportunities and trend reversals based on established price levels.
Features:
Pivot Point Detection: Automatically identifies pivot highs and lows in the price chart, based on customizable parameters (Pivot Left and Pivot Right).
Support and Resistance Trendlines: Draws trendlines based on the identified pivot points. These lines represent significant price levels where price may experience support or resistance.
Breakout Signals: Provides buy (long) and sell (short) signals when the price breaks above the resistance trendline (for buy signals) or below the support trendline (for sell signals).
Customizable Pivot Lengths: Adjust the number of bars considered for determining pivot points using the Pivot Left and Pivot Right input parameters.
How it Works:
Pivot Detection: The script identifies the highest high (pivotHigh) and the lowest low (pivotLow) within a specific range of bars (defined by Pivot Left and Pivot Right).
Trendline Plotting: Once pivots are detected, the script draws resistance (red) and support (green) trendlines connecting the most recent pivots. These trendlines act as dynamic support and resistance levels.
Breakout Signals: The script generates signals:
BUY (Long): Triggered when the price breaks above the most recent resistance trendline.
SELL (Short): Triggered when the price breaks below the most recent support trendline.
Parameters:
Pivot Left: Number of bars to the left of the pivot point to consider.
Pivot Right: Number of bars to the right of the pivot point to consider.
Line Width: Customizable line width for drawing trendlines.
Ideal Use:
Timeframes: This indicator works well on timeframes ranging from 1-minute to daily charts. For best results, use it on 1-hour, 4-hour, or daily charts.
Strategy: Ideal for breakout traders or trend-following strategies. Use it to identify potential entry points when price breaks key levels of support or resistance.
Example Use Case:
Swing Traders: Traders looking for potential breakouts can use this script to identify key levels in the market and wait for the price to break through resistance for a long trade or support for a short trade.
Day Traders: For those looking to enter and exit trades in a single day, this indicator can help pinpoint areas of support and resistance, and provide actionable signals when price breaks those levels.
Disclaimer:
This script is not a guarantee of success and should be used in conjunction with other technical analysis tools. Always perform additional research and backtesting before live trading.
Important Notes:
The pivot points and trendlines may adjust dynamically as the price evolves. Adjust the pivot settings to suit the volatility and timeframe of the market you're trading.
This indicator works best when combined with other indicators such as volume, RSI, or MACD for confirmation.
How to Use:
Add the indicator to your chart.
Adjust the Pivot Left and Pivot Right parameters to fine-tune the pivot point detection.
Monitor for trendline breakouts. When the price breaks above the resistance line, a BUY signal will appear. When the price breaks below the support line, a SELL signal will appear.
Use the signals to enter trades at the right moment.
Final Notes:
If you're submitting to TradingView for publishing, keep your description clear and informative, but also concise. Traders need to quickly understand how your indicator works, what parameters they can adjust, and how it might fit into their trading strategy.
Single Candle Model-DTFXThe script identifies the candles with engulfing body and marks the 50% of the candle for easy entry based on model of #DTFX single candle entry
Interpreting the Signals:
Look for candles labeled as "BE". These represent significant price action where the range is larger than the previous candle's range.
Pay attention to the 50% line of the "BE" candle:
A green line indicates a bullish "BE" candle.
A red line indicates a bearish "BE" candle.
Watch for Buy ("B") and Sell ("S") labels:
"B": Indicates a potential bullish breakout.
"S": Indicates a potential bearish breakdown.
Alerts:
Configure alerts in TradingView to notify you whenever a "B" or "S" signal is detected. This allows you to act on the signals without constantly monitoring the chart.
Use in Trading Strategies:
Combine this indicator with other tools like support/resistance levels, moving averages, or trend analysis to validate the signals.
Use the midpoint (50% line) of the "BE" candle as a potential reference point for stop-loss or target levels.
Customizations:
Adjust the appearance of labels and lines by modifying their style, color, or placement in the script.
Add filters (e.g., timeframes or volume conditions) to refine the detection of "BE" candles.
This indicator helps traders identify pivotal price movements and act on potential breakouts or breakdowns with clear visual markers and alerts.
UVR Crypto TrendINDICATOR OVERVIEW: UVR CRYPTO TREND
The UVR Crypto Trend indicator is a custom-built tool designed specifically for cryptocurrency markets, utilizing advanced volatility, momentum, and trend-following techniques. It aims to identify trend reversals and provide buy and sell signals by analyzing multiple factors, such as price volatility(UVR), RSI (Relative Strength Index), CMF (Chaikin Money Flow), and EMA (Exponential Moving Average). The indicator is optimized for CRYPTO MARKETS only.
KEY FEATURES AND HOW IT WORKS
Volatility Analysis with UVR
The UVR (Ultimate Volatility Rate) is a proprietary calculation that measures market volatility by comparing significant price extremes and smoothing the data over time.
Purpose: UVR aims to reduce noise in low-volatility environments and highlight significant movements during higher-volatility periods. While it strives to improve filtering in low-volatility conditions, it does not guarantee perfect performance, making it a balanced and adaptable tool for dynamic markets like cryptocurrency.
HOW UVR (ULTIMATE VOLATILITY RATE) IS CALCULATED
UVR is calculated using a method that ensures precise measurement of market volatility by comparing price extremes across consecutive candles:
Volatility Components:
Two values are calculated to represent potential price fluctuations:
The absolute difference between the current candle's high and the previous candle's low:
Volatility Component 1=∣High−Low ∣
The absolute difference between the previous candle's high and the current candle's low:
Volatility Component 2=∣High −Low∣
Volatility Ratio:
The larger of the two components is selected as the Volatility Ratio, ensuring UVR captures the most significant movement:
Volatility Ratio=max(Volatility Component 1,Volatility Component 2)
Smoothing with SMMA:
To stabilize the volatility calculation, the Volatility Ratio is smoothed using a Smoothed Moving Average (SMMA) over a user-defined period (e.g., 14 candles):
UVR=(UVR(Previous)×(Period−1)+Volatility Ratio)/Period
This calculation ensures UVR adapts dynamically to market conditions, focusing on significant price movements while filtering out noise.
RSI FOR MOMENTUM DETECTION
RSI (Relative Strength Index) identifies overbought and oversold conditions.
Trend Confirmation at the 50 Level
RSI values crossing above 50 signal the potential start of an upward trend.
RSI values crossing below 50 indicate the potential start of a downward trend.
Key Reversals at Extreme Levels
RSI detects trend reversals at overbought (>70) and oversold (<30) levels.
For example:
Overbought Trend Reversal: RSI >70 followed by bearish price action signals a potential downtrend.
Oversold Trend Reversal: RSI <30 with bullish confirmation signals a potential uptrend.
Rare Extreme RSI Readings
Extreme levels, such as RSI <12 (oversold) or RSI >88 (overbought), are used to identify rare yet powerful reversals.
---HOW IT DIFFERS FROM OTHER INDICATORS---
Using UVR High and Low Values
The Ultimate Volatility Rate (UVR) focuses on analyzing the high and low price ranges of the market to measure volatility.
Unlike traditional trend indicators that rely primarily on momentum or moving average crossovers, UVR leverages price extremes to better identify trend reversals.
This approach ensures fewer false signals during low-volatility phases and more accurate trend detection during high-volatility conditions.
UVR as the Core Component
The indicator is fundamentally built around UVR as the primary filter, while supporting tools like RSI (momentum detection), CMF (volume confirmation), and EMA (trend validation) complement its functionality.
By integrating these additional components, the indicator provides a multidimensional analysis rather than relying solely on a single approach.
Dynamic Adaptation to Volatility
UVR dynamically adjusts to market conditions, striving to improve filtering in low-volatility phases. While not flawless, this approach minimizes false signals and adapts more effectively to varying levels of market activity.
Trend Clouds for Visual Guidance
UVR-based dynamic clouds visually mark high and low price areas, highlighting potential consolidation or retracement zones.
These clouds serve as guides for setting stop-loss or take-profit levels, offering clear risk management strategies.
BUY AND SELL SIGNAL LOGIC
BUY CONDITIONS
Momentum-Based Buy-Entry
RSI >50, CMF >0, and the close price is above EMA50.
The price difference between open and close exceeds a threshold based on UVR.
Oversold Reversal
RSI <30 and CMF >0 with a strong bullish candle (close > open and UVR-based sensitivity filter).
Breakout Confirmation
The price breaks above a previously identified resistance, with conditions for RSI and CMF supporting the breakout.
Reversal from Oversold RSI Extreme
RSI <12 on the previous candle with a strong rebound on the current candle with UVR confirmation filter.
SELL CONDITIONS
Momentum-Based Sell-Entry
RSI <50, CMF <0, and the close price is below EMA50.
The price difference between open and close exceeds the UVR threshold.
Overbought Reversal
RSI >70 with bearish price action (open > close and UVR-based sensitivity filter).
Breakdown Confirmation
The price breaks below a previously identified support, with RSI and CMF supporting the breakdown.
Reversal from Overbought RSI Extreme
RSI >88 on the previous candle with a bearish confirmation on the current candle with UVR confirmation filter.
BUY AND SELL SIGNALS VISUALIZATION
The UVR Crypto Trend Indicator visually represents buy and sell conditions using dynamic plots, making it easier for traders to interpret and act on the signals. Below is an explanation of the visual representation:
Buy Signals and Visualization
Signal Trigger:
A buy signal is generated when one of the defined Buy Conditions is met (e.g., RSI >50, CMF >0, price above EMA50).
Visual Representation:
A blue upward arrow appears at the candle where the buy condition is triggered.
A blue cloud forms above the price candles, representing the strength of the bullish trend. The cloud dynamically adapts to market volatility, using the UVR calculation to mark support zones or consolidation levels.
Purpose of the Blue Cloud:
It acts as a visual guide for price movements and stay horizontal when the trend is not moving up
Sell Signals and Visualization
Signal Trigger:
A sell signal is generated when one of the defined Sell Conditions is met (e.g., RSI <50, CMF <0, price below EMA50).
Visual Representation:
A red downward arrow appears at the candle where the sell condition is triggered.
A red cloud forms below the price candles, representing the strength of the bearish trend. Like the blue cloud, it uses the UVR calculation to dynamically mark resistance zones or potential retracement levels.
Purpose of the Red Cloud:
It acts as a visual guide for price movements and stay horizontal when the trend is not moving down.
CONCLUSION
The UVR Crypto Trend indicator provides a powerful tool for trend reversal detection by combining volatility analysis, momentum confirmation, and trend-following techniques. Its unique use of the Ultimate Volatility Rate (UVR) as a core element, supported by proven indicators like RSI, CMF, and EMA, ensures reliable and actionable signals tailored for the crypto market's dynamic nature. By leveraging UVR’s high and low price range analysis, it achieves a level of precision that traditional indicators lack, making it a high-performing system for cryptocurrency traders.
Weis Wave Max█ Overview
Weis Wave Max is the result of my weis wave study.
David Weis said,
"Trading with the Weis Wave involves changes in behavior associated with springs, upthrusts, tests of breakouts/breakdowns, and effort vs reward. The most common setup is the low-volume pullback after a bullish/bearish change in behavior."
THE STOCK MARKET UPDATE (February 24, 2013)
I inspired from his sentences and made this script.
Its Main feature is to identify the largest wave in Weis wave and advantageous trading opportunities.
█ Features
This indicator includes several features related to the Weis Wave Method.
They help you analyze which is more bullish or bearish.
Highlight Max Wave Value (single direction)
Highlight Abnormal Max Wave Value (both directions)
Support and Resistance zone
Signals and Setups
█ Usage
Weis wave indicator displays cumulative volume for each wave.
Wave volume is effective when analyzing volume from VSA (Volume Spread Analysis) perspective.
The basic idea of Weis wave is large wave volume hint trend direction. This helps identify proper entry point.
This indicator highlights max wave volume and displays the signal and then proper Risk Reward Ratio entry frame.
I defined Change in Behavior as max wave volume (single direction).
Pullback is next wave that does not exceed the starting point of CiB wave (LH sell entry, HL buy entry).
Change in Behavior Signal ○ appears when pullback is determined.
Change in Behavior Setup (Entry frame) appears when condition of Min/Max Pullback is met and follow through wave breaks end point of CiB wave.
This indicator has many other features and they can also help a user identify potential levels of trade entry and which is more bullish or bearish.
In the screenshot below we can see wave volume zones as support and resistance levels. SOT and large wave volume /delta price (yellow colored wave text frame) hint stopping action.
█ Settings
Explains the main settings.
-- General --
Wave size : Allows the User to select wave size from ① Fixed or ② ATR. ② ATR is Factor x ATR(Length).
Display : Allows the User to select how many wave text and zigzag appear.
-- Wave Type --
Wave type : Allows the User to select from Volume or Volume and Time.
Wave Volume / delta price : Displays Wave Volume / delta price.
Simplified value : Allows the User to select wave text display style from ① Divisor or ② Normalized. Normalized use SMA.
Decimal : Allows the User to select the decimal point in the Wave text.
-- Highlight Abnormal Wave --
Highlight Max Wave value (single direction) : Adds marks to the Wave text to highlight the max wave value.
Lookback : Allows the User to select how many waves search for the max wave value.
Highlight Abnormal Wave value (both directions) : Changes wave text size, color or frame color to highlight the abnormal wave value.
Lookback : Allows the User to select SMA length to decide average wave value.
Large/Small factor : Allows the User to select the threshold large wave value and small wave value. Average wave value is 1.
delta price : Highlights large delta price by large wave text size, small by small text size.
Wave Volume : Highlights large wave volume by yellow colored wave text, small by gray colored.
Wave Volume / delta price : highlights large Wave Volume / delta price by yellow colored wave text frame, small by gray colored.
-- Support and Resistance --
Single side Max Wave Volume / delta price : Draws dashed border box from end point of Max wave volume / delta price level.
Single side Max Wave Volume : Draws solid border box from start point of Max wave volume level.
Bias Wave Volume : Draws solid border box from start point of bias wave volume level.
-- Signals --
Bias (Wave Volume / delta price) : Displays Bias mark when large difference in wave volume / delta price before and after.
Ratio : Decides the threshold of become large difference.
3Decrease : Displays 3D mark when a continuous decrease in wave volume.
Shortening Of the Thrust : Displays SOT mark when a continuous decrease in delta price.
Change in Behavior and Pullback : Displays CiB mark when single side max wave volume and pullback.
-- Setups --
Change in Behavior and Pullback and Breakout : Displays entry frame when change in behavior and pullback and then breakout.
Min / Max Pullback : Decides the threshold of min / max pullback.
If you need more information, please read the indicator's tooltip.
█ Conclusion
Weis Wave is powerful interpretation of volume and its tell us potential trend change and entry point which can't find without weis wave.
It's not the holy grail, but improve your chart reading skills and help you trade rationally (at least from VSA perspective).
ICT Panther (By Obicrypto) V1 ICT Panther Indicator: Full and Detailed Description
The ICT Panther Indicator, created by Obicrypto, is an advanced technical analysis tool designed specifically for traders looking to identify key price action events based on institutional trading techniques, particularly in the context of the Inner Circle Trader (ICT) methodology. This indicator helps traders spot market structure breaks, order blocks, and potential trade opportunities driven by institutional behaviors in the market. Here's a detailed breakdown of its features and how it works:
What Does the ICT Panther Indicator Do?
1. Market Structure Breaks (MSB) Identification:
The ICT Panther identifies critical points where the market changes direction, commonly referred to as a break of structure (BoS). When the price breaks above or below certain key levels (based on highs and lows or opens and closes), it signals a potential shift in market sentiment. These break-of-structure points are essential for traders to determine whether the market is likely to continue its trend or reverse.
2. Order Blocks Visualization:
The indicator plots demand (bullish) and supply (bearish) boxes, which represent areas where institutional traders might place significant buy or sell orders. These zones, known as order blocks, are areas where the price tends to pause or reverse, giving traders key insights into potential entry and exit points. The indicator shows these areas graphically as colored boxes on the chart, which can be used to plan trades based on market structure and price action.
3. Pivot Point Detection:
The ICT Panther identifies important pivot points by tracking higher highs and lower lows. These pivot points are critical in determining the strength of a trend and can help traders confirm the direction of the market. The indicator uses a unique algorithm to detect two levels of pivot points:
- First-Order Pivots: Major pivot points where the price makes notable highs and lows.
- Second-Order Pivots: Smaller pivot points, useful for detecting microtrends within the larger market structure.
4. Bullish and Bearish Break of Structure Lines:
When a significant market structure break (BoS) occurs, the indicator will automatically draw red lines (for bearish break of structure) and green lines (for bullish break of structure) at key price levels. These lines help traders quickly see where institutional moves have occurred in the past and where potential future price moves could originate from.
5. Tested and Filled Boxes:
The ICT Panther also has a built-in mechanism to dim previously tested order blocks. When the price tests an order block (returns to a previous demand or supply zone), the box's color dims to indicate that the area has already been tested, reducing its significance. If the price fully fills an order block, the box stops plotting, providing a clear and clutter-free chart.
Key Features
1. Market Structure Break (MSB) Trigger:
- The indicator allows users to select between highs/lows or opens/closes as the trigger for market structure breaks. This flexibility lets traders adjust the indicator to suit their personal trading style or the behavior of specific assets.
2. Order Block Detection and Visualization:
- The tool automatically plots bullish and bearish demand and supply boxes, representing institutional order blocks on the chart. These boxes provide visual cues for areas of potential price action, where institutional traders might be active.
3. Second-Order Pivot Highlighting:
- The ICT Panther offers an option to plot second-order pivots, highlighting smaller pivot points within the larger market structure. These pivots can be helpful for short-term traders who need to react to smaller price movements while still keeping the larger trend in mind.
4. Box Test and Fill Delays:
- Users can configure delays for box tests and box fills, meaning the indicator will only mark a box as tested or filled after a certain number of bars. This prevents false signals and helps confirm that a zone is truly significant in the market.
5. Customization and Visual Clarity:
- The indicator is highly customizable, allowing users to turn on or off various features like:
- Displaying second-order pivots.
- Highlighting candles that broke structure.
- Plotting market structure broke lines.
- Showing or hiding tested and filled demand boxes.
- Setting custom delays for box testing and filling to suit different market conditions.
6. Tested and Filled Order Block Visualization:
- The indicator visually adjusts the tested and filled order blocks, dimming tested zones and removing filled zones to avoid clutter on the chart. This ensures that traders can focus on active trading opportunities without distractions from historical data.
How Does It Work?
1. Detecting Market Structure Breaks (BoS):
- The indicator continuously tracks the market for key price action signals. When the price breaks through previous highs or lows (or opens and closes, depending on your selection), the indicator marks this as a break of structure. This is a critical signal used by institutional traders and retail traders alike to determine potential future price movements.
2. Order Block Identification:
- Whenever a bullish break of structure occurs, the indicator plots a green demand box to show the area where institutional buyers might have placed significant orders. Similarly, for a bearish break of structure, it plots a red supply box representing areas where institutional sellers are active.
3. Pivot Analysis and Tracking:
- As the market moves, the indicator continuously updates first-order and second-order pivot points based on highs and lows. These points help traders identify whether the market is trending or consolidating. Traders can use these pivot points in combination with the order blocks to make informed trading decisions.
4. Box Testing and Filling:
- When the price retests an existing order block, the box dims to show it has been tested. If the price fully fills the box, it is no longer shown, which helps traders focus on the most relevant, untested order blocks.
Benefits for Traders
- Improved Decision-Making: With clear visuals and advanced logic based on institutional trading strategies, this indicator provides a deeper understanding of market structure and price action.
- Reduced Clutter: The indicator intelligently manages the display of order blocks and pivot points, ensuring that traders focus only on the most relevant information.
- Adaptability: Whether you are a swing trader or a day trader, the ICT Panther can be adjusted to fit your trading style, offering robust and flexible tools for tracking market structure and order blocks.
- Institutional Edge: By identifying institutional-level order blocks and market structure breaks, traders using this indicator can trade in line with the strategies of large market participants.
Who Should Use the ICT Panther Indicator?
This indicator is ideal for:
- Crypto, Forex, and Stock Traders who want to incorporate institutional trading concepts into their strategies.
- Technical Analysts looking for precise tools to measure the market structure and price action.
- ICT Traders who follow the Inner Circle Trader methodology and want an advanced tool to automate and enhance their analysis.
- Price Action Traders seeking a reliable indicator to track pivot points, order blocks, and market structure breaks.
The ICT Panther Indicator is a powerful, versatile tool that brings institutional trading techniques to the fingertips of retail traders. Whether you are looking to identify key market structure breaks, order blocks, or crucial pivot points, this indicator offers detailed visualizations and customizable options to help you make more informed trading decisions. With its ability to track the activities of institutional traders, the ICT Panther Indicator equips traders with the insights needed to stay ahead of the market and trade with confidence.
With the ICT Panther Indicator, traders can follow the movements of institutional money, making it easier to predict market direction and capitalize on high-probability trading opportunities.
Enjoy it and share it with your friends!
Bollinger Band Squeeze with Dotted MidlinesBollinger Band Squeeze with Dotted Midlines
Overview:
The Bollinger Band Squeeze with Dotted Midlines indicator is a powerful tool designed to identify periods of low volatility in the market, known as "squeeze" conditions, which often precede significant price movements. By combining Bollinger Bands and Keltner Channels, this indicator highlights when the market is consolidating and prepares traders for potential breakouts.
Key Features:
• Squeeze Detection: The indicator fills the area between the Bollinger Bands and Keltner Channels with a semi-transparent red color when both the upper and lower Bollinger Bands are within the Keltner Channels. This visual cue signifies a squeeze condition.
• Dynamic Color Filling: When the Bollinger Bands move outside the Keltner Channels, the fill color changes to a semi-transparent white, indicating the end of the squeeze and the potential start of increased volatility.
• Enhanced Visual Clarity:
o Upper and Lower Bands: The upper and lower lines of both the Bollinger Bands and Keltner Channels are plotted with increased thickness (3pt) for better visibility.
o Midlines with Dotted Effect: The middle lines (50% lines) for both the Bollinger Bands and Keltner Channels are plotted as dotted lines using circles with a thinner line width (1pt), providing a clear yet unobtrusive reference point.
Indicator Components:
1. Bollinger Bands (Orange Lines):
o Upper Bollinger Band: Calculated as the moving average plus a multiple of the standard deviation.
o Lower Bollinger Band: Calculated as the moving average minus a multiple of the standard deviation.
o Middle Bollinger Band: The simple moving average (SMA) of the closing price.
2. Keltner Channels (White Lines):
o Upper Keltner Channel: Calculated as the exponential moving average (EMA) plus a multiple of the average true range (ATR).
o Lower Keltner Channel: Calculated as the EMA minus a multiple of the ATR.
o Middle Keltner Channel: The EMA of the closing price.
3. Squeeze Condition Fill:
o Red Fill (40% Opacity): Indicates a squeeze condition where the Bollinger Bands are entirely within the Keltner Channels.
o White Fill (40% Opacity): Indicates normal market conditions where the Bollinger Bands have moved outside the Keltner Channels.
How to Use:
1. Identifying Squeeze Conditions:
o Look for Red Filled Areas: When you see the area between the Bollinger Bands and Keltner Channels filled in semi-transparent red, it signals a squeeze condition. This means the market is experiencing low volatility and may be preparing for a significant move.
2. Preparing for Potential Breakouts:
o Monitor for Fill Color Changes: A transition from red to white fill suggests that the squeeze is ending, and volatility is increasing. Traders often interpret this as a potential opportunity for a breakout in either direction.
3. Utilizing Midlines:
o Reference Midlines for Trend Direction: The dotted midlines provide insight into the overall trend. Crossing of the price above or below these lines can offer additional confirmation for trading decisions.
Customization Options:
• Bollinger Bands Settings:
o Length: Default is 20 periods. Adjust to change the sensitivity of the bands.
o Multiplier: Default is 2.0. Modify to increase or decrease the band width based on standard deviation.
• Keltner Channels Settings:
o Length: Default is 20 periods. Alter to adjust the responsiveness of the channels.
o Multiplier: Default is 1.5. Change to widen or narrow the channels based on average true range.
Advantages:
• Visual Clarity: Enhanced line thickness and semi-transparent fills make it easy to spot key market conditions at a glance.
• Early Warning System: By identifying squeeze conditions, traders can anticipate potential breakouts and plan their strategies accordingly.
• Flexible Application: Suitable for various timeframes and trading styles, including day trading, swing trading, and position trading.
Limitations:
• False Signals: Like all technical indicators, it may produce false signals, especially in choppy or range-bound markets.
• Should Be Used with Other Indicators: For better accuracy, it's recommended to use this indicator in conjunction with other technical analysis tools and not as a standalone signal generator.
Conclusion:
The Bollinger Band Squeeze with Dotted Midlines indicator is a valuable addition to any trader's toolkit. By effectively highlighting periods of consolidation and potential breakout points, it aids in making informed trading decisions. The visual enhancements improve usability, allowing traders to quickly interpret market conditions and respond appropriately.
StrConcatWrap█ OVERVIEW
Contains functions for concatenation and wrapping of the strings:
- concatTrunc() / concatTrunc2() - Concatenate via a separator up to a given length truncating from left or right. concatTrunc2 returns also the number of overflowing chars (in a tuple)
- print() - A powerful concatenate function truncating chars from left or right and/or lines from top or bottom. By default just adds new lines respecting max length.
- wrap() - Wraps each line of the text adding prefix/postfix. If resulting string exceeds max length truncates from the end adding " "
- scroll() Returns a range of lines from the source string.
█ FUNCTIONS
method concatTrunc2(this, txt, separator, max_length, truncate_left, ignore_empty_strings)
Concatenates two strings leaving _max_length chars truncating from left/right. (Truncates from the end of the string by default).
this String to which txt is added
txt String to be added
max_length (int) (Optional) max length of string, default: 4096
separator (string) (Optional) If both this and txt are non empty separator is added in between. Usually "\n" is used.
truncate_left (bool) (Optional) if true truncates left string (this), if false - txt. Default - false (truncates txt)
ignore_empty_strings (bool) (Optional) if true and one of `this` or `txt` is empty just returns the other, if false - adds separator.
Returns: (tuple ) A tuple . E.g. if `this` is 4095 chars and separator is 2 chars then 4095+2=4097 exceeds default max_length = 4096 by 1, so will be returned, even if , e.g. `txt` is empty and `ignore_empty_strings` is true.
method concatTrunc(this, txt, separator, max_length, truncate_left, ignore_empty_strings)
Concatenates two strings leaving _max_length chars truncating from left/right. (Truncates from the end of the string by default).
this : string to which txt is added
txt : string to be added to this
max_length : max length of string, default: 4096
separator : If both this and txt are non empty separator is added in between. Usually "\n" is used.
truncate_left : if true truncates left string (this), if false - txt. Default - false (truncates txt)
ignore_empty_strings : (bool) (Optional) if true and one of `this` or `txt` is empty just returns the other, if false - adds separator.
Returns: (string) Resulting string
method printLines( this, txt, max_length, max_lines, line_break_regex, line_break, truncate_left, ignore_empty_strings, add_line_numbers, line_number_format, start_line_number, print_to_last_line)
Adds up to `max_lines` lines from `txt` to `this` observing `max_length`, truncating from left or right (truncating source strings `this` and/or `txt` themselves if necessary).
this : (string) Print outputs `txt` to the end of `this`
txt : (string) Print outputs `txt` to the end of `this`
max_length : (int) (Optional) Chars in excess of `max_length` will be truncated (ending chars by default, see `truncate_left` arg). Default: 4096
max_lines : (int) (Optional) Lines in excess of `max_lines` will be truncated (from end by default, see `truncate_left` arg). Default: 4096
line_break_regex : (string) (Optional) A regex expression used to search for linebrakes. Default is "(\\n|\\r|\\r\\n)"
line_break : (string) (Optional) A string added as a line break. Default is "\n".
truncate_left : (bool) (Optional) If true chars in excess of `max_length` will be truncated from the beginning , if false - from the end. Default: false.
ignore_empty_strings : (bool) (Optional) If false a line break will be added (as an empty string), if false `this` will not change.
add_line_numbers : (bool) (Optional) If true adds number before each line. Default format: "LN0001". Custom fomat can be set with `line_number_format'.
line_numbers_format : (string) (Optional) Line number format (like in `str.format()`). Default: `"LN{0000: }"`
print_to_last_line : (string) (Optional) If true will add text to the last line (notwithout adding line break before the first added line). Default: false.
Returns: ` ` where `outS` = `this` + added lines, `intLenthOverflow` = number of truncated chars (including separator), e.g. if `this` is 4095 chars and separator is 2 chars then 4095+2=4097 exceeds default max_length = 4096 by 1, so will be returned, even if , e.g. `txt` is empty and `ignore_empty_strings` is true, and n - number of added lines
method print( this, txt, max_length, max_lines, truncate_left, truncate_top, truncate_lines_src, add_line_numbers, line_number_format, print_to_last_line)
Powerful concatenate function. In simplest form (`this.print(txt)`) just adds `txt` to the end of `this` starting from new line. If `print_to_last_line` is true then concatenates. Can truncate for _max_length (from right by default) and max_lines (truncating from top or bottom). (First removes excessive lines (over `max_lines`) then concatenates truncating for `max_length`.) `print()` looks for all kinds of line breaks (`\r`, `\n` or `\r\n`) and replaces them with `\n`.
this : (string) Print outputs `txt` to the end of `this`
txt : (string) Print outputs `txt` to the end of `this`
max_length : (int) (Optional) Chars in excess of `max_length` will be truncated (ending chars by default, see `truncate_left` arg). Default: 4096
max_lines : (int) (Optional) Lines in excess of `max_lines` will be truncated (from end by default, see `truncate_left` arg). Default: 4096
truncate_left : (bool) (Optional) If true chars in excess of `max_length` will be truncated from the beginning , if false - from the end. Default: false.
truncate_top : (bool) (Optional) If true lines in excess of `max_lines` will be truncated from the top, if false - from the bottom. Default: false.
truncate_lines_src : (bool) (Optional) If true and either `this` or `txt` exceed `max_lines` they will be truncated (excessive lines removed). (Characters in excess of max_length will be truncated regardless). If truncate_top and txt has more than max_lines lines excessive lines will be truncated from the top. (if truncate_top escessive lines from `this` will be truncated regardless of truncate_src). If not truncate_top and this has more than max_lines lines excessive lines will be truncated from the bottom. (if not truncate_top escessive lines from `txt` will be truncated regardless of truncate_src)
add_line_numbers : (bool) (Optional) If true adds number before each line. Default format: "LN0001". Custom fomat can be set with `line_number_format'.
line_numbers_format : (string) (Optional) Line number format (like in `str.format()`). Default: `"LN{0000: }"`
print_to_last_line : (string) (Optional) If true will add text to the last line (notwithout adding line break before the first added line). Default: false.
Returns: ` ` where `outS` = `this` + added lines.
method wrap(this, wrap_width, breaker_prefix, breaker_postfix, line_postfix, max_length)
Wraps each line of `this` to wrap_width adding breaker_prefix to the end of each line (before "\n") and breaker_postfix to the beginning of each line (after "\n")" (i.e. breaker_prefix'es are effectively added to the end of each line (but the last) and breaker_postfix'es to the beginning of new line starting from second). If with breakers the line exceeds 4096 it is truncated from the right and " " is added at the end.
wrap_width : (series int) Width of each line (chars).
breaker_prefix : (series string) (Optional) Text to add at the end of each line. (Default = "")
breaker_postfix : (series string) (Optional) Text to add after the each added line break at the beginning of next line. (Default = "")
Returns: the wrapped text
export method scroll(this, start_line, lines_in_window, show_line_numbers, show_header)
Scrolls the text (this) by returning a given number of lines (`lines_in_window`) starting from `start_line`. Can add line numbers and/or a header line in the form "Starting from line ... out of total ... lines, ... chars"
start_line : (int) (Optional) Start line
lines_in_window : (int) (Optional) Number of lines to read and return
show_line_numbers : (bool) (Optional) If true preceeds each line with a line number in the form "LN0001}: "
show_header : (bool) (Optional) If true shows the header string in the form "Starting from line {0} out of total {1} lines, {2} chars" followed by a separator line "----------".
Returns: (string) Range of strings.
Support, Resistance & Liquidity Pool ZonesSupport, Resistance & Liquidity Pool Zones
This indicator automatically detects and plots support and resistance levels based on pivot points and highlights liquidity pool zones, areas where the trading volume exceeds the average over a set number of bars. It is designed to help traders identify key price levels and liquidity traps that can trigger significant market reactions.
Key Features:
Support & Resistance Levels:
The indicator identifies pivot highs and pivot lows as potential resistance and support levels, respectively.
You can customize the number of levels shown on the chart, making it easier to focus on the most recent and relevant price levels.
Liquidity Pool Zones:
The script detects liquidity pool zones, which are areas with above-average trading volume. These zones often act as regions of interest where price accumulation or distribution occurs, potentially leading to significant price moves.
Liquidity zones are shaded to help traders visually identify areas of high interest in the market.
Customizable Settings:
You can adjust the pivot period to fine-tune how the indicator calculates support and resistance.
Control the number of support/resistance levels displayed on the chart and the period used to detect liquidity pools.
Customize the colors for support, resistance, and liquidity zones to match your charting preferences.
Alerts:
The script includes built-in alerts for when the price breaks above resistance or falls below support, helping traders catch key breakout opportunities.
How It Works:
The script calculates support and resistance levels using pivot highs and lows based on the user-defined pivot period.
It monitors liquidity pool zones by comparing the current trading volume with the average volume over a customizable period. When the volume exceeds the set threshold, a liquidity pool zone is highlighted, providing insight into where the market may accumulate or distribute.
Alerts are triggered when the price breaks above the first resistance level or falls below the first support level, giving traders immediate notification of key market events.
How to Use:
Tune the Pivot Period: Adjust the pivot period to your preferred time horizon (default: 10 bars).
Set Liquidity Pool Parameters: Customize the number of bars considered for liquidity pool detection and the volume multiplier to detect high-volume zones.
Monitor Breakouts: Use the built-in alerts to catch potential breakout or breakdown opportunities near support and resistance levels.
This script is ideal for traders looking for an easy-to-use tool to visualize support and resistance levels and liquidity pools, aiding in decision-making and trade management.
Precision Cloud by Dr ABIRAM SIVPRASAD
Precision Cloud by Dr. Abhiram Sivprasad"
The " Precision Cloud" script, created by Dr. Abhiram Sivprasad, is a multi-purpose technical analysis tool designed for Forex, Bitcoin, Commodities, Stocks, and Options trading. It focuses on identifying key levels of support and resistance, combined with moving averages (EMAs) and central pivot ranges (CPR), to help traders make informed trading decisions. The script also provides a visual "light system" to highlight potential long or short positions, aiding traders in entering trades with a clear strategy.
Key Features of the Script:
Central Pivot Range (CPR):
The CPR is calculated as the average of the high, low, and close of the price, while the top and bottom pivots are derived from it. These act as dynamic support and resistance zones.
The script can plot daily CPR, support, and resistance levels (S1/R1, S2/R2, S3/R3) as well as optional weekly and monthly pivot points.
The CPR helps identify whether the price is in a bullish, bearish, or neutral zone.
Support and Resistance Levels:
Three daily support (S1, S2, S3) and resistance (R1, R2, R3) levels are plotted based on the CPR.
These levels act as potential reversal or breakout points, allowing traders to make decisions around key price points.
EMA (Exponential Moving Averages):
The script includes two customizable EMAs (default periods of 9 and 21). You can choose the source for these EMAs (open, high, low, or close).
The crossovers between EMA1 and EMA2 help identify potential trend reversals or momentum shifts.
Lagging Span:
The Lagging Span is plotted with a customizable displacement (default 26), which helps identify overall trend direction by comparing past price with the current price.
Light System:
A color-coded table provides a visual representation of market conditions:
Green indicates bullish signals (e.g., price above CPR, EMAs aligning positively).
Red indicates bearish signals (e.g., price below CPR, EMAs aligning negatively).
Yellow indicates neutral conditions, where there is no clear trend direction.
The system includes lights for CPR, EMA, Long Position, and Short Position, helping traders quickly assess whether the market is in a buying or selling opportunity.
Trading Strategies Using the Script
1. Forex Trading:
Trend-Following with EMAs: Use the EMA crossovers to capture trending markets in Forex. A green light for the EMA combined with a price above the daily or weekly pivot levels suggests a buying opportunity. Conversely, if the EMA light turns red and price falls below the CPR levels, look for shorting opportunities.
Reversal Strategy: Watch for price action near the daily S1/R1 levels. If price holds above S1 and the EMA is green, this could signal a reversal from support. The same applies to resistance levels.
2. Bitcoin Trading:
Momentum Breakouts: Bitcoin is known for its sharp moves. The script helps to identify breakouts from the CPR range. If the price breaks above the TC (Top Central Pivot) with bullish EMA alignment (green light), it could signal a strong uptrend.
Lagging Span Confirmation: Use the Lagging Span to confirm the trend direction. For Bitcoin's volatility, when the lagging span shows consistent alignment with the price and CPR, it often indicates continuation of the trend.
3. Commodities Trading:
Support/Resistance Bounce: Commodities such as gold and oil often react well to pivot levels. Look for price bouncing off S1 or R1 for potential entry points. A green CPR light along with price above the pivot range supports a bullish bias.
EMA Pullback Strategy: If price moves in a strong trend and pulls back to one of the EMAs, a green EMA light suggests re-entry on a pullback. If the EMA light is red and price breaks below the BC (Bottom Central Pivot), short positions could be considered.
4. Stocks Trading:
Long Position Strategy: For stocks, use the combination of the long position light turning green (price above TC and EMA alignment) as a signal to buy. This could be especially useful for riding bullish trends in growth stocks or during earnings seasons when volatility is high.
Short Position Strategy: If the short position light turns green, indicating price below BC and EMAs turning bearish, this could be an ideal setup for shorting overvalued stocks or during market corrections.
5. Options Trading:
Directional Bias for Options: The light system is particularly helpful for options traders. A green long position light provides a clear signal to buy call options, while a green short position light supports buying puts.
Pivot Breakout Strategy: Buy options (calls or puts) when the price breaks above resistance or below support, with confirmation from the CPR and EMA lights. This helps capture the sharp moves required for profitable options trades.
Conclusion
The S&R Precision Cloud script is a versatile tool for traders across markets, including Forex, Bitcoin, Commodities, Stocks, and Options. It combines critical technical elements like pivot ranges, support and resistance levels, EMAs, and the Lagging Span to provide a clear picture of market conditions. The intuitive light system helps traders quickly assess whether to take a long or short position, making it an excellent tool for both new and experienced traders.
The S&R Precision Cloud by Dr. Abhiram Sivprasad script is a technical analysis tool designed to assist traders in making informed decisions. However, it should not be interpreted as financial or investment advice. The signals generated by the script are based on historical price data and technical indicators, which are inherently subject to market fluctuations and do not guarantee future performance.
Trading in Forex, Bitcoin, Commodities, Stocks, and Options carries a high level of risk and may not be suitable for all investors. You should be aware of the risks involved and be willing to accept them before engaging in such activities. Always conduct your own research and consult with a licensed financial advisor or professional before making any trading decisions.
The creators of this script are not responsible for any financial losses that may occur from its use. Past performance is not indicative of future results, and the use of this script is at your own risk.
Thrax - Intraday Market Pressure ZonesTHRAX - INTRADAY MARKET PRESSURE ZONES
This indicator identifies potential support and resistance zones based on areas of significant market pressure. It dynamically plots these zones and adjusts their visibility based on real-time price action and user-defined thresholds. The indicator is useful for traders seeking to understand intraday market pressure, visualize zones of potential price reversals, and analyze volume imbalances at critical levels.
1. Support/Resistance Zones: Wherever the price retraces significantly from its high a support zone is drawn and when it retraces significantly from it low a resistance zone is drawn. The significant retracing is measured by the wick threshold percentage. For instance, if set to 75%, it implies price retracement of 75% either from high or from low for a particular candel
Volume delat: Displays volume delta information where the zones are formed. This can be used by trader to consider only those zones where delta is significant.
2. Breakout Detection: Monitors for price breakouts beyond established zones, deleting zones that are invalidated by price movement. when the price breaks a given zone with the threshold, it is considered to be mitigated and chances of trend continuation is decent.
Candle Coloring: Uses color codes (green, red, and yellow) to represent bullish, bearish, and indecisive (doji) candles, aiding quick visual assessment.
INPUTS
1. Wick Threshold (%) : Sets the minimum wick percentage required for a candle to be considered a support or resistance candidate.
2. Breakout Threshold (%) : Determines the percentage above or below a support or resistance zone that defines a breakout condition. if breaks a zone with the set threshold then the zone will be considered mititgated.
3. Max Number of Support/Resistance Zones : Limits the maximum number of support/resistance zones displayed on the chart, ranging from 1 to 5.
4. Show Wick Percentage Labels : Toggles the display of percentage values for upper and lower wicks on each candle.
TRADE SETUP
Identifying Entry Points: Look for the formation of support or resistance zones. Wait for price to retrace to these zones. if you are willing to take risk, you can consider even zones with low delta. If you want to be more cautious you should consider zones with high delta.
Volume Confirmation: Use the volume information to confirm the strength of the zone. Strong volume differences (displayed as labels) can indicate significant market pressure at these levels.
Breakout Trades: If price breaks through a support/resistance zone by more than the breakout threshold, consider this a signal for a potential trend continuation in the breakout direction.
Risk Management: Set stop-loss levels slightly outside of the identified zones to minimize risk in case of false breakouts. This can be set in input setting for breakout threshold.
Bonus Tip : Mark your significant highs and lows from where prices have retraced multiple times in the near past and if the zone is near these levels it can serve s a strong candidate of support or resistance
Therefore, in conclusion monitor the zones, based on delta and volume presence filter out the zone, wait for price retracement to the zone, intiate the trade with stop loss below zone with a set percentage.
Harish Algo 2The script "Harish Algo 2" is a Pine Script-based TradingView indicator that automatically identifies significant trendlines based on fractal points and tracks price interactions with those trendlines. Key features include:
Fractal Detection: The script identifies fractal highs and lows, using a configurable fractal period, to serve as pivot points for generating trendlines. Fractal highs are marked in blue, and fractal lows are marked in red.
Dynamic Trendlines: It draws trendlines between consecutive fractal points, with a limit on the maximum number of active trendlines. The trendlines can be extended either in both directions or to the right, as per user input. The line width can also be customized.
Support/Resistance Counting: Each trendline tracks how many times the price interacts with it. If the price approaches the line from above and touches or stays near it, the line is considered a support. If the price approaches from below, it is considered a resistance. These counts are used to modify the trendline's color and appearance.
Trendlines with 2 support interactions turn green.
Trendlines with 2 resistance interactions turn red.
Trendlines with 3 or more interactions turn black.
Trendline Styling: Trendlines that extend over a long period (more than 100 bars) change to a dotted style to highlight their persistence.
Break Detection: The script monitors if the price crosses a trendline, signaling a potential breakout or breakdown. Once a trendline is broken, it stops extending further.
Trendline Removal: The script ensures that only a limited number of trendlines are active at a time. If the maximum number of trendlines is reached, the oldest trendline is removed to make space for new ones.
This indicator is designed to help traders visualize important trendlines, spot potential support and resistance levels, and detect breakouts or breakdowns based on price movement.
Volume-Adjusted Bollinger BandsThe Volume-Adjusted Bollinger Bands (VABB) indicator is an advanced technical analysis tool that enhances the traditional Bollinger Bands by incorporating volume data. This integration allows the bands to dynamically adjust based on market volume, providing a more nuanced view of price movements and volatility. The key qualities of the VABB indicator include:
1. Dynamic Adjustment with Volume: Traditional Bollinger Bands are based solely on price data and standard deviations. The VABB indicator adjusts the width of the bands based on the volume ratio, making them more responsive to changes in market activity. This means that during periods of high volume, the bands will expand, and during periods of low volume, they will contract. This adjustment helps to reinforce the significance of price movements relative to the central line (VWMA).
2. Volume-Weighted Moving Average (VWMA): Instead of using a simple moving average (SMA) as the central line, the VABB uses the VWMA, which weights prices by volume. This provides a more accurate representation of the average price level, considering the trading volume.
3. Enhanced Signal Reliability: By incorporating volume, the VABB can filter out false signals that might occur in low-volume conditions. This makes the indicator particularly useful for identifying significant price movements that are supported by strong trading activity.
How to Use and Interpret the VABB Indicator
To use the VABB indicator, you need to set it up on your trading platform with the following parameters:
1. BB Length: The number of periods for calculating the Bollinger Bands (default is 20).
2. BB Multiplier: The multiplier for the standard deviation to set the width of the Bollinger Bands (default is 2.0).
3. Volume MA Length: The number of periods for calculating the moving average of the volume (default is 14).
Volume Ratio Smoothing Length: The number of periods for smoothing the volume ratio (default is 5).
Interpretation
1.Trend Identification: The VWMA serves as the central line. When the price is above the VWMA, it indicates an uptrend, and when it is below, it indicates a downtrend. The direction of the VWMA itself can also signal the trend's strength.
2. Volatility and Volume Analysis: The width of the VABB bands reflects both volatility and volume. Wider bands indicate high volatility and/or high volume, suggesting significant price movements. Narrower bands indicate low volatility and/or low volume, suggesting consolidation.
3. Trading Signals:
Breakouts: A price move outside the adjusted upper or lower bands can signal a potential breakout. High volume during such moves reinforces the breakout's validity.
Reversals: When the price touches or crosses the adjusted upper band, it may indicate overbought conditions, while touching or crossing the adjusted lower band may indicate oversold conditions. These conditions can signal potential reversals, especially if confirmed by other indicators or volume patterns.
Volume Confirmation: The volume ratio component helps confirm the strength of price movements. For instance, a breakout accompanied by a high volume ratio is more likely to be sustained than one with a low volume ratio.
Practical Example
Bullish Scenario: If the price crosses above the adjusted upper band with a high volume ratio, it suggests a strong bullish breakout. Traders might consider entering a long position, setting a stop-loss just below the VWMA or the lower band.
Bearish Scenario: Conversely, if the price crosses below the adjusted lower band with a high volume ratio, it suggests a strong bearish breakout. Traders might consider entering a short position, setting a stop-loss just above the VWMA or the upper band.
Conclusion
The Volume-Adjusted Bollinger Bands (VABB) indicator is a powerful tool that enhances traditional Bollinger Bands by incorporating volume data. This dynamic adjustment helps traders better understand market conditions and make more informed trading decisions. By using the VABB indicator, traders can identify significant price movements supported by volume, improving the reliability of their trading signals.
The Volume-Adjusted Bollinger Bands (VABB) indicator is provided for educational and informational purposes only. It is not financial advice and should not be construed as a recommendation to buy, sell, or hold any financial instrument. Trading involves significant risk of loss and is not suitable for all investors. Past performance is not indicative of future results.
Higher Timeframe High & Low [ChartPrime]The Higher Timeframe High & Low Indicator plots key levels (high, low, and average price) from a higher timeframe onto the current chart, aiding traders in identifying significant support and resistance zones.
The indicator also detects and labels breakout points and can display trend directions based on these higher timeframe levels breakout points.
Key Features:
◆ Higher Timeframe Levels:
Plots the high, low, and average price from a selected higher timeframe onto the current chart.
Extends these levels into the future for better visualization.
◆ Breakout Detection:
Identifies and labels breakouts above the higher timeframe high or below the higher timeframe low.
Breakout points are clearly marked with labels indicating "High Break" or "Low Break" with timeframe mark.
If the following break out type is the same that previous, it does not marked by labels, but still marked by bar color.
◆ Trend Visualization:
Optionally displays trend direction by changing bar colors and line styles based on breakout conditions.
Trend indication helps in identifying bullish or bearish market conditions.
◆ Support and Resistance Indication:
Marks support and resistance points with '◆' symbols when the current timeframe's high or low interacts with the higher timeframe's levels.
◆ Period separation:
Background color changes to indicate period separation if enabled.
◆ Inputs:
Extension to the right of High and Low: Sets the number of bars to extend the high and low lines into the future.
Timeframe: Selects the higher timeframe (e.g., Daily) to use for plotting high and low levels.
Period Separator: Toggles the visual separator for periods.
Show Trend?: Toggles the trend visualization, changing bar colors and plot styles based on breakouts.
Show Breakout Labels?: Toggles the Breakout Labels visualization.
Indicator Logic:
Historical vs. Real-Time Bars: Adjusts values based on whether the bar is historical or real-time to ensure accurate plotting.
High and Low Prices: Retrieves the high and low prices from the selected higher timeframe.
Breakout Conditions: Determines if the current price has crossed above the higher timeframe high (high break) or below the higher timeframe low (low break).
Color and Trend Logic: Adjusts colors and checks for breakouts to avoid multiple labels and indicate trend direction.
Usage Notes:
This indicator is ideal for traders looking to integrate multi-timeframe analysis into their strategy.
The higher timeframe levels act as significant support and resistance zones, helping traders identify potential reversal or continuation points.
The breakout labels and trend visualization provide additional context for trading decisions, indicating when the price has breached key levels and is likely to continue in that direction.
This indicator enhances chart analysis by providing clear, visual cues from higher timeframe data, helping traders make more informed decisions based on a broader market perspective.
ORB Algo | Flux Charts💎 GENERAL OVERVIEW
Introducing our new ORB Algo indicator! ORB stands for "Opening Range Breakout" which is a common trading strategy. The indicator can analyze the market trend in the current session and give "Buy / Sell", "Take Profit" and "Stop Loss" signals. For more information about the analyzing process of the indicator, you can read "How Does It Work ?" section of the description.
Features of the new ORB Algo indicator :
Buy & Sell Signals
Up To 3 Take Profit Signals
Stop-Loss Signals
Alerts for Buy / Sell, Take-Profit and Stop-Loss
Customizable Algoritm
Session Dashboard
Backtesting Dashboard
📌 HOW DOES IT WORK ?
This indicator works best in 1-minute timeframe. The idea is that the trend of the current session can be forecasted by analyzing the market for a while after the session starts. However, each market has it's own dynamics and the algorithm will need fine-tuning to get the best performance possible. So, we've implemented a "Backtesting Dashboard" that shows the past performance of the algorithm in the current ticker with your current settings. Always keep in mind that past performance does not guarantee future results.
Here are the steps of the algorithm explained briefly :
1. The algorithm follows and analyzes the first 30 minutes (can be adjusted) of the session.
2. Then, algorithm checks for breakouts of the opening range's high or low.
3. If a breakout happens in a bullish or a bearish direction, the algorithm will now check for retests of the breakout. Depending on the sensitivity setting, there must be 0 / 1 / 2 / 3 failed retests for the breakout to be considered as reliable.
4. If the breakout is reliable, the algorithm will give an entry signal.
5. After the position entry, algorithm will now wait for Take-Profit or Stop-Loss zones and signal if any of them occur.
If you wonder how does the indicator find Take-Profit & Stop-Loss zones, you can check the "Settings" section of the description.
🚩UNIQUENESS
While there are indicators that show the opening range of the session, they come short with features like indicating breakouts, entries, and Take-Profit & Stop-Loss zones. We are also aware of that different stock markets have different dynamics, and tuning the algorithm for different markets is really important for better results, so we decided to make the algorithm fully customizable. Besides all that, our indicator contains a detailed backtesting dashboard, so you can see past performance of the algorithm in the current ticker. While past performance does not yield any guarantee for future results, we believe that a backtesting dashboard is necessary for tuning the algorithm. Another strength of this indicator is that there are multiple options for detection of Take-Profit and Stop-Loss zones, which the trader can select one of their liking.
⚙️SETTINGS
Keep in mind that best chart timeframe for this indicator to work is the 1-minute timeframe.
TP = Take-Profit
SL = Stop-Loss
EMA = Exponential Moving Average
OR = Opening Range
ATR = Average True Range
1. Algorithm
ORB Timeframe -> This setting determines the timeframe that the algorithm will analyze the market after a new session begins before giving any signals. It's important to experiment with this setting and find the best option that suits the current ticker for the best performance. More volatile stocks will often require this setting to be larger, while more stabilized stocks may have this setting shorter.
Sensitivity -> This setting determines how much failed retests are needed to take a position entry. Higher senstivity means that less retests are needed to consider the breakout as reliable. If you think that the current ticker makes strong movements in a bullish & bearish direction after a breakout, you should set this setting higher. If you think the opposite, meaning that the ticker does not decide the trend right after a breakout, this setting show be lower.
(High = 0 Retests, Medium = 1 Retest, Low = 2 Retests, Lowest = 3 Retests)
Breakout Condition -> The condition for the algorithm to detect breakouts.
Close = Bar needs to close higher than the OR High Line in a bullish breakout, or lower than the OR Low Line in a bearish breakout. EMA = The EMA of the bar must be higher / lower than OR Lines instead of the close price.
TP Method -> The method for the algorithm to use when determining TP zones.
Dynamic = This TP method essentially tries to find the bar that price starts declining the current trend and going to the other direction, and puts a TP zone there. To achieve this, it uses an EMA line, and when the close price of a bar crosses the EMA line, It's a TP spot.
ATR = In this TP method, instead of a dynamic approach the TP zones are pre-determined using the ATR of the entry bar. This option is generally for traders who just want to know their TP spots beforehand while trading. Selecting this option will also show TP zones at the ORB Dashboard.
"Dynamic" option generally performs better, while the "ATR" method is safer to use.
EMA Length -> This setting determines the length of the EMA line used in "Dynamic TP method" and "EMA Breakout Condition". This is completely up to the trader's choice, though the default option should generally perform well. You might want to experiment with this setting and find the optimal length for the current ticker.
Stop-Loss -> Algorithm will place the Stop-Loss zone using setting.
Safer = The SL zone will be placed closer to the OR High for a bullish entry, and closer to the OR Low for a bearish entry.
Balanced = The SL zone will be placed in the center of OR High & OR Low
Risky = The SL zone will be placed closer to the OR Low for a bullish entry, and closer to the OR High for a bearish entry.
Adaptive SL -> This option only takes effect if the first TP zone is hit.
Enabled = After the 1st TP zone is hit, the SL zone will be moved to the entry price, essentially making the position risk-free.
Disabled = The SL zone will never change.
2. ORB Dashboard
ORB Dashboard shows the information about the current session.
3. ORB Backtesting
ORB Backtesting Dashboard allows you to see past performance of the algorithm in the current ticker with current settings.
Total amount of days that can be backtested depends on your TV subscription.
Backtesting Exit Ratios -> You can select how much of percent your entry will be closed at any TP zone while backtesting. For example, %90, %5, %5 means that %90 of the position will be closed at the first TP zone, %5 of it will be closed at the 2nd TP zone, and %5 of it will be closed at the last TP zone.
ORB With Buffer, Target & Stop LossThe "ORB With Buffer" is a comprehensive technical analysis tool designed to identify, plot, and visualize key levels associated with price breakouts. It offers a dynamic representation of breakout zones, buffer areas, target levels, and stop-loss levels on both sides of the market.
Key Features:
ORB Levels (Opening Range Breakout):
The indicator identifies and plots the Opening Range Breakout levels, marking the high and low points of the initial trading period. In our case the ORB range is locked to 15 Minutes irrespective of the chart's timeframe.
Buffer Areas for Breakout:
Buffer zones are displayed around the ORB levels, representing a range where traders cant wait to join the direction to counter fake ORB breakouts
Targets:
The indicator calculates and visualizes target levels. Approximately 1% of instrument's price from entry point
Stop Loss Levels:
Stop-loss levels are indicated on both sides of the market, offering traders a clear reference point to manage risk.
BreakoutTrendFollowingINFO:
The "BreakoutTrendFollowing" indicator is a comprehensive trading system designed for trend-following in various market environments. It combines multiple technical indicators, including Moving Averages (MA), MACD, and RSI,
along with volume analysis and breakout detection from consolidation, to identify potential entry points in trending markets. This strategy is particularly effective for assets that exhibit strong trends and significant price movements.
Note that using the consolidation filter reduces the amount of entries the strategy detects significantly, and needs to be used if we want to have an increased confidence in the trend via breakout.
However, the strategy can be easily transformed to various only trend-following strategies, by applying different filters and configurations.
The indicator can be used to connect to the Signal input of the TTS (TempalteTradingStrategy) by jason5480 in order to backtest it, thus effectively turning it into a strategy (instructions below in TTS CONNECTIVITY section)
DETAILS:
The strategy's core is built upon several key components:
Moving Average (MA): Used to determine the general trend direction. The strategy checks if the price is above the selected MA type and length.
MACD Filter: Analyzes the relationship between two moving averages to confirm the trend's momentum.
Consolidation Detection: Identifies periods of price consolidation and triggers trades on breakouts from these ranges.
Volume Analysis: Assesses trading volume to confirm the strength and validity of the breakout.
RSI: Used to avoid overbought conditions, ensuring trades are entered in favorable market situations.
Wick filters: make sure there is not a long wick that indicates selling pressure from above
The strategy generates buy signals when several conditions are met concurrently (each one of them can be individually enabled/disabled)"
The price is above the selected MA.
A breakout occurs from a configurable consolidation range.
The MACD line is above the signal line, indicating bullish momentum.
The RSI is below the overbought threshold.
There's an increase in trading volume, confirming the breakout's strength.
Currently the strategy fires SL signals, as the approach is to check for loss of momentum - i.e. crossunder of the MACD line and signal line, but that is to everyone to determine the exit conditions.
The buy and SL signals are set on the chart using green or orange triangles on the below/above the price action.
SETTINGS:
Users can customize various parameters, including MA type and period, MACD settings, consolidation length, and volume increase percentage. The strategy is equipped with alert conditions for both entry (buy signals) and exit (set stop loss) points, facilitating both manual and automated trading.
Each one of the technical indicators, as well as the consilidation range and breakout/wick settings can be configured and enabled/disabled individually.
Please thoroughly review the available settings of the script, but here is an outline of the most important ones:
Use bar wicks (instead of open/close) - the ref_high/low will be taken based on the bar wicks, rather than the open/close when determining the breakout and MA
Enter position only on green candles - additional filters to make sure that we enter only on strong momentum
MA Filter: (enable, source, type, length) - general settings for MA filter to be checked against the stock price (close or upper wick)
MACD Filter: (enable, source, Osc MA type, Signal MA type, Fast MA length, Slow MA length, Low MACD Hist) - detailed settings for fine MACD tuning
Consolidation:
Consolidation Type: we have two different ways of detecting the consolidation, note the types below.
CONSOLIDATION_BASIC - consolidation areas by looking for the pivot point of a trend and counts the number of bars that have not broken the consolidation high/low levels.
CONSOLIDATIO_RANGE_PERCENT - identifies consolidation by comparing the range between the highest and lowest price points over a specified period.
So in summary the CONSOLIDATIO_RANGE_PERCENT uses a percentage-based range to define consolidation, while CONSOLIDATION_BASIC uses a count of bars within a high-low range to establish consolidation.
Thus the former is more focused on the tightness of the price range, whereas the latter emphasizes the duration of the consolidation phase.
The CONSOLIDATIO_RANGE_PERCENT might be more sensitive to recent price movements and suitable for shorter-term analysis, while CONSOLIDATION_BASIC could be better for identifying longer-term consolidation patterns.
Min consolidation length - applicable for CONSOLIDATION_BASIC case, the min number of bars for the price to be in the range to consider consolidation
Consolidation Loopback period - applicable for CONSOLIDATION_BASIC case, the loopback number of bars to look for consolidation
Consolidation Range percent - applicable for CONSOLIDATIO_RANGE_PERCENT, the percent between the high and low in the range to consider consolidation
Plot consolidation - enables plotting of the consolidation (only for debug purposes)
Breakout: (enable, low, high) - the definition of the breakout from the previous consolidation range, the price should be between to determine the breakout as successfull
Upper wick: (enable, percent) - defines the percent of the upper wick compared to the whole candle to allow breakout (if the wick is too big part of the candle we can consider entering the position riskier)
RSI: (enable, length, overbought) - general settings for RSI TA
Volume (enbale, percentage increase, average volume filter en, loopback bars) - percentage of increase of the volume to consider for a breakout. There are two modes - percentage increase compared to the previous bar, or percentage against the average volume for the last loopback bars.
Note that there are many different configuration that you can play with, and I believe this is the strength of the strategy, as it can provide a single solution for different cases and scenarios.
My advice is to try and play with the different options for different markets based on the approach you want to implement and try turning features on/off and tuning them further.
TTS SETTINGS (NEEDED IF USED TO BACKTEST WITH TTS):
The TempalteTradingStrategy is a strategy script developed in Pine by jason5480, which I recommend for quick turn-around of testing different ideas on a proven and tested framework
I cannot give enough credit to the developer for the efforts put in building of the infrastructure, so I advice everyone that wants to use it first to get familiar with the concept and by checking
by checking jason5480's profile www.tradingview.com
The TTS itself is extremely functional and have a lot of properties, so its functionality is beyond the scope of the current script -
Again, I strongly recommend to be thoroughly explored by everyone that plans on using it.
In the nutshell it is a script that can be feed with buy/sell signals from an external indicator script and based on many configuration options it can determine how to execute the trades.
The TTS has many settings that can be applied, so below I will cover only the ones that differ from the default ones, at least according to my testing - do your own research, you may find something even better :)
The current/latest version that I've been using as of writing and testing this script is TTSv48
Settings which differ from the default ones:
Deal Conditions Mode - External (take enter/exit conditions from an external script)
🔌Signal 🛈➡ - BreakoutTrendFollowing: 🔌Signal to TTS (this is the output from the indicator script, according to the TTS convention)
Order Type - STOP (perform stop order)
Distance Method - HHLL (HigherHighLowerLow - in order to set the SL according to the strategy definition from above)
The next are just personal preferences, you can feel free to experiment according to your trading style
Take Profit Targets - 0 (either 100% in or out, no incremental stepping in or out of positions)
Dist Mul|Len Long/Short- 10 (make sure that we don't close on profitable trades by any reason)
Quantity Method - EQUITY (personal backtesting preference is to consider each backtest as a separate portfolio, so determine the position size by 100% of the allocated equity size)
Equity % - 100 (note above)
Adaptive Candlestick Pattern Recognition System█ INTRODUCTION
Nearly three years in the making, intermittently worked on in the few spare hours of weekends and time off, this is a passion project I undertook to flesh out my skills as a computer programmer. This script currently recognizes 85 different candlestick patterns ranging from one to five candles in length. It also performs statistical analysis on those patterns to determine prior performance and changes the coloration of those patterns based on that performance. In searching TradingView's script library for scripts similar to this one, I had found a handful. However, when I reviewed the ones which were open source, I did not see many that truly captured the power of PineScrypt or leveraged the way it works to create efficient and reliable code; one of the main driving factors for releasing this 5,000+ line behemoth open sourced.
Please take the time to review this description and source code to utilize this script to its fullest potential.
█ CONCEPTS
This script covers the following topics: Candlestick Theory, Trend Direction, Higher Timeframes, Price Analysis, Statistic Analysis, and Code Design.
Candlestick Theory - This script focuses solely on the concept of Candlestick Theory: arrangements of candlesticks may form certain patterns that can potentially influence the future price action of assets which experience those patterns. A full list of patterns (grouped by pattern length) will be in its own section of this description. This script contains two modes of operation for identifying candlestick patterns, 'CLASSIC' and 'BREAKOUT'.
CLASSIC: In this mode, candlestick patterns will be identified whenever they appear. The user has a wide variety of inputs to manipulate that can change how certain patterns are identified and even enable alerts to notify themselves when these patterns appear. Each pattern selected to appear will have their Profit or Loss (P/L) calculated starting from the first candle open succeeding the pattern to a candle close specified some number of candles ahead. These P/L calculations are then collected for each pattern, and split among partitions of prior price action of the asset the script is currently applied to (more on that in Higher Timeframes ).
BREAKOUT: In this mode, P/L calculations are held off until a breakout direction has been confirmed. The user may specify the number of candles ahead of a pattern's appearance (from one to five) that a pattern has to confirm a breakout in either an upward or downward direction. A breakout is constituted when there is a candle following the appearance of the pattern that closes above/at the highest high of the pattern, or below/at its lowest low. Only then will percent return calculations be performed for the pattern that's been identified, and these percent returns are broken up not only by the partition they had appeared in but also by the breakout direction itself. Patterns which do not breakout in either direction will be ignored, along with having their labels deleted.
In both of these modes, patterns may be overridden. Overrides occur when a smaller pattern has been detected and ends up becoming one (or more) of the candles of a larger pattern. A key example of this would be the Bearish Engulfing and the Three Outside Down patterns. A Three Outside Down necessitates a Bearish Engulfing as the first two candles in it, while the third candle closes lower. When a pattern is overridden, the return for that pattern will no longer be tracked. Overrides will not occur if the tail end of a larger pattern occurs at the beginning of a smaller pattern (Ex: a Bullish Engulfing occurs on the third candle of a Three Outside Down and the candle immediately following that pattern, the Three Outside Down pattern will not be overridden).
Important Functionality Note: These patterns are only searched for at the most recently closed candle, not on the currently closing candle, which creates an offset of one for this script's execution. (SEE LIMITATIONS)
Trend Direction - Many of the patterns require a trend direction prior to their appearance. Noting TradingView's own publication of candlestick patterns, I utilize a similar method for determining trend direction. Moving Averages are used to determine which trend is currently taking place for candlestick patterns to be sought out. The user has access to two Moving Averages which they may individually modify the following for each: Moving Average type (list of 9), their length, width, source values, and all variables associated with two special Moving Averages (Least Squares and Arnaud Legoux).
There are 3 settings for these Moving Averages, the first two switch between the two Moving Averages, and the third uses both. When using individual Moving Averages, the user may select a 'price point' to compare against the Moving Average (default is close). This price point is compared to the Moving Average at the candles prior to the appearance of candle patterns. Meaning: The close compared to the Moving Average two candles behind determines the trend direction used for Candlestick Analysis of one candle patterns; three candles behind for two candle patterns and so on. If the selected price point is above the Moving Average, then the current trend is an 'uptrend', 'downtrend' otherwise.
The third setting using both Moving Averages will compare the lengths of each, and trend direction is determined by the shorter Moving Average compared to the longer one. If the shorter Moving Average is above the longer, then the current trend is an 'uptrend', 'downtrend' otherwise. If the lengths of the Moving Averages are the same, or both Moving Averages are Symmetrical, then MA1 will be used by default. (SEE LIMITATIONS)
Higher Timeframes - This script employs the use of Higher Timeframes with a few request.security calls. The purpose of these calls is strictly for the partitioning of an asset's chart, splitting the returns of patterns into three separate groups. The four inputs in control of this partitioning split the chart based on: A given resolution to grab values from, the length of time in that resolution, and 'Upper' and 'Lower Limits' which split the trading range provided by that length of time in that resolution that forms three separate groups. The default values for these four inputs will partition the current chart by the yearly high-low range where: the 'Upper' partition is the top 20% of that trading range, the 'Middle' partition is 80% to 33% of the trading range, and the 'Lower' partition covers the trading range within 33% of the yearly low.
Patterns which are identified by this script will have their returns grouped together based on which partition they had appeared in. For example, a Bullish Engulfing which occurs within a third of the yearly low will have its return placed separately from a Bullish Engulfing that occurred within 20% of the yearly high. The idea is that certain patterns may perform better or worse depending on when they had occurred during an asset's trading range.
Price Analysis - Price Analysis is a major part of this script's functionality as it can fundamentally change how patterns are shown to the user. The settings related to Price Analysis include setting the number of candles ahead of a pattern's appearance to determine the return of that pattern. In 'BREAKOUT' mode, an additional setting allows the user to specify where the P/L calculation will begin for a pattern that had appeared and confirmed. (SEE LIMITATIONS)
The calculation for percent returns of patterns is illustrated with the following pseudo-code (CLASSIC mode, this is a simplified version of the actual code):
type patternObj
int ID
int partition
type returnsArray
float returns
// No pattern found = na returned
patternObj TEST_VAL = f_FindPattern()
priorTestVal = TEST_VAL
if not na( priorTestVal )
pnlMatrixRow = priorTestVal.ID
pnlMatrixCol = priorTestVal.partition
matrixReturn = matrix.get(PERCENT_RETURNS, pnlMatrixRow, pnlMatrixCol)
percentReturn = ( (close - open ) / open ) * 100%
array.push(matrixReturn.returns, percentReturn)
Statistic Analysis - This script uses Pine's built-in array functions to conduct the Statistic Analysis for patterns. When a pattern is found and its P/L calculation is complete, its return is added to a 'Return Array' User-Defined-Type that contains numerous fields which retain information on a pattern's prior performance. The actual UDT is as follows:
type returnArray
float returns = na
int size = 0
float avg = 0
float median = 0
float stdDev = 0
int polarities = na
All values within this UDT will be updated when a return is added to it (some based on user input). The array.avg , array.median and array.stdev will be ran and saved into their respective fields after a return is placed in the 'returns' array. The 'polarities' integer array is what will be changed based on user input. The user specifies two different percentages that declare 'Positive' and 'Negative' returns for patterns. When a pattern returns above, below, or in between these two values, different indices of this array will be incremented to reflect the kind of return that pattern had just experienced.
These values (plus the full name, partition the pattern occurred in, and a 95% confidence interval of expected returns) will be displayed to the user on the tooltip of the labels that identify patterns. Simply scroll over the pattern label to view each of these values.
Code Design - Overall this script is as much of an art piece as it is functional. Its design features numerous depictions of ASCII Art that illustrate what is being attempted by the functions that identify patterns, and an incalculable amount of time was spent rewriting portions of code to improve its efficiency. Admittedly, this final version is nearly 1,000 lines shorter than a previous version (one which took nearly 30 seconds after compilation to run, and didn't do nearly half of what this version does). The use of UDTs, especially the 'patternObj' one crafted and redesigned from the Hikkake Hunter 2.0 I published last month, played a significant role in making this script run efficiently. There is a slight rigidity in some of this code mainly around pattern IDs which are responsible for displaying the abbreviation for patterns (as well as the full names under the tooltips, and the matrix row position for holding returns), as each is hard-coded to correspond to that pattern.
However, one thing I would like to mention is the extensive use of global variables for pattern detection. Many scripts I had looked over for ideas on how to identify candlestick patterns had the same idea; break the pattern into a set of logical 'true/false' statements derived from historically referencing candle OHLC values. Some scripts which identified upwards of 20 to 30 patterns would reference Pine's built-in OHLC values for each pattern individually, potentially requesting information from TradingView's servers numerous times that could easily be saved into a variable for re-use and only requested once per candle (what this script does).
█ FEATURES
This script features a massive amount of switches, options, floating point values, detection settings, and methods for identifying/tailoring pattern appearances. All modifiable inputs for patterns are grouped together based on the number of candles they contain. Other inputs (like those for statistics settings and coloration) are grouped separately and presented in a way I believe makes the most sense.
Not mentioned above is the coloration settings. One of the aims of this script was to make patterns visually signify their behavior to the user when they are identified. Each pattern has its own collection of returns which are analyzed and compared to the inputs of the user. The user may choose the colors for bullish, neutral, and bearish patterns. They may also choose the minimum number of patterns needed to occur before assigning a color to that pattern based on its behavior; a color for patterns that have not met this minimum number of occurrences yet, and a color for patterns that are still processing in BREAKOUT mode.
There are also an additional three settings which alter the color scheme for patterns: Statistic Point-of-Reference, Adaptive coloring, and Hard Limiting. The Statistic Point-of-Reference decides which value (average or median) will be compared against the 'Negative' and 'Positive Return Tolerance'(s) to guide the coloration of the patterns (or for Adaptive Coloring, the generation of a color gradient).
Adaptive Coloring will have this script produce a gradient that patterns will be colored along. The more bullish or bearish a pattern is, the further along the gradient those patterns will be colored starting from the 'Neutral' color (hard lined at the value of 0%: values above this will be colored bullish, bearish otherwise). When Adaptive Coloring is enabled, this script will request the highest and lowest values (these being the Statistic Point-of-Reference) from the matrix containing all returns and rewrite global variables tied to the negative and positive return tolerances. This means that all patterns identified will be compared with each other to determine bullish/bearishness in Adaptive Coloring.
Hard Limiting will prevent these global variables from being rewritten, so patterns whose Statistic Point-of-Reference exceed the return tolerances will be fully colored the bullish or bearish colors instead of a generated gradient color. (SEE LIMITATIONS)
Apart from the Candle Detection Modes (CLASSIC and BREAKOUT), there's an additional two inputs which modify how this script behaves grouped under a "MASTER DETECTION SETTINGS" tab. These two "Pattern Detection Settings" are 'SWITCHBOARD' and 'TARGET MODE'.
SWITCHBOARD: Every single pattern has a switch that is associated with its detection. When a switch is enabled, the code which searches for that pattern will be run. With the Pattern Detection Setting set to this, all patterns that have their switches enabled will be sought out and shown.
TARGET MODE: There is an additional setting which operates on top of 'SWITCHBOARD' that singles out an individual pattern the user specifies through a drop down list. The names of every pattern recognized by this script will be present along with an identifier that shows the number of candles in that pattern (Ex: " (# candles)"). All patterns enabled in the switchboard will still have their returns measured, but only the pattern selected from the "Target Pattern" list will be shown. (SEE LIMITATIONS)
The vast majority of other features are held in the one, two, and three candle pattern sections.
For one-candle patterns, there are:
3 — Settings related to defining 'Tall' candles:
The number of candles to sample for previous candle-size averages.
The type of comparison done for 'Tall' Candles: Settings are 'RANGE' and 'BODY'.
The 'Tolerance' for tall candles, specifying what percent of the 'average' size candles must exceed to be considered 'Tall'.
When 'Tall Candle Setting' is set to RANGE, the high-low ranges are what the current candle range will be compared against to determine if a candle is 'Tall'. Otherwise the candle bodies (absolute value of the close - open) will be compared instead. (SEE LIMITATIONS)
Hammer Tolerance - How large a 'discarded wick' may be before it disqualifies a candle from being a 'Hammer'.
Discarded wicks are compared to the size of the Hammer's candle body and are dependent upon the body's center position. Hammer bodies closer to the high of the candle will have the upper wick used as its 'discarded wick', otherwise the lower wick is used.
9 — Doji Settings, some pulled from an old Doji Hunter I made a while back:
Doji Tolerance - How large the body of a candle may be compared to the range to be considered a 'Doji'.
Ignore N/S Dojis - Turns off Trend Direction for non-special Dojis.
GS/DF Doji Settings - 2 Inputs that enable and specify how large wicks that typically disqualify Dojis from being 'Gravestone' or 'Dragonfly' Dojis may be.
4 Settings related to 'Long Wick Doji' candles detailed below.
A Tolerance for 'Rickshaw Man' Dojis specifying how close the center of the body must be to the range to be valid.
The 4 settings the user may modify for 'Long Legged' Dojis are: A Sample Base for determining the previous average of wicks, a Sample Length specifying how far back to look for these averages, a Behavior Setting to define how 'Long Legged' Dojis are recognized, and a tolerance to specify how large in comparison to the prior wicks a Doji's wicks must be to be considered 'Long Legged'.
The 'Sample Base' list has two settings:
RANGE: The wicks of prior candles are compared to their candle ranges and the 'wick averages' will be what the average percent of ranges were in the sample.
WICKS: The size of the wicks themselves are averaged and returned for comparing against the current wicks of a Doji.
The 'Behavior' list has three settings:
ONE: Only one wick length needs to exceed the average by the tolerance for a Doji to be considered 'Long Legged'.
BOTH: Both wick lengths need to exceed the average of the tolerance of their respective wicks (upper wicks are compared to upper wicks, lower wicks compared to lower) to be considered 'Long Legged'.
AVG: Both wicks and the averages of the previous wicks are added together, divided by two, and compared. If the 'average' of the current wicks exceeds this combined average of prior wicks by the tolerance, then this would constitute a valid 'Long Legged' Doji. (For Dojis in general - SEE LIMITATIONS)
The final input is one related to candle patterns which require a Marubozu candle in them. The two settings for this input are 'INCLUSIVE' and 'EXCLUSIVE'. If INCLUSIVE is selected, any opening/closing variant of Marubozu candles will be allowed in the patterns that require them.
For two-candle patterns, there are:
2 — Settings which define 'Engulfing' parameters:
Engulfing Setting - Two options, RANGE or BODY which sets up how one candle may 'engulf' the previous.
Inclusive Engulfing - Boolean which enables if 'engulfing' candles can be equal to the values needed to 'engulf' the prior candle.
For the 'Engulfing Setting':
RANGE: If the second candle's high-low range completely covers the high-low range of the prior candle, this is recognized as 'engulfing'.
BODY: If the second candle's open-close completely covers the open-close of the previous candle, this is recognized as 'engulfing'. (SEE LIMITATIONS)
4 — Booleans specifying different settings for a few patterns:
One which allows for 'opens within body' patterns to let the second candle's open/close values match the prior candles' open/close.
One which forces 'Kicking' patterns to have a gap if the Marubozu setting is set to 'INCLUSIVE'.
And Two which dictate if the individual candles in 'Stomach' patterns need to be 'Tall'.
8 — Floating point values which affect 11 different patterns:
One which determines the distance the close of the first candle in a 'Hammer Inverted' pattern must be to the low to be considered valid.
One which affects how close the opens/closes need to be for all 'Lines' patterns (Bull/Bear Meeting/Separating Lines).
One that allows some leeway with the 'Matching Low' pattern (gives a small range the second candle close may be within instead of needing to match the previous close).
Three tolerances for On Neck/In Neck patterns (2 and 1 respectively).
A tolerance for the Thrusting pattern which give a range the close the second candle may be between the midpoint and close of the first to be considered 'valid'.
A tolerance for the two Tweezers patterns that specifies how close the highs and lows of the patterns need to be to each other to be 'valid'.
The first On Neck tolerance specifies how large the lower wick of the first candle may be (as a % of that candle's range) before the pattern is invalidated. The second tolerance specifies how far up the lower wick to the close the second candle's close may be for this pattern. The third tolerance for the In Neck pattern determines how far into the body of the first candle the second may close to be 'valid'.
For the remaining patterns (3, 4, and 5 candles), there are:
3 — Settings for the Deliberation pattern:
A boolean which forces the open of the third candle to gap above the close of the second.
A tolerance which changes the proximity of the third candle's open to the second candle's close in this pattern.
A tolerance that sets the maximum size the third candle may be compared to the average of the first two candles.
One boolean value for the Two Crows patterns (standard and Upside Gapping) that forces the first two candles in the patterns to completely gap if disabled (candle 1's close < candle 2's low).
10 — Floating point values for the remaining patterns:
One tolerance for defining how much the size of each candle in the Identical Black Crows pattern may deviate from the average of themselves to be considered valid.
One tolerance for setting how close the opens/closes of certain three candle patterns may be to each other's opens/closes.*
Three floating point values that affect the Three Stars in the South pattern.
One tolerance for the Side-by-Side patterns - looks at the second and third candle closes.
One tolerance for the Stick Sandwich pattern - looks at the first and third candle closes.
A floating value that sizes the Concealing Baby Swallow pattern's 3rd candle wick.
Two values for the Ladder Bottom pattern which define a range that the third candle's wick size may be.
* This affects the Three Black Crows (non-identical) and Three White Soldiers patterns, each require the opens and closes of every candle to be near each other.
The first tolerance of the Three Stars in the South pattern affects the first candle body's center position, and defines where it must be above to be considered valid. The second tolerance specifies how close the second candle must be to this same position, as well as the deviation the ratio the candle body to its range may be in comparison to the first candle. The third restricts how large the second candle range may be in comparison to the first (prevents this pattern from being recognized if the second candle is similar to the first but larger).
The last two floating point values define upper and lower limits to the wick size of a Ladder Bottom's fourth candle to be considered valid.
█ HOW TO USE
While there are many moving parts to this script, I attempted to set the default values with what I believed may help identify the most patterns within reasonable definitions. When this script is applied to a chart, the Candle Detection Mode (along with the BREAKOUT settings) and all candle switches must be confirmed before patterns are displayed. All switches are on by default, so this gives the user an opportunity to pick which patterns to identify first before playing around in the settings.
All of the settings/inputs described above are meant for experimentation. I encourage the user to tweak these values at will to find which set ups work best for whichever charts they decide to apply these patterns to.
Refer to the patterns themselves during experimentation. The statistic information provided on the tooltips of the patterns are meant to help guide input decisions. The breadth of candlestick theory is deep, and this was an attempt at capturing what I could in its sea of information.
█ LIMITATIONS
DISCLAIMER: While it may seem a bit paradoxical that this script aims to use past performance to potentially measure future results, past performance is not indicative of future results . Markets are highly adaptive and often unpredictable. This script is meant as an informational tool to show how patterns may behave. There is no guarantee that confidence intervals (or any other metric measured with this script) are accurate to the performance of patterns; caution must be exercised with all patterns identified regardless of how much information regarding prior performance is available.
Candlestick Theory - In the name, Candlestick Theory is a theory , and all theories come with their own limits. Some patterns identified by this script may be completely useless/unprofitable/unpredictable regardless of whatever combination of settings are used to identify them. However, if I truly believed this theory had no merit, this script would not exist. It is important to understand that this is a tool meant to be utilized with an array of others to procure positive (or negative, looking at you, short sellers ) results when navigating the complex world of finance.
To address the functionality note however, this script has an offset of 1 by default. Patterns will not be identified on the currently closing candle, only on the candle which has most recently closed. Attempting to have this script do both (offset by one or identify on close) lead to more trouble than it was worth. I personally just want users to be aware that patterns will not be identified immediately when they appear.
Trend Direction - Moving Averages - There is a small quirk with how MA settings will be adjusted if the user inputs two moving averages of the same length when the "MA Setting" is set to 'BOTH'. If Moving Averages have the same length, this script will default to only using MA 1 regardless of if the types of Moving Averages are different . I will experiment in the future to alleviate/reduce this restriction.
Price Analysis - BREAKOUT mode - With how identifying patterns with a look-ahead confirmation works, the percent returns for patterns that break out in either direction will be calculated on the same candle regardless of if P/L Offset is set to 'FROM CONFIRMATION' or 'FROM APPEARANCE'. This same issue is present in the Hikkake Hunter script mentioned earlier. This does not mean the P/L calculations are incorrect , the offset for the calculation is set by the number of candles required to confirm the pattern if 'FROM APPEARANCE' is selected. It just means that these two different P/L calculations will complete at the same time independent of the setting that's been selected.
Adaptive Coloring/Hard Limiting - Hard Limiting is only used with Adaptive Coloring and has no effect outside of it. If Hard Limiting is used, it is recommended to increase the 'Positive' and 'Negative' return tolerance values as a pattern's bullish/bearishness may be disproportionately represented with the gradient generated under a hard limit.
TARGET MODE - This mode will break rules regarding patterns that are overridden on purpose. If a pattern selected in TARGET mode would have otherwise been absorbed by a larger pattern, it will have that pattern's percent return calculated; potentially leading to duplicate returns being included in the matrix of all returns recognized by this script.
'Tall' Candle Setting - This is a wide-reaching setting, as approximately 30 different patterns or so rely on defining 'Tall' candles. Changing how 'Tall' candles are defined whether by the tolerance value those candles need to exceed or by the values of the candle used for the baseline comparison (RANGE/BODY) can wildly affect how this script functions under certain conditions. Refer to the tooltip of these settings for more information on which specific patterns are affected by this.
Doji Settings - There are roughly 10 or so two to three candle patterns which have Dojis as a part of them. If all Dojis are disabled, it will prevent some of these larger patterns from being recognized. This is a dependency issue that I may address in the future.
'Engulfing' Setting - Functionally, the two 'Engulfing' settings are quite different. Because of this, the 'RANGE' setting may cause certain patterns that would otherwise be valid under textbook and online references/definitions to not be recognized as such (like the Upside Gap Two Crows or Three Outside down).
█ PATTERN LIST
This script recognizes 85 patterns upon initial release. I am open to adding additional patterns to it in the future and any comments/suggestions are appreciated. It recognizes:
15 — 1 Candle Patterns
4 Hammer type patterns: Regular Hammer, Takuri Line, Shooting Star, and Hanging Man
9 Doji Candles: Regular Dojis, Northern/Southern Dojis, Gravestone/Dragonfly Dojis, Gapping Up/Down Dojis, and Long-Legged/Rickshaw Man Dojis
White/Black Long Days
32 — 2 Candle Patterns
4 Engulfing type patterns: Bullish/Bearish Engulfing and Last Engulfing Top/Bottom
Dark Cloud Cover
Bullish/Bearish Doji Star patterns
Hammer Inverted
Bullish/Bearish Haramis + Cross variants
Homing Pigeon
Bullish/Bearish Kicking
4 Lines type patterns: Bullish/Bearish Meeting/Separating Lines
Matching Low
On/In Neck patterns
Piercing pattern
Shooting Star (2 Lines)
Above/Below Stomach patterns
Thrusting
Tweezers Top/Bottom patterns
Two Black Gapping
Rising/Falling Window patterns
29 — 3 Candle Patterns
Bullish/Bearish Abandoned Baby patterns
Advance Block
Collapsing Doji Star
Deliberation
Upside/Downside Gap Three Methods patterns
Three Inside/Outside Up/Down patterns (4 total)
Bullish/Bearish Side-by-Side patterns
Morning/Evening Star patterns + Doji variants
Stick Sandwich
Downside/Upside Tasuki Gap patterns
Three Black Crows + Identical variation
Three White Soldiers
Three Stars in the South
Bullish/Bearish Tri-Star patterns
Two Crows + Upside Gap variant
Unique Three River Bottom
3 — 4 Candle Patterns
Concealing Baby Swallow
Bullish/Bearish Three Line Strike patterns
6 — 5 Candle Patterns
Bullish/Bearish Breakaway patterns
Ladder Bottom
Mat Hold
Rising/Falling Three Methods patterns
█ WORKS CITED
Because of the amount of time needed to complete this script, I am unable to provide exact dates for when some of these references were used. I will also not provide every single reference, as citing a reference for each individual pattern and the place it was reviewed would lead to a bibliography larger than this script and its description combined. There were five major resources I used when building this script, one book, two websites (for various different reasons including patterns, moving averages, and various other articles of information), various scripts from TradingView's public library (including TradingView's own source code for *all* candle patterns ), and PineScrypt's reference manual.
Bulkowski, Thomas N. Encyclopedia of Candlestick Patterns . Hoboken, New Jersey: John Wiley & Sons Inc., 2008. E-book (google books).
Various. Numerous webpages. CandleScanner . 2023. online. Accessed 2020 - 2023.
Various. Numerous webpages. Investopedia . 2023. online. Accessed 2020 - 2023.
█ AKNOWLEDGEMENTS
I want to take the time here to thank all of my friends and family, both online and in real life, for the support they've given me over the last few years in this endeavor. My pets who tried their hardest to keep me from completing it. And work for the grit to continue pushing through until this script's completion.
This belongs to me just as much as it does anyone else. Whether you are an institutional trader, gold bug hedging against the dollar, retail ape who got in on a squeeze, or just parents trying to grow their retirement/save for the kids. This belongs to everyone.
Private Beta for new features to be tested can be found here .
Vires In Numeris
ICT Concepts [LuxAlgo]The ICT Concepts indicator regroups core concepts highlighted by trader and educator "The Inner Circle Trader" (ICT) into an all-in-one toolkit. Features include Market Structure (MSS & BOS), Order Blocks, Imbalances, Buyside/Sellside Liquidity, Displacements, ICT Killzones, and New Week/Day Opening Gaps.
🔶 SETTINGS
🔹 Mode
When Present is selected, only data of the latest 500 bars are used/visualized, except for NWOG/NDOG
🔹 Market Structure
Enable/disable Market Structure.
Length: will set the lookback period/sensitivity.
In Present Mode only the latest Market Structure trend will be shown, while in Historical Mode, previous trends will be shown as well:
You can toggle MSS/BOS separately and change the colors:
🔹 Displacement
Enable/disable Displacement.
🔹 Volume Imbalance
Enable/disable Volume Imbalance.
# Visible VI's: sets the amount of visible Volume Imbalances (max 100), color setting is placed at the side.
🔹 Order Blocks
Enable/disable Order Blocks.
Swing Lookback: Lookback period used for the detection of the swing points used to create order blocks.
Show Last Bullish OB: Number of the most recent bullish order/breaker blocks to display on the chart.
Show Last Bearish OB: Number of the most recent bearish order/breaker blocks to display on the chart.
Color settings.
Show Historical Polarity Changes: Allows users to see labels indicating where a swing high/low previously occurred within a breaker block.
Use Candle Body: Allows users to use candle bodies as order block areas instead of the full candle range.
Change in Order Blocks style:
🔹 Liquidity
Enable/disable Liquidity.
Margin: sets the sensitivity, 2 points are fairly equal when:
'point 1' < 'point 2' + (10 bar Average True Range / (10 / margin)) and
'point 1' > 'point 2' - (10 bar Average True Range / (10 / margin))
# Visible Liq. boxes: sets the amount of visible Liquidity boxes (max 50), this amount is for Sellside and Buyside boxes separately.
Colour settings.
Change in Liquidity style:
🔹 Fair Value Gaps
Enable/disable FVG's.
Balance Price Range: this is the overlap of latest bullish and bearish Fair Value Gaps.
By disabling Balance Price Range only FVGs will be shown.
Options: Choose whether you wish to see FVG or Implied Fair Value Gaps (this will impact Balance Price Range as well)
# Visible FVG's: sets the amount of visible FVG's (max 20, in the same direction).
Color settings.
Change in FVG style:
🔹 NWOG/NDOG
Enable/disable NWOG; color settings; amount of NWOG shown (max 50).
Enable/disable NDOG ; color settings; amount of NDOG shown (max 50).
🔹 Fibonacci
This tool connects the 2 most recent bullish/bearish (if applicable) features of your choice, provided they are enabled.
3 examples (FVG, BPR, OB):
Extend lines -> Enabled (example OB):
🔹 Killzones
Enable/disable all or the ones you need.
Time settings are coded in the corresponding time zones.
🔶 USAGE
By default, the indicator displays each feature relevant to the most recent price variations in order to avoid clutter on the chart & to provide a very similar experience to how a user would contruct ICT Concepts by hand.
Users can use the historical mode in the settings to see historical market structure/imbalances. The ICT Concepts indicator has various use cases, below we outline many examples of how a trader could find usage of the features together.
In the above image we can see price took out Sellside liquidity, filled two bearish FVGs, a market structure shift, which then led to a clean retest of a bullish FVG as a clean setup to target the order block above.
Price then fills the OB which creates a breaker level as seen in yellow.
Broken OBs can be useful for a trader using the ICT Concepts indicator as it marks a level where orders have now been filled, indicating a solidified level that has proved itself as an area of liquidity. In the image above we can see a trade setup using a broken bearish OB as a potential entry level.
We can see the New Week Opening Gap (NWOG) above was an optimal level to target considering price may tend to fill / react off of these levels according to ICT.
In the next image above, we have another example of various use cases where the ICT Concepts indicator hypothetically allow traders to find key levels & find optimal entry points using market structure.
In the image above we can see a bearish Market Structure Shift (MSS) is confirmed, indicating a potential trade setup for targeting the Balanced Price Range imbalance (BPR) below with a stop loss above the buyside liquidity.
Although what we are demonstrating here is a hindsight example, it shows the potential usage this toolkit gives you for creating trading plans based on ICT Concepts.
Same chart but playing out the history further we can see directly after price came down to the Sellside liquidity & swept below it...
Then by enabling IFVGs in the settings, we can see the IFVG retests alongside the Sellside & Buyside liquidity acting in confluence.
Which allows us to see a great bullish structure in the market with various key levels for potential entries.
Here we can see a potential bullish setup as price has taken out a previous Sellside liquidity zone and is now retesting a NWOG + Volume Imbalance.
Users also have the option to display Fibonacci retracements based on market structure, order blocks, and imbalance areas, which can help place limit/stop orders more effectively as well as finding optimal points of interest beyond what the primary ICT Concepts features can generate for a trader.
In the above image we can see the Fibonacci extension was selected to be based on the NWOG giving us some upside levels above the buyside liquidity.
🔶 DETAILS
Each feature within the ICT Concepts indicator is described in the sub sections below.
🔹 Market Structure
Market structure labels are constructed from price breaking a prior swing point. This allows a user to determine the current market trend based on the price action.
There are two types of Market Structure labels included:
Market Structure Shift (MSS)
Break Of Structure (BOS)
A MSS occurs when price breaks a swing low in an uptrend or a swing high in a downtrend, highlighting a potential reversal. This is often labeled as "CHoCH", but ICT specifies it as MSS.
On the other hand, BOS labels occur when price breaks a swing high in an uptrend or a swing low in a downtrend. The occurrence of these particular swing points is caused by retracements (inducements) that highlights liquidity hunting in lower timeframes.
🔹 Order Blocks
More significant market participants (institutions) with the ability of placing large orders in the market will generally place a sequence of individual trades spread out in time. This is referred as executing what is called a "meta-order".
Order blocks highlight the area where potential meta-orders are executed. Bullish order blocks are located near local bottoms in an uptrend while bearish order blocks are located near local tops in a downtrend.
When price mitigates (breaks out) an order block, a breaker block is confirmed. We can eventually expect price to trade back to this breaker block offering a new trade opportunity.
🔹 Buyside & Sellside Liquidity
Buyside / Sellside liquidity levels highlight price levels where market participants might place limit/stop orders.
Buyside liquidity levels will regroup the stoploss orders of short traders as well as limit orders of long traders, while Sellside liquidity levels will regroup the stoploss orders of long traders as well as limit orders of short traders.
These levels can play different roles. More informed market participants might view these levels as source of liquidity, and once liquidity over a specific level is reduced it will be found in another area.
🔹 Imbalances
Imbalances highlight disparities between the bid/ask, these can also be defined as inefficiencies, which would suggest that not all available information is reflected by the price and would as such provide potential trading opportunities.
It is common for price to "rebalance" and seek to come back to a previous imbalance area.
ICT highlights multiple imbalance formations:
Fair Value Gaps: A three candle formation where the candle shadows adjacent to the central candle do not overlap, this highlights a gap area.
Implied Fair Value Gaps: Unlike the fair value gap the implied fair value gap has candle shadows adjacent to the central candle overlapping. The gap area is constructed from the average between the respective shadow and the nearest extremity of their candle body.
Balanced Price Range: Balanced price ranges occur when a fair value gap overlaps a previous fair value gap, with the overlapping area resulting in the imbalance area.
Volume Imbalance: Volume imbalances highlight gaps between the opening price and closing price with existing trading activity (the low/high overlap the previous high/low).
Opening Gap: Unlike volume imbalances opening gaps highlight areas with no trading activity. The low/high does not reach previous high/low, highlighting a "void" area.
🔹 Displacement
Displacements are scenarios where price forms successive candles of the same sentiment (bullish/bearish) with large bodies and short shadows.
These can more technically be identified by positive auto correlation (a close to open change is more likely to be followed by a change of the same sign) as well as volatility clustering (large changes are followed by large changes).
Displacements can be the cause for the formation of imbalances as well as market structure, these can be caused by the full execution of a meta order.
🔹 Kill Zones
Killzones represent different time intervals that aims at offering optimal trade entries. Killzones include:
- New York Killzone (7:9 ET)
- London Open Killzone (2:5 ET)
- London Close Killzone (10:12 ET)
- Asian Killzone (20:00 ET)
🔶 Conclusion & Supplementary Material
This script aims to emulate how a trader would draw each of the covered features on their chart in the most precise representation to how it's actually taught by ICT directly.
There are many parallels between ICT Concepts and Smart Money Concepts that we released in 2022 which has a more general & simpler usage:
ICT Concepts, however, is more specifically aligned toward the community's interpretation of how to analyze price 'based on ICT', rather than displaying features to have a more classic interpretation for a technical analyst.
Lex_3CR_Functions_Library2Library "Lex_3CR_Functions_Library2"
This is a source code for a technical analysis library in Pine Script language,
designed to identify and mark Bullish and Bearish Three Candle Reversal (3CR) chart patterns.
The library provides three functions to be used in a trading algorithm.
The first function, Bull_3crMarker, adds a dashed line and label to a Bullish 3CR chart pattern, indicating the 3CR point.
The second function, Bear_3crMarker, adds a dashed line and label to a Bearish 3CR chart pattern.
The third function, Bull_3CRlogicals, checks for a Bullish 3CR pattern where the first candle's low is greater than the second candle's low and the second candle's low is less than the third candle's low.
If found, creates a line at the breakout point and a label at the fail point,
if specified. All functions take parameters such as the chart pattern's characteristics and output colors, labels, and markers.
Bull_3crMarker(bulllinearray, barnum, breakpoint, failpointB, failpoint, linecolorbull, bulllabelarray, labelcolor, textcolor, labelon)
Bull_3crMarker Adds a 3CR marker to a Bullish 3CR chart pattern
@description Adds a dashed line and label to a 3CR up chart pattern, indicating the 3CR (3 Candle Reversal) point.
Parameters:
bulllinearray (line )
barnum (int)
breakpoint (float)
failpointB (float )
failpoint (float)
linecolorbull (color)
bulllabelarray (label )
labelcolor (color)
textcolor (color)
labelon (bool)
Bear_3crMarker(bearlinearray, barnum, breakpoint, failpointB, failpoint, linecolorbear, bearlabelarray, labelcolor, textcolor, labelon)
Bear_3crMarker Adds a 3CR marker to a Bearish 3CR chart pattern
@description Adds a dashed line and label to a 3CR down chart pattern, indicating the 3CR (3 Candle Reversal) point.
Parameters:
bearlinearray (line )
barnum (int)
breakpoint (float)
failpointB (float )
failpoint (float)
linecolorbear (color)
bearlabelarray (label )
labelcolor (color)
textcolor (color)
labelon (bool)
Bull_3CRlogicals(low1, low2, low3, bulllinearray, bulllabelarray, failpointB, linecolorbull, labelcolor, textcolor, labelon)
Checks for a bullish three candle reversal pattern and creates a line and label at the breakout point if found
@description Checks for a bullish three candle reversal pattern where the first candle's low is greater than the second candle's low and the second candle's low is less than the third candle's low. If found, creates a line at the breakout point and a label at the fail point, if specified.
Parameters:
low1 (float)
low2 (float)
low3 (float)
bulllinearray (line )
bulllabelarray (label )
failpointB (float )
linecolorbull (color)
labelcolor (color)
textcolor (color)
labelon (bool)
Bear_3CRlogicals(high1, high2, high3, bearlinearray, bearlabelarray, failpointB, linecolorbear, labelcolor, textcolor, labelon)
Checks for a Bearish 3CR pattern and draws a bearish marker on the chart at the appropriate location
@description This function checks for a Bearish 3CR (Three-Candle Reversal) pattern, which is defined as the second candle having a higher high than the first and third candles, and the third candle having a lower high than the first candle. If the pattern is detected, a bearish marker is drawn on the chart at the appropriate location, and an optional label can be added to the marker.
Parameters:
high1 (float)
high2 (float)
high3 (float)
bearlinearray (line )
bearlabelarray (label )
failpointB (float )
linecolorbear (color)
labelcolor (color)
textcolor (color)
labelon (bool)
bullLineDelete(i, bulllinearray, failarray, bulllabelarray, labelon)
Removes a bullish line from a specified position in a line array, and optionally removes a label associated with that line
@description Removes a bullish line from a specified position in a line array, and optionally removes a label associated with that line.
Parameters:
i (int)
bulllinearray (line )
failarray (float )
bulllabelarray (label )
labelon (bool)
bearLineDelete(i, bearlinearray, failarray, bearlabelarray, labelon)
Removes a bearish line from a specified position in a line array, and optionally removes a label associated with that line
@description Removes a bearish line from a specified position in a line array, and optionally removes a label associated with that line.
Parameters:
i (int)
bearlinearray (line )
failarray (float )
bearlabelarray (label )
labelon (bool)
bulloffsetdelete(i, bulllinearray, failarray, bulllabelarray, labelon)
Removes a bullish line from a specified position in a line array, and optionally removes a label associated with that line
@description Removes a bullish line from a specified position in a line array, and optionally removes a label associated with that line.
Parameters:
i (int)
bulllinearray (line )
failarray (float )
bulllabelarray (label )
labelon (bool)
bearoffsetdelete(i, bearlinearray, failarray, bearlabelarray, labelon)
Removes a bearish line from a specified position in a line array, and optionally removes a label associated with that line
@description Removes a bearish line from a specified position in a line array, and optionally removes a label associated with that line.
Parameters:
i (int)
bearlinearray (line )
failarray (float )
bearlabelarray (label )
labelon (bool)
BullEntry_setter(i, bulllinearray, failpointB, entrystopB, entryB, entryboolB)
Checks if the specified value is greater than the break point of any bullish line in an array, and removes that line if true
@description Checks if the s pecified value is greater than the break point of any bullish line in an array, and removes that line if true.
Parameters:
i (int)
bulllinearray (line )
failpointB (float )
entrystopB (float )
entryB (float )
entryboolB (bool )
Bull3CRchecker(close1, bulllinearray, FailpointB, rsiB, bulllabelarray, labelt, bullcolored, directionarray, rsi, secondbullline, entrystopB, entryB, entryboolB)
Parameters:
close1 (float)
bulllinearray (line )
FailpointB (float )
rsiB (float )
bulllabelarray (label )
labelt (bool)
bullcolored (color)
directionarray (label )
rsi (float)
secondbullline (line )
entrystopB (float )
entryB (float )
entryboolB (bool )
Bear3CRchecker(close1, bearlinearray, FailpointB, bearlabelarray, labelt, bearcolored, directionarray, rsi, secondbearline, rsiB)
Checks if the specified value is less than the break point of any bearish line in an array, and removes that line if true
@description Checks if the specified value is less than the break point of any bearish line in an array, and removes that line if true.
Parameters:
close1 (float)
bearlinearray (line )
FailpointB (float )
bearlabelarray (label )
labelt (bool)
bearcolored (color)
directionarray (label )
rsi (float)
secondbearline (line )
rsiB (float )
Bulloffsetcheck(FailpointB, bulllabelarray, linearray, labelt, offset)
Checks the offset of bullish lines and deletes them if they are beyond a certain offset from the current bar index
@description Checks the offset of bullish lines and deletes them if they are beyond a certain offset from the current bar index
Parameters:
FailpointB (float )
bulllabelarray (label )
linearray (line )
labelt (bool)
offset (int)
Bearoffsetcheck(FailpointB, bearlabelarray, linearray, labelt, offset)
Checks the offset of bearish lines and deletes them if they are beyond a certain offset from the current bar index
@description Checks the offset of bearish lines and deletes them if they are beyond a certain offset from the current bar index
Parameters:
FailpointB (float )
bearlabelarray (label )
linearray (line )
labelt (bool)
offset (int)
Bullfailchecker(close1, FailpointB, bulllabelarray, linearray, labelt)
Checks if the current price has crossed above a bullish fail point and deletes the corresponding line and label
@description Checks if the current price has crossed above a bullish fail point and deletes the corresponding line and label
Parameters:
close1 (float)
FailpointB (float )
bulllabelarray (label )
linearray (line )
labelt (bool)
Bearfailchecker(close1, FailpointB, bearlabelarray, linearray, labelt)
Checks for bearish lines that have failed to trigger and removes them from the chart
@description This function checks for bearish lines that have failed to trigger (i.e., where the current price is above the fail point) and removes them from the chart along with any associated label.
Parameters:
close1 (float)
FailpointB (float )
bearlabelarray (label )
linearray (line )
labelt (bool)
rsibullchecker(rsiinput, rsiBull, secondbullline)
Checks for bullish RSI lines that have failed to trigger and removes them from the chart
@description This function checks for bullish RSI lines that have failed to trigger (i.e., where the current RSI value is below the line's trigger level) and removes them from the chart along with any associated line.
Parameters:
rsiinput (float)
rsiBull (float )
secondbullline (line )
rsibearchecker(rsiinput, rsiBear, secondbearline)
Checks for bearish RSI lines that have failed to trigger and removes them from the chart
@description This function checks for bearish RSI lines that have failed to trigger (i.e., where the current RSI value is above the line's trigger level) and removes them from the chart along with any associated line.
Parameters:
rsiinput (float)
rsiBear (float )
secondbearline (line )
Trap Trading - SwaGThis is an intraday indicator
Set timeframe to 5 min
Take long entry on the high brakes of selling traps
Take short entry on the low brakes of buying traps
ignore traps left to red zones
Use the nearest trap
take profit/loss on a 1:2 risk-to-reward basis.
Trap Trading
Trap trading is a trading strategy that seeks to profit from false breakouts in financial markets. This strategy is based on the idea that when the market breaks through a key level of support or resistance, many traders will take that as a signal to enter or exit trades, causing the price to move further in the breakout direction.
However, in some cases, the market will quickly reverse course and move in the opposite direction, trapping those traders who entered the trade based on the breakout. This can create a trading opportunity for those who are able to identify the false breakout and trade in the opposite direction.
The trap trading strategy typically involves identifying a key level of support or resistance on a price chart and then waiting for the market to break through that level. If the price continues to move in the breakout direction, the trader may enter a trade in that direction with a stop loss set just below the breakout level.
However, if the market quickly reverses and moves back below the breakout level, the trader may enter a trade in the opposite direction with a stop loss set just above the breakout level. The idea is to take advantage of the trapped traders who entered the trade based on the false breakout, and profit from the market's reversal.
As with any trading strategy, there are risks and potential drawbacks to trap trading. False breakouts can be difficult to identify, and there is always the risk that the market will continue to move in the breakout direction, resulting in losses for the trader. Additionally, trap trading requires a solid understanding of technical analysis and market trends, which may take time and experience to develop.