Nen Star Harmonic Pattern [TradingFinder] NenStar Reversal Auto🔵 Introduction
The Nen-Star Harmonic Pattern is an advanced reversal pattern in technical analysis, designed to identify market trend changes and predict key price reversal points. This pattern is defined by a combination of Fibonacci ratios and critical concepts such as Potential Reversal Zones (PRZ), market structure, and corrective waves.
The key points of this pattern include X, A, B, C, and D, and it appears in both bullish and bearish forms. In its bullish form, the pattern resembles the letter M, while in its bearish form, it takes the shape of W. The critical Fibonacci ratios for this pattern are 0.382 to 0.786 for the XA wave, 1.13 to 1.414 for the AB wave, and 1.272 to 2.618 for the BC wave.
The Nen-Star Harmonic Pattern is one of the most precise tools for identifying market reversals and executing reversal trades. Traders can use it to pinpoint optimal entry and exit points and benefit from high risk-to-reward ratios.
By emphasizing Fibonacci retracement levels, XABCD waves, the formation of bullish and bearish patterns, and precise trade entry points, this pattern has become a practical tool in advanced technical analysis.
Bullish Nen-Star Pattern :
Bearish Nen-Star Pattern :
🔵 How to Use
The Nen-Star Harmonic Pattern indicator allows traders to automatically identify the bullish and bearish structures of this pattern and locate optimal entry and exit points. By accurately analyzing Fibonacci ratios and determining points X, A, B, C, and D, the indicator highlights Potential Reversal Zones (PRZ) on the chart. Traders can rely on the generated signals to manage their trades with greater precision.
🟣 Bullish Nen-Star Pattern
The bullish Nen-Star pattern begins with a price increase from point X to point A, followed by a retracement to point B, which lies between 0.382 and 0.786 of the XA wave.
After this retracement, the price moves to point C, located between 1.13 and 1.414 of the AB wave. The final movement is a price decline to point D, which is between 1.272 and 2.618 of the BC wave and 1.13 to 1.272 of the XA wave.
Point D : Serves as the key Potential Reversal Zone (PRZ).
Entry : A buy trade is initiated at point D, signaling the end of the corrective movement and the beginning of a price increase.
Price Targets :
61.8% retracement of the CD wave
Point A
Point C
1.272 and 1.618 extensions of the CD wave if resistance at point C is broken
Stop Loss : Placed slightly below point D.
🟣 Bearish Nen-Star Pattern
The bearish Nen-Star pattern starts with a price decrease from point X to point A, followed by a retracement to point B, which lies between 0.382 and 0.786 of the XA wave.
After this retracement, the price moves to point C, located between 1.13 and 1.414 of the AB wave. The final movement is a price increase to point D, which is between 1.272 and 2.618 of the BC wave and 1.13 to 1.272 of the XA wave.
Point D : Serves as the key Potential Reversal Zone (PRZ).
Entry : A sell trade is initiated at point D, signaling the end of the corrective movement and the beginning of a price decline.
Price Targets :
61.8% retracement of the CD wave
Point A
Point C
1.272 and 1.618 extensions of the CD wave if support at point C is broken
Stop Loss : Placed slightly above point D.
🔵 Setting
🟣 Logical Setting
ZigZag Pivot Period : You can adjust the period so that the harmonic patterns are adjusted according to the pivot period you want. This factor is the most important parameter in pattern recognition.
Show Valid Forma t: If this parameter is on "On" mode, only patterns will be displayed that they have exact format and no noise can be seen in them. If "Off" is, the patterns displayed that maybe are noisy and do not exactly correspond to the original pattern.
Show Formation Last Pivot Confirm : if Turned on, you can see this ability of patterns when their last pivot is formed. If this feature is off, it will see the patterns as soon as they are formed. The advantage of this option being clear is less formation of fielded patterns, and it is accompanied by the latest pattern seeing and a sharp reduction in reward to risk.
Period of Formation Last Pivot : Using this parameter you can determine that the last pivot is based on Pivot period.
🟣 Genaral Setting
Show : Enter "On" to display the template and "Off" to not display the template.
Color : Enter the desired color to draw the pattern in this parameter.
LineWidth : You can enter the number 1 or numbers higher than one to adjust the thickness of the drawing lines. This number must be an integer and increases with increasing thickness.
LabelSize : You can adjust the size of the labels by using the "size.auto", "size.tiny", "size.smal", "size.normal", "size.large" or "size.huge" entries.
🟣 Alert Setting
Alert : On / Off
Message Frequency : This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar".
Show Alert Time by Time Zone : The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
🔵 Conclusion
The Nen-Star Harmonic Pattern is a highly effective analytical tool in global financial markets, playing a crucial role in identifying reversal points and market trend changes. By leveraging Fibonacci principles and price structure, this pattern enables precise analysis across various assets, including stocks, cryptocurrencies, forex, and commodities.
Traders operating in global markets can use this pattern to identify high risk-to-reward trading opportunities. Its clear entry and exit points, defined Potential Reversal Zones (PRZ), and accurate price targets make it an excellent tool for risk management and profitability enhancement.
In the global context, the Nen-Star pattern is widely used by professional analysts in both advanced and emerging markets due to its versatility in analyzing long-term and short-term charts. Beyond trend prediction, it enhances trading strategies and optimizes investment decisions.
Combining this pattern with complementary tools such as volume analysis, technical indicators, and macroeconomic conditions can provide traders with deeper market insights, helping them capitalize on global opportunities.
Cerca negli script per "wave"
Fractal & Entropy Market Dynamics with Mexican Hat WaveletThis indicator combines fractal analysis, entropy, and wavelet theory to model market dynamics using a customized approach. It integrates advanced mathematical techniques to assess the complexity and structure of price action, while also incorporating volume and price volatility.
Key Concepts and Features:
Volume-Weighted Price:
The script calculates a volume-adjusted price using a moving average of volume to give more weight to periods with higher volume. This allows the indicator to account for the impact of trading volume on price movements, enhancing its sensitivity to significant price shifts.
Mexican Hat Wavelet Approximation:
The script employs the Mexican Hat Wavelet, a mathematical tool that approximates price movements based on the Laplacian of the price series. This helps capture localized oscillations in price, acting as a filter to highlight certain price dynamics over the specified length. This wavelet is commonly used to identify key inflection points and trends in financial data.
Fractal Dimension Calculation:
The fractal dimension is calculated to quantify the market's complexity. It measures how price moves between intervals, with higher values indicating chaotic or more volatile market behavior. This dimension captures the self-similarity in price movements across different time frames, a key feature of fractals.
Shannon Entropy Calculation:
Shannon Entropy is used to measure the randomness or uncertainty in the price action. It calculates the degree of unpredictability based on the price changes, providing insight into the market's informational efficiency. Higher entropy indicates more randomness, while lower entropy suggests more predictable trends.
Custom Normalization:
The script includes a custom normalization function that processes the composite score (derived from fractal dimension and entropy). This normalization helps scale the values into a consistent range, making it easier to interpret the output. The smoothing factor and RSI-based approach ensure that the normalized value reacts smoothly to the changes in market dynamics.
Composite Score:
The composite score is a weighted combination of the fractal dimension and entropy. This score aims to provide a holistic view of the market by combining the structural complexity (fractal) and randomness (entropy) into one unified metric.
Plotting and Visuals:
The indicator plots the normalized composite score on a scale where a baseline of 50 is provided for reference. The resulting plot helps traders visualize market dynamics, with the score fluctuating based on changes in the market's fractal dimension and entropy. A score above or below the baseline of 50 indicates potential market shifts.
Use Case:
The "Enhanced Fractal and Entropy Market Dynamics with Mexican Hat Wavelet" is useful for traders looking to identify market conditions where there is a balance between price structure and randomness. By integrating wavelets, fractals, and entropy, the indicator can provide insights into market complexity, helping traders recognize potential trend reversals, periods of consolidation, or increased volatility. This can be particularly effective for those employing swing trading or trend-following strategies
Sine Wave TheoryThere are some ideas out there that the market is like a collection of quantum events and that it could all be broken down into sine waves. I created this script to put that to the test.
The idea is simple, I tested 3 different factors that could be put into sine wave form.
1.) Bar Change
2.) Volume Average Change
3.) Coin Flip
For the bar change, I simply allow the sine wave to move upwards or downwards if the bars have changed color in their sequence. For example, if there were 3 red bars and 1 green bar, it would not move the sine wave up or down until the green bar appeared.
For the average volume change, it was the same idea, except that the sine wave could only move up or down if the volume had moved up or below the average value of the length given for calculating the average volume.
Finally, the coin flip simply simulates flipping a coin, and allows the sine wave to move one direction or the other once it has a side that is different from the previous chosen side. For example, heads, heads, heads, tails (once it flipped to tails, this would allow it to move a direction).
The sine wave trading theory that I watched claimed that if you know the correct sine wave # (which is how large the peak is, and/or the sine wave count which is how many peaks and valleys occur) that you can successfully predict future trades. Their claims that the reason it does not look like a perfect sine wave for these events is because there is different amounts of trading going on, thus the timing will be slightly off.
I am posting this to disagree with their ideas. For example, if you select to turn on trading for coin flip and turn off bar change, you will see the coin flip did better on the default settings!
It just so happens that any setting will eventually be good, making all the sine wave variations just completely random if you win or not.
I posted this to demonstrate how silly trading sine waves is. The real trick is using cosine and tangent waves... lol j/k
I hope this helps someone avoid this scam concept.
My WaveThis is my implementation in TradingView of my modified version of the "Weis Wave".
Given the limitations of TradingView in alter past variable values, whenever the close change direction and the wave don't I sum the volume to the present wave and also to a possible future wave.
This results in columns of a mixed color within the columns of the histogram. By changing the percentage input you can and must keep this extra columns to a minimum.
You must insert two copies of the indicator on your chart and "unmerge down" one of them. On the overlayed you must * format and edit and unmark Histup and Histdown, on the unmerged down you must * format and edit and unmark BetaZigZag and stableZigZag.
You can also unmark Bar Color on both if you don't want to colour the bars according to the waves.
Trend: If the buying waves are longer than the selling waves the immediate trend is up, and vice versa.
Look out for a change in trend if in an uptrend the selling waves begin to increase in time and distance or the buying waves shorten, and vice versa.
From the volume histogram you can get the force of the buying and selling waves.
From the price waves you get the result of that force. You can also spot the "shortening of the thrust" up or down.
Comparing the two you can spot "effort without result" "ease of movement".
References: "Trades About To Happen" David H. Weis, Division 2 of the Richard D. Wyckoff Method of Trading in Stocks.
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.
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.
Moving Average Resting Point [theEccentricTrader]█ OVERVIEW
This indicator uses peak and trough prices to calculate the moving average resting point and plots it as a line on the chart. The lookback length is variable and the indicator can plot up to three lines with different lookback lengths and colors.
█ CONCEPTS
Green and Red Candles
• A green candle is one that closes with a high price equal to or above the price it opened.
• A red candle is one that closes with a low price that is lower than the price it opened.
Swing Highs and Swing Lows
• A swing high is a green candle or series of consecutive green candles followed by a single red candle to complete the swing and form the peak.
• A swing low is a red candle or series of consecutive red candles followed by a single green candle to complete the swing and form the trough.
Peak and Trough Prices (Basic)
• The peak price of a complete swing high is the high price of either the red candle that completes the swing high or the high price of the preceding green candle, depending on which is higher.
• The trough price of a complete swing low is the low price of either the green candle that completes the swing low or the low price of the preceding red candle, depending on which is lower.
Historic Peaks and Troughs
The current, or most recent, peak and trough occurrences are referred to as occurrence zero. Previous peak and trough occurrences are referred to as historic and ordered numerically from right to left, with the most recent historic peak and trough occurrences being occurrence one.
Support and Resistance
• Support refers to a price level where the demand for an asset is strong enough to prevent the price from falling further.
• Resistance refers to a price level where the supply of an asset is strong enough to prevent the price from rising further.
Support and resistance levels are important because they can help traders identify where the price of an asset might pause or reverse its direction, offering potential entry and exit points. For example, a trader might look to buy an asset when it approaches a support level , with the expectation that the price will bounce back up. Alternatively, a trader might look to sell an asset when it approaches a resistance level , with the expectation that the price will drop back down.
It's important to note that support and resistance levels are not always relevant, and the price of an asset can also break through these levels and continue moving in the same direction.
Wave Cycles
A wave cycle is here defined as a complete two-part move between a swing high and a swing low, or a swing low and a swing high. As can be seen in the example above, the first swing high or swing low will set the course for the sequence of wave cycles that follow; a chart that begins with a swing low will form its first complete wave cycle upon the formation of the first complete swing high and vice versa.
Wave Length
Wave length is here measured in terms of bar distance between the start and end of a wave cycle. For example, if the current wave cycle ends on a swing low the wave length will be the difference in bars between the current swing low and current swing high. In such a case, if the current swing low completes on candle 100 and the current swing high completed on candle 95, we would simply subtract 95 from 100 to give us a wave length of 5 bars.
Average wave length is here measured in terms of total bars as a proportion as total waves. The average wavelength is calculated by dividing the total candles by the total wave cycles.
Wave Height
Wave height is here measured in terms of current range. For example, if the current peak price is 100 and the current trough price is 80, the wave height will be 20.
Amplitude
Amplitude is here measured in terms of current range divided by two. For example if the current peak price is 100 and the current trough price is 80, the amplitude would be calculated by subtracting 80 from 100 and dividing the answer by 2 to give us an amplitude of 10.
Resting Point
The resting point is here calculated by subtracting the current trough price from the current peak price and adding the difference to the current trough price to output the price in the middle of the two prices. Essentially it is the current trough price plus the amplitude. For example, if the current peak price is 100 and the current trough price is 80, the resting point 90.
The moving average resting point is here calculated by subtracting the moving average trough price from the moving average peak price, dividing the answer by two and adding the difference to the moving average trough price.
Frequency
Frequency is here measured in terms of wave cycles per second (Hertz). For example, if the total wave cycle count is 10 and the amount of time it has taken to complete these 10 cycles is 1-year (31,536,000 seconds), the frequency would be calculated by dividing 10 by 31,536,000 to give us a frequency of 0.00000032 Hz.
Range
The range is simply the difference between the current peak and current trough prices, generally expressed in terms of points or pips.
█ FEATURES
Inputs
Show MARP 1
Show MARP 2
Show MARP 3
MARP 1 Length
MARP 2 Length
MARP 3 Length
MARP 1 Color
MARP 2 Color
MARP 3 Color
█ HOW TO USE
This indicator can be used like any other moving average indicator to analyse trend direction and momentum, identify potential support and resistance levels, or for filtering trading strategies and developing new ones.
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.
[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.
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.
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!
3rd WaveHello All,
In Elliott Wave Theory, 3rd wave is not the shortest one in the waves 1/3/5 and it's usually longest one. so if we can catch it then we may get good opportunities to trade. This script finds 3rd wave experimentally. it can be also the 3rd waves in the waves 1, 3, 5, A and C. the 3rd wave should have greater volume than other waves, the script can check its volume and compare with the volumes of the waves 1 and 2 optionally.
Pine Team released Pine version 5! This script was developed in v5 and it uses Library feature of Pine v5 for the zigzag functions. This script is also an example for the Pine developers who learn Pine v5 and Libraries.
Options:
Zigzag Period: is the length that is used to calculate highest/lowest and the zigzag waves
Min/Max Retracements: is the retracement rates to check the wave 2 according to wave 1. for example; if min/max values are 0.500-0.618 then wave 2 must be minimum 0.500 of wave 1 and maximum 0.618 of wave 1.
Check Volume Support: is an option to compare the volumes of1. 2. and . waves. if you enable this option then the script checks their volume and 3rd wave volume must be greater then 1 and 2
there are 4 options for the targets. you can enable/disable and change their levels. targets are calculated using length of wave 1.
Options to show breakout zone, zigzag, wave 1 and 2.
and some options for the colors.
The Library that is used in this script:
P.S. This is an experimental work and can be improved. So do not hesitate to drop your comments under the script ;)
Enjoy!
test - autocorrelationExperimental:
finds and displays the wavelength index's of the autocorrelation wavelengths..
Fractal Resonance ComponentLazyBear's WaveTrend port has been praised for highlighting trend reversals with precision and punctuality (minimal lag). But strong "3rd Wave" trends can "embed" or saturate any oscillator flashing several premature crosses while stuck overbought/oversold. This happens when the trend stretches over a longer timescale than the oscillator's averaging window or filter time constant. Our solution: simultaneously monitor many oscillator timescales. Watch for fresh crossovers in "dominant" timescales alternating most smoothly between the overbought (red shade) and oversold (green shade) range.
Fractal Resonance Component facilitates simultaneous viewing of eight timescales that are power of 2 multiples of the chart timescale. Each timescale shows lead line, lag line, lead-lag difference, and crossover marks. Add 4 to 8 copies to your chart for a good multi-fractal read. Format * the "Timescale Multiplier" attribute of each row to be twice that of the row above for a sequence like 1, 2, 4, 8, 16, 32, 64, 128...
Fractal Resonance Component shifts its timescales along with your choice of main chart timescale:
1 minute chart: 1 minute through 128 minute (~2 hour) oscillators.
1 hour chart: 1 hour through 128 hour (~2 week) oscillators.
Daily chart: 1 day through 128 day (~4 month) oscillators.
Crossovers in different oscillator ranges tend to have different meanings:
Minor (< 75%) crossovers: small green/red dot
usually noise
Overbought/Sold crossovers (shaded 75 to 100%): black outlined dot (o)
reliable reversal indicators (when they appear alone)
Extreme Overbought (> 100%) crossovers: black outlined plus (+).
Can be a major reversal in fast markets, but usually portend the end of Elliot 3rd waves with just a small corrective (4th wave) retrace before the larger impulsive (5-wave) sequence resumes in original direction.
The final 5th-wave terminus should appear later as a lone non-extreme (black outlined circle) crossover on a slower timescale coincident with weaker (non-extreme) dot crosses on this timescale.
Careful examination of historical charts leads to many useful observations such as:
Dominant crossovers punctuating true reversals are usually in the green/red shaded ranges with black outlined dots (o) rather than minor or Extreme (+) ranges.
Due to market's fractal nature, two well-separated timescales like 1 minute and 1 hour can show dominant crosses simultaneously in opposite directions, e.g. the 1 minute showing a very short term high and the 1 hour a medium term low nearby.
Staying Nimble
Watch out for embedding on your supposedly dominant timescale -- a second cross while stuck in the overbought/oversold region suggests a stronger, longer trend than expected. Drop your eyes to a slower timescale below for the real dominant whose crossover will validate main trend reversal.
Embedding can often be predicted even at the first cross mark by checking whether the green lead line of the next slower timescale (one row below) has already hit the Overbought or especially the Extreme Overbought range but isn't close to rolling over. Fractal Resonance Bar (to be published) uses this principle to mark embedded timescales with white stripes, warning of a powerful trend wave on longer timescales you shouldn't fight until the white stripes subside.
Overnight gaps surge all timescales in ways that obscure the dominant timescale, so for shorter than daily charts, these methods work best on Futures contracts that only suffer weekend gaps.
Enhanced Neowave Wave 1 Finder with ZigZagThis script is an advanced technical analysis indicator for the TradingView platform, written in Pine Script version 5. Its primary goal is to identify potential Elliott Wave "Wave 1" patterns, enhanced with principles from Neowave theory and a custom ZigZag indicator for more accurate pivot detection. The script is designed to be overlaid on the main price chart.
Core Functionality: Blending ZigZag and Neowave
The indicator's methodology is a two-part process. First, it identifies significant price swings using a robust ZigZag indicator. Then, it analyzes these swings based on a set of rules derived from Neowave and classic technical analysis to validate them as potential Wave 1 patterns.
Part 1: ZigZag Integration
The first major component is a comprehensive ZigZag indicator that forms the foundation for all subsequent analysis.
Pivot Detection: The pivots() function is the engine of the ZigZag. It scans the historical price data for significant high and low points (pivots) over a user-defined Length.
Segment Drawing: Once pivots are identified, the script draws lines connecting them, creating the classic ZigZag pattern on the chart.
Extended Direction & Ratios: This is an enhanced feature. The script doesn't just identify highs and lows; it categorizes them as:
Higher High (HH) or Lower High (LH)
Lower Low (LL) or Higher Low (HL)
This classification is crucial for understanding the market structure. It also calculates the price ratio of the most recent ZigZag leg relative to the previous one, which is used later for pattern validation.
Dynamic Updates: The ZigZag is not static. On each new bar, it can update its most recent pivot point if a new, more extreme price (a higher high or a lower low) is printed before the direction officially changes. This ensures the ZigZag is always reflecting the most current and significant price action.
Part 2: Neowave Wave 1 Finder
With the market structure defined by the ZigZag, the second part of the script applies a rigorous set of rules to identify potential Wave 1 patterns. A Wave 1 is the initial move of a new trend in Elliott Wave theory.
Key Validation Criteria
For a price move between two ZigZag pivots to be considered a valid Wave 1, it must pass a series of checks:
Significance: The move must have a minimum percentage change (Minimum Wave Length) and last for a minimum number of bars, filtering out insignificant noise.
Volume Confirmation: A genuine impulse wave is typically supported by increasing volume. The script checks if the volume during the potential Wave 1 is significantly higher than the recent average (Volume Increase Threshold).
Momentum Alignment: The direction of the wave must be confirmed by momentum indicators.
For a bullish (upward) Wave 1, the Relative Strength Index (RSI) must be in a bullish regime (above 50) and the MACD line must be above its signal line.
For a bearish (downward) Wave 1, the RSI must be below 50 and the MACD line must be below its signal line.
Structural Analysis (Impulse vs. Diagonal): The script attempts to differentiate between two types of Wave 1:
Impulse Wave: A strong, clean, and direct move.
Diagonal Wave: A more complex, overlapping, and often wedge-shaped pattern. This is identified by analyzing the time and price complexity of the move, along with the ZigZag leg ratios.
Wave 2 Retracement Check: A critical Neowave rule is that a valid Wave 1 must be followed by a valid Wave 2 retracement. The script looks at the next ZigZag leg to ensure it doesn't retrace more than 100% of the potential Wave 1. It also uses the ZigZag ratios to confirm the retracement falls within typical Fibonacci levels (e.g., 38.2% to 78.6%).
Display and User Interface
The script provides a rich visual experience to aid the trader in their analysis.
Wave Labels and Boxes: When a valid Wave 1 is detected, it is highlighted with a colored line (green for bullish, red for bearish) and a shaded background box. A label clearly marks it as "Wave 1 IMPULSE" or "Wave 1 DIAGONAL".
Fibonacci Retracement Levels: Upon detection of a Wave 1, the script automatically draws key Fibonacci retracement levels (38.2%, 50%, 61.8%, 78.6%). These levels are potential targets for the end of the subsequent Wave 2, offering potential entry points for a Wave 3 trade.
Information Labels: Additional labels provide at-a-glance confirmation of the conditions, showing whether volume and momentum criteria were met.
Customizable Inputs: Users have extensive control over the indicator's parameters, including the ZigZag length, volume thresholds, RSI levels, and the colors of all visual elements.
Alerts: The indicator can be configured to generate an alert whenever a new bullish or bearish Wave 1 pattern is confirmed, allowing traders to be notified of potential opportunities in real-time.
Moving Average Shift WaveTrend StrategyMoving Average Shift WaveTrend Strategy
🧭 Overview
The Moving Average Shift WaveTrend Strategy is a trend-following and momentum-based trading system designed to be overlayed on TradingView charts. It executes trades based on the confluence of multiple technical conditions—volatility, session timing, trend direction, and oscillator momentum—to deliver logical and systematic trade entries and exits.
🎯 Strategy Objectives
Enter trades aligned with the prevailing long-term trend
Exit trades on confirmed momentum reversals
Avoid false signals using session timing and volatility filters
Apply structured risk management with automatic TP, SL, and trailing stops
⚙️ Key Features
Selectable MA types: SMA, EMA, SMMA (RMA), WMA, VWMA
Dual-filter logic using a custom oscillator and moving averages
Session and volatility filters to eliminate low-quality setups
Trailing stop, configurable Take Profit / Stop Loss logic
“In-wave flag” prevents overtrading within the same trend wave
Visual clarity with color-shifting candles and entry/exit markers
📈 Trading Rules
✅ Long Entry Conditions:
Price is above the selected MA
Oscillator is positive and rising
200-period EMA indicates an uptrend
ATR exceeds its median value (sufficient volatility)
Entry occurs between 09:00–17:00 (exchange time)
Not currently in an active wave
🔻 Short Entry Conditions:
Price is below the selected MA
Oscillator is negative and falling
200-period EMA indicates a downtrend
All other long-entry conditions are inverted
❌ Exit Conditions:
Take Profit or Stop Loss is hit
Opposing signals from oscillator and MA
Trailing stop is triggered
🛡️ Risk Management Parameters
Pair: ETH/USD
Timeframe: 4H
Starting Capital: $3,000
Commission: 0.02%
Slippage: 2 pips
Risk per Trade: 2% of account equity (adjustable)
Total Trades: 224
Backtest Period: May 24, 2016 — April 7, 2025
Note: Risk parameters are fully customizable to suit your trading style and broker conditions.
🔧 Trading Parameters & Filters
Time Filter: Trades allowed only between 09:00–17:00 (exchange time)
Volatility Filter: ATR must be above its median value
Trend Filter: Long-term 200-period EMA
📊 Technical Settings
Moving Average
Type: SMA
Length: 40
Source: hl2
Oscillator
Length: 15
Threshold: 0.5
Risk Management
Take Profit: 1.5%
Stop Loss: 1.0%
Trailing Stop: 1.0%
👁️ Visual Support
MA and oscillator color changes indicate directional bias
Clear chart markers show entry and exit points
Trailing stops and risk controls are transparently managed
🚀 Strategy Improvements & Uniqueness
In-wave flag avoids repeated entries within the same trend phase
Filtering based on time, volatility, and trend ensures higher-quality trades
Dynamic high/low tracking allows precise trailing stop placement
Fully rule-based execution reduces emotional decision-making
💡 Inspirations & Attribution
This strategy is inspired by the excellent concept from:
ChartPrime – “Moving Average Shift”
It expands on the original idea with advanced trade filters and trailing logic.
Source reference:
📌 Summary
The Moving Average Shift WaveTrend Strategy offers a rule-based, reliable approach to trend trading. By combining trend and momentum filters with robust risk controls, it provides a consistent framework suitable for various market conditions and trading styles.
⚠️ Disclaimer
This script is for educational purposes only. Trading involves risk. Always use proper backtesting and risk evaluation before applying in live markets.
Momentum Charge Theory (MCT)-(TechnoBlooms)The Momentum Charge Theory (MCT) Indicator is an advanced physics and mathematics-inspired trend detection system designed to identify market energy shifts with precision. Unlike traditional indicators that rely on static formulas, MCT integrates entropy, volatility, kinetic energy, and wavelet transforms to map price dynamics in real time.
Built on Scientific Principles – This indicator applies quantum-inspired charge-discharge mechanics to spot early trend formations and reversals. Think of price action like an energy system: it charges (builds momentum) before an explosive move and discharges when that energy dissipates.
Core Concepts Behind MCT
1️⃣ Directional Market Entropy – Measuring Trend Strength
Entropy quantifies market randomness – is the trend structured or chaotic?
✅ A high-entropy market is uncertain (choppy price action), while a low-entropy market signals a strong directional trend.
✅ MCT normalizes entropy, allowing traders to differentiate trend acceleration from market noise.
2️⃣ Information Flow Volatility – Identifying Breakout Zones
Inspired by Econophysics, this component measures volatility based on information flow rather than simple price movements.
✅ Helps spot high-volatility breakout conditions before they occur.
✅ Filters out false breakouts caused by random market noise.
3️⃣ Kinetic Energy Momentum (KEM) – The Physics of Price Acceleration
Just like in physics, momentum is a function of mass and velocity – in trading, this translates to volume and price change.
✅ Uses kinetic energy equations to identify price acceleration zones.
✅ Helps detect momentum shifts before price visibly reacts.
4️⃣ Hilbert Transform Approximation – Slope & Trend Direction Analysis
Applies Hilbert Transforms to estimate trend angle shifts.
✅ Detects momentum decay and early reversal signals.
✅ Captures the true trend slope rather than relying on lagging moving averages.
5️⃣ Wavelet Transform – Advanced Noise Filtering & Trend Confirmation
Market movements contain multiple frequencies – wavelet transforms isolate dominant trends while removing short-term price noise.
✅ Improves trend clarity by reducing false signals.
✅ Acts as a final confirmation filter before generating Charge & Discharge signals.
Charge & Discharge – The Energy Behind Market Moves
🔹 Charge (Uptrend Activation)
A blue triangle appears below the candle when market conditions align for a strong bullish move.
📈 Indicates momentum buildup, low entropy, and trend strength confirmation.
🔸 Discharge (Downtrend Activation)
A purple triangle appears above the candle when price momentum weakens and market entropy increases.
📉 Suggests a potential trend exhaustion or reversal.
Best Use Cases for Traders
✅ Momentum Traders – Catch trend initiations before they gain full traction.
✅ Breakout Traders – Identify high-information flow zones with volatility-driven signals.
✅ Trend Followers – Avoid false signals by relying on entropy-driven confirmations.
The MCT indicator can be combined with any of your usual indicators for trend confirmation.
Neon Momentum Waves StrategyIntroduction
The Neon Momentum Waves Strategy is a momentum-based indicator designed to help traders visualize potential shifts in market direction. It builds upon a MACD-style calculation while incorporating an enhanced visual representation of momentum waves. This approach may assist traders in identifying areas of increasing or decreasing momentum, potentially aligning with market trends or reversals.
How It Works
This strategy is based on a modified MACD (Moving Average Convergence Divergence) method, calculating the difference between two Exponential Moving Averages (EMAs). The momentum wave represents this difference, while an additional smoothing line (signal line) helps highlight potential momentum shifts.
Key Components:
Momentum Calculation:
Uses a fast EMA (12-period) and a slow EMA (26-period) to measure short-term and long-term momentum.
A signal line (20-period EMA of the MACD difference) smooths fluctuations.
The histogram (momentum wave) represents the divergence between the MACD value and the signal line.
Interpreting Momentum Changes:
Momentum Increasing: When the histogram rises above the zero line, it may indicate strengthening upward movement.
Momentum Decreasing: When the histogram moves below the zero line, it may signal a weakening trend or downward momentum.
Potential Exhaustion Points: Users can define custom threshold levels (default: ±10) to highlight when momentum is significantly strong or weak.
Visual Enhancements:
The neon glow effect is created by layering multiple plots with decreasing opacity, enhancing the clarity of momentum shifts.
Aqua-colored waves highlight upward momentum, while purple waves represent downward momentum.
Horizontal reference lines mark the zero line and user-defined thresholds to improve interpretability.
How It Differs from Traditional Indicators
Improved Visualization: Unlike standard MACD histograms, this approach provides clearer visual cues using a neon-style wave format.
Customizable Thresholds: Rather than relying solely on MACD crossovers, users can adjust sensitivity settings to better suit their trading style.
Momentum-Based Approach: The strategy is focused on visualizing shifts in momentum strength, rather than predicting price movements.
Potential Use Cases
Momentum Trend Awareness: Helps traders identify periods where momentum appears to be strengthening or fading.
Market Structure Analysis: May complement other indicators to assess whether price action aligns with momentum changes.
Flexible Timeframe Application: Can be used across different timeframes, depending on the trader’s strategy.
Important Considerations
This strategy is purely momentum-based and does not incorporate volume, fundamental factors, or price action confirmation.
Momentum shifts do not guarantee price direction changes—they should be considered alongside broader market context.
The strategy may perform differently in trending vs. ranging markets, so adjustments in sensitivity may be needed.
Risk management is essential—traders should apply proper stop-losses and position sizing techniques in line with their risk tolerance.
Conclusion
The Neon Momentum Waves Strategy provides a visually enhanced method of tracking momentum, allowing traders to observe potential changes in market strength. While not a predictive tool, it serves as a complementary indicator that may help traders in momentum-based decision-making. As with any technical tool, it should be used as part of a broader strategy that considers multiple factors in market analysis.
Smoothed Candle Averages- NovaTheMachineThis script utilizes a series of moving averages that the user is able to change as they see fit for their own use.
The averages plotted for the first 2 waves are the High-Low rays of the selected period of time with the chosen moving average style.
The Bias is the Heikin Ashi High-Low ray plotted over the chosen time period, while the Secondary Bias is a higher Timeframe Bias for the same period of time on a selected higher timeframe.
The visuals for each ray are able to be changed to either; lines, solid wave, or dynamic wave.
The Dynamic waves will change color according to the total dissection and utilize the Min-Max range selected as a weight for the strength of the trend. Thus providing an at-a-glance overview of the price relative to trend.
The key objective with this script is to gauge the longer term trend with the current price action, to establish patterns and determine strength of moves both away from and towards the moving average/bias.
When both waves are trending with the Bias, it can be reasoned that there is a strong trend established, when waves and Bias are mixed or trending sideways it can be reasoned there is a range forming or potential for a direction change. When price has broken the waves and biases we can reasonably assume that a new trend has been formed, using the waves and biases again to determine the strength and length of the trend.
The Table will display whether the current price is above or below each wave, and whether the price is continuing or retracing. The Signals plotted are used to help identify when price has broken a wave more swiftly.
Quarterly Sine Wave with Moving Averages - AYNETDescription
Sine Wave:
The sine wave oscillates with a frequency determined by frequency.
Its amplitude (amplitude) and vertical offset (offset) are adjustable.
Moving Averages:
Includes options for different types of moving averages:
SMA (Simple Moving Average).
EMA (Exponential Moving Average).
WMA (Weighted Moving Average).
HMA (Hull Moving Average).
The user can choose the type (ma_type) and the length (ma_length) via inputs.
Horizontal Lines:
highest_hype and lowest_hype are horizontal levels drawn at the user-specified values.
Quarter Markers:
Vertical lines and labels (Q1, Q2, etc.) are drawn at the start of each quarter.
Customization Options
Moving Average Type:
Switch between SMA, EMA, WMA, and HMA using the dropdown menu.
Sine Wave Frequency:
Adjust the number of oscillations per year.
Amplitude and Offset:
Control the height and center position of the sine wave.
Moving Average Length:
Change the length for any selected moving average.
Output
This indicator plots:
A sine wave that oscillates smoothly over the year, divided into quarters.
A customizable moving average calculated based on the chosen price (e.g., close).
Horizontal lines for the highest and lowest hype levels.
Vertical lines and labels marking the start of each quarter.
Let me know if you need additional features! 😊
ABC on Recursive Zigzag [Trendoscope]There are several implementations of ABC pattern in tradingview and pine script. However, we have made this indicator to provide users additional quantifiable information along with flexibility to experiment and develop their own strategy based on the patterns.
🎲 Highlights of this indicator over other ABC implementations are:
Implementation is based on recursive multi level zigzag allows bigger as well as smaller patterns to be identified
Allows users to set their trading rules with respect to entry, target and stop ratios, experiment and build their own strategy based on the ABC pattern.
Back test summary including win ratio and risk reward will help users understand the profitability based on different settings being used.
🎲 Concept of ABC Pattern
The ABC pattern, also known as the "Corrective Wave" or "Zigzag Pattern," is a fundamental concept in Elliott Wave Theory, which is widely used in technical analysis to identify and predict price movements in financial markets.
The ABC pattern is a three-wave corrective pattern that typically occurs within the context of a larger impulse or trending wave. It consists of two smaller waves in the opposite direction (A and C) separated by a corrective wave (B). These waves are labeled alphabetically and represent price movements.
Wave A (Impulse Wave): Wave A is the first leg of the ABC pattern and is characterized by a strong price move in the opposite direction of the prevailing trend. It is often driven by a fundamental or sentiment-driven event that temporarily disrupts the trend.
Wave B (Corrective Wave): Wave B is the corrective wave that follows Wave A. It represents a partial retracement of Wave A's price movement. Wave B can take various forms, such as a simple correction or a complex correction (e.g., a triangle or a flat correction). It typically doesn't retrace the entire length of Wave A.
Wave C (Impulse Wave): Wave C is the final leg of the ABC pattern and is characterized by a strong price move in the same direction as the prevailing trend. It often surpasses the starting point of Wave A and confirms the resumption of the larger trend.
🎲 Indicator Components
Upon loading the indicator on the chart, we can observe the following components on the chart.
Pattern Drawings is the graphical representation of present patterns. Please note that it is not necessary for patterns to be there on the chart all the time. Patterns will appear on the chart when price makes the patterns.
Trade Box is the box representing trade signals of the pattern. These trade levels are generated based on the user settings.
Summary Table is the back test summary containing details of historical pattern performance including Win Ratio and Risk Reward.
🎲 Indicator Settings
Details of each user settings are provided in the tooltips. Below is the snapshot of it.
🎲 Alerts
Basic level of alerts are built in the script using alert function to highlight the following conditions:
New ABC Pattern
Updates to existing Pattern
Both conditions will alert simple text messages. There is not much customization provided as part of this indicator. We will consider providing more options in future versions based on the interest and demand shown by users.