CyclesThis is a modified Stochastic indicator. Modifications include:
1. The output is now centered on "0" and the scale is from -50 to +50, so that histograms and columns can be used to plot the output.
2. Added visual trade setup triggers. A trigger to the up side is a cycle high and indicates a "sell signal". A trigger to the down side is a cycle low and indicates a "buy" signal.
3. Added an alert trigger to be used to setup alerts. Selecting "Alert" to be Greater Than (>) Value = 0.00 will trigger an alert if either the buy or sell triggers occur.
4. Added a force indicator output. This indicates the rate of change in "D", or mathematically "dD/dt", as was done in the Power Analyzer indicator. When Force and D are in-phase, the maximum power is achieved.
5. Added "Slow Average Momentum" and "Slow Average Force" as was done in the Power Analyzer indicator.
6. Added an internal MACD and EMA as part of the trade setup trigger equation. There is a new input variable for the EMA length.
7. Added an input variable for the "Trigger Threshold", which ranges from -50 to 50, to be used as a screening filter.
Cerca negli script per "Cycle"
Periodic CycleAllows visualizing a periodic cycle based on startdate, cycle period and part of cycle to be highlighed.
Goertzel Cycle Composite Wave [Loxx]As the financial markets become increasingly complex and data-driven, traders and analysts must leverage powerful tools to gain insights and make informed decisions. One such tool is the Goertzel Cycle Composite Wave indicator, a sophisticated technical analysis indicator that helps identify cyclical patterns in financial data. This powerful tool is capable of detecting cyclical patterns in financial data, helping traders to make better predictions and optimize their trading strategies. With its unique combination of mathematical algorithms and advanced charting capabilities, this indicator has the potential to revolutionize the way we approach financial modeling and trading.
*** To decrease the load time of this indicator, only XX many bars back will render to the chart. You can control this value with the setting "Number of Bars to Render". This doesn't have anything to do with repainting or the indicator being endpointed***
█ Brief Overview of the Goertzel Cycle Composite Wave
The Goertzel Cycle Composite Wave is a sophisticated technical analysis tool that utilizes the Goertzel algorithm to analyze and visualize cyclical components within a financial time series. By identifying these cycles and their characteristics, the indicator aims to provide valuable insights into the market's underlying price movements, which could potentially be used for making informed trading decisions.
The Goertzel Cycle Composite Wave is considered a non-repainting and endpointed indicator. This means that once a value has been calculated for a specific bar, that value will not change in subsequent bars, and the indicator is designed to have a clear start and end point. This is an important characteristic for indicators used in technical analysis, as it allows traders to make informed decisions based on historical data without the risk of hindsight bias or future changes in the indicator's values. This means traders can use this indicator trading purposes.
The repainting version of this indicator with forecasting, cycle selection/elimination options, and data output table can be found here:
Goertzel Browser
The primary purpose of this indicator is to:
1. Detect and analyze the dominant cycles present in the price data.
2. Reconstruct and visualize the composite wave based on the detected cycles.
To achieve this, the indicator performs several tasks:
1. Detrending the price data: The indicator preprocesses the price data using various detrending techniques, such as Hodrick-Prescott filters, zero-lag moving averages, and linear regression, to remove the underlying trend and focus on the cyclical components.
2. Applying the Goertzel algorithm: The indicator applies the Goertzel algorithm to the detrended price data, identifying the dominant cycles and their characteristics, such as amplitude, phase, and cycle strength.
3. Constructing the composite wave: The indicator reconstructs the composite wave by combining the detected cycles, either by using a user-defined list of cycles or by selecting the top N cycles based on their amplitude or cycle strength.
4. Visualizing the composite wave: The indicator plots the composite wave, using solid lines for the cycles. The color of the lines indicates whether the wave is increasing or decreasing.
This indicator is a powerful tool that employs the Goertzel algorithm to analyze and visualize the cyclical components within a financial time series. By providing insights into the underlying price movements, the indicator aims to assist traders in making more informed decisions.
█ What is the Goertzel Algorithm?
The Goertzel algorithm, named after Gerald Goertzel, is a digital signal processing technique that is used to efficiently compute individual terms of the Discrete Fourier Transform (DFT). It was first introduced in 1958, and since then, it has found various applications in the fields of engineering, mathematics, and physics.
The Goertzel algorithm is primarily used to detect specific frequency components within a digital signal, making it particularly useful in applications where only a few frequency components are of interest. The algorithm is computationally efficient, as it requires fewer calculations than the Fast Fourier Transform (FFT) when detecting a small number of frequency components. This efficiency makes the Goertzel algorithm a popular choice in applications such as:
1. Telecommunications: The Goertzel algorithm is used for decoding Dual-Tone Multi-Frequency (DTMF) signals, which are the tones generated when pressing buttons on a telephone keypad. By identifying specific frequency components, the algorithm can accurately determine which button has been pressed.
2. Audio processing: The algorithm can be used to detect specific pitches or harmonics in an audio signal, making it useful in applications like pitch detection and tuning musical instruments.
3. Vibration analysis: In the field of mechanical engineering, the Goertzel algorithm can be applied to analyze vibrations in rotating machinery, helping to identify faulty components or signs of wear.
4. Power system analysis: The algorithm can be used to measure harmonic content in power systems, allowing engineers to assess power quality and detect potential issues.
The Goertzel algorithm is used in these applications because it offers several advantages over other methods, such as the FFT:
1. Computational efficiency: The Goertzel algorithm requires fewer calculations when detecting a small number of frequency components, making it more computationally efficient than the FFT in these cases.
2. Real-time analysis: The algorithm can be implemented in a streaming fashion, allowing for real-time analysis of signals, which is crucial in applications like telecommunications and audio processing.
3. Memory efficiency: The Goertzel algorithm requires less memory than the FFT, as it only computes the frequency components of interest.
4. Precision: The algorithm is less susceptible to numerical errors compared to the FFT, ensuring more accurate results in applications where precision is essential.
The Goertzel algorithm is an efficient digital signal processing technique that is primarily used to detect specific frequency components within a signal. Its computational efficiency, real-time capabilities, and precision make it an attractive choice for various applications, including telecommunications, audio processing, vibration analysis, and power system analysis. The algorithm has been widely adopted since its introduction in 1958 and continues to be an essential tool in the fields of engineering, mathematics, and physics.
█ Goertzel Algorithm in Quantitative Finance: In-Depth Analysis and Applications
The Goertzel algorithm, initially designed for signal processing in telecommunications, has gained significant traction in the financial industry due to its efficient frequency detection capabilities. In quantitative finance, the Goertzel algorithm has been utilized for uncovering hidden market cycles, developing data-driven trading strategies, and optimizing risk management. This section delves deeper into the applications of the Goertzel algorithm in finance, particularly within the context of quantitative trading and analysis.
Unveiling Hidden Market Cycles:
Market cycles are prevalent in financial markets and arise from various factors, such as economic conditions, investor psychology, and market participant behavior. The Goertzel algorithm's ability to detect and isolate specific frequencies in price data helps trader analysts identify hidden market cycles that may otherwise go unnoticed. By examining the amplitude, phase, and periodicity of each cycle, traders can better understand the underlying market structure and dynamics, enabling them to develop more informed and effective trading strategies.
Developing Quantitative Trading Strategies:
The Goertzel algorithm's versatility allows traders to incorporate its insights into a wide range of trading strategies. By identifying the dominant market cycles in a financial instrument's price data, traders can create data-driven strategies that capitalize on the cyclical nature of markets.
For instance, a trader may develop a mean-reversion strategy that takes advantage of the identified cycles. By establishing positions when the price deviates from the predicted cycle, the trader can profit from the subsequent reversion to the cycle's mean. Similarly, a momentum-based strategy could be designed to exploit the persistence of a dominant cycle by entering positions that align with the cycle's direction.
Enhancing Risk Management:
The Goertzel algorithm plays a vital role in risk management for quantitative strategies. By analyzing the cyclical components of a financial instrument's price data, traders can gain insights into the potential risks associated with their trading strategies.
By monitoring the amplitude and phase of dominant cycles, a trader can detect changes in market dynamics that may pose risks to their positions. For example, a sudden increase in amplitude may indicate heightened volatility, prompting the trader to adjust position sizing or employ hedging techniques to protect their portfolio. Additionally, changes in phase alignment could signal a potential shift in market sentiment, necessitating adjustments to the trading strategy.
Expanding Quantitative Toolkits:
Traders can augment the Goertzel algorithm's insights by combining it with other quantitative techniques, creating a more comprehensive and sophisticated analysis framework. For example, machine learning algorithms, such as neural networks or support vector machines, could be trained on features extracted from the Goertzel algorithm to predict future price movements more accurately.
Furthermore, the Goertzel algorithm can be integrated with other technical analysis tools, such as moving averages or oscillators, to enhance their effectiveness. By applying these tools to the identified cycles, traders can generate more robust and reliable trading signals.
The Goertzel algorithm offers invaluable benefits to quantitative finance practitioners by uncovering hidden market cycles, aiding in the development of data-driven trading strategies, and improving risk management. By leveraging the insights provided by the Goertzel algorithm and integrating it with other quantitative techniques, traders can gain a deeper understanding of market dynamics and devise more effective trading strategies.
█ Indicator Inputs
src: This is the source data for the analysis, typically the closing price of the financial instrument.
detrendornot: This input determines the method used for detrending the source data. Detrending is the process of removing the underlying trend from the data to focus on the cyclical components.
The available options are:
hpsmthdt: Detrend using Hodrick-Prescott filter centered moving average.
zlagsmthdt: Detrend using zero-lag moving average centered moving average.
logZlagRegression: Detrend using logarithmic zero-lag linear regression.
hpsmth: Detrend using Hodrick-Prescott filter.
zlagsmth: Detrend using zero-lag moving average.
DT_HPper1 and DT_HPper2: These inputs define the period range for the Hodrick-Prescott filter centered moving average when detrendornot is set to hpsmthdt.
DT_ZLper1 and DT_ZLper2: These inputs define the period range for the zero-lag moving average centered moving average when detrendornot is set to zlagsmthdt.
DT_RegZLsmoothPer: This input defines the period for the zero-lag moving average used in logarithmic zero-lag linear regression when detrendornot is set to logZlagRegression.
HPsmoothPer: This input defines the period for the Hodrick-Prescott filter when detrendornot is set to hpsmth.
ZLMAsmoothPer: This input defines the period for the zero-lag moving average when detrendornot is set to zlagsmth.
MaxPer: This input sets the maximum period for the Goertzel algorithm to search for cycles.
squaredAmp: This boolean input determines whether the amplitude should be squared in the Goertzel algorithm.
useAddition: This boolean input determines whether the Goertzel algorithm should use addition for combining the cycles.
useCosine: This boolean input determines whether the Goertzel algorithm should use cosine waves instead of sine waves.
UseCycleStrength: This boolean input determines whether the Goertzel algorithm should compute the cycle strength, which is a normalized measure of the cycle's amplitude.
WindowSizePast: These inputs define the window size for the composite wave.
FilterBartels: This boolean input determines whether Bartel's test should be applied to filter out non-significant cycles.
BartNoCycles: This input sets the number of cycles to be used in Bartel's test.
BartSmoothPer: This input sets the period for the moving average used in Bartel's test.
BartSigLimit: This input sets the significance limit for Bartel's test, below which cycles are considered insignificant.
SortBartels: This boolean input determines whether the cycles should be sorted by their Bartel's test results.
StartAtCycle: This input determines the starting index for selecting the top N cycles when UseCycleList is set to false. This allows you to skip a certain number of cycles from the top before selecting the desired number of cycles.
UseTopCycles: This input sets the number of top cycles to use for constructing the composite wave when UseCycleList is set to false. The cycles are ranked based on their amplitudes or cycle strengths, depending on the UseCycleStrength input.
SubtractNoise: This boolean input determines whether to subtract the noise (remaining cycles) from the composite wave. If set to true, the composite wave will only include the top N cycles specified by UseTopCycles.
█ Exploring Auxiliary Functions
The following functions demonstrate advanced techniques for analyzing financial markets, including zero-lag moving averages, Bartels probability, detrending, and Hodrick-Prescott filtering. This section examines each function in detail, explaining their purpose, methodology, and applications in finance. We will examine how each function contributes to the overall performance and effectiveness of the indicator and how they work together to create a powerful analytical tool.
Zero-Lag Moving Average:
The zero-lag moving average function is designed to minimize the lag typically associated with moving averages. This is achieved through a two-step weighted linear regression process that emphasizes more recent data points. The function calculates a linearly weighted moving average (LWMA) on the input data and then applies another LWMA on the result. By doing this, the function creates a moving average that closely follows the price action, reducing the lag and improving the responsiveness of the indicator.
The zero-lag moving average function is used in the indicator to provide a responsive, low-lag smoothing of the input data. This function helps reduce the noise and fluctuations in the data, making it easier to identify and analyze underlying trends and patterns. By minimizing the lag associated with traditional moving averages, this function allows the indicator to react more quickly to changes in market conditions, providing timely signals and improving the overall effectiveness of the indicator.
Bartels Probability:
The Bartels probability function calculates the probability of a given cycle being significant in a time series. It uses a mathematical test called the Bartels test to assess the significance of cycles detected in the data. The function calculates coefficients for each detected cycle and computes an average amplitude and an expected amplitude. By comparing these values, the Bartels probability is derived, indicating the likelihood of a cycle's significance. This information can help in identifying and analyzing dominant cycles in financial markets.
The Bartels probability function is incorporated into the indicator to assess the significance of detected cycles in the input data. By calculating the Bartels probability for each cycle, the indicator can prioritize the most significant cycles and focus on the market dynamics that are most relevant to the current trading environment. This function enhances the indicator's ability to identify dominant market cycles, improving its predictive power and aiding in the development of effective trading strategies.
Detrend Logarithmic Zero-Lag Regression:
The detrend logarithmic zero-lag regression function is used for detrending data while minimizing lag. It combines a zero-lag moving average with a linear regression detrending method. The function first calculates the zero-lag moving average of the logarithm of input data and then applies a linear regression to remove the trend. By detrending the data, the function isolates the cyclical components, making it easier to analyze and interpret the underlying market dynamics.
The detrend logarithmic zero-lag regression function is used in the indicator to isolate the cyclical components of the input data. By detrending the data, the function enables the indicator to focus on the cyclical movements in the market, making it easier to analyze and interpret market dynamics. This function is essential for identifying cyclical patterns and understanding the interactions between different market cycles, which can inform trading decisions and enhance overall market understanding.
Bartels Cycle Significance Test:
The Bartels cycle significance test is a function that combines the Bartels probability function and the detrend logarithmic zero-lag regression function to assess the significance of detected cycles. The function calculates the Bartels probability for each cycle and stores the results in an array. By analyzing the probability values, traders and analysts can identify the most significant cycles in the data, which can be used to develop trading strategies and improve market understanding.
The Bartels cycle significance test function is integrated into the indicator to provide a comprehensive analysis of the significance of detected cycles. By combining the Bartels probability function and the detrend logarithmic zero-lag regression function, this test evaluates the significance of each cycle and stores the results in an array. The indicator can then use this information to prioritize the most significant cycles and focus on the most relevant market dynamics. This function enhances the indicator's ability to identify and analyze dominant market cycles, providing valuable insights for trading and market analysis.
Hodrick-Prescott Filter:
The Hodrick-Prescott filter is a popular technique used to separate the trend and cyclical components of a time series. The function applies a smoothing parameter to the input data and calculates a smoothed series using a two-sided filter. This smoothed series represents the trend component, which can be subtracted from the original data to obtain the cyclical component. The Hodrick-Prescott filter is commonly used in economics and finance to analyze economic data and financial market trends.
The Hodrick-Prescott filter is incorporated into the indicator to separate the trend and cyclical components of the input data. By applying the filter to the data, the indicator can isolate the trend component, which can be used to analyze long-term market trends and inform trading decisions. Additionally, the cyclical component can be used to identify shorter-term market dynamics and provide insights into potential trading opportunities. The inclusion of the Hodrick-Prescott filter adds another layer of analysis to the indicator, making it more versatile and comprehensive.
Detrending Options: Detrend Centered Moving Average:
The detrend centered moving average function provides different detrending methods, including the Hodrick-Prescott filter and the zero-lag moving average, based on the selected detrending method. The function calculates two sets of smoothed values using the chosen method and subtracts one set from the other to obtain a detrended series. By offering multiple detrending options, this function allows traders and analysts to select the most appropriate method for their specific needs and preferences.
The detrend centered moving average function is integrated into the indicator to provide users with multiple detrending options, including the Hodrick-Prescott filter and the zero-lag moving average. By offering multiple detrending methods, the indicator allows users to customize the analysis to their specific needs and preferences, enhancing the indicator's overall utility and adaptability. This function ensures that the indicator can cater to a wide range of trading styles and objectives, making it a valuable tool for a diverse group of market participants.
The auxiliary functions functions discussed in this section demonstrate the power and versatility of mathematical techniques in analyzing financial markets. By understanding and implementing these functions, traders and analysts can gain valuable insights into market dynamics, improve their trading strategies, and make more informed decisions. The combination of zero-lag moving averages, Bartels probability, detrending methods, and the Hodrick-Prescott filter provides a comprehensive toolkit for analyzing and interpreting financial data. The integration of advanced functions in a financial indicator creates a powerful and versatile analytical tool that can provide valuable insights into financial markets. By combining the zero-lag moving average,
█ In-Depth Analysis of the Goertzel Cycle Composite Wave Code
The Goertzel Cycle Composite Wave code is an implementation of the Goertzel Algorithm, an efficient technique to perform spectral analysis on a signal. The code is designed to detect and analyze dominant cycles within a given financial market data set. This section will provide an extremely detailed explanation of the code, its structure, functions, and intended purpose.
Function signature and input parameters:
The Goertzel Cycle Composite Wave function accepts numerous input parameters for customization, including source data (src), the current bar (forBar), sample size (samplesize), period (per), squared amplitude flag (squaredAmp), addition flag (useAddition), cosine flag (useCosine), cycle strength flag (UseCycleStrength), past sizes (WindowSizePast), Bartels filter flag (FilterBartels), Bartels-related parameters (BartNoCycles, BartSmoothPer, BartSigLimit), sorting flag (SortBartels), and output buffers (goeWorkPast, cyclebuffer, amplitudebuffer, phasebuffer, cycleBartelsBuffer).
Initializing variables and arrays:
The code initializes several float arrays (goeWork1, goeWork2, goeWork3, goeWork4) with the same length as twice the period (2 * per). These arrays store intermediate results during the execution of the algorithm.
Preprocessing input data:
The input data (src) undergoes preprocessing to remove linear trends. This step enhances the algorithm's ability to focus on cyclical components in the data. The linear trend is calculated by finding the slope between the first and last values of the input data within the sample.
Iterative calculation of Goertzel coefficients:
The core of the Goertzel Cycle Composite Wave algorithm lies in the iterative calculation of Goertzel coefficients for each frequency bin. These coefficients represent the spectral content of the input data at different frequencies. The code iterates through the range of frequencies, calculating the Goertzel coefficients using a nested loop structure.
Cycle strength computation:
The code calculates the cycle strength based on the Goertzel coefficients. This is an optional step, controlled by the UseCycleStrength flag. The cycle strength provides information on the relative influence of each cycle on the data per bar, considering both amplitude and cycle length. The algorithm computes the cycle strength either by squaring the amplitude (controlled by squaredAmp flag) or using the actual amplitude values.
Phase calculation:
The Goertzel Cycle Composite Wave code computes the phase of each cycle, which represents the position of the cycle within the input data. The phase is calculated using the arctangent function (math.atan) based on the ratio of the imaginary and real components of the Goertzel coefficients.
Peak detection and cycle extraction:
The algorithm performs peak detection on the computed amplitudes or cycle strengths to identify dominant cycles. It stores the detected cycles in the cyclebuffer array, along with their corresponding amplitudes and phases in the amplitudebuffer and phasebuffer arrays, respectively.
Sorting cycles by amplitude or cycle strength:
The code sorts the detected cycles based on their amplitude or cycle strength in descending order. This allows the algorithm to prioritize cycles with the most significant impact on the input data.
Bartels cycle significance test:
If the FilterBartels flag is set, the code performs a Bartels cycle significance test on the detected cycles. This test determines the statistical significance of each cycle and filters out the insignificant cycles. The significant cycles are stored in the cycleBartelsBuffer array. If the SortBartels flag is set, the code sorts the significant cycles based on their Bartels significance values.
Waveform calculation:
The Goertzel Cycle Composite Wave code calculates the waveform of the significant cycles for specified time windows. The windows are defined by the WindowSizePast parameters, respectively. The algorithm uses either cosine or sine functions (controlled by the useCosine flag) to calculate the waveforms for each cycle. The useAddition flag determines whether the waveforms should be added or subtracted.
Storing waveforms in a matrix:
The calculated waveforms for the cycle is stored in the matrix - goeWorkPast. This matrix holds the waveforms for the specified time windows. Each row in the matrix represents a time window position, and each column corresponds to a cycle.
Returning the number of cycles:
The Goertzel Cycle Composite Wave function returns the total number of detected cycles (number_of_cycles) after processing the input data. This information can be used to further analyze the results or to visualize the detected cycles.
The Goertzel Cycle Composite Wave code is a comprehensive implementation of the Goertzel Algorithm, specifically designed for detecting and analyzing dominant cycles within financial market data. The code offers a high level of customization, allowing users to fine-tune the algorithm based on their specific needs. The Goertzel Cycle Composite Wave's combination of preprocessing, iterative calculations, cycle extraction, sorting, significance testing, and waveform calculation makes it a powerful tool for understanding cyclical components in financial data.
█ Generating and Visualizing Composite Waveform
The indicator calculates and visualizes the composite waveform for specified time windows based on the detected cycles. Here's a detailed explanation of this process:
Updating WindowSizePast:
The WindowSizePast is updated to ensure they are at least twice the MaxPer (maximum period).
Initializing matrices and arrays:
The matrix goeWorkPast is initialized to store the Goertzel results for specified time windows. Multiple arrays are also initialized to store cycle, amplitude, phase, and Bartels information.
Preparing the source data (srcVal) array:
The source data is copied into an array, srcVal, and detrended using one of the selected methods (hpsmthdt, zlagsmthdt, logZlagRegression, hpsmth, or zlagsmth).
Goertzel function call:
The Goertzel function is called to analyze the detrended source data and extract cycle information. The output, number_of_cycles, contains the number of detected cycles.
Initializing arrays for waveforms:
The goertzel array is initialized to store the endpoint Goertzel.
Calculating composite waveform (goertzel array):
The composite waveform is calculated by summing the selected cycles (either from the user-defined cycle list or the top cycles) and optionally subtracting the noise component.
Drawing composite waveform (pvlines):
The composite waveform is drawn on the chart using solid lines. The color of the lines is determined by the direction of the waveform (green for upward, red for downward).
To summarize, this indicator generates a composite waveform based on the detected cycles in the financial data. It calculates the composite waveforms and visualizes them on the chart using colored lines.
█ Enhancing the Goertzel Algorithm-Based Script for Financial Modeling and Trading
The Goertzel algorithm-based script for detecting dominant cycles in financial data is a powerful tool for financial modeling and trading. It provides valuable insights into the past behavior of these cycles. However, as with any algorithm, there is always room for improvement. This section discusses potential enhancements to the existing script to make it even more robust and versatile for financial modeling, general trading, advanced trading, and high-frequency finance trading.
Enhancements for Financial Modeling
Data preprocessing: One way to improve the script's performance for financial modeling is to introduce more advanced data preprocessing techniques. This could include removing outliers, handling missing data, and normalizing the data to ensure consistent and accurate results.
Additional detrending and smoothing methods: Incorporating more sophisticated detrending and smoothing techniques, such as wavelet transform or empirical mode decomposition, can help improve the script's ability to accurately identify cycles and trends in the data.
Machine learning integration: Integrating machine learning techniques, such as artificial neural networks or support vector machines, can help enhance the script's predictive capabilities, leading to more accurate financial models.
Enhancements for General and Advanced Trading
Customizable indicator integration: Allowing users to integrate their own technical indicators can help improve the script's effectiveness for both general and advanced trading. By enabling the combination of the dominant cycle information with other technical analysis tools, traders can develop more comprehensive trading strategies.
Risk management and position sizing: Incorporating risk management and position sizing functionality into the script can help traders better manage their trades and control potential losses. This can be achieved by calculating the optimal position size based on the user's risk tolerance and account size.
Multi-timeframe analysis: Enhancing the script to perform multi-timeframe analysis can provide traders with a more holistic view of market trends and cycles. By identifying dominant cycles on different timeframes, traders can gain insights into the potential confluence of cycles and make better-informed trading decisions.
Enhancements for High-Frequency Finance Trading
Algorithm optimization: To ensure the script's suitability for high-frequency finance trading, optimizing the algorithm for faster execution is crucial. This can be achieved by employing efficient data structures and refining the calculation methods to minimize computational complexity.
Real-time data streaming: Integrating real-time data streaming capabilities into the script can help high-frequency traders react to market changes more quickly. By continuously updating the cycle information based on real-time market data, traders can adapt their strategies accordingly and capitalize on short-term market fluctuations.
Order execution and trade management: To fully leverage the script's capabilities for high-frequency trading, implementing functionality for automated order execution and trade management is essential. This can include features such as stop-loss and take-profit orders, trailing stops, and automated trade exit strategies.
While the existing Goertzel algorithm-based script is a valuable tool for detecting dominant cycles in financial data, there are several potential enhancements that can make it even more powerful for financial modeling, general trading, advanced trading, and high-frequency finance trading. By incorporating these improvements, the script can become a more versatile and effective tool for traders and financial analysts alike.
█ Understanding the Limitations of the Goertzel Algorithm
While the Goertzel algorithm-based script for detecting dominant cycles in financial data provides valuable insights, it is important to be aware of its limitations and drawbacks. Some of the key drawbacks of this indicator are:
Lagging nature:
As with many other technical indicators, the Goertzel algorithm-based script can suffer from lagging effects, meaning that it may not immediately react to real-time market changes. This lag can lead to late entries and exits, potentially resulting in reduced profitability or increased losses.
Parameter sensitivity:
The performance of the script can be sensitive to the chosen parameters, such as the detrending methods, smoothing techniques, and cycle detection settings. Improper parameter selection may lead to inaccurate cycle detection or increased false signals, which can negatively impact trading performance.
Complexity:
The Goertzel algorithm itself is relatively complex, making it difficult for novice traders or those unfamiliar with the concept of cycle analysis to fully understand and effectively utilize the script. This complexity can also make it challenging to optimize the script for specific trading styles or market conditions.
Overfitting risk:
As with any data-driven approach, there is a risk of overfitting when using the Goertzel algorithm-based script. Overfitting occurs when a model becomes too specific to the historical data it was trained on, leading to poor performance on new, unseen data. This can result in misleading signals and reduced trading performance.
Limited applicability:
The Goertzel algorithm-based script may not be suitable for all markets, trading styles, or timeframes. Its effectiveness in detecting cycles may be limited in certain market conditions, such as during periods of extreme volatility or low liquidity.
While the Goertzel algorithm-based script offers valuable insights into dominant cycles in financial data, it is essential to consider its drawbacks and limitations when incorporating it into a trading strategy. Traders should always use the script in conjunction with other technical and fundamental analysis tools, as well as proper risk management, to make well-informed trading decisions.
█ Interpreting Results
The Goertzel Cycle Composite Wave indicator can be interpreted by analyzing the plotted lines. The indicator plots two lines: composite waves. The composite wave represents the composite wave of the price data.
The composite wave line displays a solid line, with green indicating a bullish trend and red indicating a bearish trend.
Interpreting the Goertzel Cycle Composite Wave indicator involves identifying the trend of the composite wave lines and matching them with the corresponding bullish or bearish color.
█ Conclusion
The Goertzel Cycle Composite Wave indicator is a powerful tool for identifying and analyzing cyclical patterns in financial markets. Its ability to detect multiple cycles of varying frequencies and strengths make it a valuable addition to any trader's technical analysis toolkit. However, it is important to keep in mind that the Goertzel Cycle Composite Wave indicator should be used in conjunction with other technical analysis tools and fundamental analysis to achieve the best results. With continued refinement and development, the Goertzel Cycle Composite Wave indicator has the potential to become a highly effective tool for financial modeling, general trading, advanced trading, and high-frequency finance trading. Its accuracy and versatility make it a promising candidate for further research and development.
█ Footnotes
What is the Bartels Test for Cycle Significance?
The Bartels Cycle Significance Test is a statistical method that determines whether the peaks and troughs of a time series are statistically significant. The test is named after its inventor, George Bartels, who developed it in the mid-20th century.
The Bartels test is designed to analyze the cyclical components of a time series, which can help traders and analysts identify trends and cycles in financial markets. The test calculates a Bartels statistic, which measures the degree of non-randomness or autocorrelation in the time series.
The Bartels statistic is calculated by first splitting the time series into two halves and calculating the range of the peaks and troughs in each half. The test then compares these ranges using a t-test, which measures the significance of the difference between the two ranges.
If the Bartels statistic is greater than a critical value, it indicates that the peaks and troughs in the time series are non-random and that there is a significant cyclical component to the data. Conversely, if the Bartels statistic is less than the critical value, it suggests that the peaks and troughs are random and that there is no significant cyclical component.
The Bartels Cycle Significance Test is particularly useful in financial analysis because it can help traders and analysts identify significant cycles in asset prices, which can in turn inform investment decisions. However, it is important to note that the test is not perfect and can produce false signals in certain situations, particularly in noisy or volatile markets. Therefore, it is always recommended to use the test in conjunction with other technical and fundamental indicators to confirm trends and cycles.
Deep-dive into the Hodrick-Prescott Fitler
The Hodrick-Prescott (HP) filter is a statistical tool used in economics and finance to separate a time series into two components: a trend component and a cyclical component. It is a powerful tool for identifying long-term trends in economic and financial data and is widely used by economists, central banks, and financial institutions around the world.
The HP filter was first introduced in the 1990s by economists Robert Hodrick and Edward Prescott. It is a simple, two-parameter filter that separates a time series into a trend component and a cyclical component. The trend component represents the long-term behavior of the data, while the cyclical component captures the shorter-term fluctuations around the trend.
The HP filter works by minimizing the following objective function:
Minimize: (Sum of Squared Deviations) + λ (Sum of Squared Second Differences)
Where:
1. The first term represents the deviation of the data from the trend.
2. The second term represents the smoothness of the trend.
3. λ is a smoothing parameter that determines the degree of smoothness of the trend.
The smoothing parameter λ is typically set to a value between 100 and 1600, depending on the frequency of the data. Higher values of λ lead to a smoother trend, while lower values lead to a more volatile trend.
The HP filter has several advantages over other smoothing techniques. It is a non-parametric method, meaning that it does not make any assumptions about the underlying distribution of the data. It also allows for easy comparison of trends across different time series and can be used with data of any frequency.
However, the HP filter also has some limitations. It assumes that the trend is a smooth function, which may not be the case in some situations. It can also be sensitive to changes in the smoothing parameter λ, which may result in different trends for the same data. Additionally, the filter may produce unrealistic trends for very short time series.
Despite these limitations, the HP filter remains a valuable tool for analyzing economic and financial data. It is widely used by central banks and financial institutions to monitor long-term trends in the economy, and it can be used to identify turning points in the business cycle. The filter can also be used to analyze asset prices, exchange rates, and other financial variables.
The Hodrick-Prescott filter is a powerful tool for analyzing economic and financial data. It separates a time series into a trend component and a cyclical component, allowing for easy identification of long-term trends and turning points in the business cycle. While it has some limitations, it remains a valuable tool for economists, central banks, and financial institutions around the world.
Market Time Cycle (Expo)█ Time Cycles Overview
Time cycles are a fascinating and powerful concept in the world of trading and investing. They are all about understanding and predicting the timing of market moves based on the premise that market events and price movements are not random, but instead occur in repeatable, cyclical patterns.
The Concept of Time Cycles: The foundation of time cycles lies in the belief that historical market patterns tend to repeat themselves over specific periods. These periods or cycles could be influenced by a myriad of factors like economic data releases, earnings reports, geopolitical events, or even natural human behavior. For example, some traders observe increased market activity around the start and end of a trading day, which is a form of intraday time cycle.
Understanding time cycles can provide traders with a roadmap, helping them anticipate potential trend shifts and make more informed decisions about when to buy or sell.
█ Indicator Overview
The Market Time Cycle (Expo) is designed to help traders track and analyze market cycles and generate signals for potential trading opportunities. It uses mathematical techniques to analyze market cycles and detect possible turning points. It does this by projecting the estimated cycle timeline and providing visual indications of cyclical phases through the use of color-coded lines and sine wave cycles.
Time cycles offer a compelling way to forecast market trends and time your trades better. By adding time cycles to your trading toolbox, you could potentially gain a new perspective on market movements and refine your trading strategy further. The indicator generates trading signals based on the sine wave's behavior. When the sine wave crosses certain thresholds, the indicator generates a signal suggesting a potential trading opportunity based on cycle behavior.
█ How to use
This indicator can be a valuable tool to help traders understand and predict market trends and time their trades more accurately. By visualizing the cyclic nature of markets, traders can better anticipate potential turning points and adjust their trading strategies accordingly. It helps traders to spot ideal entry and exit points based on the cyclical nature of financial markets.
█ Settings
You can customize the number of bars (NumbOfBars) that are taken into consideration for the cycle. Including a higher number of bars will provide more data, which can be helpful for analyzing long-term trends.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Wosabi Time Cycle Gann v1 This indicator is an auxiliary tool for drawing the five-year and ten-year cycle, as it draws vertical lines every 12 candles and for 12 minor cycles, so that a major cycle consists of 144 candles, which is the ten-year cycle. It helps to know whether the current trend will continue for the five-year cycle and whether it will complete the ten-year cycle or not The standard cycle assumes that the trend is from a bottom or a top, if it continues for more than 24 candles to 36 candles, then corrects and does not break the bottom or top, then the trend will continue at least to complete the five-year cycle, i.e. 72 candles, and if the trend continues and the seven-year cycle closes at the 82 candle above The price of the candle of the strategic line No. 42, there is a possibility to complete the ten-year cycle (you must have experience in the standard patterns of time cycles as explained by gan).
The indicator also draws the digital gates in horizontal lines, and you have to select them manually and adjust the price difference from one currency to another from the settings.
When adding the indicator for the first time, you must specify the candle of the beginning of the trend, whether at a bottom or a top, as well as specifying the highest or lowest price that is expected to reach five digital gates, and you can modify the gates later in the settings.
You can show a horizontal line at the close of each minor cycle of 24 candles, and you can adjust the line length from the settings.
You can also show lines on the vibration plugs.
When the trend is up, the end price must be higher than the starting price, in order to draw the direction for the gates correctly, and when the trend is down, the end price must be lower than the starting price.
Important note: This indicator depends on your experience in time cycles and will not give you any buy or sell signals. It is an indicator that saves you drawing for cycles and gates and depends on your personal experience in time cycles.
هذا المؤشر اداة مساعدة لرسم دورة الخمس سنوات والعشر سنوات، فهو يرسم خطوط اعمده راسية كل 12 شمعة ولعدد 12 دورة صغرى لتتكون دورة كبرى من 144 شمعة وهي دورة العشر سنوات وهي تساعد لمعرفة هل الاتجاه الحالي سيستمر لدورة الخمس سنوات وهل سيكمل دورة العشر سنوات ام لا ، فالدورة القياسية تفترض ان الاتجاه من قاع او قمة اذا استمر لاكثر من 24 شمعة الى 36 شمعة ثم صحح ولم يكسر القاع او القمة فإن الاتجاه سيستمر على الاقل لاكمال دورة الخمس سنوات اي 72 شمعة ، واذا استمر الاتجاه واغلق دورة السبع سنوات عند الشمعة 82 فوق سعر شمعة خط الاستراتيجي رقم 42 فهنالك احتمالية لاكمال دورة العشر سنوات (يجب ان يكون ليك خبرة في الانماط القياسية للدورات الزمنية كما شرحها gan).
كذلك يقوم المؤشر برسم البوابات الرقمية في خطوط افقية وعليك تحديدها بشكل يدوي وتعديل فارق السعر من عملة لاخرى من الاعدادات .
عند اضافة المؤشر لاول مرة يجب تحديد شمعة بداية الاتجاه سواء عند قاع او قمة وكذلك تحديد السعر الاعلى او الادنى المتوقع ان تصل له خمس بوابات رقمية ويمكنك تعديل البوابات لاحقا من الاعدادات .
يمكنك اظهار خط افقي عند اغلاق كل دورة صغرى لعدد 24 شمعة ويمكنك تعديل طول الخط من الاعدادات .
يمكنك كذلك اظهار خطوط على شمعات الاهتزاز .
عندما يكون الاتجاه صاعد يجب ان يكون سعر النهاية اعلى من سعر البداية ليتم رسم الاتتجاه للبوابات بشكل صحيح وعندما يكون الاتجاه هابط يجب ان يكون سعر النهاية ادنى من سعر البداية .
ملاحظة هامة : هذا المؤشر يعتمد على خبرتك في الدورات الزمنية ولن يعطيك اي اشارات شراء او بيع فهو مؤشر يوفر عليك الرسم للدورات والبوابات ويعتمد على خبرتك الشخصية في الدورات الزمنية .
Wosabi 2 Time Cycle Gann and candles v3Important Note: This indicator relies on your expertise in time cycles and does not provide any buy or sell signals. It helps you by automating the drawing of minor and major time cycles and digital gates, relying on your personal expertise. It simply draws a vertical line every 12 candles from your selected starting candle and repeats this until the cycle is complete after 12 minor cycles. Additionally, it calculates digital gates, and you need to configure the settings to choose the type of calculation for the digital gate, whether it's based on the commonly known digital gates (12-15-18) or gate targets, for example (369-693-936-258-582-825-147...), and then multiply them based on the price difference you input to draw horizontal lines for the expected gates. If a gate is broken, the price will continue to the next gate.
This indicator is an auxiliary tool for drawing the five, seven, ten, and even fifty or more cycles that Gann discussed. With its default settings, it draws vertical lines every 12 candles for 12 minor cycles (modifiable), forming a major cycle of 144 candles, which is the ten-cycle. (You should have experience in time cycle patterns as explained by Gann to know if the trend will continue up or down over time). The indicator only draws the columns that define the minor cycles, and their total forms the major cycle.
- The indicator also draws digital gates as horizontal lines, which you need to set manually and adjust the price difference from one currency to another in the settings.
- When adding the indicator for the first time, you must specify the starting candle of the trend, whether at a bottom or a top, and determine the highest or lowest price expected to reach five digital gates. If you expect an upward cycle, set the price at the resistance area where you expect the price to bounce. If you want to draw a downward cycle, set the price at the support area where you expect the bounce. You can later adjust the gates from the settings if you want to calculate them according to the digital gate. For example, if you start drawing the downward cycle for Bitcoin, as in the above picture when the highest price was 73881, we add the first two digits 7+3=10, 1+0=1, and the number 1 corresponds to gate 12, so you select it from the settings and then adjust the price difference to 1000 or its multiples since Bitcoin's price is in thousands. If it is another currency with a price not exceeding $100, adjust the price difference to 10 or its multiples. Thus, adjust the price difference from one currency to another. For currencies with values in fractions, the price difference will be 0.0001 or the closest figure to the currency's price, as an example.
- You can display a horizontal line at the close of each minor cycle, i.e., every 12 candles.
- You can display a strategic line at candle 42 from the start of the cycle. The strategic line is used to guide you; if the trend is up and doesn't close below this line after 7 minor cycles, the trend will likely continue up, or above it if the trend is down. In a downtrend, there are slightly different rules that can't be fully explained here.
- You can also display lines on the vibration candles, which are multiples of the number 3 from the start of the cycle, i.e., 3, 9, 12, 15, etc.
- When the trend is upward, the ending price should be higher than the starting price to draw the trend towards the gates correctly. When the trend is downward, the ending price should be lower than the starting price.
- You can now calculate digital gates in more than one way, and you can adjust the digital gates (if you have a specific method for calculating them), double them, or divide them.
** One of the most important additions is the ability to convert minor time cycles into candles to visualize the upcoming direction of the minor cycle.
ملاحظة هامة : هذا المؤشر يعتمد على خبرتك في الدورات الزمنية ولن يعطيك اي اشارات شراء او بيع فهو مؤشر يوفر عليك الرسم للدورات الزمنية الصغرى والكبرى والبوابات الرقمية ويعتمد على خبرتك الشخصية وعمله ببساطه يقوم برسم خط عمودي كل 12 شمعة من بعد اختيارك لاي شمعة ويكرر رسم الاعمده حتى اكتمال الدورة بعد 12 دورة زمنية صغرى كما انه يقوم بحساب البوابات الرقمية ويجب عليك ضبط الاعدادات من المؤشر باختيار نوع الحساب للبوابة الرقمية هل هو حساب البوابات الرقمية المتعارف عليها ( 12-15-18) او حسب اهداف البوابات كمثال (369-693-936-258-582-825-147.....) ثن يتم مضاعفتها حسب ادخالك لفارق الاسعار ليتم رسم خطوط افقيه للبوابات المتوقع اذا كسرها يستمر السعر بالوصول للبوابة التي تليها .
هذا المؤشر اداة مساعدة لرسم دورة الخمس او السبع اوالعشر وحتى الخمسين واكثر التي تحدث عنها gan ، فهو باعداداته الافتراضية يرسم خطوط اعمده راسية كل 12 شمعة ولعدد 12 دورة صغرى (يمكن تعديلها) لتتكون دورة كبرى من 144 شمعة وهي دورة العشرة ، (يجب ان يكون ليك خبرة في انماط الدورات الزمنية كما شرحها gan لتعرف هل سيستمر الصعود او الهبوط زمنياً ) فالمؤشر فقط يرسم الاعمدة التي تحدد الدورات الصغرى ومجموعها يكون الدورة الكبرى .
- يقوم المؤشر ايضا برسم البوابات الرقمية في خطوط افقية وعليك تحديدها بشكل يدوي وتعديل فارق السعر من عملة لاخرى من الاعدادات .
- عند اضافة المؤشر لاول مرة يجب تحديد شمعة بداية الاتجاه سواء عند قاع او قمة وكذلك تحديد السعر الاعلى او الادنى المتوقع ان تصل له خمس بوابات رقمية فاذا كنت تتوقع ان الدورة صاعدة فحينها تحدد السعر عند منطقة المقاومة التي تتوقع ان يرتد منها السعر وان كنت تريد رسم دورة هابطة فحينها تحدد السعر عند منطقة الدعم المتوقع الارتداد منه ويمكنك تعديل البوابات لاحقا من الاعدادات اذا اردت حسابها حسب البوابة الرقمية على سبيل المثال اذا رسمت بداية الدورة الهابطة للبيتكوين كما في الصورة اعلاه حينما كان سعر اعلى قمة 73881 نقوم بجمع اول رقمين و هم 7+3=10 , 1+0=1 والرقم 1 يتبع البوابه 12 فتقوم باختيارها من الاعدادات ثم تقوم بتعديل فارق السعر الى 1000 او مضاعفاته كون سعر البيتكوين بالالاف وان كانت عمله اخرى نفترض ان سعرها ل يتجاوز 100 دولار نعدل فارق السعر الى 10 او مضاعفاته وهكذا نقوم بتعديل فارق السعر من عملة الى اخرى ففي العملات الصفرية سيكون فارق السعر 0.0001 او حسب الرقم القريب لسعر العملة هذا فقط كمثال .
- يمكنك اظهار خط افقي عند اغلاق كل دورة صغرى اي كل 12 سمعة .
- يمكنك اظهار خط الاستراتيجي عند شمعة 42 من بداية الدورة وخط الاستراتيجي يسترشد من خلاله اذا لم يتم الاغلاق اسفله اذا كان الاتجاه صاعد بعد 7 دورات صغرى ان الاتجاه سيستمر او اعلاه اذا كان الاتجاه هابط وفي الاتجاه الهابط هنالك قواعد مختلفة قليلاً لا يتسع المجال لشرحها.
- يمكنك كذلك اظهار خطوط على شمعات الاهتزاز التي تكون من بداية الدورة مضاعفات الرقم 3 اي 3,9,12,15 وهكذ .
- عندما يكون الاتجاه صاعد يجب ان يكون سعر النهاية اعلى من سعر البداية ليتم رسم الاتتجاه للبوابات بشكل صحيح وعندما يكون الاتجاه هابط يجب ان يكون سعر النهاية ادنى من سعر البداية .
- يمكنك الان حساب البوابات الرقمية باكثر من طريقة ويمكنك تعديل البوابات الرقمية (اذا كان لديك طريقة معينة لحسابها) او مضاعفتها او تقسيمها .
** من اهم الاضافات هو امكانية تحويل الدورات الزمنية الصغرة الى شموع حتى تتخيل الاتجاه القادم لحركة الدورة الصغرى .
Poly Cycle [Loxx]This is an example of what can be done by combining Legendre polynomials and analytic signals. I get a way of determining a smooth period and relative adaptive strength indicator without adding time lag.
This indicator displays the following:
The Least Squares fit of a polynomial to a DC subtracted time series - a best fit to a cycle.
The normalized analytic signal of the cycle (signal and quadrature).
The Phase shift of the analytic signal per bar.
The Period and HalfPeriod lengths, in bars of the current cycle.
A relative strength indicator of the time series over the cycle length. That is, adaptive relative strength over the cycle length.
The Relative Strength Indicator, is adaptive to the time series, and it can be smoothed by increasing the length of decreasing the number of degrees of freedom.
Other adaptive indicators based upon the period and can be similarly constructed.
There is some new math here, so I have broken the story up into 5 Parts:
Part 1:
Any time series can be decomposed into a orthogonal set of polynomials .
This is just math and here are some good references:
Legendre polynomials - Wikipedia, the free encyclopedia
Peter Seffen, "On Digital Smoothing Filters: A Brief Review of Closed Form Solutions and Two New Filter Approaches", Circuits Systems Signal Process, Vol. 5, No 2, 1986
I gave some thought to what should be done with this and came to the conclusion that they can be used for basic smoothing of time series. For the analysis below, I decompose a time series into a low number of degrees of freedom and discard the zero mode to introduce smoothing.
That is:
time series => c_1 t + c_2 t^2 ... c_Max t^Max
This is the cycle. By construction, the cycle does not have a zero mode and more physically, I am defining the "Trend" to be the zero mode.
The data for the cycle and the fit of the cycle can be viewed by setting
ShowDataAndFit = TRUE;
There, you will see the fit of the last bar as well as the time series of the leading edge of the fits. If you don't know what I mean by the "leading edge", please see some of the postings in . The leading edges are in grayscale, and the fit of the last bar is in color.
I have chosen Length = 17 and Degree = 4 as the default. I am simply making sure by eye that the fit is reasonably good and degree 4 is the lowest polynomial that can represent a sine-like wave, and 17 is the smallest length that lets me calculate the Phase Shift (Part 3 below) using the Hilbert Transform of width=7 (Part 2 below).
Depending upon the fit you make, you will capture different cycles in the data. A fit that is too "smooth" will not see the smaller cycles, and a fit that is too "choppy" will not see the longer ones. The idea is to use the fit to try to suppress the smaller noise cycles while keeping larger signal cycles.
Part 2:
Every time series has an Analytic Signal, defined by applying the Hilbert Transform to it. You can think of the original time series as amplitude * cosine(theta) and the transformed series, called the quadrature, can be thought of as amplitude * sine(theta). By taking the ratio, you can get the angle theta, and this is exactly what was done by John Ehlers in . It lets you get a frequency out of the time series under consideration.
Amazon.com: Rocket Science for Traders: Digital Signal Processing Applications (9780471405672): John F. Ehlers: Books
It helps to have more references to understand this. There is a nice article on Wikipedia on it.
Read the part about the discrete Hilbert Transform:
en.wikipedia.org
If you really want to understand how to go from continuous to discrete, look up this article written by Richard Lyons:
www.dspguru.com
In the indicator below, I am calculating the normalized analytic signal, which can be written as:
s + i h where i is the imagery number, and s^2 + h^2 = 1;
s= signal = cosine(theta)
h = Hilbert transformed signal = quadrature = sine(theta)
The angle is therefore given by theta = arctan(h/s);
The analytic signal leading edge and the fit of the last bar of the cycle can be viewed by setting
ShowAnalyticSignal = TRUE;
The leading edges are in grayscale fit to the last bar is in color. Light (yellow) is the s term, and Dark (orange) is the quadrature (hilbert transform). Note that for every bar, s^2 + h^2 = 1 , by construction.
I am using a width = 7 Hilbert transform, just like Ehlers. (But you can adjust it if you want.) This transform has a 7 bar lag. I have put the lag into the plot statements, so the cycle info should be quite good at displaying minima and maxima (extrema).
Part 3:
The Phase shift is the amount of phase change from bar to bar.
It is a discrete unitary transformation that takes s + i h to s + i h
explicitly, T = (s+ih)*(s -ih ) , since s *s + h *h = 1.
writing it out, we find that T = T1 + iT2
where T1 = s*s + h*h and T2 = s*h -h*s
and the phase shift is given by PhaseShift = arctan(T2/T1);
Alas, I have no reference for this, all I doing is finding the rotation what takes the analytic signal at bar to the analytic signal at bar . T is the transfer matrix.
Of interest is the PhaseShift from the closest two bars to the present, given by the bar and bar since I am using a width=7 Hilbert transform, bar is the earliest bar with an analytic signal.
I store the phase shift from bar to bar as a time series called PhaseShift. It basically gives you the (7-bar delayed) leading edge the amount of phase angle change in the series.
You can see it by setting
ShowPhaseShift=TRUE
The green points are positive phase shifts and red points are negative phase shifts.
On most charts, I have looked at, the indicator is mostly green, but occasionally, the stock "retrogrades" and red appears. This happens when the cycle is "broken" and the cycle length starts to expand as a trend occurs.
Part 4:
The Period:
The Period is the number of bars required to generate a sum of PhaseShifts equal to 360 degrees.
The Half-period is the number of bars required to generate a sum of phase shifts equal to 180 degrees. It is usually not equal to 1/2 of the period.
You can see the Period and Half-period by setting
ShowPeriod=TRUE
The code is very simple here:
Value1=0;
Value2=0;
while Value1 < bar_index and math.abs(Value2) < 360 begin
Value2 = Value2 + PhaseShift ;
Value1 = Value1 + 1;
end;
Period = Value1;
The period is sensitive to the input length and degree values but not overly so. Any insight on this would be appreciated.
Part 5:
The Relative Strength indicator:
The Relative Strength is just the current value of the series minus the minimum over the last cycle divided by the maximum - minimum over the last cycle, normalized between +1 and -1.
RelativeStrength = -1 + 2*(Series-Min)/(Max-Min);
It therefore tells you where the current bar is relative to the cycle. If you want to smooth the indicator, then extend the period and/or reduce the polynomial degree.
In code:
NewLength = floor(Period + HilbertWidth+1);
Max = highest(Series,NewLength);
Min = lowest(Series,NewLength);
if Max>Min then
Note that the variable NewLength includes the lag that comes from the Hilbert transform, (HilbertWidth=7 by default).
Conclusion:
This is an example of what can be done by combining Legendre polynomials and analytic signals to determine a smooth period without adding time lag.
________________________________
Changes in this one : instead of using true/false options for every single way to display, use Type parameter as following :
1. The Least Squares fit of a polynomial to a DC subtracted time series - a best fit to a cycle.
2. The normalized analytic signal of the cycle (signal and quadrature).
3. The Phase shift of the analytic signal per bar.
4. The Period and HalfPeriod lengths, in bars of the current cycle.
5. A relative strength indicator of the time series over the cycle length. That is, adaptive relative strength over the cycle length.
Adaptivity: Measures of Dominant Cycles and Price Trend [Loxx]Adaptivity: Measures of Dominant Cycles and Price Trend is an indicator that outputs adaptive lengths using various methods for dominant cycle and price trend timeframe adaptivity. While the information output from this indicator might be useful for the average trader in one off circumstances, this indicator is really meant for those need a quick comparison of dynamic length outputs who wish to fine turn algorithms and/or create adaptive indicators.
This indicator compares adaptive output lengths of all publicly known adaptive measures. Additional adaptive measures will be added as they are discovered and made public.
The first released of this indicator includes 6 measures. An additional three measures will be added with updates. Please check back regularly for new measures.
Ehers:
Autocorrelation Periodogram
Band-pass
Instantaneous Cycle
Hilbert Transformer
Dual Differentiator
Phase Accumulation (future release)
Homodyne (future release)
Jurik:
Composite Fractal Behavior (CFB)
Adam White:
Veritical Horizontal Filter (VHF) (future release)
What is an adaptive cycle, and what is Ehlers Autocorrelation Periodogram Algorithm?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 135:
"Adaptive filters can have several different meanings. For example, Perry Kaufman's adaptive moving average (KAMA) and Tushar Chande's variable index dynamic average (VIDYA) adapt to changes in volatility . By definition, these filters are reactive to price changes, and therefore they close the barn door after the horse is gone.The adaptive filters discussed in this chapter are the familiar Stochastic , relative strength index (RSI), commodity channel index (CCI), and band-pass filter.The key parameter in each case is the look-back period used to calculate the indicator. This look-back period is commonly a fixed value. However, since the measured cycle period is changing, it makes sense to adapt these indicators to the measured cycle period. When tradable market cycles are observed, they tend to persist for a short while.Therefore, by tuning the indicators to the measure cycle period they are optimized for current conditions and can even have predictive characteristics.
The dominant cycle period is measured using the Autocorrelation Periodogram Algorithm. That dominant cycle dynamically sets the look-back period for the indicators. I employ my own streamlined computation for the indicators that provide smoother and easier to interpret outputs than traditional methods. Further, the indicator codes have been modified to remove the effects of spectral dilation.This basically creates a whole new set of indicators for your trading arsenal."
What is this Hilbert Transformer?
An analytic signal allows for time-variable parameters and is a generalization of the phasor concept, which is restricted to time-invariant amplitude, phase, and frequency. The analytic representation of a real-valued function or signal facilitates many mathematical manipulations of the signal. For example, computing the phase of a signal or the power in the wave is much simpler using analytic signals.
The Hilbert transformer is the technique to create an analytic signal from a real one. The conventional Hilbert transformer is theoretically an infinite-length FIR filter. Even when the filter length is truncated to a useful but finite length, the induced lag is far too large to make the transformer useful for trading.
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, pages 186-187:
"I want to emphasize that the only reason for including this section is for completeness. Unless you are interested in research, I suggest you skip this section entirely. To further emphasize my point, do not use the code for trading. A vastly superior approach to compute the dominant cycle in the price data is the autocorrelation periodogram. The code is included because the reader may be able to capitalize on the algorithms in a way that I do not see. All the algorithms encapsulated in the code operate reasonably well on theoretical waveforms that have no noise component. My conjecture at this time is that the sample-to-sample noise simply swamps the computation of the rate change of phase, and therefore the resulting calculations to find the dominant cycle are basically worthless.The imaginary component of the Hilbert transformer cannot be smoothed as was done in the Hilbert transformer indicator because the smoothing destroys the orthogonality of the imaginary component."
What is the Dual Differentiator, a subset of Hilbert Transformer?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 187:
"The first algorithm to compute the dominant cycle is called the dual differentiator. In this case, the phase angle is computed from the analytic signal as the arctangent of the ratio of the imaginary component to the real component. Further, the angular frequency is defined as the rate change of phase. We can use these facts to derive the cycle period."
What is the Phase Accumulation, a subset of Hilbert Transformer?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 189:
"The next algorithm to compute the dominant cycle is the phase accumulation method. The phase accumulation method of computing the dominant cycle is perhaps the easiest to comprehend. In this technique, we measure the phase at each sample by taking the arctangent of the ratio of the quadrature component to the in-phase component. A delta phase is generated by taking the difference of the phase between successive samples. At each sample we can then look backwards, adding up the delta phases.When the sum of the delta phases reaches 360 degrees, we must have passed through one full cycle, on average.The process is repeated for each new sample.
The phase accumulation method of cycle measurement always uses one full cycle's worth of historical data.This is both an advantage and a disadvantage.The advantage is the lag in obtaining the answer scales directly with the cycle period.That is, the measurement of a short cycle period has less lag than the measurement of a longer cycle period. However, the number of samples used in making the measurement means the averaging period is variable with cycle period. longer averaging reduces the noise level compared to the signal.Therefore, shorter cycle periods necessarily have a higher out- put signal-to-noise ratio."
What is the Homodyne, a subset of Hilbert Transformer?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 192:
"The third algorithm for computing the dominant cycle is the homodyne approach. Homodyne means the signal is multiplied by itself. More precisely, we want to multiply the signal of the current bar with the complex value of the signal one bar ago. The complex conjugate is, by definition, a complex number whose sign of the imaginary component has been reversed."
What is the Instantaneous Cycle?
The Instantaneous Cycle Period Measurement was authored by John Ehlers; it is built upon his Hilbert Transform Indicator.
From his Ehlers' book Cybernetic Analysis for Stocks and Futures: Cutting-Edge DSP Technology to Improve Your Trading by John F. Ehlers, 2004, page 107:
"It is obvious that cycles exist in the market. They can be found on any chart by the most casual observer. What is not so clear is how to identify those cycles in real time and how to take advantage of their existence. When Welles Wilder first introduced the relative strength index (rsi), I was curious as to why he selected 14 bars as the basis of his calculations. I reasoned that if i knew the correct market conditions, then i could make indicators such as the rsi adaptive to those conditions. Cycles were the answer. I knew cycles could be measured. Once i had the cyclic measurement, a host of automatically adaptive indicators could follow.
Measurement of market cycles is not easy. The signal-to-noise ratio is often very low, making measurement difficult even using a good measurement technique. Additionally, the measurements theoretically involve simultaneously solving a triple infinity of parameter values. The parameters required for the general solutions were frequency, amplitude, and phase. Some standard engineering tools, like fast fourier transforms (ffs), are simply not appropriate for measuring market cycles because ffts cannot simultaneously meet the stationarity constraints and produce results with reasonable resolution. Therefore i introduced maximum entropy spectral analysis (mesa) for the measurement of market cycles. This approach, originally developed to interpret seismographic information for oil exploration, produces high-resolution outputs with an exceptionally short amount of information. A short data length improves the probability of having nearly stationary data. Stationary data means that frequency and amplitude are constant over the length of the data. I noticed over the years that the cycles were ephemeral. Their periods would be continuously increasing and decreasing. Their amplitudes also were changing, giving variable signal-to-noise ratio conditions. Although all this is going on with the cyclic components, the enduring characteristic is that generally only one tradable cycle at a time is present for the data set being used. I prefer the term dominant cycle to denote that one component. The assumption that there is only one cycle in the data collapses the difficulty of the measurement process dramatically."
What is the Band-pass Cycle?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 47:
"Perhaps the least appreciated and most underutilized filter in technical analysis is the band-pass filter. The band-pass filter simultaneously diminishes the amplitude at low frequencies, qualifying it as a detrender, and diminishes the amplitude at high frequencies, qualifying it as a data smoother. It passes only those frequency components from input to output in which the trader is interested. The filtering produced by a band-pass filter is superior because the rejection in the stop bands is related to its bandwidth. The degree of rejection of undesired frequency components is called selectivity. The band-stop filter is the dual of the band-pass filter. It rejects a band of frequency components as a notch at the output and passes all other frequency components virtually unattenuated. Since the bandwidth of the deep rejection in the notch is relatively narrow and since the spectrum of market cycles is relatively broad due to systemic noise, the band-stop filter has little application in trading."
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 59:
"The band-pass filter can be used as a relatively simple measurement of the dominant cycle. A cycle is complete when the waveform crosses zero two times from the last zero crossing. Therefore, each successive zero crossing of the indicator marks a half cycle period. We can establish the dominant cycle period as twice the spacing between successive zero crossings."
What is Composite Fractal Behavior (CFB)?
All around you mechanisms adjust themselves to their environment. From simple thermostats that react to air temperature to computer chips in modern cars that respond to changes in engine temperature, r.p.m.'s, torque, and throttle position. It was only a matter of time before fast desktop computers applied the mathematics of self-adjustment to systems that trade the financial markets.
Unlike basic systems with fixed formulas, an adaptive system adjusts its own equations. For example, start with a basic channel breakout system that uses the highest closing price of the last N bars as a threshold for detecting breakouts on the up side. An adaptive and improved version of this system would adjust N according to market conditions, such as momentum, price volatility or acceleration.
Since many systems are based directly or indirectly on cycles, another useful measure of market condition is the periodic length of a price chart's dominant cycle, (DC), that cycle with the greatest influence on price action.
The utility of this new DC measure was noted by author Murray Ruggiero in the January '96 issue of Futures Magazine. In it. Mr. Ruggiero used it to adaptive adjust the value of N in a channel breakout system. He then simulated trading 15 years of D-Mark futures in order to compare its performance to a similar system that had a fixed optimal value of N. The adaptive version produced 20% more profit!
This DC index utilized the popular MESA algorithm (a formulation by John Ehlers adapted from Burg's maximum entropy algorithm, MEM). Unfortunately, the DC approach is problematic when the market has no real dominant cycle momentum, because the mathematics will produce a value whether or not one actually exists! Therefore, we developed a proprietary indicator that does not presuppose the presence of market cycles. It's called CFB (Composite Fractal Behavior) and it works well whether or not the market is cyclic.
CFB examines price action for a particular fractal pattern, categorizes them by size, and then outputs a composite fractal size index. This index is smooth, timely and accurate
Essentially, CFB reveals the length of the market's trending action time frame. Long trending activity produces a large CFB index and short choppy action produces a small index value. Investors have found many applications for CFB which involve scaling other existing technical indicators adaptively, on a bar-to-bar basis.
What is VHF Adaptive Cycle?
Vertical Horizontal Filter (VHF) was created by Adam White to identify trending and ranging markets. VHF measures the level of trend activity, similar to ADX DI. Vertical Horizontal Filter does not, itself, generate trading signals, but determines whether signals are taken from trend or momentum indicators. Using this trend information, one is then able to derive an average cycle length.
Fibonacci Cycle Finder🟩 Fibonacci Cycle Finder is an indicator designed to explore Fibonacci-based waves and cycles through visualization and experimentation, introducing a trigonometric approach to market structure analysis. Unlike traditional Fibonacci tools that rely on static horizontal levels, this indicator incorporates the dynamic nature of market cycles, using adjustable wavelength, phase, and amplitude settings to visualize the rhythm of price movements. By applying a sine function, it provides a structured way to examine Fibonacci relationships in a non-linear context.
Fibonacci Cycle Finder unifies Fibonacci principles with a wave-based method by employing adjustable parameters to align each wave with real-time price action. By default, the wave begins with minimal curvature, preserving the structural familiarity of horizontal Fibonacci retracements. By adjusting the input parameters, the wave can subtly transition from a horizontal line to a more pronounced cycle,visualizing cyclical structures within price movement. This projective structure extends potential cyclical outlines on the chart, opening deeper exploration of how Fibonacci relationships may emerge over time.
Fibonacci Cycle Finder further underscores a non-linear representation of price by illustrating how wave-based logic can uncover shifts that are missed by static retracement tools. Rather than imposing immediate oscillatory behavior, the indicator encourages a progressive approach, where the parameters may be incrementally modified to align wave structures with observed price action. This refinement process deepens the exploration of Fibonacci relationships, offering a systematic way to experiment with non-linear price dynamics. In doing so, it revisits fundamental Fibonacci concepts, demonstrating their broader adaptability beyond fixed horizontal retracements.
🌀 THEORY & CONCEPT 🌀
What if Fibonacci relationships could be visualized as dynamic waves rather than confined to fixed horizontal levels? Fibonacci Cycle Finder introduces a trigonometric approach to market structure analysis, offering a different perspective on Fibonacci-based cycles. This tool provides a way to visualize market fluctuations through cyclical wave motion, opening the door to further exploration of Fibonacci’s role in non-linear price behavior.
Traditional Fibonacci tools, such as retracements and extensions, have long been used to identify potential support and resistance levels. While valuable for analyzing price trends, these tools assume linear price movement and rely on static horizontal levels. However, market fluctuations often exhibit cyclical tendencies , where price follows natural wave-like structures rather than strictly adhering to fixed retracement points. Although Fibonacci-based tools such as arcs, fans, and time zones attempt to address these patterns, they primarily apply geometric projections. The Fibonacci Cycle Finder takes a different approach by mapping Fibonacci ratios along structured wave cycles, aligning these relationships with the natural curvature of market movement rather than forcing them onto rigid price levels.
Rather than replacing traditional Fibonacci methods, the Fibonacci Cycle Finder supplements existing Fibonacci theory by introducing an exploratory approach to price structure analysis. It encourages traders to experiment with how Fibonacci ratios interact with cyclical price structures, offering an additional layer of insight beyond static retracements and extensions. This approach allows Fibonacci levels to be examined beyond their traditional static form, providing deeper insights into market fluctuations.
📊 FIBONACCI WAVE IMPLEMENTATION 📊
The Fibonacci Cycle Finder uses two user-defined swing points, A and B, as the foundation for projecting these Fibonacci waves. It first establishes standard horizontal levels that correspond to traditional Fibonacci retracements, ensuring a baseline reference before wave adjustments are applied. By default, the wave is intentionally subtle— Wavelength is set to 1 , Amplitude is set to 1 , and Phase is set to 0 . In other words, the wave starts as “stretched out.” This allows a slow, measured start, encouraging users to refine parameters incrementally rather than producing abrupt oscillations. As these parameters are increased, the wave takes on more distinct sine and cosine characteristics, offering a flexible approach to exploring Fibonacci-based cyclicity within price action.
Three parameters control the shape of the Fibonacci wave:
1️⃣ Wavelength Controls the horizontal spacing of the wave along the time axis, determining the length of one full cycle from peak to peak (or trough to trough). In this indicator, Wavelength acts as a scaling input that adjusts how far the wave extends across time, rather than a strict mathematical “wavelength.” Lower values further stretch the wave, increasing the spacing between oscillations, while higher values compress it into a more frequent cycle. Each full cycle is divided into four quarter-cycle segments, a deliberate design choice to minimize curvature by default. This allows for subtle oscillations and smoother transitions, preventing excessive distortion while maintaining flexibility in wave projections. The wavelength is calculated relative to the A-B swing, ensuring that its scale adapts dynamically to the selected price range.
2️⃣ Amplitude Defines the vertical displacement of the wave relative to the baseline Fibonacci level. Higher values increase the height of oscillations, while lower values reduce the height, Negative values will invert the wave’s initial direction. The amplitude is dynamically applied in relation to the A-B swing direction, ensuring that an upward swing results in upward oscillations and a downward swing results in downward oscillations.
3️⃣ Phase Shifts the wave’s starting position along its cycle, adjusting alignment relative to the swing points. A phase of 0 aligns with a sine wave, where the cycle starts at zero and rises. A phase of 25 aligns with a cosine wave, starting at a peak and descending. A phase of 50 inverts the sine wave, beginning at zero but falling first, while a phase of 75 aligns with an inverted cosine , starting at a trough and rising. Intermediate values between these phases create gradual shifts in wave positioning, allowing for finer alignment with observed market structures.
By fine-tuning these parameters, users can adapt Fibonacci waves to better reflect observed market behaviors. The wave structure integrates with price movements rather than simply overlaying static levels, allowing for a more dynamic representation of cyclical price tendencies. This indicator serves as an exploratory tool for understanding potential market rhythms, encouraging traders to test and visualize how Fibonacci principles extend beyond their traditional applications.
🖼️ CHART EXAMPLES 🖼️
Following this downtrend, price interacts with curved Fibonacci levels, highlighting resistance at the 0.236 and 0.382 levels, where price stalls before pulling back. Support emerges at the 0.5, 0.618, and 0.786 levels, where price finds stability and rebounds
In this Fibonacci retracement, price initially finds support at the 1.0 level, following the natural curvature of the cycle. Resistance forms at 0.786, leading to a pullback before price breaks through and tests 0.618 as resistance. Once 0.618 is breached, price moves upward to test 0.5, illustrating how Fibonacci-based cycles may align with evolving market structure beyond static, horizontal retracements.
Following this uptrend, price retraces downward and interacts with the Fibonacci levels, demonstrating both support and resistance at key levels such as 0.236, 0.382, 0.5, and 0.618.
With only the 0.5 and 1.0 levels enabled, this chart remains uncluttered while still highlighting key price interactions. The short cycle length results in a mild curvature, aligning smoothly with market movement. Price finds resistance at the 0.5 level while showing strong support at 1.0, which follows the natural flow of the market. Keeping the focus on fewer levels helps maintain clarity while still capturing how price reacts within the cycle.
🛠️ CONFIGURATION AND SETTINGS 🛠️
Wave Parameters
Wavelength : Stretches or compresses the wave along the time axis, determining the length of one full cycle. Higher values extend the wave across more bars, while lower values compress it into a shorter time frame.
Amplitude : Expands or contracts the wave along the price axis, determining the height of oscillations relative to Fibonacci levels. Higher values increase the vertical range, while negative values invert the wave’s initial direction.
Phase : Offsets the wave along the time axis, adjusting where the cycle begins. Higher values shift the starting position forward within the wave pattern.
Fibonacci Levels
Levels : Enable or disable specific Fibonacci levels (0.0, 0.236, 0.382, 0.5, 0.618, 0.786, 1.0) to focus on relevant price zones.
Color : Modify level colors for enhanced visual clarity.
Visibility
Trend Line/Color : Toggle and customize the trend line connecting swing points A and B.
Setup Lines : Show or hide lines linking Fibonacci levels to projected waves.
A/B Labels Visibility : Control the visibility of swing point labels.
Left/Right Labels : Manage the display of Fibonacci level labels on both sides of the chart.
Fill % : Adjust shading intensity between Fibonacci levels (0% = no fill, 100% = maximum fill).
A and B Points (Time/Price):
These user-defined anchor points serve as the basis for Fibonacci wave calculations and can be manually set. A and B points can also be adjusted directly on the chart, with automatic synchronization to the settings panel, allowing for seamless modifications without needing to manually input values.
⚠️ DISCLAIMER ⚠️
The Fibonacci Cycle Finder is a visual analysis tool designed to illustrate Fibonacci relationships and serve as a supplement to traditional Fibonacci tools. While the indicator employs mathematical and geometric principles, no guarantee is made that its calculations will align with other Fibonacci tools or proprietary methods. Like all technical and visual indicators, the Fibonacci levels generated by this tool may appear to visually align with key price zones in hindsight. However, these levels are not intended as standalone signals for trading decisions. This indicator is intended for educational and analytical purposes, complementing other tools and methods of market analysis.
🧠 BEYOND THE CODE 🧠
Fibonacci Cycle Finder is the latest indicator in the Fibonacci Geometry Series. Building on the concepts of the Fibonacci Time-Price Zones and the Fibonacci 3-D indicators, this tool introduces a trigonometric approach to market structure analysis.
The Fibonacci Cycle Finder indicator, like other xxattaxx indicators , is designed to encourage both education and community engagement. Your feedback and insights are invaluable to refining and enhancing the Fibonacci Cycle Finder indicator. We look forward to the creative applications, observations, and discussions this tool inspires within the trading community.
Price-Mapped Multi-Cycle Sine WavesThe primary function is to overlay a series of sine wave patterns onto a chart, providing a nuanced and visually intuitive representation of market dynamics.
Key features of this script include:
User-Defined Parameters: It allows users to input various parameters such as start bar (of the sine wave, so that we can start at a dynamic point), start date of the cycle plots, price range, and cycle lengths. These parameters enable customization of the sine wave patterns according to the user's specific analytical needs.
Multiple Sine Wave Cycles: It can generate up to ten different sine wave cycles, each with its own length and activation toggle.
Dynamic Visualization: The script plots these sine waves on the TradingView chart, each with a distinct color and the ability to offset the waves based on user input. This visual differentiation aids in easy identification and comparison of the different cycles.
Average Wave Calculation: Additionally, the script calculates an average wave based on the enabled cycles, providing a consolidated view of the market movement trends.
In essence, this script is a versatile tool for technical analysts and traders, offering a unique way to visualize and analyze market cycles and trends through the lens of sine wave theory. It stands as a testament to the confluence of mathematical elegance and practical financial analysis.
Fetch cycles
This script tracks cycles in the market, specifically aiming to identify the cycle low and visually represent the cycle on the chart. It begins by initializing a cycle that spans 55 days (configurable) and incorporates a deviation margin for approximation.
The script increments the day count from a defined start date (December 15, 2018) and looks for potential cycle lows after a specified number of days (50). Once a low is detected, using a comparison of the current price against the low from 4 days prior (configurable), the day count resets, and the script begins a new cycle.
The cycle low is visually marked with a triangle below the bar where the low is confirmed. Dots are plotted on the chart to indicate the days leading up to the cycle low, with one set of dots appearing 5 days before the low and another set plotted closer to the cycle end.
Additionally, the script tracks the days since the last cycle ended, and the start of the first cycle is marked with a blue triangle. This provides a clear visual indicator of the current cycle's progression and approximations of when the next low may occur.
Bullish/Bearish Sentiment Cycle Indicator Sentiment Cycle Indicator: Understanding Market Psychology Through Technical Analysis
Overview:
The Sentiment Cycle Indicator is a unique blend of multiple technical analysis tools designed to help traders visualize and capitalize on market sentiment shifts. This indicator combines RSI (Relative Strength Index), MACD (Moving Average Convergence Divergence), volume analysis, and sentiment cycle detection to provide actionable buy and sell signals. By monitoring the emotional stages that market participants go through—such as optimism, excitement, euphoria, anxiety, denial, panic, and depression—this indicator helps traders identify turning points in the market cycle.
Key Components and How They Work Together:
1. RSI (Relative Strength Index):
• The RSI is a momentum oscillator that measures the speed and change of price movements. In this indicator, the RSI is used to determine overbought or oversold conditions, which are then translated into signals for potential market sentiment shifts.
• Integration: The RSI provides the foundational layer to assess whether the market is generally bullish or bearish. When combined with MACD and volume analysis, it helps confirm the strength of a sentiment cycle phase.
2. MACD (Moving Average Convergence Divergence):
• MACD is a trend-following indicator that shows the relationship between two moving averages of a security’s price. It is used in this script to identify trend direction and momentum changes.
• Integration: MACD crossovers are aligned with RSI conditions to detect the shift between bullish and bearish market sentiments. The MACD’s ability to capture trend changes strengthens the identification of sentiment phases, such as “optimism” or “panic.”
3. Volume Analysis:
• Volume analysis is a critical component in understanding market sentiment. The indicator uses a moving average of volume to detect volume spikes, which often coincide with significant market moves or reversals.
• Integration: Volume spikes are used to gauge the intensity of sentiment changes. For example, high volume during a bullish or bearish sentiment phase is a strong confirmation of a market sentiment shift. This integration enhances the reliability of the buy and sell signals generated by the sentiment cycle logic.
4. Sentiment Cycles:
• The indicator identifies four main sentiment phases—Optimism, Excitement, Panic, and Depression—based on combinations of RSI, MACD, and volume data. These phases are visually represented on the chart through background color zones, allowing traders to see the prevailing market sentiment at a glance.
• Integration: The sentiment phases are determined by a combination of the RSI trend, MACD crossovers, and volume analysis. For example, a transition from “Panic” to “Optimism” is detected when the RSI recovers from oversold levels, MACD turns bullish, and volume spikes decrease. This comprehensive approach ensures that all signals are well-founded and based on multiple dimensions of market data.
5. Buy and Sell Signals:
• The buy and sell signals are generated based on crossovers and crossunders between sentiment phases. For example, a buy signal is triggered when the market moves from a “Depression” (oversold) phase to an “Optimism” phase. A sell signal is triggered when the market transitions from “Excitement” to “Panic.”
• Integration: These signals are refined by adding a minimum distance between consecutive signals to avoid noise and enhance the clarity of trading opportunities. This further ensures that signals are not generated too frequently, reducing the chance of false positives.
Justification for Combining These Components:
The combination of RSI, MACD, volume analysis, and sentiment detection into a single indicator offers a holistic approach to understanding market psychology. Here’s why this mashup is particularly effective:
• Comprehensive Sentiment Analysis: The integration of RSI and MACD provides a well-rounded view of both momentum and trend, while volume analysis adds a layer of intensity to confirm sentiment shifts.
• Reduced Noise and Enhanced Signal Quality: By using multiple indicators to filter signals, the indicator minimizes noise and reduces the likelihood of false signals. This is particularly beneficial for traders looking to capitalize on meaningful market turns rather than being whipsawed by minor fluctuations.
• Visual Clarity: The background color zones corresponding to different sentiment phases offer a clear, at-a-glance view of the market’s current state, allowing traders to make more informed decisions quickly.
• Unique Combination for Market Sentiment Detection: While many indicators focus on either trend, momentum, or volume independently, this mashup uniquely combines these elements to detect the market’s underlying emotional state, providing a more nuanced understanding of market behavior.
How to Use This Indicator:
• Buy Signal: Look for the green “Buy” label when the market transitions from a bearish sentiment (grey or red zones) to a bullish sentiment (green zone).
• Sell Signal: Look for the red “Sell” label when the market transitions from a bullish sentiment (blue zone) to a bearish sentiment (red or gray zones).
• Dynamic Background Zones: Use the background color zones to visually track the prevailing market sentiment phase and anticipate potential buy or sell signals.
Originality and Practical Application:
This indicator’s originality lies in its ability to seamlessly integrate multiple widely-used technical analysis tools (RSI, MACD, and Volume) into a single, comprehensive tool for detecting market sentiment shifts. By doing so, it provides traders with a practical, easy-to-use tool that adapts to various market conditions, making it suitable for both day trading and longer-term strategies.
Conclusion:
The “Sentiment Cycle Indicator” is designed to offer traders a powerful, unified approach to identifying market sentiment shifts. By combining momentum, trend, and volume analysis, it delivers a unique and efficient way to navigate the complexities of market psychology, ultimately providing traders with an edge in understanding and predicting market movements.
itradesize /\ Time Cycles x ZeussyI created this script based on Zeussy's & TOTK time cycle tweets.
The base 90-minute cycle starts at 2:30 AM NY time. For the best outcome, trade only during the New York AM & PM cycles. If you are a London trader, use mainly the Asian high and low instead of those 90-minute cycles as the algorithm mostly refers to them instead of the 90M cycles high or low.
In the current time cycle, we use the high and low of the previous cycle(s) to determine order flow.
During the current time cycle, IPDA refers to the previous cycle(s) as high or low. How the price reacts to these price levels is crucial for measuring order flow.
Every turning point in the market is timed and predetermined beforehand. The importance of timing can be seen by glancing at the history of the charts.
To measure order flow, we look for the following signs of reversal or continuation:
- If the price was bullish but does not find support at the previous cycle's high after breaking above it, it is the first warning sign that the order flow is potentially changing.
- If the price was bearish but does not find resistance at the previous cycle's low after breaking below it, it is the first warning sign that the order flow is potentially changing.
- If the price is bullish, then it should find support at the previous cycle's high after breaking above it.
- If the price is bearish, then it should find support at the previous cycle's low after breaking below it.
Each cycle has its Accumulation , Manipulation , and Distribution (AMD) characteristics within the larger sessions.
Even smaller cycles have these characteristics too. You can divide them further or add them up to get a more complex picture.
The indicator primarily shows the 90-minute cycles, but you can also view the multiples of 90-minute cycles to get a higher 270-minute picture. You can even divide them further into 30-minute cycles. (These 30-minute cycles can also be divided into 10-minute cycles.)
The AM sessions are from:
- 07:00 - 8:30
- 8:30 - 10:00
- 10:00 - 11:30
The PM sessions are from:
- 11:30 - 13:00
- 13:00 - 14:30
- 14:30 - 16:00
Regarding the features of the indicator, you can show the cycles as dividers or use boxes to highlight them.
The indicator also comes with a pivot high & low for the 90-minute cycles, which means the script automatically lengthens the high or low of the former 90-minute cycle until it's taken. If it has not been taken until the 90-minute cycle ends, it stops drawing.
Grover Llorens Cycle Oscillator [alexgrover & Lucía Llorens]Cycles represent relatively smooth fluctuations with mean 0 and of varying period and amplitude, their estimation using technical indicators has always been a major task. In the additive model of price, the cycle is a component :
Price = Trend + Cycle + Noise
Based on this model we can deduce that :
Cycle = Price - Trend - Noise
The indicators specialized on the estimation of cycles are oscillators, some like bandpass filters aim to return a correct estimate of the cycles, while others might only show a deformation of them, this can be done in order to maximize the visualization of the cycles.
Today an oscillator who aim to maximize the visualization of the cycles is presented, the oscillator is based on the difference between the price and the previously proposed Grover Llorens activator indicator. A relative strength index is then applied to this difference in order to minimize the change of amplitude in the cycles.
The Indicator
The indicator include the length and mult settings used by the Grover Llorens activator. Length control the rate of convergence of the activator, lower values of length will output cycles of a faster period.
here length = 50
Mult is responsible for maximizing the visualization of the cycles, low values of mult will return a less cyclical output.
Here mult = 1
Finally you can smooth the indicator output if you want (smooth by default), you can uncheck the option if you want a noisy output.
The smoothing amount is also linked with the period of the rsi.
Here the smoothing amount = 100.
Conclusion
An oscillator based on the recently posted Grover Llorens activator has been proposed. The oscillator aim to maximize the visualization of cycles.
Maximizing the visualization of cycles don't comes with no cost, the indicator output can be uncorrelated with the actual cycles or can return cycles that are not present in the price. Other problems arises from the indicator settings, because cycles are of a time-varying periods it isn't optimal to use fixed length oscillators for their estimation.
Thanks for reading !
If my work has ever been of use to you you can donate, addresses on my signature :)
CCT Pi Cycle Top/BottomPi Cycle Top/bottom: The Ultimate Market Cycle Indicator
Introduction
The Pi Cycle Top/bottom Indicator is one of the most reliable tools for identifying Bitcoin market cycle peaks and bottoms. Its effectiveness lies in the strategic combination of moving averages that historically align with major market cycle reversals. Unlike traditional moving average crossovers, this indicator applies an advanced iterative approach to pinpoint price extremes with higher accuracy.
This version, built entirely with Pine Script™ v6, introduces unprecedented precision in detecting both the Pi Cycle Top and Pi Cycle Bottom, eliminating redundant labels, optimizing visual clarity, and ensuring the indicator adapts dynamically to evolving market conditions.
What is the Pi Cycle Theory?
The Pi Cycle Top and Pi Cycle Bottom were originally introduced based on a simple yet profound discovery: key moving average crossovers consistently align with macro market tops and bottoms.
Pi Cycle Top: The crossover of the 111-day Simple Moving Average (SMA) and the 350-day SMA multiplied by 2 has historically signaled market tops with astonishing accuracy.
Pi Cycle Bottom: The intersection of the 150-day Exponential Moving Average (EMA) and the 471-day SMA has repeatedly marked significant market bottoms.
While traditional moving average strategies often suffer from lag and false signals, the Pi Cycle Indicator enhances accuracy by applying a range-based scanning methodology, ensuring that only the most critical reversals are detected.
How This Indicator Works
Unlike basic moving average crossovers, this script introduces a unique iteration process to refine the detection of Pi Cycle points. Here’s how it works:
Detecting Crossovers:
Identifies the Golden Cross (bullish crossover) and Death Cross (bearish crossover) for both the Pi Cycle Top and Pi Cycle Bottom.
Iterating Through the Cycle:
Instead of plotting a simple crossover point, this script scans the range between each Golden and Death Cross to identify the absolute lowest price (Pi Cycle Bottom) and highest price (Pi Cycle Top) within that cycle.
Precision Labeling:
The indicator dynamically adjusts label positioning:
If the price at the crossover is below the fast moving average → the label is placed on the moving average with a downward pointer.
If the price is above the fast moving average → the label is placed below the candle with an upward pointer.
This ensures optimal visibility and prevents misleading signal placement.
Advanced Pine Script v6 Features:
Labels and moving average names are only shown on the last candle, reducing chart noise while maintaining clarity.
Offers full user customization, allowing traders to toggle:
Pi Cycle Top & Bottom visibility
Moving average labels
Crossover labels
Why This Indicator is Superior
This script is not just another moving average crossover tool—it is a market cycle tracker designed for long-term investors and analysts who seek:
✔ High-accuracy macro cycle identification
✔ Elimination of false signals using an iterative range-based scan
✔ Automatic detection of market extremes without manual adjustments
✔ Optimized visuals with smart label positioning
✔ First-of-its-kind implementation using Pine Script™ v6 capabilities
How to Use It?
Bull Market Tops:
When the Pi Cycle Top indicator flashes, consider the potential for a market cycle peak.
Historically, Bitcoin has corrected significantly after these signals.
Bear Market Bottoms:
When the Pi Cycle Bottom appears, it suggests a macro accumulation phase.
These signals have aligned perfectly with historical cycle bottoms.
Final Thoughts
The Pi Cycle Top/bottom Indicator is a must-have tool for traders, investors, and analysts looking to anticipate long-term trend reversals with precision. With its refined methodology, superior label positioning, and cutting-edge Pine Script™ v6 optimizations, this is the most reliable version ever created.
4-Year Cycles [jpkxyz]Overview of the Script
I wanted to write a script that encompasses the wide-spread macro fund manager investment thesis: "Crypto is simply and expression of macro." A thesis pioneered by the likes of Raoul Pal (EXPAAM) , Andreesen Horowitz (A16Z) , Joe McCann (ASYMETRIC) , Bob Loukas and many more.
Cycle Theory Background:
The 2007-2008 financial crisis transformed central bank monetary policy by introducing:
- Quantitative Easing (QE): Creating money to buy assets and inject liquidity
- Coordinated global monetary interventions
Proactive 4-year economic cycles characterised by:
- Expansionary periods (low rates, money creation)
- Followed by contraction/normalisation
Central banks now deliberately manipulate liquidity, interest rates, and asset prices to control economic cycles, using monetary policy as a precision tool rather than a blunt instrument.
Cycle Characteristics (based on historical cycles):
- A cycle has 4 seasons (Spring, Summer, Fall, Winter)
- Each season with a cycle lasts 365 days
- The Cycle Low happens towards the beginning of the Spring Season of each new cycle
- This is followed by a run up throughout the Spring and Summer Season
- The Cycle High happens towards the end of the Fall Season
- The Winter season is characterised by price corrections until establishing a new floor in the Spring of the next cycle
Key Functionalities
1. Cycle Tracking
- Divides market history into 4-year cycles (Spring, Summer, Fall, Winter)
- Starts tracking cycles from 2011 (first cycle after the 2007 crisis cycle)
- Identifies and marks cycle boundaries
2. Visualization
- Colors background based on current cycle season
- Draws lines connecting:
- Cycle highs and lows
- Inter-cycle price movements
- Adds labels showing:
- Percentage gains/losses between cycles
- Number of days between significant points
3. Customization Options
- Allows users to customize:
- Colors for each season
- Line and label colors
- Label size
- Background opacity
Detailed Mechanism
Cycle Identification
- Uses a modulo calculation to determine the current season in the 4-year cycle
- Preset boundary years include 2015, 2019, 2023, 2027
- Automatically tracks and marks cycle transitions
Price Analysis
- Tracks highest and lowest prices within each cycle
- Calculates percentage changes:
- Intra-cycle (low to high)
- Inter-cycle (previous high to current high/low)
Visualization Techniques
- Background color changes based on current cycle season
- Dashed and solid lines connect significant price points
- Labels provide quantitative insights about price movements
Unique Aspects
1. Predictive Cycle Framework: Provides a structured way to view market movements beyond traditional technical analysis
2. Seasonal Color Coding: Intuitive visual representation of market cycle stages
3. Comprehensive Price Tracking: Captures both intra-cycle and inter-cycle price dynamics
4. Highly Customizable: Users can adjust visual parameters to suit their preferences
Potential Use Cases
- Technical analysis for long-term investors
- Identifying market cycle patterns
- Understanding historical price movement rhythms
- Educational tool for market cycle theory
Limitations/Considerations
- Based on a predefined 4-year cycle model (Liquidity Cycles)
- Historic Cycle Structures are not an indication for future performance
- May not perfectly represent all market behavior
- Requires visual interpretation
This script is particularly interesting for investors who believe in cyclical market theories and want a visual, data-driven representation of market stages.
[Tradevietstock] Market Cycle Detector_Quantum Flux Best technical indicator to detect market cycles - Quantum Flux
Hello folks, it's Tradevietstock again! Today, I will introduce you to Quantum Flux Indicator, which can help you identify market cycle and find your best entry/exit effectively.
i. Overview
1. What is Market Cycle Detector_Quantum Flux?
The Quantum Flux Indicator is developed specifically to analyze and detect market cycles across a variety of asset classes. Whether you trade stocks, crypto, forex, or commodities, this indicator provides a consistent framework to track trends and time your positions.
2. Supported Markets:
Stock Market
Crypto Market
Commodities
Forex
You can apply the same cycle-based strategy across all these markets using QFI.
Depending on the platform you're using, here’s how you can start using Quantum Flux:
TradingView Users:
Once your invite is approved, the indicator will be added to your TradingView account. You can access it directly through the Indicators tab.
MT5 / Amibroker Users:
After your payment is completed, we will send you the QFI script. You can then import it manually into your MT5 or Amibroker trading platform.
ii. Setting Up the Indicator
1. Choose Your Setup
There are two ways to configure the Quantum Flux - The best indicator to detect market cycles
Default Setup (Recommended)
This includes both the Quantum Aroon and some of the Premium MACD signals. This full setup is ideal for traders who want a complete view of the market cycle with detailed signals. You just need to turn off the Premium MACD_Components as the image below
MACD-Only Setup
In this mode, the Quantum Aroon module is disabled. The indicator will rely solely on the Premium MACD Setting to generate signals. While this option is available, we recommend using the full setup for the most accurate performance.
2. Recognize the Market Cycle Phases
According to Tradevietstock’s theory , every trading asset typically moves through four distinct phases in a complete cycle:
Bearish Phase - Bear Market
First Bullish Wave - The Recovery
Strong Correction Phase
Final Bullish Wave
Quantum Flux generates visual and data-driven signals to help you time your trades accurately.
Green Dots: MACD crossover → Potential buy signal
Red Dots: MACD crossunder → Potential sell signal
Quantum Aroon Crossover: Confirms bullish trend or Buy Signals
Quantum Aroon Crossunder: Confirms bearish trend or Exit Signals
Green background: Extreme Bullish Phase
Red background: Extreme Bearish Phase
The Extreme Bullish/Bearish Phase is a unique feature of our system that enhances trading signals by capturing moments when the market moves aggressively—either in a strong uptrend or downtrend. This phase often represents the peak of Greed in bullish markets and Fear in bearish ones, offering a way to gauge market sentiment visually. The intensity of the background color helps interpret this: a bolder green indicates a more extreme bull market, while a deeper red signals an extreme bear market.
It's important to note that the Extreme Bullish/Bearish Phases are not direct entry or exit signals. Instead, they serve as enhancement signals that help traders make more informed decisions. These phases provide insight into whether it's wise to wait for additional confirmation before entering a trade, or to hold existing positions longer until clearer exit signals—like red dots or crosses—appear. By identifying the market's most intense emotional points, these signals help traders better align with momentum rather than react prematurely.
=> In summary, the Extreme Bullish/Bearish Phase provides valuable insight into market sentiment by highlighting emotional extremes, helping traders navigate aggressive trends with greater confidence. However, like all features in the indicator, its purpose is to complement, not replace, the core entry and exit signals—which are still based on crosses and dots. As always, green indicates bullish conditions, and red indicates bearish, but sentiment alone doesn't drive the trades—signals do.
3. The logic of the indicator and its trading strategy
Many traders are familiar with Wyckoff's theory, which, while foundational, can feel outdated and inefficient for real-life trading in today's fast-paced markets. It takes time to apply and may not be the most practical approach. That’s why many turn to day trading, but without the right tools and strategy, it can lead to account blow-ups.
The traditional market cycle consists of four stages: accumulation, markup, distribution, and markdown. While this is accurate, it's not always sufficient for modern trading. We need something more practical.
According to Tradevietstock's theory, the market cycle can be broken into four stages: a bear market, recovery, correction wave, and a bull market (the strongest uptrend). This new approach offers a shorter and more efficient timeline compared to Wyckoff's or other older cycle theories, making it a safer and more practical alternative to intraday trading.
To trade with market cycles, you need to remember these four stages:
Bearish Phase - Bear Market
First Bullish Wave - The Recovery
Strong Correction Phase
Final Bullish Wave
The logic for BUY/SELL (Entry/Exit) signals is built on a combination of crossover and crossunder events from the Quantum Aroon and Premium MACD indicators. Our Quantum Aroon is an enhanced version that applies a custom zero-lag smoothing function, making its trend signals more responsive and accurate than the traditional Aroon. It also includes a signal line for crossover alerts, along with visual enhancements like color-coded backgrounds, arrows, and gradient fills to highlight different market phases. Integrated with normalized MACD and RSI, it helps confirm signals and identify overbought or oversold conditions. Most importantly, it's aligned with Tradevietstock’s 4-phase market cycle—Bear Market, Recovery, Correction, and Bull Market—making it especially practical for real-world trading.
The Premium MACD differs from the standard version by introducing several key improvements. It normalizes the MACD line, signal line, and histogram for consistent interpretation across assets and timeframes, improving visual clarity. It also supports multi-timeframe analysis, allowing users to choose between the current chart resolution or a custom timeframe. The indicator includes color-coded histogram bars to show momentum changes and uses large dynamic circles to highlight crossover points.
=> These enhancements improve signal accuracy and make trend reversals easier to spot. Paired with the Quantum Aroon, it serves as a powerful confirmation tool within the Tradevietstock cycle framework.
4. Get to practice
In the example of NVDA, you can observe all four phases in action. For medium- to long-term traders, Phase 2 and Phase 4 usually present the strongest buying opportunities. Phase 1 and Phase 3 are accumulation phases — where prices are lower and preparations are made for the next bullish leg.
We can examine the following example to better understand Phase 1: The Bear Market . This phase only begins after a prior uptrend in the stock price . It’s crucial to remember that Phase 1 is not the start of the overall trend—it marks the reversal following a bullish run.
For instance, take the LMT stock: after a 50% rise, Quantum Flux displays a green background, indicating an 'Extreme Bullish Phase.' Once this bullish phase concludes, it sets the stage for a valid Phase 1—the beginning of the Bear Market.
The stock price declines sharply, triggering Quantum Flux to display a red background as the Aroon line crosses below the signal line.
Phase 1 concludes when we observe multiple crossover signals—most notably when the Aroon line crosses above the Signal line—and the red background, which signifies the Extreme Bearish Phase, disappears. Let's take a look at the image below:
Let’s move on to Phase 2: The Recovery. This phase follows the Bear Market—Phase 1. After a significant decline in the stock price, a recovery or pullback is expected.
Our signals for this phase include green dots and crosses, along with the confirmation signals that mark the end of Phase 1. This combination provides valid Buy signals and presents opportunities for mid-term investment strategies.
Phase 3 is a correction wave after the recovery . We also incorporate the cross and dot signals during this phase. In Phase 2, the strategy involves preparing to sell or take profits once the recovery phase matures. Whenever red dots or red crosses appear, they serve as indicators to consider taking profits, signaling the potential end of the upward move.
In Phase 3, known as the correction wave, the key objective is to take profits before the price begins to decline. This phase represents a temporary pullback following the recovery. Importantly, the end of Phase 3 often presents a strong buying opportunity—just before the onset of Phase 4, which is the strongest bullish wave. Whenever green dots and crosses appear at this stage, they serve as clear Buy signals, allowing us to position early for the upcoming bullish momentum.
Phase 4 is the strongest bullish wave—one that investors definitely don’t want to miss. Having entered at the end of Phase 3, the goal in Phase 4 is to maximize gains by targeting the highest highs.
During this phase, we closely monitor our exit signals, which include the appearance of red dots and red crosses, as well as the disappearance of the Extreme Bullish Phase indicator (green background). These signals help us lock in profits at the peak of the bullish momentum.
iii. Brief Conclusion on the Signals
End of Phase 1:
As Phase 1 nears completion, green dots start to appear. These serve as early entry signals, offering an opportunity to buy at lower prices before the trend reversal begins.
Phase 2 – Recovery:
Momentum begins to build during this phase. As it approaches its peak, red dots and Aroon line crossunders emerge—signaling that it's time to exit or reduce exposure in anticipation of a correction.
Phase 3 – Correction:
The indicator typically shows a red background, reflecting a bearish environment. This is a waiting phase—traders should remain cautious and avoid entering until green signals reappear.
Phase 4 – Strong Bullish Wave:
With the return of bullish signals (green dots, crosses, and green background), Phase 4 begins. After entering, the position is held to ride the strong momentum. Profit-taking signals include the appearance of red dots, red crosses, and the disappearance of the green background.
iv. Optimal Use by Market Type
Here’s how we suggest using QFI depending on what you trade:
Stocks: Best used on the Daily or Weekly chart for swing trades.
Cryptocurrency: Works well on BTC, ETH, or major altcoins using Daily and Weekly charts. Great for catching larger trend reversals.
CFDs and Forex: QFI is built for higher timeframes (H4, D1, W1), where it produces cleaner and more reliable signals.
Best Ways to Use It
🟢 Stocks
Works well on Weekly and Daily charts for swing entries
🟡 Crypto
Works best on Weekly and Daily charts
Good for trend-catching on BTC, ETH, or altcoins
🔴 CFDs
Designed with precision in mind — works on bigger timeframes, like H4, D1, and W1
The Quantum Flux Indicator is a flexible and powerful tool for anyone looking to navigate the full market cycle — from bottom to top and back again. With its ability to highlight key phases and generate timely signals, it becomes easier to plan your entries, hold through trends, and exit with confidence.
If you're serious about understanding market structure and improving your timing, Quantum Flux, the best Indicator to detect market cycles, can become a central part of your strategy — no matter what market you're in.
Super Cycle Low FinderHow the Indicator Works
1. Inputs
Users can adjust the cycle lengths:
Daily Cycle: Default is 40 days (within 36-44 days).
Weekly Cycle: Default is 26 weeks (182 days, within 22-31 weeks).
Yearly Cycle: Default is 4 years (1460 days).
2. Cycle Low Detection
Function: detect_cycle_low finds the lowest low over the specified period and confirms it with a bullish candle (close > open).
Timeframes: Daily lows are calculated directly; weekly and yearly lows use request.security to fetch data from higher timeframes.
3. Half Cycle Lows
Detected over half the cycle length, plotted to show mid-cycle strength or weakness.
4. Cycle Translation
Logic: Compares the position of the highest high to the cycle’s midpoint.
Output: "R" for right translated (bullish), "L" for left translated (bearish), displayed above bars.
5. Cycle Failure
Flags when a new low falls below the previous cycle low, indicating a breakdown.
6. Visualization
Cycle Lows: Diamonds below bars (yellow for daily, green for weekly, blue for yearly).
Half Cycle Lows: Circles below bars (orange, lime, aqua).
Translations: "R" or "L" above bars in distinct colors.
Failures: Downward triangles below bars (red, orange, purple).
Bitcoin Cycles IndicatorBitcoin Cycles Indicator
The "Bitcoin Cycles Indicator" is designed to provide insights into the current market cycle of Bitcoin. It utilizes a combination of market cap real and total volume transfer to generate a visual representation of the market cycle.
Indicator Phases:
Cycle Lows (Green): Indicates potential low points in the cycle.
Under Valued (Aqua): Represents phases where Bitcoin might be undervalued.
Fair Market Value (Purple): Reflects periods considered to be at fair market value.
Aggressively Valued (Orange): Marks phases where Bitcoin might be aggressively valued.
Over Valued (Red): Suggests potential overvaluation of Bitcoin in the cycle.
Bitcoin Cycles can identify periods of increased risk when transaction behavior on-chain is indicative of major cycle highs. It also identifies areas of value opportunity where on-chain transaction behavior signals major cycle lows.
Historically, Bitcoin has exhibited cyclical behavior roughly every four years, coinciding with significant events known as "halvings."
While the historical correlation between Bitcoin's cycles and halving events is compelling, market dynamics are subject to change. Traders and investors should approach the market with a comprehensive strategy, incorporating multiple indicators and risk management techniques to navigate Bitcoin's evolving landscape.
Market Cycles
The Market Cycles indicator transforms market price data into a stochastic wave, offering a unique perspective on market cycles. The wave is bounded between positive and negative values, providing clear visual cues for potential bullish and bearish trends. When the wave turns green, it signals a bullish cycle, while red indicates a bearish cycle.
Designed to show clarity and precision, this tool helps identify market momentum and cyclical behavior in an intuitive way. Ideal for fine-tuning entries or analyzing broader trends, this indicator aims to enhance the decision-making process with simplicity and elegance.
Dominant Cycle Detection OscillatorThis is a Dominant Cycle Detection Oscillator that searches multiple ranges of wavelengths within a spectrum. Choose one of 4 different dominant cycle detection methods (MESA MAMA cycle, Pearson Autocorrelation, Discreet Fourier Transform, and Phase Accumulation) to determine the most dominant cycles and see the historical results. Straight lines can indicate a steady dominant cycle; while Wavy lines might indicate a varying dominant cycle length. The steadier the cycle, the easier it may be to predict future events in that cycle (keep the log scale in mind when considering steadiness). The presence of evenly divisible (or harmonic) cycle lengths may also indicate stronger cycles; for example, 19, 38, and 76 dominant lengths for the 2x, 4x, and 8x cycles. Practically, a trader can use these cycle outputs as the default settings for other Hurst/cycle indicators. For example, if you see dominant cycle oscillator outputs of 38 & 76 for the 4x and 8x cycle respectively, you might want to test/use defaults of 38 & 76 for the 4x & 8x lengths in the bandpass, diamond/semi-circle notation, moving average & envelope, and FLD instead of the defaults 40 & 80 for a more fine-tuned analysis.
Muting the oscillator's historical lines and overlaying the indicator on the chart can visually cue a trader to the cycle lengths without taking up extra panes. The DFT Cycle lengths with muted historical lines have been overlayed on the chart in the photo.
The y-axis scale for this indicator's pane (just the oscillator pane, not the chart) most likely needs to be changed to logarithmic to look normal, but it depends on the search ranges in your settings. There are instructions in the settings. In the photo, the MESA MAMA scale is set to regular (not logarithmic) which demonstrates how difficult it can be to read if not changed.
In the Spectral Analysis chapter of Hurst's book Profit Magic, he recommended doing a Fourier analysis across a spectrum of frequencies. Hurst acknowledged there were many ways to do this analysis but recommended the method described by Lanczos. Currently in this indicator, the closest thing to the method described by Lanczos is the DFT Discreet Fourier Transform method.
Shoutout to @lastguru for the dominant cycle library referenced in this code. He mentioned that he may add more methods in the future.
itradesize /\ Time Cycles x Zeussy supplementaryThis is a supplementary script to my previous itradesize /\ Time Cycles x Zeussy script. It should be displayed in a new pane.
This script will display the 30 and 90 AMD Time Cycles, along with the Asia, London, and New York AM & PM sessions in a new pane, based on the times taught by Zeussy.
You have the option to customize which cycles you would like to display, as well as the arrangement of the cycles based on the location of the pane (above or below the current chart).
The script can also be used for backtesting; just uncheck the 'Draw Today's Only' option.
Session timings are as follows:
Asia: 20:00 - 00:00
London: 02:30 - 07:00
NY AM: 07:00 - 11:30
NY PM: 11:30 - 16:00
London Cycles:
- 02:30 - 04:00
- 04:00 - 05:30
- 05:30 - 07:00
AM Cycles:
- 07:00 - 08:30
- 08:30 - 10:00
- 10:00 - 11:30
PM Cycles:
- 11:30 - 13:00
- 13:00 - 14:30
- 14:30 - 16:00
SemiCircle Cycle Notation PivotsFor decades, traders have sought to decode the rhythm of the markets through cycle theory. From the groundbreaking work of HM Gartley in the 1930s to modern-day cycle trading tools on TradingView, the concept remains the same: markets move in repeating waves with larger cycles influencing smaller ones in a fractal-like structure, and understanding their timing gives traders an edge to better anticipate future price movements🔮.
Traditional cycle analysis has always been manual, requiring traders to painstakingly plot semicircles, diamonds, or sine waves to estimate pivot points and time reversals. Drawing tools like semicircle & sine wave projections exist on TradingView, but they lack automation—forcing traders to adjust cycle lengths by eye, often leading to inconsistencies.
This is where SemiCircle Cycle Notation Pivots indicator comes in. Semicircle cycle chart notation appears to have evolved as a practical visualization tool among cycle theorists rather than being pioneered by a single individual; some key influences include HM Gartley, WD Gann, JM Hurst, Walter Bressert, and RayTomes. Built upon LonesomeTheBlue's foundational ZigZag Waves indicator , this indicator takes cycle visualization to the next level by dynamically detecting price pivots and then automatically plotting semicircles based on real-time cycle length calculations & expected rhythm of price action over time.
Key Features:
Automated Cycle Detection: The indicator identifies pivot points based on your preference—highs, lows, or both—and plots semicircle waves that correspond to Hurst's cycle notation.
Customizable Cycle Lengths: Tailor the analysis to your trading strategy with adjustable cycle lengths, defaulting to 10, 20, and 40 bars, allowing for flexibility across various timeframes and assets.
Dynamic Wave Scaling: The semicircle waves adapt to different price structures, ensuring that the visualization remains proportional to the detected cycle lengths and aiding in the identification of potential reversal points.
Automated Cycle Detection: Dynamically identifies price pivot points and automatically adjusts offsets based on real-time cycle length calculations, ensuring precise semicircle wave alignment with market structure.
Color-Coded Cycle Tiers: Each cycle tier is distinctly color-coded, enabling quick differentiation and a clearer understanding of nested market cycles.