UCS_TTM_Wave A & B & CThis is a replica of TTM Wave A B C.
The ABC Waves are comprised of various moving averages and oscillators (MACD) used to visualize the overall strength and direction of a given market across multiple time frames.
The “A Wave” measures short term relative strength and direction of a market, the “C Wave” measures longer term strength and the “B Wave” plots the same for a medium time period.
Here is the link to the ACTUAL Indicator - members.simpleroptions.com
Instruction -
Load the Indicator three times, Turn Off the Other two Waves. For eg., Wave A - Check / Wave B - Uncheck / Wave C - Uncheck. = This will plot Wave A.
Buscar en scripts para "wave"
PaddingThe Padding library is a comprehensive and flexible toolkit designed to extend time series data within TradingView, making it an indispensable resource for advanced signal processing tasks such as FFT, filtering, convolution, and wavelet analysis. At its core, the library addresses the common challenge of edge effects by "padding" your data—that is, by appending additional data points beyond the natural boundaries of your original dataset. This extension not only mitigates the distortions that can occur at the endpoints but also helps to maintain the integrity of various transformations and calculations performed on the series. The library accomplishes this while preserving the ordering of your data, ensuring that the most recent point always resides at index 0.
Central to the functionality of this library are two key enumerations: Direction and PaddingType. The Direction enum determines where the padding will be applied. You can choose to extend the data in the forward direction (ahead of the current values), in the backward direction (behind the current values), or in both directions simultaneously. The PaddingType enum defines the specific method used for extending the data. The library supports several methods—including symmetric, reflect, periodic, antisymmetric, antireflect, smooth, constant, and zero padding—each of which has been implemented to suit different analytical scenarios. For instance, symmetric padding mirrors the original data across its boundaries, while reflect padding continues the trend by reflecting around endpoint values. Periodic padding repeats the data, and antisymmetric padding mirrors the data with alternating signs to counterbalance it. The antireflect and smooth methods take into account the derivatives of your data, thereby extending the series in a way that preserves or smoothly continues these derivative values. Constant and zero padding simply extend the series using fixed endpoint values or zeros. Together, these enums allow you to fine-tune how your data is extended, ensuring that the padding method aligns with the specific requirements of your analysis.
The library is designed to work with both single variable inputs and array inputs. When using array-based methods—particularly with the antireflect and smooth padding types—please note that the implementation intentionally discards the last data point as a result of the delta computation process. This behavior is an important consideration when integrating the library into your TradingView studies, as it affects the overall data length of the padded series. Despite this, the library’s structure and documentation make it straightforward to incorporate into your existing scripts. You simply provide your data source, define the length of your data window, and select the desired padding type and direction, along with any optional parameters to control the extent of the padding (using both_period, forward_period, or backward_period).
In practical application, the Padding library enables you to extend historical data beyond its original range in a controlled and predictable manner. This is particularly useful when preparing datasets for further signal processing, as it helps to reduce artifacts that can otherwise compromise the results of your analytical routines. Whether you are an experienced Pine Script developer or a trader exploring advanced data analysis techniques, this library offers a robust solution that enhances the reliability and accuracy of your studies by ensuring your algorithms operate on a more complete and well-prepared dataset.
Library "Padding"
A comprehensive library for padding time series data with various methods. Supports both single variable and array inputs, with flexible padding directions and periods. Designed for signal processing applications including FFT, filtering, convolution, and wavelets. All methods maintain data ordering with most recent point at index 0.
symmetric(source, series_length, direction, both_period, forward_period, backward_period)
Applies symmetric padding by mirroring the input data across boundaries
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with symmetric padding applied
method symmetric(source, direction, both_period, forward_period, backward_period)
Applies symmetric padding to an array by mirroring the data across boundaries
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with symmetric padding applied
reflect(source, series_length, direction, both_period, forward_period, backward_period)
Applies reflect padding by continuing trends through reflection around endpoint values
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with reflect padding applied
method reflect(source, direction, both_period, forward_period, backward_period)
Applies reflect padding to an array by continuing trends through reflection around endpoint values
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with reflect padding applied
periodic(source, series_length, direction, both_period, forward_period, backward_period)
Applies periodic padding by repeating the input data
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with periodic padding applied
method periodic(source, direction, both_period, forward_period, backward_period)
Applies periodic padding to an array by repeating the data
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with periodic padding applied
antisymmetric(source, series_length, direction, both_period, forward_period, backward_period)
Applies antisymmetric padding by mirroring data and alternating signs
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with antisymmetric padding applied
method antisymmetric(source, direction, both_period, forward_period, backward_period)
Applies antisymmetric padding to an array by mirroring data and alternating signs
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with antisymmetric padding applied
antireflect(source, series_length, direction, both_period, forward_period, backward_period)
Applies antireflect padding by reflecting around endpoints while preserving derivatives
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with antireflect padding applied
method antireflect(source, direction, both_period, forward_period, backward_period)
Applies antireflect padding to an array by reflecting around endpoints while preserving derivatives
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with antireflect padding applied. Note: Last data point is lost when using array input
smooth(source, series_length, direction, both_period, forward_period, backward_period)
Applies smooth padding by extending with constant derivatives from endpoints
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with smooth padding applied
method smooth(source, direction, both_period, forward_period, backward_period)
Applies smooth padding to an array by extending with constant derivatives from endpoints
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with smooth padding applied. Note: Last data point is lost when using array input
constant(source, series_length, direction, both_period, forward_period, backward_period)
Applies constant padding by extending endpoint values
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with constant padding applied
method constant(source, direction, both_period, forward_period, backward_period)
Applies constant padding to an array by extending endpoint values
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with constant padding applied
zero(source, series_length, direction, both_period, forward_period, backward_period)
Applies zero padding by extending with zeros
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with zero padding applied
method zero(source, direction, both_period, forward_period, backward_period)
Applies zero padding to an array by extending with zeros
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with zero padding applied
pad_data(source, series_length, padding_type, direction, both_period, forward_period, backward_period)
Generic padding function that applies specified padding type to input data
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
padding_type (series PaddingType) : Type of padding to apply (see PaddingType enum)
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with specified padding applied
method pad_data(source, padding_type, direction, both_period, forward_period, backward_period)
Generic padding function that applies specified padding type to array input
Namespace types: array
Parameters:
source (array) : Array of values to pad
padding_type (series PaddingType) : Type of padding to apply (see PaddingType enum)
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with specified padding applied. Note: Last data point is lost when using antireflect or smooth padding types
make_padded_data(source, series_length, padding_type, direction, both_period, forward_period, backward_period)
Creates a window-based padded data series that updates with each new value. WARNING: Function must be called on every bar for consistency. Do not use in scopes where it may not execute on every bar.
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
padding_type (series PaddingType) : Type of padding to apply (see PaddingType enum)
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing windowed data with specified padding applied
Weierstrass Function (Fractal Cycles)THE WEIERSTRASS FUNCTION
f(x) = ∑(n=0)^∞ a^n * cos(b^n * π * x)
The Weierstrass Function is the sum of an infinite series of cosine functions, each with increasing frequency and decreasing amplitude. This creates powerful multi-scale oscillations within the range ⬍(-2;+2), resembling a system of self-repetitive patterns. You can zoom into any part of the output and observe similar proportions, mimicking the hidden order behind the irregularity and unpredictability of financial markets.
IT DOESN’T RELY ON ANY MARKET DATA, AS THE OUTPUT IS BASED PURELY ON A MATHEMATICAL FORMULA!
This script does not provide direct buy or sell signals and should be used as a tool for analyzing the market behavior through fractal geometry. The function is often used to model complex, chaotic systems, including natural phenomena and financial markets.
APPLICATIONS:
Timing Aspect: Identifies the phases of market cycles, helping to keep awareness of frequency of turning points
Price-Modeling features: The Amplitude, frequency, and scaling settings allow the indicator to simulate the trends and oscillations. Its nowhere-differentiable nature aligns with the market's inherent uncertainty. The fractured oscillations resemble sharp jumps, noise, and dips found in volatile markets.
SETTINGS
Amplitude Factor (a): Controls the size of each wave. A higher value makes the waves larger.
Frequency Factor (b): Determines how fast the waves oscillate. A higher value creates more frequent waves.
Ability to Invert the output: Just like any cosine function it starts its journey with a decline, which is not distinctive to the behavior of most assets. The default setting is in "inverted mode".
Scale Factor: Adjusts the speed at which the oscillations grow over time.
Number of Terms (n_terms): Increases the number of waves. More terms add complexity to the pattern.
MACD Fake Filter [RH]Introducing a new indicator for the TradingView community based on the MACD indicator! This innovative tool goes beyond traditional MACD signals by analyzing positive and negative waves to determine the average height of the waves to filter false cross-over or cross-under signals during the sideways market.
There are two types of waves created by the MACD line, one is a positive wave above the "zero" line and another is a negative wave below "zero" line. Each wave has peaks. This indicator will find the average height of the positive waves' peaks and plot as a green line(by default). Vice-versa it will also find the average height of the negative waves' peaks and plot as a red line(by default).
Example :
This indicator will show labels when the MACD line crosses-under the MACD signal line above the average height of the positive waves.
Vice-versa, the indicator will show labels when the MACD line crosses-above the MACD signal line below the average height of the negative waves.
Example:
Alerts are also available for these types of cross-over and cross-under.
Squeeze M + ADX + TTM (Trading Latino & John Carter) by [Rolgui]About this indicator:
This indicator aims to combine two good performing strategies, which can be used separately or together, mainly for investment positions, although it can also be used for intraday trading.
Strategy 1) Squeeze Oscillator and Average Directional Index:
This strategy is taught by Jaime Aibsai, which determines market entries based on reading the direction of the price movement (Directionality of the Oscillator) along with the strength of the Oscillator (Slope of the ADX).
Both tools are configured according to Jaime Abisai's strategy, by default (note that point 23 of the ADX is represented by point 0 on the panel, to make reading easier, its interpretation is not affected). Anyway you can adjust the input data according to your interest.
*You can see this setting in the first panel.
Strategy 2) Squeeze Momentum and Trade The Market Waves:
This strategy can be consulted either in John F. Carter's books or on his website.
This market reading is based on Price Volatility (Bollinger Bands and Keltner Channels interaction) and its Trend (Exponential Moving Averages), showing entries at times when price volatility is low and taking filtering active trend using T.T.M. Waves.
To configure the indicator in the same way that Carter does, it would be enough to turn off the ADX, turn on the Squeeze Momentum signals along with the T.T.M. Waves, and importantly, change the Linear Momentum value to 12 (this configuration can be found in his book).
*You can see this setting in the second panel.
Why this indicator?
I've added and removed the above flags as I needed to query them (which became tedious for me). The main objective of having merged them into one is to make their reading more agile and comfortable and thus improve the decision-making capacity of the trader who wishes to use them.
Credits and Acknowledgments:
I would like to give credits to other authors, for the sections of code that I have used to make this technical indicator. Thanks to @LazyBear, @matetaronna, @jombie and @joren for contributing to the community and keeping their code open. It is priceless!
Feel free to combine and practice your trading with both strategies, personally, they improved my profitability and this is why I recommend researching more about them. I've been using it for crypto investing, let me know if it's worth for you on stock market!
If you have any questions or suggestions you can leave it in the comments!
Greetings!
test - autocorrelationExperimental:
finds and displays the wavelength index's of the autocorrelation wavelengths..
Fractal Resonance ComponentLazyBear's WaveTrend port has been praised for highlighting trend reversals with precision and punctuality (minimal lag). But strong "3rd Wave" trends can "embed" or saturate any oscillator flashing several premature crosses while stuck overbought/oversold. This happens when the trend stretches over a longer timescale than the oscillator's averaging window or filter time constant. Our solution: simultaneously monitor many oscillator timescales. Watch for fresh crossovers in "dominant" timescales alternating most smoothly between the overbought (red shade) and oversold (green shade) range.
Fractal Resonance Component facilitates simultaneous viewing of eight timescales that are power of 2 multiples of the chart timescale. Each timescale shows lead line, lag line, lead-lag difference, and crossover marks. Add 4 to 8 copies to your chart for a good multi-fractal read. Format * the "Timescale Multiplier" attribute of each row to be twice that of the row above for a sequence like 1, 2, 4, 8, 16, 32, 64, 128...
Fractal Resonance Component shifts its timescales along with your choice of main chart timescale:
1 minute chart: 1 minute through 128 minute (~2 hour) oscillators.
1 hour chart: 1 hour through 128 hour (~2 week) oscillators.
Daily chart: 1 day through 128 day (~4 month) oscillators.
Crossovers in different oscillator ranges tend to have different meanings:
Minor (< 75%) crossovers: small green/red dot
usually noise
Overbought/Sold crossovers (shaded 75 to 100%): black outlined dot (o)
reliable reversal indicators (when they appear alone)
Extreme Overbought (> 100%) crossovers: black outlined plus (+).
Can be a major reversal in fast markets, but usually portend the end of Elliot 3rd waves with just a small corrective (4th wave) retrace before the larger impulsive (5-wave) sequence resumes in original direction.
The final 5th-wave terminus should appear later as a lone non-extreme (black outlined circle) crossover on a slower timescale coincident with weaker (non-extreme) dot crosses on this timescale.
Careful examination of historical charts leads to many useful observations such as:
Dominant crossovers punctuating true reversals are usually in the green/red shaded ranges with black outlined dots (o) rather than minor or Extreme (+) ranges.
Due to market's fractal nature, two well-separated timescales like 1 minute and 1 hour can show dominant crosses simultaneously in opposite directions, e.g. the 1 minute showing a very short term high and the 1 hour a medium term low nearby.
Staying Nimble
Watch out for embedding on your supposedly dominant timescale -- a second cross while stuck in the overbought/oversold region suggests a stronger, longer trend than expected. Drop your eyes to a slower timescale below for the real dominant whose crossover will validate main trend reversal.
Embedding can often be predicted even at the first cross mark by checking whether the green lead line of the next slower timescale (one row below) has already hit the Overbought or especially the Extreme Overbought range but isn't close to rolling over. Fractal Resonance Bar (to be published) uses this principle to mark embedded timescales with white stripes, warning of a powerful trend wave on longer timescales you shouldn't fight until the white stripes subside.
Overnight gaps surge all timescales in ways that obscure the dominant timescale, so for shorter than daily charts, these methods work best on Futures contracts that only suffer weekend gaps.
Katz Impact Wave 🚀Overview of the Katz Impact Wave 🚀
The Katz Impact Wave is a momentum oscillator designed to visualize the battle between buyers and sellers. Instead of combining bullish and bearish pressure into a single line, it separates them into two distinct "Impact Waves."
Its primary goal is to generate clear trade signals by identifying when one side gains control, but only when the market has enough volatility to be considered "moving." This built-in filter helps to avoid signals during flat or choppy market conditions.
Indicator Components: Lines & Plots
Impact Waves & Fill
Green Wave (Total Up Impulses): This line represents the cumulative buying pressure. When this line is rising, it indicates that bulls are getting stronger.
Red Wave (Total Down Impulses): This line represents the cumulative selling pressure. When this line is rising, it indicates that bears are getting stronger.
Colored Fill: The shaded area between the two waves provides an at-a-glance view of who is in control.
Lime Fill: Bulls are dominant (Green Wave is above the Red Wave).
Red Fill: Bears are dominant (Red Wave is above the Green Wave).
Background Color
The background color provides crucial context about the market state according to the indicator's logic.
Green Background: The market is in a bullish state (Green Wave is dominant) AND the Rate of Change (ROC) filter confirms the market is actively moving.
Red Background: The market is in a bearish state (Red Wave is dominant) AND the ROC filter confirms the market is actively moving.
Gray Background: The market is considered "not moving" or is in a low-volatility chop. Signals that occur when the background is gray should be viewed with extreme caution or ignored.
Symbols & Pivot Lines
▲ Blue Triangle (Up): This is your long entry signal. It appears on the bar where the Green Wave crosses above the Red Wave while the market is moving.
▼ Orange Triangle (Down): This is your short entry signal. It appears on the bar where the Red Wave crosses above the Green Wave while the market is moving.
Pivot Lines (Solid Green/Red/White Lines): These lines mark confirmed peaks of exhaustion in momentum, not price.
Green Pivot Line: Marks a peak in the Green Wave, signaling buying momentum exhaustion. This can be a warning that the uptrend is losing steam.
Red Pivot Line: Marks a peak in the Red Wave, signaling selling momentum exhaustion. This can be a warning that the downtrend is losing steam.
▼ Yellow Triangle (Compression): This rare signal appears when buying and selling exhaustion pivots happen at the same level. It signifies a point of extreme indecision or equilibrium that often occurs before a major price expansion.
Trading Rules & Strategy
This indicator provides entry signals but does not provide explicit Take Profit or Stop Loss levels. You must use your own risk management rules.
Long Trade Rules
Entry Signal: Wait for a blue ▲ triangle to appear at the top of the indicator panel.
Confirmation: Ensure the background color is green, confirming the market is in a bullish, moving state.
Action: Enter a long (buy) trade at the open of the next candle after the signal appears.
Short Trade Rules
Entry Signal: Wait for an orange ▼ triangle to appear at the bottom of the indicator panel.
Confirmation: Ensure the background color is red, confirming the market is in a bearish, moving state.
Action: Enter a short (sell) trade at the open of the next candle after the signal appears.
Take Profit (TP) & Stop Loss (SL) Ideas
You must develop and test your own exit strategy. Here are some common approaches:
Stop Loss:
Place a stop loss below the most recent significant swing low on the price chart for a long trade, or above the recent swing high for a short trade.
Use an ATR (Average True Range) based stop, such as 2x the ATR value below your entry for a long, to account for market volatility.
Take Profit:
Opposite Signal: The simplest exit is to close your trade when the opposite signal appears (e.g., close a long trade when a short signal ▼ appears).
Momentum Exhaustion: For a long trade, consider taking partial or full profit when a green Pivot Line appears, signaling that buying momentum is peaking.
Fixed Risk/Reward: Use a predetermined risk/reward ratio (e.g., 1:1.5 or 1:2).
Disclaimer
This indicator is a tool for analysis, not a financial advisor or a guaranteed profit system. All trading and investment activities involve substantial risk. You should not risk more than you are prepared to lose. Past performance is not an indication of future results. You are solely responsible for your own trading decisions, risk management, and for backtesting this or any other tool before using it in a live trading environment. This indicator is for educational purposes only.
Elliott Wave Auto (Impulse + Correction) — stable deleteAutomatic pivot detection: The script identifies swing highs and swing lows using ta.pivothigh and ta.pivotlow.
Impulse wave labeling (1–5):
Detects 5 alternating pivots and labels them as waves 1 to 5.
Uses green/red labels for impulse and correction legs.
Connects waves with blue lines for visual clarity.
Corrective wave labeling (A–B–C):
Detects the next 3 alternating pivots after wave 5.
Labels them as A, B, C with orange lines connecting them.
Dynamic cleanup:
Stores labels and lines in arrays.
Deletes previous drawings automatically before redrawing, keeping the chart clean.
Optional pivot markers:
Plots tiny triangles for detected pivots (green for lows, red for highs).
Information table:
Displays the direction (Bullish/Bearish) and percentage move of the 1–5 impulse waves.
Pine Script v5 compliant:
Uses str.tostring() and array-based deletion to avoid tostring() or line.deleteall() errors.
If you want, I can also add an alert feature to notify you when a full impulse + corrective wave pattern completes. This makes it actionable for trading.
Moving Average Shift WaveTrend StrategyMoving Average Shift WaveTrend Strategy
🧭 Overview
The Moving Average Shift WaveTrend Strategy is a trend-following and momentum-based trading system designed to be overlayed on TradingView charts. It executes trades based on the confluence of multiple technical conditions—volatility, session timing, trend direction, and oscillator momentum—to deliver logical and systematic trade entries and exits.
🎯 Strategy Objectives
Enter trades aligned with the prevailing long-term trend
Exit trades on confirmed momentum reversals
Avoid false signals using session timing and volatility filters
Apply structured risk management with automatic TP, SL, and trailing stops
⚙️ Key Features
Selectable MA types: SMA, EMA, SMMA (RMA), WMA, VWMA
Dual-filter logic using a custom oscillator and moving averages
Session and volatility filters to eliminate low-quality setups
Trailing stop, configurable Take Profit / Stop Loss logic
“In-wave flag” prevents overtrading within the same trend wave
Visual clarity with color-shifting candles and entry/exit markers
📈 Trading Rules
✅ Long Entry Conditions:
Price is above the selected MA
Oscillator is positive and rising
200-period EMA indicates an uptrend
ATR exceeds its median value (sufficient volatility)
Entry occurs between 09:00–17:00 (exchange time)
Not currently in an active wave
🔻 Short Entry Conditions:
Price is below the selected MA
Oscillator is negative and falling
200-period EMA indicates a downtrend
All other long-entry conditions are inverted
❌ Exit Conditions:
Take Profit or Stop Loss is hit
Opposing signals from oscillator and MA
Trailing stop is triggered
🛡️ Risk Management Parameters
Pair: ETH/USD
Timeframe: 4H
Starting Capital: $3,000
Commission: 0.02%
Slippage: 2 pips
Risk per Trade: 2% of account equity (adjustable)
Total Trades: 224
Backtest Period: May 24, 2016 — April 7, 2025
Note: Risk parameters are fully customizable to suit your trading style and broker conditions.
🔧 Trading Parameters & Filters
Time Filter: Trades allowed only between 09:00–17:00 (exchange time)
Volatility Filter: ATR must be above its median value
Trend Filter: Long-term 200-period EMA
📊 Technical Settings
Moving Average
Type: SMA
Length: 40
Source: hl2
Oscillator
Length: 15
Threshold: 0.5
Risk Management
Take Profit: 1.5%
Stop Loss: 1.0%
Trailing Stop: 1.0%
👁️ Visual Support
MA and oscillator color changes indicate directional bias
Clear chart markers show entry and exit points
Trailing stops and risk controls are transparently managed
🚀 Strategy Improvements & Uniqueness
In-wave flag avoids repeated entries within the same trend phase
Filtering based on time, volatility, and trend ensures higher-quality trades
Dynamic high/low tracking allows precise trailing stop placement
Fully rule-based execution reduces emotional decision-making
💡 Inspirations & Attribution
This strategy is inspired by the excellent concept from:
ChartPrime – “Moving Average Shift”
It expands on the original idea with advanced trade filters and trailing logic.
Source reference:
📌 Summary
The Moving Average Shift WaveTrend Strategy offers a rule-based, reliable approach to trend trading. By combining trend and momentum filters with robust risk controls, it provides a consistent framework suitable for various market conditions and trading styles.
⚠️ Disclaimer
This script is for educational purposes only. Trading involves risk. Always use proper backtesting and risk evaluation before applying in live markets.
Momentum Charge Theory (MCT)-(TechnoBlooms)The Momentum Charge Theory (MCT) Indicator is an advanced physics and mathematics-inspired trend detection system designed to identify market energy shifts with precision. Unlike traditional indicators that rely on static formulas, MCT integrates entropy, volatility, kinetic energy, and wavelet transforms to map price dynamics in real time.
Built on Scientific Principles – This indicator applies quantum-inspired charge-discharge mechanics to spot early trend formations and reversals. Think of price action like an energy system: it charges (builds momentum) before an explosive move and discharges when that energy dissipates.
Core Concepts Behind MCT
1️⃣ Directional Market Entropy – Measuring Trend Strength
Entropy quantifies market randomness – is the trend structured or chaotic?
✅ A high-entropy market is uncertain (choppy price action), while a low-entropy market signals a strong directional trend.
✅ MCT normalizes entropy, allowing traders to differentiate trend acceleration from market noise.
2️⃣ Information Flow Volatility – Identifying Breakout Zones
Inspired by Econophysics, this component measures volatility based on information flow rather than simple price movements.
✅ Helps spot high-volatility breakout conditions before they occur.
✅ Filters out false breakouts caused by random market noise.
3️⃣ Kinetic Energy Momentum (KEM) – The Physics of Price Acceleration
Just like in physics, momentum is a function of mass and velocity – in trading, this translates to volume and price change.
✅ Uses kinetic energy equations to identify price acceleration zones.
✅ Helps detect momentum shifts before price visibly reacts.
4️⃣ Hilbert Transform Approximation – Slope & Trend Direction Analysis
Applies Hilbert Transforms to estimate trend angle shifts.
✅ Detects momentum decay and early reversal signals.
✅ Captures the true trend slope rather than relying on lagging moving averages.
5️⃣ Wavelet Transform – Advanced Noise Filtering & Trend Confirmation
Market movements contain multiple frequencies – wavelet transforms isolate dominant trends while removing short-term price noise.
✅ Improves trend clarity by reducing false signals.
✅ Acts as a final confirmation filter before generating Charge & Discharge signals.
Charge & Discharge – The Energy Behind Market Moves
🔹 Charge (Uptrend Activation)
A blue triangle appears below the candle when market conditions align for a strong bullish move.
📈 Indicates momentum buildup, low entropy, and trend strength confirmation.
🔸 Discharge (Downtrend Activation)
A purple triangle appears above the candle when price momentum weakens and market entropy increases.
📉 Suggests a potential trend exhaustion or reversal.
Best Use Cases for Traders
✅ Momentum Traders – Catch trend initiations before they gain full traction.
✅ Breakout Traders – Identify high-information flow zones with volatility-driven signals.
✅ Trend Followers – Avoid false signals by relying on entropy-driven confirmations.
The MCT indicator can be combined with any of your usual indicators for trend confirmation.
Neon Momentum Waves StrategyIntroduction
The Neon Momentum Waves Strategy is a momentum-based indicator designed to help traders visualize potential shifts in market direction. It builds upon a MACD-style calculation while incorporating an enhanced visual representation of momentum waves. This approach may assist traders in identifying areas of increasing or decreasing momentum, potentially aligning with market trends or reversals.
How It Works
This strategy is based on a modified MACD (Moving Average Convergence Divergence) method, calculating the difference between two Exponential Moving Averages (EMAs). The momentum wave represents this difference, while an additional smoothing line (signal line) helps highlight potential momentum shifts.
Key Components:
Momentum Calculation:
Uses a fast EMA (12-period) and a slow EMA (26-period) to measure short-term and long-term momentum.
A signal line (20-period EMA of the MACD difference) smooths fluctuations.
The histogram (momentum wave) represents the divergence between the MACD value and the signal line.
Interpreting Momentum Changes:
Momentum Increasing: When the histogram rises above the zero line, it may indicate strengthening upward movement.
Momentum Decreasing: When the histogram moves below the zero line, it may signal a weakening trend or downward momentum.
Potential Exhaustion Points: Users can define custom threshold levels (default: ±10) to highlight when momentum is significantly strong or weak.
Visual Enhancements:
The neon glow effect is created by layering multiple plots with decreasing opacity, enhancing the clarity of momentum shifts.
Aqua-colored waves highlight upward momentum, while purple waves represent downward momentum.
Horizontal reference lines mark the zero line and user-defined thresholds to improve interpretability.
How It Differs from Traditional Indicators
Improved Visualization: Unlike standard MACD histograms, this approach provides clearer visual cues using a neon-style wave format.
Customizable Thresholds: Rather than relying solely on MACD crossovers, users can adjust sensitivity settings to better suit their trading style.
Momentum-Based Approach: The strategy is focused on visualizing shifts in momentum strength, rather than predicting price movements.
Potential Use Cases
Momentum Trend Awareness: Helps traders identify periods where momentum appears to be strengthening or fading.
Market Structure Analysis: May complement other indicators to assess whether price action aligns with momentum changes.
Flexible Timeframe Application: Can be used across different timeframes, depending on the trader’s strategy.
Important Considerations
This strategy is purely momentum-based and does not incorporate volume, fundamental factors, or price action confirmation.
Momentum shifts do not guarantee price direction changes—they should be considered alongside broader market context.
The strategy may perform differently in trending vs. ranging markets, so adjustments in sensitivity may be needed.
Risk management is essential—traders should apply proper stop-losses and position sizing techniques in line with their risk tolerance.
Conclusion
The Neon Momentum Waves Strategy provides a visually enhanced method of tracking momentum, allowing traders to observe potential changes in market strength. While not a predictive tool, it serves as a complementary indicator that may help traders in momentum-based decision-making. As with any technical tool, it should be used as part of a broader strategy that considers multiple factors in market analysis.
Smoothed Candle Averages- NovaTheMachineThis script utilizes a series of moving averages that the user is able to change as they see fit for their own use.
The averages plotted for the first 2 waves are the High-Low rays of the selected period of time with the chosen moving average style.
The Bias is the Heikin Ashi High-Low ray plotted over the chosen time period, while the Secondary Bias is a higher Timeframe Bias for the same period of time on a selected higher timeframe.
The visuals for each ray are able to be changed to either; lines, solid wave, or dynamic wave.
The Dynamic waves will change color according to the total dissection and utilize the Min-Max range selected as a weight for the strength of the trend. Thus providing an at-a-glance overview of the price relative to trend.
The key objective with this script is to gauge the longer term trend with the current price action, to establish patterns and determine strength of moves both away from and towards the moving average/bias.
When both waves are trending with the Bias, it can be reasoned that there is a strong trend established, when waves and Bias are mixed or trending sideways it can be reasoned there is a range forming or potential for a direction change. When price has broken the waves and biases we can reasonably assume that a new trend has been formed, using the waves and biases again to determine the strength and length of the trend.
The Table will display whether the current price is above or below each wave, and whether the price is continuing or retracing. The Signals plotted are used to help identify when price has broken a wave more swiftly.
Dow waveform analyzerDow Waveform Analyzer
1. Overview and Features of the Indicator
This indicator is a tool designed to analyze chart waveforms based on Dow Theory, identifying swing lows (support) and swing highs (resistance). It allows users to quickly and consistently determine trend direction. Compared to manual analysis, it provides more efficient and accurate results.
By using swing lows and swing highs, the indicator offers a more detailed understanding of trends than simple updates to highs and lows, aiding in the creation of effective trading strategies.
2. Identifying Wave Lows and Highs
Stock prices do not move in straight lines; instead, they rise and fall in waves. This indicator starts by identifying the wave lows and wave highs.
- Wave Low: The lowest point during a temporary price decline.
- Wave High: The highest point during a temporary price increase.
These are automatically identified using Pine Script’s built-in functions `pivotlow` and `pivothigh`.
3. Drawing the Waveform
The identified wave lows and highs are alternately connected to draw the waveform. However, there are cases where wave lows or highs occur consecutively:
- Consecutive Wave Lows: The lower low is used for drawing the waveform.
- Consecutive Wave Highs: The higher high is used for drawing the waveform.
4. Tracking Swing Lows/Highs and Trend Determination
Swing lows and swing highs are crucial markers that indicate the state of wave progression:
- Swing Low: The starting point of a wave (wave low) when the closing price exceeds the previous wave high.
- Swing High: The starting point of a wave (wave high) when the closing price falls below the previous wave low.
The changes in swing lows and swing highs as the waves progress allow for trend state determination.
5. Examples of Trend States
During an Uptrend:
- When the price surpasses a wave high, the swing low is updated, confirming the continuation of the uptrend.
End of an Uptrend:
- When the price falls below the swing low, the swing low disappears, and a swing high appears, signaling the end of the uptrend.
Sideways Movement:
- Swing lows and swing highs alternately appear, indicating a sideways trend.
Start of a Downtrend:
- When the price breaks below a wave low for the first time, the swing high is updated, confirming the start of the downtrend.
During a Downtrend:
- When the price breaks below a wave low, the swing high is updated, confirming the continuation of the downtrend.
End of a Downtrend:
- When the price surpasses a wave high, the swing high disappears, and a swing low reappears, signaling the end of the downtrend.
Restart of an Uptrend:
- When the swing low is updated, the uptrend resumes. The uptrend begins when the price surpasses a wave high, and the swing low is updated for the first time.
6. Applications
Trade Entries and Exits:
- Set stop orders for entry at the price level where a trend starts.
- Set stop orders for exit at the price level where a trend ends.
Trend Filtering:
- Use the indicator to confirm whether market conditions are suitable for entry based on the trend state. Analyze waveforms to aid trading strategies.
Guide for Drawing Trendlines:
- Utilize wave lows and highs as starting and ending points when drawing trendlines with drawing tools.
7. Parameters and Display Items
Pivot Points:
- Wave lows are marked with circles below the candlestick’s low, and wave highs are marked with circles above the candlestick’s high.
Number of Bars for Pivot Calculation:
- Specify the number of bars on either side used to identify highs (default: 2).
Waveform:
- Specify the color (default: blue) or toggle its visibility (default: visible).
Swing Lows/Highs:
- Displayed as large circles. The rightmost large circle on the chart indicates the current swing low or swing high. Historical swing points are also displayed to show the progression of state changes. Specify the color (default: green) or toggle visibility (default: visible).
1. インジケーターの概要と特徴
このインジケーターは、ダウ理論を基にチャートの波形を分析し、押し安値や戻り高値を特定するツールです。これにより、トレンドの方向を迅速かつ一貫して判断できます。手動での分析と比較して、効率的かつ精度の高い結果が得られる点が特徴です。
押し安値や戻り高値を利用することで、単純な高値・安値の更新よりも詳細にトレンドの状況を把握し、効果的な取引戦略の構築に役立ちます。
2. 波の谷と波の頂の特定
株価は直線的に動くのではなく、波を描きながら上昇や下落を繰り返します。このインジケーターは、まず波の谷と波の頂を特定するところから始まります。
波の谷: 一時的な下落の最安値
波の頂: 一時的な上昇の最高値
これらを Pine Script の内蔵関数(ピボットローとピボットハイ)を用いて自動的に特定しています。
3. 波形の描画方法
特定した波の谷と波の頂を交互に結んで波形を描画します。ただし、波の谷や頂が連続する場合があります。
波の谷が連続する場合: より低い谷を採用して波形を描く
波の頂が連続する場合: より高い頂を採用して波形を描く
4. 押し安値・戻り高値の追跡とトレンド判断
押し安値と戻り高値は、波の進行状況を示す重要な指標です。
押し安値: 終値が前回の高値を超えた際の波の谷
戻り高値: 終値が前回の安値を割り込んだ際の波の頂
波の進行に伴う押し安値・戻り高値の変化から、トレンドの状態を判断します。
5. トレンド状態の具体例
上昇トレンド中:
波の頂を株価が上抜け押し安値が更新され続けることで上昇トレンドを継続。
上昇トレンドの終了:
株価が押し安値を割ると、押し安値が消え、戻り高値が新たに出現して、上昇トレンドを終了。
横ばい状態:
押し安値と戻り高値が交互に切り替わる。
下降トレンドの開始:
波の谷を株価が下抜け戻り高値がはじめて更新されることで下降トレンド開始を確認。
下降トレンド中:
波の谷を株価が下抜け戻り高値が更新され続けることで下降トレンドを継続。
下降トレンドの終了:
株価が波の頂を超えると、戻り高値が消え、押し安値が再び出現して、下降トレンドを終了。
横ばい状態:
押し安値と戻り高値が交互に切り替わる。
上昇トレンドの再開:
押し安値が更新されることで上昇トレンドを確認。
波の頂を株価が上抜け押し安値がはじめて更新されることで上昇トレンド開始を確認。
6. 応用例
トレードのエントリーとエグジット:
トレンド発生の価格に逆指値を設定してエントリー。
トレンド終了の価格に逆指値を設定してエグジット。
トレンドフィルターとして活用:
エントリーに適したトレンド状況かを確認。波形を分析してトレード戦略の参考に。
トレンドラインを描く時の参考として活用:
波の谷と頂を描画ツールを使ってトレンドラインを描く時の起点や終点として活用。
7. パラメーターと表示項目
ピボット: 波の谷はローソク足の安値にサークルを表示、波の頂はローソク足の高値にサークルを表示。
ピボット計算用のバーの数: 高値を特定するために左右何本のローソク足を使用するかを設定(初期値: 2)。
波形: 色(初期値: 青)や表示(初期値: 表示)の指定。
押し安値・戻り高値: 大きなサークルで表示。チャートの一番右の大きなサークルが現在のもの。過去のものも状態変化の経緯を示すために表示。色(初期値: 緑)や表示(初期値: 表示)の指定。
Quarterly Sine Wave with Moving Averages - AYNETDescription
Sine Wave:
The sine wave oscillates with a frequency determined by frequency.
Its amplitude (amplitude) and vertical offset (offset) are adjustable.
Moving Averages:
Includes options for different types of moving averages:
SMA (Simple Moving Average).
EMA (Exponential Moving Average).
WMA (Weighted Moving Average).
HMA (Hull Moving Average).
The user can choose the type (ma_type) and the length (ma_length) via inputs.
Horizontal Lines:
highest_hype and lowest_hype are horizontal levels drawn at the user-specified values.
Quarter Markers:
Vertical lines and labels (Q1, Q2, etc.) are drawn at the start of each quarter.
Customization Options
Moving Average Type:
Switch between SMA, EMA, WMA, and HMA using the dropdown menu.
Sine Wave Frequency:
Adjust the number of oscillations per year.
Amplitude and Offset:
Control the height and center position of the sine wave.
Moving Average Length:
Change the length for any selected moving average.
Output
This indicator plots:
A sine wave that oscillates smoothly over the year, divided into quarters.
A customizable moving average calculated based on the chosen price (e.g., close).
Horizontal lines for the highest and lowest hype levels.
Vertical lines and labels marking the start of each quarter.
Let me know if you need additional features! 😊
ABC on Recursive Zigzag [Trendoscope]There are several implementations of ABC pattern in tradingview and pine script. However, we have made this indicator to provide users additional quantifiable information along with flexibility to experiment and develop their own strategy based on the patterns.
🎲 Highlights of this indicator over other ABC implementations are:
Implementation is based on recursive multi level zigzag allows bigger as well as smaller patterns to be identified
Allows users to set their trading rules with respect to entry, target and stop ratios, experiment and build their own strategy based on the ABC pattern.
Back test summary including win ratio and risk reward will help users understand the profitability based on different settings being used.
🎲 Concept of ABC Pattern
The ABC pattern, also known as the "Corrective Wave" or "Zigzag Pattern," is a fundamental concept in Elliott Wave Theory, which is widely used in technical analysis to identify and predict price movements in financial markets.
The ABC pattern is a three-wave corrective pattern that typically occurs within the context of a larger impulse or trending wave. It consists of two smaller waves in the opposite direction (A and C) separated by a corrective wave (B). These waves are labeled alphabetically and represent price movements.
Wave A (Impulse Wave): Wave A is the first leg of the ABC pattern and is characterized by a strong price move in the opposite direction of the prevailing trend. It is often driven by a fundamental or sentiment-driven event that temporarily disrupts the trend.
Wave B (Corrective Wave): Wave B is the corrective wave that follows Wave A. It represents a partial retracement of Wave A's price movement. Wave B can take various forms, such as a simple correction or a complex correction (e.g., a triangle or a flat correction). It typically doesn't retrace the entire length of Wave A.
Wave C (Impulse Wave): Wave C is the final leg of the ABC pattern and is characterized by a strong price move in the same direction as the prevailing trend. It often surpasses the starting point of Wave A and confirms the resumption of the larger trend.
🎲 Indicator Components
Upon loading the indicator on the chart, we can observe the following components on the chart.
Pattern Drawings is the graphical representation of present patterns. Please note that it is not necessary for patterns to be there on the chart all the time. Patterns will appear on the chart when price makes the patterns.
Trade Box is the box representing trade signals of the pattern. These trade levels are generated based on the user settings.
Summary Table is the back test summary containing details of historical pattern performance including Win Ratio and Risk Reward.
🎲 Indicator Settings
Details of each user settings are provided in the tooltips. Below is the snapshot of it.
🎲 Alerts
Basic level of alerts are built in the script using alert function to highlight the following conditions:
New ABC Pattern
Updates to existing Pattern
Both conditions will alert simple text messages. There is not much customization provided as part of this indicator. We will consider providing more options in future versions based on the interest and demand shown by users.
Bitcoin Market Cap wave model weeklyThis Bitcoin Market Cap wave model indicator is rooted in the foundation of my previously developed tool, the : Bitcoin wave model
To derive the Total Market Cap from the Bitcoin wave price model, I employed a straightforward estimation for the Total Market Supply (TMS). This estimation relies on the formula:
TMS <= (1 - 2^(-h)) for any h.This equation holds true for any value of h, which will be elaborated upon shortly. It is important to note that this inequality becomes the equality at the dates of halvings, diverging only slightly during other periods.
Bitcoin wave model is based on the logarithmic regression model and the sinusoidal waves, induced by the halving events.
This chart presents the outcome of an in-depth analysis of the complete set of Bitcoin price data available from October 2009 to August 2023.
The central concept is that the logarithm of the Bitcoin price closely adheres to the logarithmic regression model. If we plot the logarithm of the price against the logarithm of time, it forms a nearly straight line.
The parameters of this model are provided in the script as follows: log(BTCUSD) = 1.48 + 5.44log(h).
The secondary concept involves employing the inherent time unit of Bitcoin instead of days:
'h' denotes a slightly adjusted time measurement intrinsic to the Bitcoin blockchain. It can be approximated as (days since the genesis block) * 0.0007. Precisely, 'h' is defined as follows: h = 0 at the genesis block, h = 1 at the first halving block, and so forth. In general, h = block height / 210,000.
Adjustments are made to account for variations in block creation time.
The third concept revolves around investigating halving waves triggered by supply shock events resulting from the halvings. These halvings occur at regular intervals in Bitcoin's native time 'h'. All halvings transpire when 'h' is an integer. These events induce waves with intervals denoted as h = 1.
Consequently, we can model these waves using a sin(2pih - a) function. The parameter determining the time shift is assessed as 'a = 0.4', aligning with earlier expectations for halving events and their subsequent outcomes.
The fourth concept introduces the notion that the waves gradually diminish in amplitude over the progression of "time h," diminishing at a rate of 0.7^h.
Lastly, we can create bands around the modeled sinusoidal waves. The upper band is derived by multiplying the sine wave by a factor of 3.1*(1-0.16)^h, while the lower band is obtained by dividing the sine wave by the same factor, 3.1*(1-0.16)^h.
The current bandwidth is 2.5x. That means that the upper band is 2.5 times the lower band. These bands are forming an exceptionally narrow predictive channel for Bitcoin. Consequently, a highly accurate estimation of the peak of the next cycle can be derived.
The prediction indicates that the zenith past the fourth halving, expected around the summer of 2025, could result in Total Bitcoin Market Cap ranging between 4B and 5B USD.
The projections to the future works well only for weekly timeframe.
Enjoy the mathematical insights!
Bitcoin wave modelBitcoin wave model is based on the logarithmic regression model and the sinusoidal waves, induced by the halving events.
This chart presents the outcome of an in-depth analysis of the complete set of Bitcoin price data available from October 2009 to August 2023.
The central concept is that the logarithm of the Bitcoin price closely adheres to the logarithmic regression model. If we plot the logarithm of the price against the logarithm of time, it forms a nearly straight line.
The parameters of this model are provided in the script as follows: log (BTCUSD) = 1.48 + 5.44log(h).
The secondary concept involves employing the inherent time unit of Bitcoin instead of days:
'h' denotes a slightly adjusted time measurement intrinsic to the Bitcoin blockchain. It can be approximated as (days since the genesis block) * 0.0007. Precisely, 'h' is defined as follows: h = 0 at the genesis block, h = 1 at the first halving block, and so forth. In general, h = block height / 210,000.
Adjustments are made to account for variations in block creation time.
The third concept revolves around investigating halving waves triggered by supply shock events resulting from the halvings. These halvings occur at regular intervals in Bitcoin's native time 'h'. All halvings transpire when 'h' is an integer. These events induce waves with intervals denoted as h = 1.
Consequently, we can model these waves using a sin(2pih - a) function. The parameter determining the time shift is assessed as 'a = 0.4', aligning with earlier expectations for halving events and their subsequent outcomes.
The fourth concept introduces the notion that the waves gradually diminish in amplitude over the progression of "time h," diminishing at a rate of 0.7^h.
Lastly, we can create bands around the modeled sinusoidal waves. The upper band is derived by multiplying the sine wave by a factor of 3.1*(1-0.16)^h, while the lower band is obtained by dividing the sine wave by the same factor, 3.1*(1-0.16)^h.
The current bandwidth is 2.5x. That means that the upper band is 2.5 times the lower band. These bands are forming an exceptionally narrow predictive channel for Bitcoin. Consequently, a highly accurate estimation of the peak of the next cycle can be derived.
The prediction indicates that the zenith past the fourth halving, expected around the summer of 2025, could result in prices ranging between 200,000 and 240,000 USD.
Enjoy the mathematical insights!
Spread DifferentialThe Spread Differential tries to measure the speed of the market in any given direction. The histogram plots levels above or below zero in a sequence of Humps and Waves. Humps are repetitions of the previous trend before dropping to or near 0 whilst Waves are similar to Humps but the histogram must drop to or near 0 prior to forming another wave. You might notice that in no trend does the indicator ever form more than 2 waves. The indicator should be used in conjunction with the MA's selected in the panel to identify possible points of failure.
3rd WaveHello All,
In Elliott Wave Theory, 3rd wave is not the shortest one in the waves 1/3/5 and it's usually longest one. so if we can catch it then we may get good opportunities to trade. This script finds 3rd wave experimentally. it can be also the 3rd waves in the waves 1, 3, 5, A and C. the 3rd wave should have greater volume than other waves, the script can check its volume and compare with the volumes of the waves 1 and 2 optionally.
Pine Team released Pine version 5! This script was developed in v5 and it uses Library feature of Pine v5 for the zigzag functions. This script is also an example for the Pine developers who learn Pine v5 and Libraries.
Options:
Zigzag Period: is the length that is used to calculate highest/lowest and the zigzag waves
Min/Max Retracements: is the retracement rates to check the wave 2 according to wave 1. for example; if min/max values are 0.500-0.618 then wave 2 must be minimum 0.500 of wave 1 and maximum 0.618 of wave 1.
Check Volume Support: is an option to compare the volumes of1. 2. and . waves. if you enable this option then the script checks their volume and 3rd wave volume must be greater then 1 and 2
there are 4 options for the targets. you can enable/disable and change their levels. targets are calculated using length of wave 1.
Options to show breakout zone, zigzag, wave 1 and 2.
and some options for the colors.
The Library that is used in this script:
P.S. This is an experimental work and can be improved. So do not hesitate to drop your comments under the script ;)
Enjoy!
Enhanced Neowave Wave 1 Finder with ZigZagThis script is an advanced technical analysis indicator for the TradingView platform, written in Pine Script version 5. Its primary goal is to identify potential Elliott Wave "Wave 1" patterns, enhanced with principles from Neowave theory and a custom ZigZag indicator for more accurate pivot detection. The script is designed to be overlaid on the main price chart.
Core Functionality: Blending ZigZag and Neowave
The indicator's methodology is a two-part process. First, it identifies significant price swings using a robust ZigZag indicator. Then, it analyzes these swings based on a set of rules derived from Neowave and classic technical analysis to validate them as potential Wave 1 patterns.
Part 1: ZigZag Integration
The first major component is a comprehensive ZigZag indicator that forms the foundation for all subsequent analysis.
Pivot Detection: The pivots() function is the engine of the ZigZag. It scans the historical price data for significant high and low points (pivots) over a user-defined Length.
Segment Drawing: Once pivots are identified, the script draws lines connecting them, creating the classic ZigZag pattern on the chart.
Extended Direction & Ratios: This is an enhanced feature. The script doesn't just identify highs and lows; it categorizes them as:
Higher High (HH) or Lower High (LH)
Lower Low (LL) or Higher Low (HL)
This classification is crucial for understanding the market structure. It also calculates the price ratio of the most recent ZigZag leg relative to the previous one, which is used later for pattern validation.
Dynamic Updates: The ZigZag is not static. On each new bar, it can update its most recent pivot point if a new, more extreme price (a higher high or a lower low) is printed before the direction officially changes. This ensures the ZigZag is always reflecting the most current and significant price action.
Part 2: Neowave Wave 1 Finder
With the market structure defined by the ZigZag, the second part of the script applies a rigorous set of rules to identify potential Wave 1 patterns. A Wave 1 is the initial move of a new trend in Elliott Wave theory.
Key Validation Criteria
For a price move between two ZigZag pivots to be considered a valid Wave 1, it must pass a series of checks:
Significance: The move must have a minimum percentage change (Minimum Wave Length) and last for a minimum number of bars, filtering out insignificant noise.
Volume Confirmation: A genuine impulse wave is typically supported by increasing volume. The script checks if the volume during the potential Wave 1 is significantly higher than the recent average (Volume Increase Threshold).
Momentum Alignment: The direction of the wave must be confirmed by momentum indicators.
For a bullish (upward) Wave 1, the Relative Strength Index (RSI) must be in a bullish regime (above 50) and the MACD line must be above its signal line.
For a bearish (downward) Wave 1, the RSI must be below 50 and the MACD line must be below its signal line.
Structural Analysis (Impulse vs. Diagonal): The script attempts to differentiate between two types of Wave 1:
Impulse Wave: A strong, clean, and direct move.
Diagonal Wave: A more complex, overlapping, and often wedge-shaped pattern. This is identified by analyzing the time and price complexity of the move, along with the ZigZag leg ratios.
Wave 2 Retracement Check: A critical Neowave rule is that a valid Wave 1 must be followed by a valid Wave 2 retracement. The script looks at the next ZigZag leg to ensure it doesn't retrace more than 100% of the potential Wave 1. It also uses the ZigZag ratios to confirm the retracement falls within typical Fibonacci levels (e.g., 38.2% to 78.6%).
Display and User Interface
The script provides a rich visual experience to aid the trader in their analysis.
Wave Labels and Boxes: When a valid Wave 1 is detected, it is highlighted with a colored line (green for bullish, red for bearish) and a shaded background box. A label clearly marks it as "Wave 1 IMPULSE" or "Wave 1 DIAGONAL".
Fibonacci Retracement Levels: Upon detection of a Wave 1, the script automatically draws key Fibonacci retracement levels (38.2%, 50%, 61.8%, 78.6%). These levels are potential targets for the end of the subsequent Wave 2, offering potential entry points for a Wave 3 trade.
Information Labels: Additional labels provide at-a-glance confirmation of the conditions, showing whether volume and momentum criteria were met.
Customizable Inputs: Users have extensive control over the indicator's parameters, including the ZigZag length, volume thresholds, RSI levels, and the colors of all visual elements.
Alerts: The indicator can be configured to generate an alert whenever a new bullish or bearish Wave 1 pattern is confirmed, allowing traders to be notified of potential opportunities in real-time.
Market Cipher B by WeloTradesMarket Cipher B by WeloTrades: Detailed Script Description
//Overview//
"Market Cipher B by WeloTrades" is an advanced trading tool that combines multiple technical indicators to provide a comprehensive market analysis framework. By integrating WaveTrend, RSI, and MoneyFlow indicators, this script helps traders to better identify market trends, potential reversals, and trading opportunities. The script is designed to offer a holistic view of the market by combining the strengths of these individual indicators.
//Key Features and Originality//
WaveTrend Analysis:
WaveTrend Channel (WT1 and WT2): The core of this script is the WaveTrend indicator, which uses the smoothed average of typical price to identify overbought and oversold conditions. WT1 and WT2 are calculated to track market momentum and cyclical price movements.
Major Divergences (🐮/🐻): The script detects and highlights major bullish and bearish divergences automatically, providing traders with visual cues for potential reversals. This helps in making informed decisions based on divergence patterns.
Relative Strength Index (RSI):
RSI Levels: RSI is used to measure the speed and change of price movements, with specific levels indicating overbought and oversold conditions.
Customizable Levels: Users can configure the overbought and oversold thresholds, allowing for a tailored analysis based on individual trading strategies.
MoneyFlow Indicator:
Fast and Slow MoneyFlow: This indicator tracks the flow of capital into and out of the market, offering insights into the underlying market strength. It includes configurable periods and multipliers for both fast and slow MoneyFlow.
Vertical Positioning: The script allows users to adjust the vertical position of MoneyFlow plots to maintain a clear and uncluttered chart.
Stochastic RSI:
Stochastic RSI Levels: This combines the RSI and Stochastic indicators to provide a momentum oscillator that is sensitive to price changes. It is used to identify overbought and oversold conditions within a specified period.
Customizable Levels: Traders can set specific levels for more precise analysis.
//How It Works//
The script integrates these indicators through advanced algorithms, creating a synergistic effect that enhances market analysis. Here’s a detailed explanation of the underlying concepts and calculations:
WaveTrend Indicator:
Calculation: WaveTrend is based on the typical price (average of high, low, and close) smoothed over a specified channel length. WT1 and WT2 are derived from this typical price and further smoothed using the Average Channel Length. The difference between WT1 and WT2 indicates momentum, helping to identify cyclical market trends.
RSI (Relative Strength Index):
Calculation: RSI calculates the average gains and losses over a specified period to measure the speed and change of price movements. It oscillates between 0 and 100, with levels set to identify overbought (>70) and oversold (<30) conditions.
MoneyFlow Indicator:
Calculation: MoneyFlow is derived by multiplying price changes by volume and smoothing the results over specified periods. Fast MoneyFlow reacts quickly to price changes, while Slow MoneyFlow offers a broader view of capital movement trends.
Stochastic RSI:
Calculation: Stochastic RSI is computed by applying the Stochastic formula to RSI values, which highlights the RSI’s relative position within its range over a given period. This helps in identifying momentum shifts more precisely.
//How to Use the Script//
Display Settings:
Users can enable or disable various components like WaveTrend OB & OS levels, MoneyFlow plots, and divergence alerts through checkboxes.
Example: Turn on "Show Major Divergence" to see major bullish and bearish divergence signals directly on the chart.
Adjust Channel Settings:
Customize the data source, channel length, and smoothing periods in the "WaveTrend Channel SETTINGS" group.
Example: Set the "Channel Length" to 10 for a more responsive WaveTrend line or adjust the "Average Channel Length" to 21 for smoother trends.
Set Overbought & Oversold Levels:
Configure levels for WaveTrend, RSI, and Stochastic RSI in their respective settings groups.
Example: Set the WaveTrend Overbought Level to 60 and Oversold Level to -60 to define critical thresholds.
Money Flow Settings:
Adjust the periods and multipliers for Fast and Slow MoneyFlow indicators, and set their vertical positions for better visualization.
Example: Set the Fast Money Flow Period to 9 and Slow Money Flow Period to 12 to capture both short-term and long-term capital movements.
//Justification for Combining Indicators//
Enhanced Market Analysis:
Combining WaveTrend, RSI, and MoneyFlow provides a more comprehensive view of market conditions. Each indicator brings a unique perspective, making the analysis more robust.
WaveTrend identifies cyclical trends, RSI measures momentum, and MoneyFlow tracks capital movement. Together, they provide a multi-dimensional analysis of the market.
Improved Decision-Making:
By integrating these indicators, the script helps traders make more informed decisions. For example, a bullish divergence detected by WaveTrend might be validated by an RSI moving out of oversold territory and supported by increasing MoneyFlow.
Customization and Flexibility:
The script offers extensive customization options, allowing traders to tailor it to their specific needs and strategies. This flexibility makes it suitable for different trading styles and timeframes.
//Conclusion//
The indicator stands out due to its innovative combination of WaveTrend, RSI, and MoneyFlow indicators, offering a well-rounded tool for market analysis. By understanding how each component works and how they complement each other, traders can leverage this script to enhance their market analysis and trading strategies, making more informed and confident decisions.
Remember to always backtest the indicator first before implying it to your strategy.
NET BSP NET BSP derived from Buying & Selling Pressure which is a volatility indicator that monitors average metrics of green and red candles separately.
We could navigate more confidently through market with projected market balance.
BSP allowed us to track and analyze the ongoing performance of bullish and bearish impulsive waves and their corrections.
Due to unintuitive way of measuring decline with SP going up, I decided to remake it into more intuitive version with better precision.
When we encounter the fall it's better to have declining values of tool to be able to cover it visually with ease.
One of the solutions was to create a sense of balance of Buying Pressure against Selling Pressure.
Since we are oriented by growth, it'd be more logical to summarize the market balance with BP - SP
Comparison:
When Buying and Selling Pressure are equal, NET BSP would be at 0.
NETBSP > 0 and NETBSP > NETBSP = 🟢
NETBSP > 0 and NETBSP < NETBSP = 🟡
NETBSP < 0 and NETBSP < NETBSP = 🔴
NETBSP < 0 and NETBSP > NETBSP = 🟡
Hence, we get visualized stages of uptrends and downtrends which allows to evaluate chances and estimations of upcoming counter-waves.
Also, it is worth to note that output clearly shows how one wave is derived from another in terms of sizing.
Feel free to adjust NET BSP arguments to adapt sensitivity to the timeframe you're working on.






















