Consecutive Bars Above/Below EMA Buy the Dip Strategy█ STRATEGY DESCRIPTION
The "Consecutive Bars Above/Below EMA Buy the Dip Strategy" is a mean-reversion strategy designed to identify potential buying opportunities when the price dips below a moving average for a specified number of consecutive bars. It enters a long position when the dip condition is met and exits when the price shows strength by exceeding the previous bar's high. This strategy is suitable for use on various timeframes.
█ WHAT IS THE MOVING AVERAGE?
The strategy uses either a Simple Moving Average (SMA) or an Exponential Moving Average (EMA) as a reference for identifying dips. The type and length of the moving average can be customized in the settings.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The close price is below the selected moving average for a specified number of consecutive bars (`consecutiveBarsTreshold`).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the high of the previous bar (`close > high `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Consecutive Bars Threshold: The number of consecutive bars the price must remain below the moving average to trigger a Buy Signal. Default is 3.
MA Type: The type of moving average used (SMA or EMA). Default is SMA.
MA Length: The length of the moving average. Default is 5.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for mean-reverting markets and performs best when the price frequently oscillates around the moving average.
It is sensitive to the number of consecutive bars below the moving average, which helps to identify potential dips.
Backtesting results should be analysed to optimize the Consecutive Bars Threshold, MA Type, and MA Length for specific instruments.
Chu kỳ
Turn around Tuesday on Steroids Strategy█ STRATEGY DESCRIPTION
The "Turn around Tuesday on Steroids Strategy" is a mean-reversion strategy designed to identify potential price reversals at the start of the trading week. It enters a long position when specific conditions are met and exits when the price shows strength by exceeding the previous bar's high. This strategy is optimized for ETFs, stocks, and other instruments on the daily timeframe.
█ WHAT IS THE STARTING DAY?
The Starting Day determines the first day of the trading week for the strategy. It can be set to either Sunday or Monday, depending on the instrument being traded. For ETFs and stocks, Monday is recommended. For other instruments, Sunday is recommended.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The current day is the first day of the trading week (either Sunday or Monday, depending on the Starting Day setting).
The close price is lower than the previous day's close (`close < close `).
The previous day's close is also lower than the close two days ago (`close < close `).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
If the MA Filter is enabled, the close price must also be above the 200-period Simple Moving Average (SMA).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the high of the previous bar (`close > high `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Starting Day: Determines the first day of the trading week. Options are Sunday or Monday. Default is Sunday.
Use MA Filter: Enables or disables the 200-period SMA filter for long entries. Default is disabled.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for markets with frequent weekly reversals.
It performs best in volatile conditions where price movements are significant at the start of the trading week.
Backtesting results should be analysed to optimize the Starting Day and MA Filter settings for specific instruments.
Relative Risk MetricOVERVIEW
The Relative Risk Metric is designed to provide a relative measure of an asset's price, within a specified range, over a log scale.
PURPOSE
Relative Position Assessment: Visualizes where the current price stands within a user-defined range, adjusted for log scale.
Logarithmic Transformation: Utilizes the natural log to account for a log scale of prices, offering a more accurate representation of relative positions.
Calculation: The indicator calculates a normalized value via the function Relative Price = / log(UpperBound) − log(LowerBound) . The result is a value between 0 and 1, where 0 corresponds to the lower bound and 1 corresponds to the upper bound on a log scale.
VISUALIZATION
The indicator plots three series:
Risk Metric - a plot of the risk metric value that’s computed from an asset's relative price so that it lies within a logarithmic range between 0.0 & 1.0.
Smoothed Risk Metric - a plot of the risk metric that’s been smoothed.
Entry/Exit - a scatter plot for identified entry and exit. Values are expressed as percent and are coded as red being exit and green being entity. E.g., a red dot at 0.02 implies exit 2% of the held asset. A green dot at 0.01 implies use 1% of a designated capital reserve.
USAGE
Risk Metric
The risk metric transformation function has several parameters. These control aspects such as decay, sensitivity, bounds and time offset.
Decay - Acts as an exponent multiplier and controls how quickly dynamic bounds change as a function of the bar_index.
Time Offset - provides a centering effect of the exponential transformation relative to the current bar_index.
Sensitivity - controls how sensitive to time the dynamic bound adjustments should be.
Baseline control - Serves as an additive offset for dynamic bounds computation which ensures that bounds never become too small or negative.
UpperBound - provides headroom to accomodate growth an assets price from the baseline. For example, an upperbound of 3.5 accommodates a 3.5x growth from the baseline value (e.g., $100 -> $350).
LowerBound - provides log scale compression such that the overall metric provides meaningful insights for prices well below the average whilst avoiding extreme scaling. A lowerbound of 0.25 corresponds to a price that is approx one quarter of a normalised baseline in a log context.
Weighted Entry/Exit
This feature provides a weighted system for identifying DCA entry and exit. This weighting mechanism adjusts the metric's interpretation to highlight conditions based on dynamic thresholds and user-defined parameters to identify high-probability zones for entry/exit actions and provide risk-adjusted insights.
Weighting Parameters
The weighting function supports fine-tuning of the computed weighted entry/exit values
Base: determines the foundational multiplier for weighting the entry/exit value. A higher base amplifies the weighting effect, making the weighted values more pronounced. It acts as a scaling factor to control the overall magnitude of the weighting.
Exponent: adjusts the curve of the weighting function. Higher exponent values increase sensitivity, emphasizing differences between risk metric values near the entry or exit thresholds. This creates a steeper gradient for the computed entry/exit value making it more responsive to subtle shifts in risk levels.
Cut Off: specifies the maximum percentage (expressed as a fraction of 1.0) that the weighted entry/exit value can reach. This cap ensures the metric remains within a meaningful range and avoids skewing
Exit condition: Defines a threshold for exit. When the risk metric is below the exit threshold (but above the entry threshold) then entry/exit is neutral.
Entry condition: Defines a threshold for entry. When the risk metric is above the entry threshold (but below the exit threshold) then entry/exit is neutral.
Weighting Behaviour
For entry conditions - value is more heavily weighted as the metric approaches the entry threshold, emphasizing lower risk levels.
For exit conditions - value is more heavily weighted as the metric nears the exit threshold, emphasizing increased risk levels.
USE-CASES
Identifying potential overbought or oversold conditions within the specified logarithmic range.
Assisting in assessing how the current price compares to historical price levels on a logarithmic scale.
Guiding decision-making processes by providing insights into the relative positioning of prices within a log context
CONSIDERATIONS
Validation: It's recommended that backtesting over historical data be done before acting on any identified entry/exit values.
User Discretion: This indicator focus on price risk. Consider other risk factors and general market conditions as well.
TASC 2025.02 Autocorrelation Indicator█ OVERVIEW
This script implements the Autocorrelation Indicator introduced by John Ehlers in the "Drunkard's Walk: Theory And Measurement By Autocorrelation" article from the February 2025 edition of TASC's Traders' Tips . The indicator calculates the autocorrelation of a price series across several lags to construct a periodogram , which traders can use to identify market cycles, trends, and potential reversal patterns.
█ CONCEPTS
Drunkard's walk
A drunkard's walk , formally known as a random walk , is a type of stochastic process that models the evolution of a system or variable through successive random steps.
In his article, John Ehlers relates this model to market data. He discusses two first- and second-order partial differential equations, modified for discrete (non-continuous) data, that can represent solutions to the discrete random walk problem: the diffusion equation and the wave equation. According to Ehlers, market data takes on a mixture of two "modes" described by these equations. He theorizes that when "diffusion mode" is dominant, trading success is almost a matter of luck, and when "wave mode" is dominant, indicators may have improved performance.
Pink spectrum
John Ehlers explains that many recent academic studies affirm that market data has a pink spectrum , meaning the power spectral density of the data is proportional to the wavelengths it contains, like pink noise . A random walk with a pink spectrum suggests that the states of the random variable are correlated and not independent. In other words, the random variable exhibits long-range dependence with respect to previous states.
Autocorrelation function (ACF)
Autocorrelation measures the correlation of a time series with a delayed copy, or lag , of itself. The autocorrelation function (ACF) is a method that evaluates autocorrelation across a range of lags , which can help to identify patterns, trends, and cycles in stochastic market data. Analysts often use ACF to detect and characterize long-range dependence in a time series.
The Autocorrelation Indicator evaluates the ACF of market prices over a fixed range of lags, expressing the results as a color-coded heatmap representing a dynamic periodogram. Ehlers suggests the information from the periodogram can help traders identify different market behaviors, including:
Cycles : Distinguishable as repeated patterns in the periodogram.
Reversals : Indicated by sharp vertical changes in the periodogram when the indicator uses a short data length .
Trends : Indicated by increasing correlation across lags, starting with the shortest, over time.
█ USAGE
This script calculates the Autocorrelation Indicator on an input "Source" series, smoothed by Ehlers' UltimateSmoother filter, and plots several color-coded lines to represent the periodogram's information. Each line corresponds to an analyzed lag, with the shortest lag's line at the bottom of the pane. Green hues in the line indicate a positive correlation for the lag, red hues indicate a negative correlation (anticorrelation), and orange or yellow hues mean the correlation is near zero.
Because Pine has a limit on the number of plots for a single indicator, this script divides the periodogram display into three distinct ranges that cover different lags. To see the full periodogram, add three instances of this script to the chart and set the "Lag range" input for each to a different value, as demonstrated in the chart above.
With a modest autocorrelation length, such as 20 on a "1D" chart, traders can identify seasonal patterns in the price series, which can help to pinpoint cycles and moderate trends. For instance, on the daily ES1! chart above, the indicator shows repetitive, similar patterns through fall 2023 and winter 2023-2024. The green "triangular" shape rising from the zero lag baseline over different time ranges corresponds to seasonal trends in the data.
To identify turning points in the price series, Ehlers recommends using a short autocorrelation length, such as 2. With this length, users can observe sharp, sudden shifts along the vertical axis, which suggest potential turning points from upward to downward or vice versa.
MCDX_SignalThe MCDX indicator (Market Cycle Dynamic Index) is a technical indicator developed by Trung Pham. It is a tool used for analyzing the stock market, often utilized to identify big money flow (Big Money) and evaluate the strength of individual stocks or the overall market.
MCDX is known for its distinctive histogram chart with red and green bars. The red bars typically represent the inflow of big money, while the green bars indicate small money flow or outflows.
Volume Surge Webhook AlertThis TradingView indicator, named "Volume Surge Webhook Alert," is designed to find significant increases in trading volume and send out alerts with key information. It works by looking back at the volume over a certain number of past candlesticks, which you can set using the "Lookback Period" input. The indicator calculates the average volume during this period. Then, it sets a threshold for what counts as a "volume surge." This threshold is a percentage increase over the average volume, and you can adjust this percentage using the "Volume Surge Threshold (%)" input.
When the current candlestick's volume is higher than this threshold, the indicator considers it a volume surge. To help you see this visually, the indicator plots three lines on a separate chart: the average volume (in blue), the current volume (in red), and the threshold volume (in gray circles).
If a volume surge happens, the indicator creates a webhook alert. This alert sends a message in a structured format (like a digital envelope) that contains the following information: the symbol of the stock or cryptocurrency, the timeframe of the chart you're looking at, the current volume, the average volume, the threshold volume, and a simple message saying a volume surge was detected. This alert is sent only once when the candlestick closes with a volume surge.
Additionally, when a volume surge is detected, a small red exclamation mark "!" will appear above that candlestick on the main price chart.
Essentially, this indicator helps traders spot times when trading volume is unusually high, which can sometimes be a sign of important price movements. You can customize how sensitive the indicator is by changing the "Lookback Period" and the "Volume Surge Threshold (%)". The webhook alerts allow you to be notified automatically when these surges occur, so you don't have to constantly watch the charts.
Rosiz Support 2### **Indicator Name**: Custom RSI, Stochastic, and ADX
### **Description**:
This is a multi-functional indicator that combines three popular technical analysis tools—**RSI (Relative Strength Index)**, **Stochastic Oscillator**, and **ADX (Average Directional Index)**—into a single, customizable pane. This indicator helps traders analyze momentum, overbought/oversold conditions, and trend strength simultaneously, making it a powerful tool for making informed trading decisions.
---
### **Features**:
1. **RSI (Relative Strength Index)**:
- Measures the speed and change of price movements.
- Helps identify overbought (>70) and oversold (<30) conditions.
- Includes customizable length and source options.
- Background shading visually highlights overbought and oversold zones.
2. **Stochastic Oscillator**:
- Determines momentum by comparing a security's closing price to its price range over a specific period.
- Includes %K and %D lines for crossovers, which signal potential entry or exit points.
- Highlights overbought (>80) and oversold (<20) zones with background fill.
3. **ADX (Average Directional Index)**:
- Measures trend strength (higher values indicate stronger trends).
- Includes customizable smoothing and DI (Directional Indicator) length.
---
### **How to Use**:
- **RSI**: Look for overbought or oversold conditions for potential reversal points. Divergences between price and RSI may signal weakening trends.
- **Stochastic Oscillator**: Watch for %K and %D crossovers near overbought or oversold zones to confirm buy or sell signals.
- **ADX**: Use ADX values to assess trend strength:
- **ADX > 25**: Strong trend.
- **ADX < 20**: Weak or ranging market.
---
### **Customization Options**:
- **RSI Settings**: Adjust length, source, and visual parameters.
- **Stochastic Settings**: Modify %K and %D lengths and smoothing factors.
- **ADX Settings**: Fine-tune smoothing and directional index lengths.
---
### **Advantages**:
- Combines three indicators into one, reducing chart clutter.
- Customizable inputs for flexibility in various trading strategies.
- Visual enhancements (background fills and lines) for better readability.
This indicator is perfect for traders looking to combine momentum analysis, overbought/oversold signals, and trend strength in a single tool!
Month Separator
Month Separator Indicator
This Pine Script indicator separates each month on the chart by visually marking the change between months.
Features:
The indicator detects when the month changes.
It highlights the background with a semi-transparent blue color to differentiate the months.
A small red triangle is plotted at the top of the chart at the beginning of each new month, providing a clear visual cue.
Customization:
You can easily adjust the colors or styles in the script by modifying the bgcolor and plotshape functions.
The indicator works on all timeframes, but it is especially useful on higher timeframes (like daily or weekly charts) to track monthly transitions.
This script is ideal for traders who want a clear visual representation of month boundaries to analyze trends and key levels more effectively.
BTC ETF Inflows and Outflows with Combined BTC CorrelationThis script tracks Bitcoin Spot ETF inflows and outflows, calculating their correlation with Bitcoin's price to identify market trends and sentiment. It provides visual insights into ETF flows and the relationship with BTC price movements.
NOTE: The script relies on volume and opens / closes for calculating inflows and outflows. An ETF might issue more shares, which would skew the numbers.
Alternate RTH Background OnlyThis “Alternate RTH Background Only” script highlights the chart background in alternating colors for each new day during the regular trading session (9:30–16:00 EST). It detects the start of a new calendar day (midnight) to increment its day counter, then applies a different semi-transparent color to the 9:30–16:00 bars for easy daily separation. No lines or indicators are plotted—only the background shading changes each day.
BTC-SPX Momentum Gauge + EMA SignalHere's an explanation of the market dynamics and signal benefits of this script:
Momentum and Sentiment Indicator:
The script uses the momentum of the S&P 500 to change the chart's background color, providing a quick visual cue of market sentiment. Green indicates potential bullish momentum in the broader market, while red suggests bearish momentum. This can help traders gauge overall market direction at a glance.
Bitcoin Trend Analysis:
By plotting the scaled TEMA of Bitcoin (BTC), traders can see how Bitcoin's trend correlates or diverges from the current asset being analyzed. Since Bitcoin is often viewed as a hedge against traditional financial systems or inflation, its trend can signal broader economic shifts or investor sentiment towards alternative investments.
Dual Trend Confirmation:
The script offers two trend lines: one for Bitcoin and one for the current ticker. When these lines move in tandem, it might indicate a strong market trend across both traditional and crypto markets. Divergence between these lines can highlight potential market anomalies or opportunities for arbitrage or hedging.
Smoothness vs. Reactivity:
The use of TEMA for Bitcoin provides a smoother signal than a simple moving average, reducing lag while still reacting to price changes. This can be particularly useful for identifying longer-term trends in Bitcoin's volatile market. The 20-period EMA for the current ticker, on the other hand, gives a quicker response to price changes in the asset you're directly trading.
Cross-Asset Correlation:
By overlaying Bitcoin's trend on another asset's chart, traders can analyze how these markets might influence each other. For instance, if Bitcoin is in an uptrend while a traditional asset is declining, it might suggest capital rotation into cryptocurrencies.
Trading Signals:
Crossovers or divergences between the TEMA of Bitcoin and the EMA of the current ticker could be used as signals for entry or exit points. For example, if the BTC TEMA crosses above the current ticker's EMA, it might suggest a shift towards crypto assets.
Risk Management:
The visual cues from the background color and moving averages can aid in risk management. For example, trading in the direction of the momentum indicated by the background color might be seen as going with the market flow, potentially reducing risk.
Macro-Economic Insights:
The relationship between Bitcoin and traditional markets can offer insights into macroeconomic conditions, particularly related to inflation, monetary policy, and investor sentiment towards fiat currencies.
Headwind and tailwind:
Currently BTC correlated trade instruments experience headwind or tailwind from the broader market. This indicator lets the user see it to help their trade decision process.
Additional Statement:
As the market realizes the dangers of the fiat that its construct is built upon and evolves and migrates into stable money, incorruptible by inflation, this indicator will reveal the external influence of that corruptible and the internal influence of the incorruptible; having diminishing returns as the rise of stable money overtakes the treasuries of the fiat construct.
Timed Ranges [mktrader]The Timed Ranges indicator helps visualize price ranges that develop during specific time periods. It's particularly useful for analyzing market behavior in instruments like NASDAQ, S&P 500, and Dow Jones, which often show reactions to sweeps of previous ranges and form reversals.
### Key Features
- Visualizes time-based ranges with customizable lengths (30 minutes, 90 minutes, etc.)
- Tracks high/low range development within specified time periods
- Shows multiple cycles per day for pattern recognition
- Supports historical analysis across multiple days
### Parameters
#### Settings
- **First Cycle (HHMM-HHMM)**: Define the time range of your first cycle. The duration of this range determines the length of all subsequent cycles (e.g., "0930-1000" creates 30-minute cycles)
- **Number of Cycles per Day**: How many consecutive cycles to display after the first cycle (1-20)
- **Maximum Days to Display**: Number of historical days to show the ranges for (1-50)
- **Timezone**: Select the appropriate timezone for your analysis
#### Style
- **Box Transparency**: Adjust the transparency of the range boxes (0-100)
### Usage Example
To track 30-minute ranges starting at market open:
1. Set First Cycle to "0930-1000" (creates 30-minute cycles)
2. Set Number of Cycles to 5 (will show ranges until 11:30)
3. The indicator will display:
- Range development during each 30-minute period
- Visual progression of highs and lows
- Color-coded cycles for easy distinction
### Use Cases
- Identify potential reversal points after range sweeps
- Track regular time-based support and resistance levels
- Analyze market structure within specific time windows
- Monitor range expansions and contractions during key market hours
### Tips
- Use in conjunction with volume analysis for better confirmation
- Pay attention to breaks and sweeps of previous ranges
- Consider market opens and key session times when setting cycles
- Compare range sizes across different time periods for volatility analysis
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.
4EMAs+OpenHrs+FOMC+CPIThis script displays 4 custom EMAs of your choice based on the Pine script standard ema function.
Additionally the following events are shown
1. Opening hours for New York Stock exchange
2. Opening Time for London Stock exchange
3. US CPI Release Dates
4. FOMC press conference dates
5. FOMC meeting minutes release dates
I have currently added FOMC and CPI Dates for 2025 but will keep updating in January of every year (at least as long as I stay in the game :D)
Quarter Shift IdentifierQuarter Shift Identifier
This indicator helps traders and analysts identify significant price movements between quarters. It calculates the percentage change from the close of the previous quarter to the current price and signals when this change exceeds a 4% threshold.
Key Features:
• Automatically detects quarter transitions
• Calculates quarter-to-quarter price changes
• Signals significant shifts when the change exceeds 4%
• Displays blue up arrows for bullish shifts and red down arrows for bearish shifts
How it works:
1. The script tracks the closing price of each quarter
2. When a new quarter begins, it calculates the percentage change from the previous quarter's close
3. If the change exceeds 4%, an arrow is plotted on the chart
This tool can be useful for:
• Identifying potential trend changes at quarter boundaries
• Analyzing seasonal patterns in price movements
• Supplementing other technical analysis tools for a comprehensive market view
Recommended Timeframes are Weekly and Daily.
Disclaimer:
This indicator is for informational and educational purposes only. It is not financial advice and should not be the sole basis for any investment decisions. Always conduct your own research and consider your personal financial situation before trading or investing. Past performance does not guarantee future results.
It Screams When Crypto BottomsGet ready to ride the crypto rollercoaster with your new favourite tool for catching Bitcoin at its juiciest, most oversold moments.
This isn’t just another boring indicator — it screams when it’s time to load your bags and get ready for the ride back up!
Expect it to scream just once or twice per cycle at the very bottom, so you know exactly when the party starts!
Why You'll Love It:
Crypto-Exclusive Magic: It does not really matter what chart you are on; this indicator only bothers about the original and realised market cap of BTC. We all know the rest will follow.
Big Picture Focus: Designed for daily. No noisy intraday drama — just pure, clear signals.
Screaming Alerts: When the signal hits, it’s like a neon sign screaming, “Crypto Bottomed!"
Think of this indicator as your backstage pass to the crypto world’s most dramatic moments. It’s not subtle — it’s bold, loud, and ready to help you time the market like a pro.
P.S.: Use it only on a daily chart. Don’t even try it on shorter timeframes — it won’t scream, and you’ll miss the show! 🙀
Annual Performance Table with Average PeformanceAn indicator that displays annual performance in a table format, providing a quick overview of yearly returns with historical context.
It calculates the performance based on the first and last monthly close prices of each year. It displays returns chronologically from left to right, concluding with an average performance column.
Features :
Works exclusively on monthly timeframes
Customizable number of years to display (1-50 years)
Shows year-by-year performance percentages
Color-coded returns (green for positive, red for negative)
Includes average performance across displayed years
Semi-transparent overlay design for better chart visibility
Performance calculation method:
Performance = ((December Close - January Close) / January Close) × 100%
Usage :
Apply to any chart on monthly timeframe
Adjust the "Number of Years to Display" parameter as needed
Table appears as an overlay with years, individual performances, and average
Note: The indicator will display an error message if applied to any timeframe other than monthly.
Ultra Disparity IndexGain insights into price movements across multiple timeframes with the Ultra Disparity Index . This indicator highlights overbought/oversold levels based on price disparities from moving averages.
Introduction
The Ultra Disparity Index is designed for traders who seek a deeper understanding of price movements and trends across various timeframes. By analyzing the disparity between the current price and its moving averages, the indicator helps identify overbought and oversold conditions.
Detailed Description
The indicator works by calculating the percentage difference between the current price and its moving averages over four user-defined lengths. It operates on multiple timeframes monthly, weekly, daily, 4-hour, and 1-hour giving traders a comprehensive view of market dynamics.
.........
Disparity Calculation
The indicator computes how far the current price is from moving averages to reveal the degree of disparity.
.....
Overbought/Oversold Zones
By normalizing disparities into percentages relative to the overbought/oversold range, the indicator represents overbought (100%) and oversold (-100%).
.....
Timeframe Flexibility
The user can visualize data from monthly to hourly intervals, ensuring adaptability to different trading strategies.
.....
Customizable Inputs
Users can configure moving average lengths and toggle visibility for specific timeframes and levels.
.........
Summary
The indicator uses simple moving averages (SMAs) as a benchmark for calculating disparity. This disparity is then analyzed using statistical tools, such as standard deviation, to derive meaningful levels. Finally, the results are visualized in a table, providing traders with an easy-to-read summary of disparity values and their respective normalized percentages.
Daily Asian RangeDaily Asian Range Indicator
This indicator is an enhanced version inspired by @toodegrees' "ICT Friday's Asian Range" indicator. While maintaining the core concepts, this version expands functionality for daily analysis and adds comprehensive customization options.
### Overview
The Asian Range indicator identifies and visualizes potential liquidity areas based on price action during the Asian session (8:00 PM - 12:00 AM ET). It plots both body and wick ranges along with multiple standard deviation levels that can serve as potential price targets or areas of interest.
### Features
- Flexible Display Options
- Choose between Body, Wick, or Both for range boxes and deviation lines
- Customizable colors, styles, and borders for all visual elements
- Historical sessions display (0-20 previous sessions)
- Advanced Standard Deviation Levels
- Multiple deviation multipliers (1.0, 1.5, 2.0, 2.3, 3.5)
- Separate visualization for body and wick-based deviations
- Clear labeling system for easy identification
- Precise Time Management
- Asian session: 8:00 PM - 12:00 AM ET
- Deviation lines extend through the following trading day
- Proper timezone handling for accuracy
### Usage
- Works on timeframes from 1 to 15 minutes
- Use the range boxes to identify key price levels from the Asian session
- Standard deviation levels can serve as potential targets or areas of interest
- Combine with other indicators for enhanced analysis
### Credits
Original concept and base implementation by @toodegrees
Enhanced and expanded by @Omarqqq
### Disclaimer
This indicator is for educational and informational purposes only. Always conduct your own analysis and use proper risk management.
Lead-Lag Market Detector [CryptoSea]The Lead-Lag Market Detector is an advanced tool designed to help traders identify leading and lagging assets within a chosen market. This indicator leverages correlation analysis to rank assets based on their influence, making it ideal for traders seeking to optimise their portfolio or spot key market trends.
Key Features
Dynamic Asset Ranking: Utilises real-time correlation calculations to rank assets by their influence on the market, helping traders identify market leaders and laggers.
Customisable Parameters: Includes adjustable lookback periods and correlation thresholds to adapt the analysis to different market conditions and trading styles.
Comprehensive Asset Coverage: Supports up to 30 assets, offering broad market insights across cryptocurrencies, stocks, or other markets.
Gradient-Enhanced Table Display: Presents results in a colour-coded table, where assets are ranked dynamically with influence scores, aiding in quick visual analysis.
In the example below, the ranking highlights how assets tend to move in groups. For instance, BTCUSDT, ETHUSDT, BNBUSDT, SOLUSDT, and LTCUSDT are highly correlated and moving together as a group. Similarly, another group of correlated assets includes XRPUSDT, FILUSDT, APEUSDT, XTZUSDT, THETAUSDT, and CAKEUSDT. This grouping of assets provides valuable insights for traders to diversify or spread exposure.
If you believe one asset in a group is likely to perform well, you can spread your exposure into other correlated assets within the same group to capitalise on their collective movement. Additionally, assets like AVAXUSDT and ZECUSDT, which appear less correlated or uncorrelated with the rest, may offer opportunities to act as potential hedges in your trading strategy.
How it Works
Correlation-Based Scoring: Calculates pairwise correlations between assets over a user-defined lookback period, identifying assets with high influence scores as market leaders.
Customisable Thresholds: Allows traders to define a correlation threshold, ensuring the analysis focuses only on significant relationships between assets.
Dynamic Score Calculation: Scores are updated dynamically based on the timeframe and input settings, providing real-time insights into market behaviour.
Colour-Enhanced Results: The table display uses gradients to visually distinguish between leading and lagging assets, simplifying data interpretation.
Application
Portfolio Optimisation: Identifies influential assets to help traders allocate their portfolio effectively and reduce exposure to lagging assets.
Market Trend Identification: Highlights leading assets that may signal broader market trends, aiding in strategic decision-making.
Customised Trading Strategies: Adapts to various trading styles through extensive input settings, ensuring the analysis meets the specific needs of each trader.
The Lead-Lag Market Detector by is an essential tool for traders aiming to uncover market leaders and laggers, navigate complex market dynamics, and optimise their trading strategies with precision and insight.
Thrax - Pullback based short side scalping⯁ This indicator is built for short trades only.
⤞ Pullback based scalping is a strategy where a trader anticipates a pullback and makes a quick scalp in this pullback. This strategy usually works in a ranging market as probability of pullbacks occurrence in ranging market is quite high.
⤞ The strategy is built by first determining a possible candidate price levels having high chance of pullbacks. This is determined by finding out multiple rejection point and creating a zone around this price. A rejection is considered to be valid only if it comes to this zone after going down by a minimum pullback percentage. Once the price has gone down by this minimum pullback percentage multiple times and reaches the zone again chances of pullback goes high and an indication on chart for the same is given.
⯁ Inputs
⤞ Zone-Top : This input parameter determines the upper range for the price zone.
⤞ Zone bottom : This input parameter determines the lower range for price zone.
⤞ Minimum Pullback : This input parameter determines the minimum pullback percentage required for valid rejection. Below is the recommended settings
⤞ Lookback : lookback period before resetting all the variables
⬦Below is the recommended settings across timeframes
⤞ 15-min : lookback – 24, Pullback – 2, Zone Top Size %– 0.4, Zone Bottom Size % – 0.2
⤞ 5-min : lookback – 50, pullback – 1% - 1.5%, Zone Top Size %– 0.4, Zone Bottom Size % – 0.2
⤞ 1-min : lookback – 100, pullback – 1%, Zone Top Size %– 0.4, Zone Bottom Size % – 0.2
⤞ Anything > 30-min : lookback – 11, pullback – 3%, Zone Top Size %– 0.4, Zone Bottom Size % – 0.2
✵ This indicator gives early pullback detection which can be used in below ways
1. To take short trades in the pullback.
2. To use this to exit an existing position in the next few candles as pullback may be incoming.
📌 Kindly note, it’s not necessary that pullback will happen at the exact point given on the chart. Instead, the indictor gives you early signals for the pullback
⯁ Trade Steup
1. Wait for pullback signal to occur on the chart.
2. Once the pullback warning has been displayed on the chart, you can either straight away enter the short position or wait for next 2-4 candles for initial sign of actual pullback to occurrence.
3. Once you have initiated short trade, since this is pullback-based strategy, a quick scalp should be made and closed as price may resume it’s original direction. If you have risk appetite you can stay in the trade longer and trial the stops if price keeps pulling back.
4. You can zone top as your stop, usually zone top + some% should be used as stop where ‘some %’ is based on your risk appetite.
5. It’s important to note that this indicator gives early sings of pullback so you may actually wait for 2-3 candles post ‘Pullback warning’ occurs on the chart before entering short trade.
Golden Time ErfanThe "Golden Time" Indicator is a custom-built TradingView tool designed to assist traders by highlighting two critical trading time windows: the New York session open and a specific strategy-based time known as Golden Time.
Adaptive Momentum Cycle Oscillator (AMCO)1. Concept and Foundation
The Adaptive Momentum Cycle Oscillator (AMCO) is an advanced indicator designed to dynamically adjust to varying market conditions while identifying price cycles and trends. It combines momentum and volatility into a single, oscillating signal that helps traders detect turning points in price movements. By incorporating adaptive periods and trend filtering, AMCO ensures relevance across different asset classes and timeframes. This innovation bridges the gap between traditional oscillators and trending indicators, providing a comprehensive tool for both cycle identification and trend confirmation.
2. Dynamic Adaptation to Market Conditions
A standout feature of AMCO is its ability to adapt its sensitivity based on market volatility. Using the ATR (Average True Range) as a measure of current volatility, AMCO adjusts its calculation periods dynamically. During periods of high volatility, it extends its lookback periods to smooth out noise and avoid false signals. Conversely, in low-volatility environments, it shortens its periods to remain responsive to smaller price fluctuations. This adaptability ensures that AMCO remains effective and reliable in both trending and ranging markets.
3. Trend Awareness and Directional Weighting
AMCO integrates a trend filter based on a long-term moving average, such as SMA(200), to align its signals with the broader market direction. This filter ensures that buy signals are prioritized during uptrends and sell signals during downtrends, reducing counter-trend trades. Additionally, a directional weighting mechanism amplifies momentum signals that align with the prevailing trend. This dual-layer approach significantly enhances the accuracy of signals, making AMCO especially useful in markets with clear directional bias.
4. Normalized Visualization for Clarity
The AMCO includes a normalized histogram that provides a clear visual representation of momentum strength relative to recent volatility. By dividing the raw AMCO value by the ATR, the histogram ensures consistency across assets with varying price ranges and volatility levels. Positive bars indicate bullish momentum, while negative bars signify bearish momentum. This intuitive visualization makes it easier for traders to interpret market dynamics and act on actionable signals, regardless of asset type or timeframe.
5. Practical and Actionable Signals
AMCO generates practical signals based on zero-line crossovers, allowing traders to easily identify shifts between bullish and bearish cycles. Positive values above the zero line suggest upward momentum, signaling potential buying opportunities, while negative values below the zero line indicate downward momentum, signaling potential sell opportunities. By combining adaptive behavior, trend filtering, and momentum-strength normalization, AMCO offers traders a robust framework for navigating complex markets with confidence. Its versatility makes it suitable for scalping, swing trading, and even longer-term investing.