Cyclic Smoothed RSI with Motive-Corrective Wave Indicator
This indicator uses the cyclic smoothed Relative Strength Index (cRSI) instead of the traditional Relative Strength Index (RSI). See below for more info on the benefits to the cRSI.
My key contributions
1) A Weighted Moving Average (WMA) to track the general trend of the cRSI signal. This is very helpful in determining when the equity switches from bullish to bearish, which can be used to determine buy/sell points. This is then is used to color the region between the upper and lower cRSI bands (green above, red below).
2) An attempt to detect the motive (impulse) and corrective and waves. Corrective waves are indicated A, B, C, D, E, F, G. F and G waves are not technically Elliot Waves, but the way I detect waves it is really hard to always get it right. Once and a while you could actually see G and F a second time. Motive waves are identified as s (strong) and w (weak). Strong waves have a peak above the cRSI upper band and weak waves have a peak below the upper band.
3) My own divergence indicator for bull, hidden bull, bear, and hidden bear. I was not able to replicate the TradingView style of drawing a line from peak to peak, but for this indicator I think in the end it makes the chart cleaner.
There is a latency issue with an indicator that is based on moving averages. That means they tend to trigger right after key events. Perfect timing is not possible strictly with these indicators, but they do work very well "on average." However, my implementation has minimal latency as peaks (tops/bottoms) only require one bar to detect.
As a bit of an Easter Egg, this code can be tweaked and run as a strategy to get buy/sell signals. I use this code for both my indicator and for trading strategy. Just copy and past it into a new strategy script and just change it from study to a strategy, something like this:
strategy("cRSI + Waves Strategy with VWMA overlay", overlay=overlay)
The buy/sell code is at the end and just needs to be uncommented. I make no promises or guarantees about how good it is as a strategy, but it gives you some code and ideas to work with.
Tuning
1) Volume Weighted Moving Average (VWMA): This is a “hidden strategy” feature implemented that will display the high-low bands of the VWMA on the price chart if run the code using “overlay = true”.
- If the equity does not have volume, then the VWMA will not show up. Uncheck this box and it will use the regular WMA (no volume).
- defines how far back the WMA averages price.
2) cRSI (Black line in the indicator)
- Increase to length that amount of time a band (upper/lower) stays high/low after a peak. Reduce the value to shorten the time. Just increment it up/down to see the effect.
- defines how far back the SMA averages the cRSI. This affects the purple line in the indicator.
- defines how many bars back the peak detector looks to determine if a peak has occurred. For example, a top is detected like this: current-bar down relative to the 1-bar-back, 1-bar-back up relative to 2-bars-back (look back = 1), c) 2-bars-back up relative to 3-bars-back (lookback = 2), and d) 3-bars-back up relative to 4-bars-back (lookback = 3). I hope that makes sense. There are only 2 options for this setting: 2 or 3 bars. 2 bars will be able to detect small peaks but create more “false” peaks that may not be meaningful. 3 bars will be more robust but can miss short duration peaks.
3) Waves
- The check boxes are self explanatory for which labels they turn on and off on the plot.
4) Divergence Indicators
- The check boxes are self explanatory for which labels they turn on and off on the plot.
Hints
- The most common parameter to change is the . Different stocks will have different levels of strength in their peaks. A setting of 2 may generate too many corrective waves.
- Different times scales will give you different wave counts. This is to be expected. A counter impulse wave inside a corrective wave may actually go above the cRSI WMA on a smaller time frame. You may need to increase it one or two levels to see large waves.
- Just because you see divergence (bear or hidden bear) does not mean a price is going to go down. Often price continues to rise through bears, so take note and that is normal. Bulls are usually pretty good indicators especially if you see them on C,E,G waves.
----------------------------------------------------------------------------------------------------------------------------
cyclic smoothed RSI (cRSI) indicator
----------------------------------------------------------------------------------------------------------------------------
The “core” code for the cyclic smoothed RSI (cRSI) indicator was written by Lars von Theinen and is subject to the terms of the Mozilla Public License 2.0 at mozilla.org Copyright (C) 2017 CC BY, whentotrade / Lars von Thienen. For more details on the cRSI Indicator:
The cyclic smoothed RSI indicator is an enhancement of the classic RSI, adding
1) additional smoothing according to the market vibration,
2) adaptive upper and lower bands according to the cyclic memory and
3) using the current dominant cycle length as input for the indicator.
It is much more responsive to market moves than the basic RSI. The indicator uses the dominant cycle as input to optimize signal, smoothing, and cyclic memory. To get more in-depth information on the cyclic-smoothed RSI indicator, please read Decoding The Hidden Market Rhythm - Part 1: Dynamic Cycles (2017), Chapter 4: "Fine-tuning technical indicators." You need to derive the dominant cycle as input parameter for the cycle length as described in chapter 4.
Hope this helps and good luck.
Cari dalam skrip untuk "wave"
PSWave‴ | Price Spread Wave‴What does it do?
This indicator allows you to identify possible top and bottom reversals by having a prior Spread Price Volume reversal identifiable by positive (top reversal) and negative (bottom reversal) waves.
How does it work?
Everytime the wave starts ending its movement by shrinking the size of the histogram bars, it might be signing that a price reversal is on its way. It is possible to adjust the wave shape by increasing/decreasing its gradient value analysis, but it's so easy to use that most of the times no reconfiguration is needed, just add it and let it guide you.
What's my filling?
I've been testing this indicator for weeks and so far with incredible reversal signals specially if working in conjunction with Volume Wave (VolWave).
Indicator attributes:
- generally waves formation makes a symmetrical arc
- when the second half of a wave is elongated (compared to its first half), it suggests a lack of directional force of the current movement
- peak / bottom formation suggests reversal of the current movement
- smaller amplitude of a wave (compared to the previous wave) suggests loss of power, and vice-verse
- indicates divergence indication between peaks / bottoms
- when the volume bar touches the volume wave band, it suggests imminent reversal of the current movement
- band opening suggests movement increasing strength in that direction
- wavelengths (distance between two peaks / bottoms) tend to be similar
- subsequent wave rarely occurs
Technical information:
- the calculation of the positive movement is independent of the calculation of the positive movement
- the black line in the upper and lower zone is the average of the wave that is overcome, suggests strength in movement
- bands suggest delimitation of a wave's peak / bottom
To have access to this indicator, please DM me.
Don't contact me in the comment area.
[blackcat] L1 Elliott Wave3 CatcherLevel: 1
Background
Elliott wave theory is a method of technical analysis that looks for recurring long-term price patterns that are related to persistent changes in investor sentiment and psychology. The theory identifies waves that are identified as impulse waves that form a pattern and corrective waves that counteract the larger trend.
Function
L1 Elliott Wave3 Catcher is trying to observe Elliott wave more clear with different color candles.
Key Signal
var7 --> bull reveral signal which exists along motive wave
var7-var9 --> long in green color; short in red color; retracement in fuchsia color
var26/27/28 --> they are used for wave swing low detection and long entry
Pros and Cons
Pros:
1. Exhibit Elliott waves in different color candles
2. Highlight motive wave with yellow candles
3. Detect bottom and long entry points
Cons:
1. No complete long and short entries can be obtained
2. It cannot be applied for crypto due to lack of financial() functions
Remarks
Tribute to Elliott
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
Weis Pip Wave jayyWhat you see here is the Weis pip wave. The Weis pip wave shows how far in price a Weis wave has traveled through the duration of a Weis wave. The Weis pip wave is used in combination with the Weis cumulative volume wave. The two waves must be set to the same "wave size" and using the same method as described by Weis.
Using the traditional Weis method simply enter the desired wave size in the box "Select Weis Wave Size". In the example shown, it is set to 5 points. Each wave for each security and each timeframe requires its own wave size. Although not the traditional method a more automatic way to set wave size would be to use ATR. This is not the true Weis method but it does give you similar waves and, importantly, without the hassle of selecting a wave size for every chart. Once the Weis wave size is set then the pip wave will be shown.
I have put a zigzag of a 5 point Weis wave on the above bar chart. I have added it to allow your eye to get a better appreciation for Weis wave pivot points. You will notice that the wave is not in straight lines connecting wave tops to bottoms this is a function of the limitations of Pinescript version 1. This script would need to be in version 4 to allow straight lines. I will elaborate on the Weis pip zigzag script.
What is a Weis wave? David Weis has been recognized as a Wyckoff method analyst he has written two books one of which, Trades About to Happen, describes the evolution of the now popular Weis wave. The method employed by Weis is to identify waves of price action and to compare the strength of the waves on characteristics of wave strength. Chief among the characteristics of strength is the cumulative volume of the wave. There are other markers that Weis uses as well for example how the actual price difference between the start of the Weis wave from start to finish. Weis also uses time, particularly when using a Renko chart. Weis specifically uses candle/bar closes to define all wave action.
David Weis did a futures.io video which is a popular source of information about his method.
Cheers jayy
PS This script was published a day ago, however, I had included some links to the website of a person that uses Weis pip waves and also a dropbox link that contains the Weis wave chart for May 27, 2020, published by David Weis. Providing those links is against TV policy and so the script was hidden by TV. This is the identical script with the identical settings but without the offending links. If you want to see the pip Weis method in practice then search Weis pip wave. I have absolutely no affiliation. If you want to see Weis chart in pdf then message me and I will give a link or the Weis pdf. Why would you want to see the Weis chart for May 27, 2020? Merely to confirm the veracity of my algorithm. You could compare my chart () from the same period to the Weis chart. Both waves are for the ES!1 4 hour chart and both for a wave size of 5.
Any Problems with ELLIOTT WAVES? Here my secret to count the EW!Hi at all!
Have someone any problems to count the Elliott Waves correctly? Then use my modified indicator.
The indicator shows a fast and a slow RSI oscillator.
I use this indicator to find the 3. wave on any big wave -> so I can find always trend wave und can indicate with that than the correction wave.
I set an example on the chart, so you can look at the peaks the RSI oscillator shows. The highest peak show the 3. wave of Elliott Waves. If you know the 3. wave you can immediately see the wave 1, 2 and of course 4 and 5.
For better instruction this indicator get green and red, if the fast RSI is higher or lower than the slow RSI. This color changing helps also to see every spectrum of a wave.
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.
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.
GKD-V Weis Wave [Loxx]Giga Kaleidoscope GKD-V Weis Wave is a Volatility/Volume module included in Loxx's "Giga Kaleidoscope Modularized Trading System".
█ Giga Kaleidoscope Modularized Trading System
What is Loxx's "Giga Kaleidoscope Modularized Trading System"?
The Giga Kaleidoscope Modularized Trading System is a trading system built on the philosophy of the NNFX (No Nonsense Forex) algorithmic trading.
What is the NNFX algorithmic trading strategy?
The NNFX (No-Nonsense Forex) trading system is a comprehensive approach to Forex trading that is designed to simplify the process and remove the confusion and complexity that often surrounds trading. The system was developed by a Forex trader who goes by the pseudonym "VP" and has gained a significant following in the Forex community.
The NNFX trading system is based on a set of rules and guidelines that help traders make objective and informed decisions. These rules cover all aspects of trading, including market analysis, trade entry, stop loss placement, and trade management.
Here are the main components of the NNFX trading system:
1. Trading Philosophy: The NNFX trading system is based on the idea that successful trading requires a comprehensive understanding of the market, objective analysis, and strict risk management. The system aims to remove subjective elements from trading and focuses on objective rules and guidelines.
2. Technical Analysis: The NNFX trading system relies heavily on technical analysis and uses a range of indicators to identify high-probability trading opportunities. The system uses a combination of trend-following and mean-reverting strategies to identify trades.
3. Market Structure: The NNFX trading system emphasizes the importance of understanding the market structure, including price action, support and resistance levels, and market cycles. The system uses a range of tools to identify the market structure, including trend lines , channels, and moving averages.
4. Trade Entry: The NNFX trading system has strict rules for trade entry. The system uses a combination of technical indicators to identify high-probability trades, and traders must meet specific criteria to enter a trade.
5. Stop Loss Placement: The NNFX trading system places a significant emphasis on risk management and requires traders to place a stop loss order on every trade. The system uses a combination of technical analysis and market structure to determine the appropriate stop loss level.
6. Trade Management: The NNFX trading system has specific rules for managing open trades. The system aims to minimize risk and maximize profit by using a combination of trailing stops, take profit levels, and position sizing.
Overall, the NNFX trading system is designed to be a straightforward and easy-to-follow approach to Forex trading that can be applied by traders of all skill levels.
Core components of an NNFX algorithmic trading strategy
The NNFX algorithm is built on the principles of trend, momentum, and volatility . There are six core components in the NNFX trading algorithm:
1. Volatility - price volatility ; e.g., Average True Range , True Range Double, Close-to-Close, etc.
2. Baseline - a moving average to identify price trend
3. Confirmation 1 - a technical indicator used to identify trends
4. Confirmation 2 - a technical indicator used to identify trends
5. Continuation - a technical indicator used to identify trends
6. Volatility / Volume - a technical indicator used to identify volatility / volume breakouts/breakdown
7. Exit - a technical indicator used to determine when a trend is exhausted
What is Volatility in the NNFX trading system?
In the NNFX (No Nonsense Forex) trading system, ATR ( Average True Range ) is typically used to measure the volatility of an asset. It is used as a part of the system to help determine the appropriate stop loss and take profit levels for a trade. ATR is calculated by taking the average of the true range values over a specified period.
True range is calculated as the maximum of the following values:
-Current high minus the current low
-Absolute value of the current high minus the previous close
-Absolute value of the current low minus the previous close
ATR is a dynamic indicator that changes with changes in volatility . As volatility increases, the value of ATR increases, and as volatility decreases, the value of ATR decreases. By using ATR in NNFX system, traders can adjust their stop loss and take profit levels according to the volatility of the asset being traded. This helps to ensure that the trade is given enough room to move, while also minimizing potential losses.
Other types of volatility include True Range Double ( TRD ), Close-to-Close, and Garman-Klass
What is a Baseline indicator?
The baseline is essentially a moving average, and is used to determine the overall direction of the market.
The baseline in the NNFX system is used to filter out trades that are not in line with the long-term trend of the market. The baseline is plotted on the chart along with other indicators, such as the Moving Average (MA), the Relative Strength Index ( RSI ), and the Average True Range (ATR).
Trades are only taken when the price is in the same direction as the baseline. For example, if the baseline is sloping upwards, only long trades are taken, and if the baseline is sloping downwards, only short trades are taken. This approach helps to ensure that trades are in line with the overall trend of the market, and reduces the risk of entering trades that are likely to fail.
By using a baseline in the NNFX system, traders can have a clear reference point for determining the overall trend of the market, and can make more informed trading decisions. The baseline helps to filter out noise and false signals, and ensures that trades are taken in the direction of the long-term trend.
What is a Confirmation indicator?
Confirmation indicators are technical indicators that are used to confirm the signals generated by primary indicators. Primary indicators are the core indicators used in the NNFX system, such as the Average True Range (ATR), the Moving Average (MA), and the Relative Strength Index ( RSI ).
The purpose of the confirmation indicators is to reduce false signals and improve the accuracy of the trading system. They are designed to confirm the signals generated by the primary indicators by providing additional information about the strength and direction of the trend.
Some examples of confirmation indicators that may be used in the NNFX system include the Bollinger Bands , the MACD (Moving Average Convergence Divergence), and the Stochastic Oscillator. These indicators can provide information about the volatility , momentum, and trend strength of the market, and can be used to confirm the signals generated by the primary indicators.
In the NNFX system, confirmation indicators are used in combination with primary indicators and other filters to create a trading system that is robust and reliable. By using multiple indicators to confirm trading signals, the system aims to reduce the risk of false signals and improve the overall profitability of the trades.
What is a Continuation indicator?
In the NNFX (No Nonsense Forex) trading system, a continuation indicator is a technical indicator that is used to confirm a current trend and predict that the trend is likely to continue in the same direction. A continuation indicator is typically used in conjunction with other indicators in the system, such as a baseline indicator, to provide a comprehensive trading strategy.
What is a Volatility / Volume indicator?
Volume indicators, such as the On Balance Volume (OBV), the Chaikin Money Flow ( CMF ), or the Volume Price Trend ( VPT ), are used to measure the amount of buying and selling activity in a market. They are based on the trading volume of the market, and can provide information about the strength of the trend. In the NNFX system, volume indicators are used to confirm trading signals generated by the Moving Average and the Relative Strength Index . Volatility indicators include Average Direction Index, Waddah Attar, and Volatility Ratio. In the NNFX trading system, volatility is a proxy for volume and vice versa.
By using volume indicators as confirmation tools, the NNFX trading system aims to reduce the risk of false signals and improve the overall profitability of trades. These indicators can provide additional information about the market that is not captured by the primary indicators, and can help traders to make more informed trading decisions. In addition, volume indicators can be used to identify potential changes in market trends and to confirm the strength of price movements.
What is an Exit indicator?
The exit indicator is used in conjunction with other indicators in the system, such as the Moving Average (MA), the Relative Strength Index ( RSI ), and the Average True Range (ATR), to provide a comprehensive trading strategy.
The exit indicator in the NNFX system can be any technical indicator that is deemed effective at identifying optimal exit points. Examples of exit indicators that are commonly used include the Parabolic SAR , the Average Directional Index ( ADX ), and the Chandelier Exit .
The purpose of the exit indicator is to identify when a trend is likely to reverse or when the market conditions have changed, signaling the need to exit a trade. By using an exit indicator, traders can manage their risk and prevent significant losses.
In the NNFX system, the exit indicator is used in conjunction with a stop loss and a take profit order to maximize profits and minimize losses. The stop loss order is used to limit the amount of loss that can be incurred if the trade goes against the trader, while the take profit order is used to lock in profits when the trade is moving in the trader's favor.
Overall, the use of an exit indicator in the NNFX trading system is an important component of a comprehensive trading strategy. It allows traders to manage their risk effectively and improve the profitability of their trades by exiting at the right time.
How does Loxx's GKD (Giga Kaleidoscope Modularized Trading System) implement the NNFX algorithm outlined above?
Loxx's GKD v1.0 system has five types of modules (indicators/strategies). These modules are:
1. GKD-BT - Backtesting module ( Volatility , Number 1 in the NNFX algorithm)
2. GKD-B - Baseline module (Baseline and Volatility / Volume , Numbers 1 and 2 in the NNFX algorithm)
3. GKD-C - Confirmation 1/2 and Continuation module (Confirmation 1/2 and Continuation, Numbers 3, 4, and 5 in the NNFX algorithm)
4. GKD-V - Volatility / Volume module (Confirmation 1/2, Number 6 in the NNFX algorithm)
5. GKD-E - Exit module (Exit, Number 7 in the NNFX algorithm)
(additional module types will added in future releases)
Each module interacts with every module by passing data between modules. Data is passed between each module as described below:
GKD-B => GKD-V => GKD-C(1) => GKD-C(2) => GKD-C(Continuation) => GKD-E => GKD-BT
That is, the Baseline indicator passes its data to Volatility / Volume . The Volatility / Volume indicator passes its values to the Confirmation 1 indicator. The Confirmation 1 indicator passes its values to the Confirmation 2 indicator. The Confirmation 2 indicator passes its values to the Continuation indicator. The Continuation indicator passes its values to the Exit indicator, and finally, the Exit indicator passes its values to the Backtest strategy.
This chaining of indicators requires that each module conform to Loxx's GKD protocol, therefore allowing for the testing of every possible combination of technical indicators that make up the six components of the NNFX algorithm.
What does the application of the GKD trading system look like?
Example trading system:
Backtest: Strategy with 1-3 take profits, trailing stop loss, multiple types of PnL volatility , and 2 backtesting styles
Baseline: Hull Moving Average
Volatility/Volume: Weis Wave as shown on the chart above
Confirmation 1: Vortex
Confirmation 2: Williams Percent Range
Continuation: Fisher Transform
Exit: Rex Oscillator
Each GKD indicator is denoted with a module identifier of either: GKD-BT, GKD-B, GKD-C, GKD-V, or GKD-E. This allows traders to understand to which module each indicator belongs and where each indicator fits into the GKD protocol chain.
Giga Kaleidoscope Modularized Trading System Signals (based on the NNFX algorithm)
Standard Entry
1. GKD-C Confirmation 1 Signal
2. GKD-B Baseline agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility / Volume agrees
Baseline Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility / Volume agrees
6. GKD-C Confirmation 1 signal was less than 7 candles prior
Continuation Entry
1. Standard Entry, Baseline Entry, or Pullback; entry triggered previously
2. GKD-B Baseline hasn't crossed since entry signal trigger
3. GKD-C Confirmation Continuation Indicator signals
4. GKD-C Confirmation 1 agrees
5. GKD-B Baseline agrees
6. GKD-C Confirmation 2 agrees
1-Candle Rule Standard Entry
1. GKD-C Confirmation 1 signal
2. GKD-B Baseline agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
Next Candle:
1. Price retraced (Long: close < close or Short: close > close)
2. GKD-B Baseline agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility / Volume agrees
1-Candle Rule Baseline Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
4. GKD-C Confirmation 1 signal was less than 7 candles prior
Next Candle:
1. Price retraced (Long: close < close or Short: close > close)
2. GKD-B Baseline agrees
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility / Volume Agrees
PullBack Entry
1. GKD-B Baseline signal
2. GKD-C Confirmation 1 agrees
3. Price is beyond 1.0x Volatility of Baseline
Next Candle:
1. Price is within a range of 0.2x Volatility and 1.0x Volatility of the Goldie Locks Mean
3. GKD-C Confirmation 1 agrees
4. GKD-C Confirmation 2 agrees
5. GKD-V Volatility / Volume Agrees
█ GKD-C Weis Wave
What is Weis Wave?
The Weis Wave Indicator is a technical analysis tool used by traders to analyze market trends and identify potential turning points in financial markets. It was developed by David Weis, a trader and market analyst with over 45 years of experience.
The Weis Wave Indicator is based on the principles of market waves, which are the repetitive patterns of market behavior that occur in financial markets. These waves are characterized by price movements that occur in a series of up and down trends, and they are used by traders to identify potential market reversals or breakouts.
The Weis Wave Indicator is a histogram that represents the difference between the cumulative sum of the bullish and bearish waves. The indicator is plotted on a chart as a series of bars that change color depending on the direction of the market trend. If the market is trending up, the bars will be green, while if the market is trending down, the bars will be red.
The formula for the Weis Wave Indicator is based on the accumulation and distribution of volume over time. It uses a cumulative delta volume calculation to determine the strength of market trends and identify potential turning points. The formula is as follows:
Weis Wave Volume = Net Buying Volume - Net Selling Volume
The Weis Wave Indicator is used by traders to identify potential market trends and turning points. It is particularly useful in identifying market breakouts and reversals, as well as in detecting divergences between price and volume. The indicator is commonly used in conjunction with other technical analysis tools, such as moving averages, trend lines, and support and resistance levels, to confirm market trends and generate trading signals.
Specifically, the Weis Wave Volume Indicator is an oscillator that measures the volume of price changes. It combines both momentum and volume to indicate buying and selling pressure. The indicator is designed to show a bull market when the volume is increasing and the price is rising, and a bear market when the volume is decreasing and the price is falling ¹.
The Weis Wave Plugin creates wave charts along with their corresponding wave volume. Wave charts were first created by Richard D. Wyckoff. In his famous course on stock market technique, he instructed students to “think in waves.” Wave analysis was an integral part of his trading method. The Weis Wave is an adaptation of Wyckoff’s method that handles today’s volatile markets ².
This indicator has the option of either ATR, volume, or partial close for source input.
(1) Weis Wave Volume Indicator - Trend Following System. www.trendfollowingsystem.com Accessed 4/7/2023.
(2) Weis Wave Plugin: A Modern Adaptation of the Wyckoff Wave & Volume. weisonwyckoff.com Accessed 4/7/2023.
(3) Weis Wave Volume Indicator: Simple But Extremely Effective. howtotradeblog.com Accessed 4/7/2023.
(4) How to use the Weis Waves indicator in ATAS. atas.net Accessed 4/7/2023.
Requirements
Inputs
Chained: GKD-B Baseline
Solo: NA, no inputs
Baseline + Volatility/Volume: GKD-B Baseline
Outputs
Chained: GKD-C indicators Confirmation 1 or Solo Confirmation Complex
Solo: GKD-BT Backtest
Baseline + Volatility/Volume: GKD-BT Backtest
Additional features will be added in future releases.
Direction Analysis WavesDescription
It is an indicator that aims to provide information about the direction of the trend, the basis of which is the CCI, CMO and MFI indices.
Symbols on the indicator are for informational purposes. Information about colors and symbols is given below.
Blue Wave: Graphical representation of the Commodity Channel Index (CCI) curve.
Green/Red Wave: Graphical representation of the Chande Momentum Oscillator (CMO) curve. This curve turns green when it rises above zero, and turns red when it falls below zero.
Yellow Wave: Graphical representation of the Money Flow Index (MFI) curve.
Blue Line: CCI line.
Green/Red Cross: CCI line shows green cross on red cross below 0 value.
Warning
As a result, this indicator should be expected to give an idea of the trend direction, not a trading signal.
Version
v1.0
Price action: Fibonacci + Support/Resistant + TrendlinePrice action: Fibonacci + Support/Resistant + Trendline
In this indicator, I find entry long/Short by combining: Fibonacci + Support/Resistant + Trendline (One of Advanced Price action Analysis).
How it works:
1. Find Impulse wave:
To findind Impulse wave, It uses Pivot High/Low to find Impulse wave. In case find entry Long, If having Pivot High higher Pivot High before, it will draw an Impulse wave.
2. Find entry at Fibonacci levels:
Draw Fibonacci fibonacci retracement from Pivot Low to Pivot High. A Fibonacci retracement forecast is created by taking two extreme points on a chart and dividing the vertical distance by important Fibonacci ratios. 0% is considered to be the start of the retracement, while 100% is a complete reversal to the original price before the move. Horizontal lines are drawn in the chart for these price levels to provide support and resistance levels. Common levels are 23.6%, 38.2%, 50%, and 61.8%
3. Find entry at Support/Resistant Zone:
Support/Resistant Zone drawed from Pivot High before, which price just breaken and return to retest.
4. Find entry at Trendline:
Trendline drawed from Pivot High/Low before, which price just breaken and return to retest.
This is study version. Having strategy version to backtesting.
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..
AustinJames: Yume Wave 2.0This is the all-access version of the Yume Wave 2.0
The wave uses the bottom, top, and mid line as resistance points. The upper limit is the resistance, the lower limit is support - and the middle line is the support when wave is above it, and resistance when wave is below it.
Check against trend lines to find the best buy/sell point based on the wave. The timeframe you select with the trendline should match the yume wave.
-----------
This is a upgraded version of the wave with modified parameters for a higher success rate. 3 New Lengths and 75 more lines of code added to the overall algorithm. Also included are 2 sublevel signals based on the Fib MA and pattern trading.
The Wave:
+ The Yume is the Fast length
+ The Akume is the Slow length
+ The Miaku is a median weighted length
+ The Upper Limit is an overbought asset indication
+ The Lower Limit is an oversold asset indication
+ The Wave is the spread between Yume and Miaku
Bullish Indications:
+ The Yume is above the Akume
+ The Yume is above the Miaku
+ The Yume is below the Lower Limit
Bearish Indications:
+ The Yume is below the Akume
+ The Yume is below the Miaku
+ The Yume is above the Upper Limit
Signal Strength Weights:
+ 50 = Yume Wave crossed a Limit Line
+ 100 = Yume Wave crossed a Limit Line + Close to a Fib Moving Average
+ 100 = Edge's Market Bottom/Top Algorithm is marked 'True'
Setting up Signals (Based on a 100 Signal Height):
+ Set the "Bull Signal" to be at 50 or 100
+ Set the "Bear Signal" to be at 50 or 100
+ 50 is Agressive, 100 is Conservative.
+ Bull/Bear are separate so you can play conservative bull with aggressive bear.
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.
Elliott Wave / NeoWave Rule Engine – v6.9This script functions as a "rule engine" that automatically identifies significant price swings and then tests them against a comprehensive set of Elliott Wave rules and guidelines.
The goal is to filter out low-probability setups and identify valid motive (impulse and diagonal) waves by applying user-defined tolerances. The script plots swings on the chart and can display a real-time dashboard that shows which rules are passing or failing. When a valid motive wave is detected, it can generate buy or sell signals.
User Settings
The script's behavior is controlled by a set of user inputs, organized into four main groups.
Swing / ZigZag Detection
These settings control how the script identifies the price swings that form the basis of the wave patterns.
Pivot Left Bars & Pivot Right Bars: These two values determine the sensitivity of the swing detection. A pivot point (a high or low) is only identified if it is the highest or lowest price within the specified number of bars to its left and right. Increasing these numbers will result in fewer, larger swings.
Minimum swing % (filter micro noise): This is a crucial filter. It ignores swings that are too small to be considered significant, helping to clean up the chart and prevent the engine from analyzing "noise." For example, a value of 0.3 means any swing that is less than 0.3% of the price range will be ignored.
Rule Engine Tolerances
This group allows you to define how strict the validation rules are.
Fibonacci tolerance (±%): This sets the acceptable margin of error for Fibonacci relationships (e.g., a 0.618 retracement). A value of 0.001 means a retracement between 0.617 and 0.619 will be considered a valid match.
Same-degree TIME proportion max (x): This sets the maximum time difference allowed between waves of the same degree (e.g., Wave 1 and Wave 3) to still be considered "proportional." A value of 1 means Wave 3's duration can be up to 1 time longer than Wave 1's duration, and vice-versa.
Same-degree PRICE proportion max (x): Similar to the time tolerance, this sets the maximum price difference allowed between waves of the same degree to still be considered proportional.
Alternation slope ratio threshold: This is a key NeoWave guideline. It checks if Wave 2 and Wave 4 have different "sharpness" (price change per bar). A higher value makes the alternation rule stricter.
Min guideline passes for motive validation (0–7): This is the gating feature. Even if a pattern passes all the hard Elliott Wave rules (e.g., no overlap, Wave 3 isn't the shortest), you can still require it to pass a minimum number of guidelines (like Fibonacci relationships, alternation, etc.) before a signal is generated. A value of 7 means every guideline must be met.
Momentum / Volume Guidelines
These are additional checks for pattern validation.
Momentum length: This setting controls a proxy for momentum, which is calculated based on the speed of price movement.
Use volume checks: This is a placeholder for future functionality. It does not currently affect the script's behavior.
UI / Debug
These settings control the visual aspects of the script on your chart.
Max swings to keep/evaluate: This determines how far back the script looks to find and analyze swings. A larger number will analyze more historical patterns but may impact performance.
Show detected labels: Toggles the display of numerical (1-2-3-4-5) and letter (A-B-C) labels on the detected waves.
Show rule PASS/FAIL dashboard: Toggles the on-chart table that provides a detailed breakdown of which rules and guidelines are met.
Table Position: Controls where the rule dashboard is located on your chart.
Print debug info to Data Window: If you are a developer or want to see the underlying data, this will print information to TradingView's Data Window.
Show Buy/Sell Signals: Toggles the display of Buy/Sell signals. These signals are only generated when a pattern passes all the hard rules and your minimum guideline pass requirement.
Slope Based Divergences of Wavelet - (Multi-Length, Dual Price)
1. Summary
This is not a typical divergence indicator. Instead of comparing simple peaks and troughs in price and an oscillator, the Slope-Based Divergence Engine performs a far more rigorous analysis by measuring the rate of change (slope) itself.
It identifies high-probability divergence opportunities by detecting moments when price is accelerating strongly in one direction while the underlying momentum, measured by a sophisticated Scientific Wavelet Oscillator, is accelerating in the opposite direction. By requiring confirmation from two different price sources (high and low) and across multiple timeframes, it aims to filter out noise and pinpoint only the most potent moments of market exhaustion.
2. The Core Innovation: Why Slope?
Traditional divergence indicators look at levels (e.g., price made a higher high, RSI made a lower high). This script looks at momentum's momentum.
Traditional Method: "Price went up, but momentum went down."
This Script's Method: "Price is accelerating upwards faster than ever, but momentum is decelerating faster than ever."
By focusing on the slope, the indicator identifies points of maximum stress and disagreement in the market, which often precede sharp reversals.
3. Key Components & Logic
The script's power comes from its multi-layered filtering system:
Scientific Wavelet Oscillator: The indicator's engine is a custom oscillator built using a Haar Wavelet Transform. Unlike standard oscillators (like RSI or Stochastics) that use a single period, this one analyzes the price across multiple different time scales (or "octaves") simultaneously. It then fuses this information into a single, robust momentum reading that is normalized using a statistical Z-score.
Multi-Length Average Slope: The script doesn't just calculate a single slope. It calculates the slope across a range of lookback periods (e.g., from 1 to 30 bars) and then averages them. This creates a much smoother and more reliable measure of the trend's current velocity, filtering out the noise from any single period.
Dual Price Confirmation: To qualify a price trend, the script requires that the slope of two separate price sources (by default, high and low) are both in agreement. For a bearish divergence, the slopes of both the session high and low must be accelerating upwards aggressively. This ensures the entire price bar is participating in the move and avoids false signals from wicks or narrow ranges.
Multi-Timeframe Percent Rank: The script uses percentrank to normalize the calculated slopes, putting them on a scale of 0 to 100. This allows it to identify statistically extreme readings. A divergence is only confirmed if it meets the criteria on both a Long-Term (LL) and Short-Term (LS) lookback. This ensures the signal is not just a momentary fluke but is a valid point of exhaustion in both the immediate and broader context.
4. How to Interpret the Signals
The indicator plots simple labels on the chart when all conditions are met:
Green "Bull" Label (Bullish Divergence): Appears when:
The slopes of both high and low are accelerating downwards (in the bottom 8% of their historical readings for both long and short lookbacks).
Simultaneously, the slope of the wavelet oscillator is accelerating upwards (in the top 92% of its historical readings).
Meaning: Price is in a state of free-fall, but the underlying momentum is aggressively turning up. This signals that selling pressure is likely exhausted.
Red "Bear" Label (Bearish Divergence): Appears when:
The slopes of both high and low are accelerating upwards (in the top 92% of their historical readings).
Simultaneously, the slope of the wavelet oscillator is accelerating downwards (in the bottom 8% of its historical readings).
Meaning: Price is in a state of extreme ascent (a "blow-off top"), but the underlying momentum is collapsing. This signals that buying pressure is likely exhausted.
5. How to Use in Trading
Reversal Signals: The labels should be treated as high-probability signals that a trend is exhausted and a reversal or significant pullback is imminent.
Confirmation Tool: Do not use the labels as standalone entry signals. Always seek confirmation from other forms of analysis, such as a break of a trendline, a key support/resistance level holding, or a classic candlestick reversal pattern.
Exit Signals: A bearish divergence label can serve as a powerful signal to take profit on long positions, and a bullish label can be a signal to cover shorts.
Mohammad - OBs, BOS, S/R, Elliott Waves & Trend LinesProfessional Trading Indicator System - Technical Analysis Suite
Overview
Advanced technical analysis system integrating ICT/SMC methodologies with classical analysis tools. Features seven analytical components for comprehensive market structure analysis.
Components
1. Order Blocks (ICT/SMC)
Identifies institutional accumulation/distribution zones acting as future support/resistance.
Detection: Automatic identification based on price rejection patterns
Management: Dynamic updates and removal of invalidated blocks
Configuration: Sensitivity levels (High/Medium/Low), ATR-based parameters
Visual: Green support, red resistance with transparency
2. Break of Structure (BOS)
Detects significant structural breaks indicating trend changes.
Method: 5-bar swing point formation
Display: White horizontal lines with labels
Range: 50-bar maximum lookback
3. Support & Resistance
Classical horizontal levels from significant price pivots.
Analysis: 300-bar historical scan
Filter: 10-point duplicate tolerance
Display: Maximum 15 levels within 5% of current price
4. Fair Value Gaps (FVG)
Price inefficiencies that often get filled on return.
Types: Bullish gaps (up) and bearish gaps (down)
Size: Minimum 0.1 ATR or 5 points
Management: Auto-removal when filled
5. Elliott Wave Analysis
Advanced pattern recognition for impulse and corrective waves.
Patterns: 5-wave impulse (1-2-3-4-5), 3-wave corrective (A-B-C)
Adaptive: Auto-adjusts to timeframe (3-10 depth range)
Display: Small dots with large numbers, starts from hidden point 0
6. 45-Degree Momentum Lines
Revolutionary projection system based on consecutive candle sequences.
Bearish Lines (Red):
Trigger: 5+ consecutive red candles
Start: HIGH of first red candle
Labels: B1-B5
Bullish Lines (Green):
Trigger: 5+ consecutive green candles
Start: LOW of first green candle
Labels: T1-T5
Specifications:
Angle: 45° using ATR * 0.15
Extension: 30 bars forward
Display: 5 most recent patterns
7. Classical Trend Lines
Multi-touch diagonal support/resistance detection.
Validation: Minimum touch requirements
Tolerance: ATR-based touch detection
Display: Blue lines with optional labels
Configuration Summary
Global Settings:
Show/hide each component individually
Customizable colors and line widths
Label size options
Performance:
50-bar periodic cleanup
Maximum object limits (500 each)
Conditional processing on bar close
Trading Applications
Scalping: Order Blocks + FVGs + 45° Lines
Day Trading: All components with BOS emphasis
Swing Trading: Elliott Waves + Trend Lines
Position Trading: Major levels + Elliott Waves
Key Strategies:
Use 45° line bounces for entries
Combine Order Blocks with 45° lines for confluence
Confirm BOS breaks with 45° line violations
Place stops beyond projection lines
Technical Requirements
Platform: TradingView Pine Script v5
Minimum: 300 historical bars
Optimal: 15m-4H timeframes
Performance: Moderate CPU usage
Color Scheme
Green: Bullish/Support (#26a69a)
Red: Bearish/Resistance (#ef5350)
White: BOS/S&R lines
Blue: Elliott Waves/Trend Lines
Customizable: 45° projection lines
Risk Disclaimer
Educational tool only. Not financial advice. Combine with risk management and personal analysis. Past performance doesn't guarantee future results. Trading involves substantial risk.
Harmonic Pattern Detector [The_lurker]
📊 Harmonic Pattern Detector
An advanced indicator designed to automatically detect and visualize harmonic patterns on price charts with high accuracy. It is based on Fibonacci ratios, ZigZag structures, and pivot points, offering traders precise identification of potential reversal zones.
The indicator supports detection of 13 major harmonic patterns: Gartley, Butterfly, Bat, Crab, Deep Crab, AB=CD, Cypher, Shark, Three Drives, Wolfe Waves, 5-0, Black Swan, and Anti-Gartley.
Each pattern is matched using ideal Fibonacci ratios with a customizable error margin. Patterns are validated only if the similarity score (accuracy) is greater than or equal to 80%, ensuring reliable signals.
🔎 How It Works:
1️⃣ Pivot Point Detection
The indicator uses a function to find major swing highs and lows (`findPivots`), based on a configurable pattern length (default is 18 candles). These pivots are stored in arrays: `pivotPrices`, `pivotBars`, and `pivotDirections`.
2️⃣ ZigZag Construction
With the pivots detected, the indicator constructs a ZigZag structure by connecting the relevant price points using `buildZigZag`. These lines represent the fundamental price movements forming harmonic shapes.
3️⃣ Fibonacci Ratio Calculation
From the ZigZag, the indicator extracts points labeled X, A, B, C, and D, then calculates key Fibonacci ratios:
* XAB = |B-A| / |X-A|
* ABC = |C-B| / |A-B|
* XAD = |D-A| / |X-A|
4️⃣ Pattern Matching Algorithm
Each pattern has its ideal Fibonacci ranges. The ratios are compared with these ranges using adjustable error margins:
ERROR_MARGIN_MIN = (100 - DETECT_ERROR_MARGIN_PERCENT) / 100
ERROR_MARGIN_MAX = (100 + DETECT_ERROR_MARGIN_PERCENT) / 100
If all required ratios for a pattern fall within these bounds, the pattern is considered a potential match.
5️⃣ Similarity Score Calculation
To evaluate accuracy, each pattern gets a similarity score by comparing actual vs. ideal ratios. For example:
simXAB = min(xabRatio / idealXAB, idealXAB / xabRatio)
simABC = min(abcRatio / idealABC, idealABC / abcRatio)
simXAD = min(xadRatio / idealXAD, idealXAD / xadRatio)
similarity = (simXAB + simABC + simXAD) / 3
Only patterns with a similarity ≥ MIN\_RATING\_PERCENT (default 80%) are shown.
6️⃣ Visual Output
When a pattern is detected, it is displayed by connecting the points X→A→B→C→D. A label is drawn at point D showing:
* Pattern Name
* Emoji (e.g., 🦋 for Gartley)
* Similarity percentage (e.g., "92%")
Patterns are color-coded:
🟢 Green for Bullish
🔴 Red for Bearish
⚙️ Configurable Settings:
* ENABLE_PATTERN_DETECTION`: Toggle to enable or disable pattern detection
* PATTERN_LENGTH_INPUT`: Number of candles to consider for structure
* DETECT_ERROR_MARGIN_PERCENT`: Controls allowed deviation from ideal Fibonacci ratios
* MIN_RATING_PERCENT`: Minimum similarity percentage to display a pattern (e.g., 80%)
🎨 Display Customization:
* Customize ZigZag lines (solid, dotted, dashed)
* Control thickness, color, and style of lines
* Adjust label font size, position, and visibility
* Enable or disable specific pattern types
* Modify Fibonacci levels used per pattern
Labels include emojis for easier recognition:
🦋 Gartley | 🐝 Butterfly | 🦈 Shark | 🐺 Wolfe Waves | 🦢 Black Swan | ⚡ Anti-Gartley
📚 Pattern Definitions:
Gartley: XAB ≈ 0.618, ABC ≈ 0.382–0.886, XAD ≈ 0.786
Butterfly: XAB ≈ 0.786, XAD ≈ 1.272
Bat: XAB ≈ 0.382–0.50, XAD ≈ 0.886
Crab / Deep Crab: XAD ≈ 1.618–1.902
AB=CD: AB equals CD (symmetrical moves)
Cypher: ABC ≈ 1.13–1.414, XAD ≈ 0.786
Shark: XAD ≈ 1.0–1.13
Three Drives: Three legs with Fibonacci extensions
Wolfe Waves: Geometrically aligned points, XAD ≈ 1.272–1.618
5-0: CD retraces 50% of previous wave
Black Swan: Rare, sharp pattern, XAD ≈ 3.618–4.236
Anti-Gartley: Reverse Gartley with custom ratios
📈 Target Markets:
This indicator is effective for analyzing:
✔ Forex
✔ Stocks
✔ Crypto
✔ Commodities (Gold, Oil, etc.)
Suitable for multiple trading styles:
* Scalping
* Swing Trading
* Position Trading
✨ Key Features:
✅ 13 harmonic patterns supported
✅ Automatic detection with accuracy scoring
✅ Adjustable error margins
✅ Fully customizable display
✅ Pattern-specific toggles
✅ Bullish/Bearish color-coded output
✅ Informative labels with pattern name, emoji, and similarity
⚠️ Disclaimer:
This indicator is for educational and analytical purposes only. It does not constitute financial, investment, or trading advice. Use it in conjunction with your own strategy and risk management. Neither TradingView nor the developer is liable for any financial decisions or losses.
كاشف الأنماط التوافقية 📊
مؤشر متطور مصمم للكشف التلقائي عن الأنماط التوافقية على مخططات الأسعار وتصورها بدقة عالية. يعتمد على نسب فيبوناتشي، وهياكل الزجزاج، ونقاط الارتكاز، مما يوفر للمتداولين تحديدًا دقيقًا لمناطق الانعكاس المحتملة.
يدعم المؤشر الكشف عن 13 نمطًا توافقيًا رئيسيًا: جارتلي، الفراشة، الخفاش، السلطعون، السلطعون العميق، AB=CD، السايفر، القرش، ثلاثة محركات، موجات وولف، 5-0، البجعة السوداء، ومضاد جارتلي.
يتم مطابقة كل نمط باستخدام نسب فيبوناتشي مثالية مع هامش خطأ قابل للتخصيص. لا يتم التحقق من صحة الأنماط إلا إذا كانت درجة التشابه (الدقة) أكبر من أو تساوي 80%، مما يضمن إشارات موثوقة.
🔎 كيفية العمل:
1️⃣ اكتشاف نقاط الارتكاز
يستخدم المؤشر دالة للعثور على قمم وقيعان التأرجح الرئيسية (`findPivots`)، بناءً على طول نمط قابل للتخصيص (الطول الافتراضي هو 18 شمعة). تُخزّن هذه النقاط المحورية في مصفوفات: `pivotPrices`، `pivotBars`، `pivotDirections`.
2️⃣ بناء ZigZag
بعد اكتشاف النقاط المحورية، يُنشئ المؤشر بنية ZigZag بربط نقاط السعر ذات الصلة باستخدام `buildZigZag`. تُمثل هذه الخطوط تحركات الأسعار الأساسية مُشكّلةً أشكالًا توافقية.
3️⃣ حساب نسبة فيبوناتشي
من ZigZag، يستخرج المؤشر النقاط المُسمّاة X، A، B، C، وD، ثم يحسب نسب فيبوناتشي الرئيسية:
* XAB = |B-A| / |X-A|
* ABC = |C-B| / |A-B|
* XAD = |D-A| / |X-A|
4️⃣ خوارزمية مطابقة الأنماط
لكل نمط نطاقات فيبوناتشي مثالية. تُقارن النسب بهذه النطاقات باستخدام هوامش خطأ قابلة للتعديل:
ERROR_MARGIN_MIN = (100 - DETECT_ERROR_MARGIN_PERCENT) / 100
ERROR_MARGIN_MAX = (100 + DETECT_ERROR_MARGIN_PERCENT) / 100
إذا وقعت جميع النسب المطلوبة للنمط ضمن هذه الحدود، يُعتبر النمط مطابقًا محتملًا.
5️⃣ حساب درجة التشابه
لتقييم الدقة، يحصل كل نمط على درجة تشابه بمقارنة النسب الفعلية بالنسب المثالية. على سبيل المثال:
simXAB = min(xabRatio / idealXAB, idealXAB / xabRatio)
simABC = min(abcRatio / idealABC, idealABC / abcRatio)
simXAD = min(xadRatio / idealXAD, idealXAD / xadRatio)
التشابه = (simXAB + simABC + simXAD) / 3
يتم عرض الأنماط التي يكون تشابهها ≥ MIN\_RATING\_PERCENT (الافتراضي 80%) فقط.
6️⃣ المخرجات المرئية
عند اكتشاف نمط، يتم عرضه بتوصيل النقاط X→A→B→C→D. يتم رسم علامة عند النقطة D تُظهر:
* اسم النمط
* رمز تعبيري (مثل 🦋 لنمط جارتلي)
* نسبة التشابه (مثل "92%))
الأنماط مُرمَّزة بالألوان:
🟢 أخضر للارتفاع
🔴 أحمر للانخفاض
⚙️ إعدادات قابلة للتخصيص:
* تمكين كشف النمط: تفعيل أو تعطيل كشف النمط
* إدخال طول النمط: عدد الشموع المُراد حسابها للهيكل
* كشف الخطأ: نسبة الهامش: يتحكم في الانحراف المسموح به عن نسب فيبوناتشي المثالية
* الحد الأدنى لنسبة التشابه لعرض النمط (مثل 80%)
🎨 تخصيص العرض:
* تخصيص خطوط متعرجة (متصلة، منقطة، متقطعة)
* التحكم في السُمك واللون ونمط الخطوط
* ضبط حجم خط التسمية وموضعه ووضوحه
* تفعيل أو تعطيل أنواع أنماط محددة
* تعديل مستويات فيبوناتشي المستخدمة لكل نمط
تتضمن التسميات رموزًا تعبيرية لتسهيل التعرف عليها:
🦋 جارتلي | 🐝 فراشة | 🦈 سمكة قرش | 🐺 موجات وولف | 🦢 بجعة سوداء | ⚡ نمط مضاد لـ غارتلي
📚 تعريفات الأنماط:
غارتلي: XAB ≈ 0.618، ABC ≈ 0.382–0.886، XAD ≈ 0.786
فراشة: XAB ≈ 0.786، XAD ≈ 1.272
خفاش: XAB ≈ 0.382–0.50، XAD ≈ 0.886
سرطان البحر/سرطان البحر العميق: XAD ≈ 1.618–1.902
AB=CD: AB يساوي CD (حركات متماثلة)
سايفر: ABC ≈ 1.13–1.414، XAD ≈ 0.786
شارك: XAD ≈ 1.0–1.13
ثلاثة أرجل: ثلاثة أرجل مع فيبوناتشي امتدادات
موجات وولف: نقاط متوازية هندسيًا، XAD ≈ 1.272–1.618
5-0: تصحيح CD بنسبة 50% من الموجة السابقة
البجعة السوداء: نمط نادر وحاد، XAD ≈ 3.618–4.236
مضاد جارتلي: جارتلي معكوس بنسب مخصصة
📈 الأسواق المستهدفة:
هذا المؤشر فعال لتحليل:
✔ الفوركس
✔ الأسهم
✔ العملات المشفرة
✔ السلع (الذهب، النفط، إلخ)
مناسب لأنماط تداول متعددة:
* المضاربة السريعة
* تداول التأرجح
* تداول المراكز
✨ الميزات الرئيسية:
✅ دعم 13 نمطًا توافقيًا
✅ كشف تلقائي مع تسجيل الدقة
✅ هوامش خطأ قابلة للتعديل
✅ شاشة قابلة للتخصيص بالكامل
✅ مفاتيح تبديل خاصة بالأنماط
✅ مخرجات مرمزة بالألوان للصعود/الهبوط
✅ تسميات توضيحية مع النمط الاسم، والرموز التعبيرية، والتشابه
⚠️ إخلاء مسؤولية:
هذا المؤشر لأغراض تعليمية وتحليلية فقط. لا يُمثل نصيحة مالية أو استثمارية أو تداولية. استخدمه بالتزامن مع استراتيجيتك الخاصة وإدارة المخاطر. لا يتحمل TradingView ولا المطور مسؤولية أي قرارات مالية أو خسائر.
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.






















