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.
"Cycle" için komut dosyalarını ara
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!
SMT Divergence - Time & Calendar CyclesOverview
This indicator is a tool designed to detect SMT Divergences across multiple market structures.
It operates on a Dual-Layer Logic, which filters, ranks, and renders divergences based on specific, adjustable Time Cycles (e.g., 90-minute, or 30-minute rolling windows) and Calendar Cycles (e.g., Daily, or Weekly structure).
1. Core Concept: Automated SMT Detection
SMT Divergences occur when correlated instruments fail to confirm each other's price action at key structural pivots. For example, if the Nasdaq (NQ) makes a higher high while the S&P 500 (ES) fails to do so, that can be considered a SMT Divergence , this discrepancy in correlation could indicate a potential shift in structural momentum and a weakening of the prevailing trend.
This indicator automates this analysis by comparing the Main Chart against up to three user-defined Comparison Symbols. It supports:
Direct Correlation: Identifies standard divergences between positively correlated assets where one fails to confirm the other's new high or low (e.g., NQ vs. ES).
Inverse Correlation: Accounts for negative correlation to detect failures in symmetry, such as when the Main Chart makes a Higher High but the Inverse Symbol fails to make the expected Lower Low (e.g., EURUSD vs. DXY).
Cross Symbol vs. Symbol: Logic that cross-verifies comparison symbols against each other to find internal market weakness, even if the main chart is currently neutral (e.g., Symbol 1 vs. Symbol 2).
2. How It Works: Technical Architecture
To accurately map market structure, the indicator uses a specific technical method to handle data synchronization and structure storage:
A. Data Synchronization
The tool utilizes 'request.security' targeting the current chart's resolution (native timeframe) to retrieve comparison data of the other symbol. This method enforces strict bar-by-bar alignment between the main symbol and the comparison symbol, preventing the access of future data (lookahead bias) and ensuring historical data integrity.
B. Pivot Arrays
The script identifies significant swing points and stores them in custom arrays. It iterates through these arrays to compare the current price structure against historical structures stored in memory.
The array storage and comparison logic operates in two distinct modes depending on the cycle type:
2.1 Time Cycles (Intraday Analysis)
Targeting specific, adjustable time windows like 90-minute or 30-minute cycles.
Session Bound: These cycles are strictly bound to a user-defined trading session (e.g., 09:30 - 16:00).
Continuous Roll: They repeat continuously throughout the window until the session ends.
Session Reset: At the start of every new session, calculation data resets to ensure signals reflect only the current session, while preserving all historical lines on the chart.
2.2 Calendar Cycles (Macro Analysis)
Targeting Higher Timeframe (HTF) structural analysis (Daily, Weekly, Monthly, Quarterly, and Yearly).
Persistent Data: Unlike Time Cycles, Calendar Cycles utilize persistent data arrays that survive session resets.
Calculation Mode: "Exchange Session" prevents ghost lines on Futures, while "Input Timezone" enforces strict midnight resets for Crypto/CFDs.
3. The Unified SMT Visualization
The indicator provides a Composite Visualization , unifying micro (Intraday) and macro (Calendar) analysis by simultaneously projecting divergence signals onto a single chart view.
Live vs. Historical Logic:
The Live Feed (Dynamic State): This is the only component where repainting occurs. Signals within the current active cycle are temporary and self-correcting:
Updates: If the price pushes to a new extreme within the open cycle, the SMT line automatically redraws to the new High/Low.
Invalidation: If the Comparison Symbol eventually breaks its structure ("catches up") before the cycle closes, the divergence is no longer valid, and the signal is removed.
Example: In a 90-minute Time Cycle, a signal might form at minute 30. If the Comparison Symbol confirms the move at minute 45, the signal is invalidated. If the divergence holds until minute 90, it becomes permanent.
The Historian (Permanent Record):
Once a cycle closes, the final state is locked. Validated signals are transferred to the historical array and will never change (non-repainting).
4. Key Features & Capabilities
4.1 Multi-Symbol & Correlation
Triple-Check Logic: Capable of comparing the Main Chart against Symbol 1, Symbol 2, and Symbol 3 simultaneously.
Cross-Symbol Check: The script can optionally validate Symbol 1 against Symbol 2 (e.g., checking ES vs. YM) and plot the result on your main chart, providing a broader market view.
4.2 Structural Range Validation
The script includes strict validation logic to ensure high-quality data. It automatically verifies that the detected highs and lows are the true extremes of the cycle range.
Lookback Cycles: Users define the exact number of preceding historical cycles the current structure must be compared against (e.g., comparing against the last 9 cycles), allowing for customization of structural depth.
4.3 Professional Drawing & Chart Management
Visual Collision Detection: The script uses Coordinate Tracking to store the start and end points of every rendered divergence. If a lower timeframe cycle attempts to draw over an existing higher-priority structure, the logic compares their coordinates and suppresses the lower-priority signal to prevent visual clutter.
Data Integrity: The script automatically validates cycle duration to ensure signals do not span across abnormal time gaps or missing data.
Memory Optimization: The script actively manages internal memory to prevent execution limits, allowing for deep backtesting history even on lower timeframes.
4.4 Structural Parameters
Furthest / Nearest Mode: Determines which specific pivot to target when multiple candidates exist within the same search window.
Furthest: Targets the extreme point furthest back in time within the cycle range (captures the widest possible structure).
Nearest: Targets the most recent valid pivot (captures the tightest, most immediate structure).
Anchor Mode: Controls exactly where the divergence line connects:
Structural: Always connects to the Main Chart's pivot High/Low.
Snap to Aggressor: The precision method. The line "snaps" to the exact candle where the structure was broken first, whether on the Main Chart or the Comparison Symbol.
Cycle Boundary Overlap: Controls how the transition candle is handled between time cycles (Overlap On vs. Clean Start).
4.5 Full Customization
Adaptive & Custom Coloring: Labels automatically adjust to background brightness for optimal readability. Includes a manual override for user-defined color preferences.
Visual Control: Fully customizable line styles, widths, and colors for every individual cycle.
5. How To Use This Tool
Configuration: Set your Timezone and Session Start/End times in the settings. This ensures "Time Cycles" align with your specific market.
Select Symbols: Input your comparison symbols (e.g., ES, YM, or inversely DXY). Crucial: Ensure the "Inverse" toggle is checked for negatively correlated assets.
Cycle Selection: Enable the specific cycles relevant to your strategy (e.g., Daily + 90-minutes).
Render History: Scroll the chart back to the beginning of your available price history after loading the indicator or changing timeframes to process maximum historical data.
Interpretation:
Bearish SMT: Price makes a Higher High, but the correlated asset makes a Lower High. This divergence could indicate a potential shift in structural momentum and a weakening of the prevailing uptrend.
Bullish SMT: Price makes a Lower Low, but the correlated asset makes a Higher Low. This divergence could indicate a potential shift in structural momentum and a weakening of the prevailing downtrend.
Disclaimer
This indicator is designed for educational purposes only. It does not constitute financial advice or a recommendation to trade. Trading involves risk, and past performance does not guarantee future results.
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.
Pi Cycle BTC Top + Pre-Alert BandsPi Cycle BTC Top + Pre-Alert Bands is an advanced implementation of the classic Pi Cycle Top model, designed for Bitcoin cycle analysis on higher timeframes (especially 1D BTCUSD/BTCUSD·INDEX).
The original Pi Cycle Top uses two moving averages:
• 111-day SMA (short MA)
• 350-day SMA ×2 (long MA)
A Pi Top is signaled when the 111 SMA crosses above the 350×2 SMA. Historically, this has occurred near major BTC cycle highs.
This script extends that idea with a 3-step early-warning sequence:
• Pi Green – early compression: short/long MA ratio crosses upward into the green band (convergence from below is required).
• Pi Yellow – mid-cycle warning: only fires if a valid Green has already occurred in the same cycle.
• Pi Cycle Top – final top: the classic Pi Cycle cross, limited to one top signal per cycle. After a top, no new Yellow or Top signals can appear until a new Green event starts the next cycle.
Background shading shows the active phase (Green / Yellow / late-cycle zone), so you can see at a glance where BTC is within its Pi-based macro structure.
All logic is non-repainting: request.security() uses lookahead_off and no future data is accessed.
Typical use
This indicator is intended as a macro-cycle timing and risk-awareness tool, not a stand-alone entry system. Many traders use it to:
• Watch for Pi Green as the start of a potential late-cycle advance.
• Treat Pi Yellow as a rising-risk environment and tighten risk management.
• Use the Pi Cycle Top as a historical high-risk zone where large profit-taking or hedging may be considered.
Always combine this with your own analysis (trend, volume, on-chain, macro) before making decisions.
How to set alerts
Add the indicator to your chart (1D BTCUSD or BTCUSD·INDEX recommended).
Click Alerts → Condition → Pi Cycle BTC Top + Pre-Alert Bands.
Choose one of:
• Pi Cycle – Green Pre-Alert (early convergence)
• Pi Cycle – Yellow Pre-Alert (after Green only)
• Pi Cycle – TOP (Single per Cycle, after Green)
Use “Once per bar close” for higher-timeframe reliability.
Disclaimer
This tool is for educational and analytical purposes only. The Pi Cycle concept is based on historical behavior and does not guarantee future results. This is not financial advice; always do your own research and manage risk appropriately.
Vicious Cycle 1.2 [CR] - Enhanced█ OVERVIEW
Vicious Cycle 1.2 is an advanced oscillator-based momentum indicator designed to identify high-probability reversal and continuation setups. This new version features adaptive threshold technology, visual trend state classification, and a higher timeframe alignment system to filter low-quality signals.
The indicator analyzes multiple timeframe components and market dynamics to generate a composite momentum score, which is then smoothed and compared against statistical thresholds. Unlike traditional static oscillators, Vicious Cycle adapts its sensitivity zones to current market conditions, reducing false signals during volatile periods and increasing responsiveness during consolidation.
█ FEATURES
Adaptive Threshold System
The indicator employs percentile-based threshold calculations that automatically adjust to recent market behavior. This ensures optimal signal generation across different instruments and market regimes without manual recalibration.
• Toggle between dynamic and fixed threshold modes
• Adjustable lookback period for threshold calculation (50-500 bars)
• Customizable percentile levels for sensitivity tuning
• Separate calibration for overbought and oversold zones
Visual Trend State Classification
Background coloring provides instant visual feedback on market condition strength without requiring analysis of indicator position. The six-state classification system combines oscillator position with signal line relationship to identify:
• Strong bullish momentum
• Moderate bullish bias
• Weak bullish condition
• Weak bearish condition
• Moderate bearish bias
• Strong bearish momentum
Higher Timeframe Trend Alignment
An optional filtering system analyzes higher timeframe trend direction to block counter-trend signals. Two modes are available:
• Single EMA Mode: Uses price position relative to a customizable moving average
• Dual EMA Mode: Employs fast and slow moving average crossover logic
The filter only permits long signals during bullish trends and short signals during bearish trends, significantly improving signal quality in trending markets.
Signal Detection Modes
Multiple signal generation methods accommodate different trading styles:
• Zone-Based Signals: Fires when oscillator crosses key threshold levels
• Signal Line Cross: Generates entries based on oscillator and signal line interaction
Comprehensive Alert System
Pre-configured alert conditions cover all major indicator events:
• Primary signal alerts (zone cross and signal line methods)
• Zone entry and exit warnings
• Extreme level notifications
• Trend filter status changes
• Convenience aggregators for "any long" or "any short" condition
█ HOW TO USE
Initial Configuration
The indicator ships with optimized default settings suitable for most instruments and timeframes. New users should observe the indicator's behavior for at least 50 signals before adjusting parameters.
1 — Add the indicator to your chart and leave default settings unchanged.
2 — Monitor signal generation and background color transitions for several trading sessions.
3 — Set up basic alerts using the "ANY LONG Signal" and "ANY SHORT Signal" conditions.
4 — After observation period, adjust sensitivity based on your instrument's characteristics.
Threshold Configuration
For instruments with higher volatility, increase the percentile values (example: 90/75 instead of 85/65). For ranging or lower volatility instruments, decrease percentile values (example: 80/60 or 75/55).
The lookback period controls how quickly thresholds adapt to changing conditions. Longer lookbacks (150-200) provide smoother adaptation, while shorter lookbacks (50-75) offer more responsive adjustments.
Trend Filter Guidelines
Enable the trend filter in clearly trending markets to reduce whipsaw trades. In ranging or choppy conditions, consider disabling the filter or using a shorter EMA period.
• For position trading: Use 200-period single EMA
• For swing trading: Use 150-period single EMA or 50/200 dual EMA
• For day trading: Use 100-period single EMA or 50/100 dual EMA
If the filter blocks all signals, the market may be ranging near the trend reference level. This is intentional behavior designed to keep you out of low-probability setups.
Signal Interpretation
Primary signals occur when the oscillator crosses threshold zones or intersects the signal line in extreme regions. The strongest setups combine:
• Signal generation in the expected direction
• Background color matching the trade direction (bright colors indicate high conviction)
• Trend filter alignment
• Price action confirmation at key support or resistance levels
█ NOTES
Alert Configuration
Alerts must be manually configured in TradingView and do not activate automatically. Access the alert menu by clicking the indicator name and selecting "Add Alert on Vicious Cycle 1.2...". Choose your desired condition from the dropdown menu and configure notification preferences.
We recommend starting with the aggregated "ANY" alerts rather than subscribing to all individual signal types, as this prevents notification overload during active market periods.
Dynamic Threshold Behavior
The adaptive threshold system requires sufficient historical data (minimum equal to the lookback period setting) to calculate percentiles accurately. During the initial bars, threshold values may appear unusual until adequate history accumulates. This is expected behavior and resolves automatically.
Performance Considerations
The indicator performs percentile calculations on each bar using array operations. While optimized for efficiency, users experiencing performance issues on lower-end devices may reduce the dynamic lookback period or disable the adaptive threshold feature to use fixed thresholds instead.
Compatibility
Vicious Cycle 1.2 is built on Pine Script version 6 and works on all instrument types and timeframes. The indicator does not repaint—all signals finalize at bar close. Historical signals remain stable and do not change with additional price data.
█ RISK DISCLOSURE
This indicator is an analytical tool and does not constitute financial advice. No indicator or trading system guarantees profitable results. Always employ proper risk management, position sizing, and stop-loss protocols. Past performance does not indicate future results. Users are responsible for their own trading decisions and outcomes.
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.
CycleTrend | QuantEdgeB📊 CycleTrend | QuantEdgeB
The CycleTrend strategy is a comprehensive trend-following system that integrates multiple advanced techniques, including on-chain data analysis, macroeconomic indicators, trend filters, and statistical smoothing functions.
This strategy dynamically adapts to market conditions by blending traditional technical analysis tools with modern quantitative finance approaches, making it a powerful hybrid model suitable for different market regimes.
🔗 The Core Framework of CycleTrend
🧩 1️⃣ Multi-Dimensional Market Analysis
CycleTrend incorporates four key dimensions of market structure, ensuring that it captures long-term, medium-term, and short-term trends while filtering out noise.
✔ On-Chain Data (MosaicMix) → Detects long-term trends using blockchain analytics.
✔ Macro & Risk Indicators (RiskMosaic) → Measures macroeconomic influences on market behavior.
✔ ChronoSync (Technical Trend-Following Signals) → Blends multiple trend-following indicators for directional bias.
✔ Sentival TF (Statistical Sentiment Analysis) → Uses Z-score-based mean-reversion indicators for overbought/oversold conditions.
📊 2️⃣ How These Components Work Together
Each component contributes a specific function to the strategy:
1. On-Chain Analysis (MosaicMix) → Market Strength
o Short-Term Holder MVRV → Measures unrealized profit/loss based on recent Bitcoin holders.
o Profit & Loss Ratio with MVRV Rate of Change (PLRoC) → Filters out weak market conditions using profit/loss trend dynamics.
o Final On-Chain Signal → Determines if on-chain data suggests a bullish or bearish phase.
2. RiskMosaic (Macroeconomic & Risk Model) → Risk-Regime Detection
o Tracks 10 key economic variables like RSI, China Equity Index, PMI, BTC supply trends, and silver ratio.
o Uses Z-score normalization to measure relative trends across macro indicators.
o Identifies shifts in macroeconomic risk sentiment and aligns CycleTrend to major economic cycles.
3. ChronoSync (Technical Trend Model) → Precise Trade Execution
o VIDYA ATR Gaussian Filter → Detects long-term trend momentum with adaptive smoothing.
o KIJUN ATR & Dual SD Kijun → Captures structural price movements while filtering short-term volatility.
o VIDYA Loop Function → Iteratively tracks trend momentum over an extended period.
o PRC-ALMA Adaptive Bands & Bollinger Bands % SD → Adapts trend signals based on mean-reverting conditions.
o Final ChronoSync Score → Aggregates all trend-following components to generate high-probability directional bias.
4. Sentival TF (Mean-Reversion & Momentum Filter) → Smart Entry/Exit Signals
o MVRV Z-Score → Measures how overbought/oversold Bitcoin is relative to historical valuations.
o SOPR, BB%, RSI, RoC, and NUPL Indicators → Filters out low-confidence trade setups by adding statistical validation.
o Final Sentival Signal → A quantitative assessment of whether a trade setup has a statistical edge.
🛠️ 3️⃣ CycleTrend Signal Generation
Once all four components (On-Chain, Macro, ChronoSync, and Sentival) produce signals, they are blended into a final CycleTrend score (TPI):
TPI=On-Chain RiskMosaic + Sentival-Chrono Trend BiasTPI = \text{On-Chain RiskMosaic + Sentival-Chrono Trend Bias}
The strategy then applies threshold-based decision rules:
✔ Go Long (BUY) → If TPI>LuTPI > Lu (Long Threshold)
✔ Go Short (SELL) → If TPI
Advanced Hurst Cycle + VTL + Turning Points| Timeframe | Cycle Base | Use Case | Notes |
| ------------ | ---------- | ------------------ | ------------------------- |
| 5-min | 16–20 bars | Intraday scalping | Tight SL, fast moves |
| 15-min / 1hr | 20–40 bars | Intraday to swing | Good for options intraday |
| Daily | 20–40 bars | Multi-day swings | Ideal for Futures/ST BTST |
| Weekly | 13–26 bars | Position/Investing | For macro turns |
Guide to Trading with JM Hurst Cycles in TradingView
1. What is JM Hurst Cycle Theory?
JM Hurst proposed that financial markets move in harmonically related cycles. These cycles can help traders
forecast turning points in markets using time-based analysis rather than just price.
Key Concepts:
- Cycle Nesting: Smaller cycles exist within larger ones.
- Harmonic Ratios: Each cycle is typically double the length of the smaller one (e.g., 20, 40, 80).
- Turning Points: When multiple cycles bottom together, strong reversals occur.
- Tools: FLD (Future Line of Demarcation), VTL (Valid Trend Lines).
2. TradingView Script Features
The provided Pine Script v5 implements:
- FLDs (shifted SMAs) for base and harmonic cycles.
- VTLs: Drawn between major pivot highs/lows to confirm trend reversals.
- Cycle Turning Points: Detected using pivot logic and cycle phase.
- Optional: Sine wave to visualize cycle rhythm.
Inputs:
- Base Cycle Length: Set the expected cycle duration (e.g., 20 bars).
- FLD/VTL/Turn toggles to customize chart view.
3. How to Trade with This Script
1. Set 'Base Cycle Length' to 20, 40, or 80 depending on your market and timeframe.
2. Watch for price crossing the FLD:
- Bullish Signal: Price crosses above FLD near cycle bottom.
- Bearish Signal: Price breaks below FLD near cycle top.
3. Use VTL for confirmation:
Guide to Trading with JM Hurst Cycles in TradingView
- Break of upward VTL from cycle lows = bearish shift.
- Break of downward VTL from cycle highs = bullish shift.
4. Use turning point markers:
- Triangle up (green): Probable cycle bottom - watch for long.
- Triangle down (red): Probable cycle top - prepare for exit or short.
Tips:
- Align multiple cycle lengths for stronger confirmation.
- Use with other technical indicators like RSI/MACD for confluence.
- Avoid trading just before major news events - cycles can distort.
4. Example Strategy
If base cycle is 20 bars:
- Wait for triangle up (cycle low) near FLD.
- Confirm price crosses above FLD.
- Ensure VTL from prior lows is intact or just broken upward.
- Enter long; set stop below recent low.
Opposite for shorts at triangle down + FLD break down + VTL break.
5. Final Notes
This script offers a time-based visual trading method inspired by JM Hurst. It's most powerful when used with
patience, confirmation, and alignment across cycles.
You can adjust cycle lengths or refine pivots based on your trading timeframe and asset class.
For best results, backtest cycle behavior on your instrument before live trading.
Crypto Cycle Projection📈 Crypto Cycle Projection – Indicator Description
This indicator is designed to visually track and forecast repeating price cycles in the crypto market. It highlights a defined time-based cycle starting from a chosen date or the latest bar on the chart. By identifying cycle Start, Midpoint, and End zones, traders can gain insights into timing-based market structure and possible pivot periods.
⚙️ User Settings Explained
Start Point
Start from Last Candle (useLastCandle) – When enabled, the cycle begins from the most recent candle on the chart.
Manual Date (Year / Month / Day) – If Start from Last Candle is disabled, you can manually set a specific start date for the cycle.
Display Options
- Show Projection (showZone) – Toggles the display of the main cycle projection.
- Show Outer Bars (showOuter) – Adds faded edge bars around the key cycle zones for better visual emphasis.
- Show Previous Cycle (showPreviousCycle) – Adds the prior cycle to the chart, going one full cycle period back from the main start point.
Show Next Cycle (showNextCycle) – Projects one additional cycle forward beyond the current.
Cycle Parameters
Cycle Period (cyclePeriod) – Defines the number of bars in a full cycle (e.g., 60 = 60 bars). This sets the spacing between Start → Midpoint → End.
Each cycle section is color-coded:
Start = White
Midpoint = Yellow
End = Green
These reference lines and zones help you align trades with cycle timing for potential reversals, continuations, or volatility expansions.
Co-author Credit:
Matthew Hyland @ParabolicMatt
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 :)
Bitcoin Cycle History Visualization [SwissAlgo]BTC 4-Year Cycle Tops & Bottoms
Historical visualization of Bitcoin's market cycles from 2010 to present, with projections based on weighted averages of past performance.
-----------------------------------------------------------------
CALCULATION METHODOLOGY
Why Bottom-to-Bottom Cycle Measurement?
This indicator defines cycles as bottom-to-bottom periods. This is one of several valid approaches to Bitcoin cycle analysis:
- Focuses on market behavior (price bottoms) rather than supply schedule events (halving-to-halving)
- Bottoms may offer good reference points for some analytical purposes
- Tops tend to be extended periods that are harder to define precisely
- Aligns with how some traditional asset cycles are measured and the timing observed in the broader "risk-on" assets category
- Halving events are shown separately (yellow backgrounds) for reference
- Neither halving-based nor bottom-based measurement is inherently superior
Different analysts prefer different cycle definitions based on their analytical goals. This approach prioritizes observable market turning points.
Cycle Date Definitions
- Approximate monthly ranges used for each event (e.g., Nov 2022 bottom = Nov 1-30, 2022)
- Cycle 1: Jul 2010 bottom → Jun 2011 top → Nov 2011 bottom
- Cycle 2: Nov 2011 bottom → Dec 2013 top → Jan 2015 bottom
- Cycle 3: Jan 2015 bottom → Dec 2017 top → Dec 2018 bottom
- Cycle 4: Dec 2018 bottom → Nov 2021 top → Nov 2022 bottom
- Future cycles will be added as new top/bottom dates become firm
Duration Calculations
- Days = timestamp difference converted to days (milliseconds ÷ 86,400,000)
- Bottom → Top: days from cycle bottom to peak
- Top → Bottom: days from peak to next cycle bottom
- Bottom → Bottom: full cycle duration (sum of above)
Price Change Calculations
- % Change = ((New Price - Old Price) / Old Price) × 100
- Example: $200 → $19,700 = ((19,700 - 200) / 200) × 100 = 9,750% gain
- Approximate historical prices used (rounded to significant figures)
Weighted Average Formula
Recent cycles weighted more heavily to reflect the evolved market structure:
- Cycle 1 (2010-2011): EXCLUDED (too early-stage, tiny market cap)
- Cycle 2 (2011-2015): Weight = 1x
- Cycle 3 (2015-2018): Weight = 3x
- Cycle 4 (2018-2022): Weight = 5x
Formula: Weighted Avg = (C2×1 + C3×3 + C4×5) / (1+3+5)
Example for Bottom→Top days: (761×1 + 1065×3 + 1066×5) / 9 = 1,032 days
Projection Method
- Projected Top Date = Nov 2022 bottom + weighted avg Bottom→Top days
- Projected Bottom Date = Nov 2022 bottom + weighted avg Bottom→Bottom days
- Current days elapsed compared to weighted averages
- Warning symbol (⚠) shown when the current cycle exceeds the historical average
Technical Implementation
- Historical cycle dates are hardcoded (not algorithmically detected)
- Dates represent approximate monthly ranges for each event
- The indicator will be updated as the Cycle 5 top and bottom dates become confirmed
- Updates require manual code maintenance - not automatic
- Users should verify they're using the latest version for current cycle data
-----------------------------------------------------------------
FEATURES
- Background highlights for historical tops (red), bottoms (green), and halving events (yellow)
- Data table showing cycle durations and price changes
- Visual cycle boundary boxes with subtle coloring
- Projected timeframes displayed as dashed vertical lines
- Toggle on/off for each visual element
- Customizable background colors
-----------------------------------------------------------------
DISPLAY SETTINGS
- Show/hide cycle tops, bottoms, halvings, data table, and cycle boxes
- Customizable background colors for each event type
- Clean, institutional-grade visual design suitable for analysis
UPDATES & MAINTENANCE
This indicator is maintained as new cycle events occur. When Cycle 5's top and bottom are confirmed with sufficient time elapsed, the code and projections will be updated accordingly. Check for the latest version periodically.
OPEN SOURCE
Code available for review, modification, and improvement. Educational transparency is prioritized.
-----------------------------------------------------------------
IMPORTANT LIMITATIONS
⚠ EXTREMELY SMALL SAMPLE SIZE
Based on only 4 complete cycles (2011-2022). In statistical analysis, this is insufficient for reliable predictions.
⚠ CHANGED MARKET STRUCTURE
Bitcoin's market has fundamentally evolved since early cycles:
- 2010-2015: Tiny market cap, retail-only, unregulated
- 2024-2025: Institutional adoption, spot ETFs, regulatory frameworks, macro correlation
The environment that created past patterns no longer exists in the same form.
⚠ NO PREDICTIVE GUARANTEE
Historical patterns can and do break. Market cycles are not laws of physics. Past performance does not guarantee future results. The next cycle may not follow historical averages.
⚠ LENGTHENING CYCLE THEORY
Some analysts believe cycles are extending over time (diminishing returns, maturing market). If true, simple averaging underestimates future cycle lengths.
⚠ SELF-FULFILLING PROPHECY RISK
The halving narrative may be partially circular - it works because people believe it works. Sufficient changes in market structure or participant behavior can invalidate the pattern.
⚠ APPROXIMATE DATA
Historical prices rounded to significant figures. Exact bottom/top dates vary by exchange. Month-long ranges are used for simplicity.
EDUCATIONAL USE ONLY
This indicator is designed for historical analysis and understanding Bitcoin's past behavior. It is NOT:
- Trading advice or financial recommendations
- A guarantee or prediction of future price movements
- Suitable as a sole basis for investment decisions
- A replacement for fundamental or technical analysis
The projections show "what if the pattern continues exactly" - not "what will happen."
Always conduct independent research, understand the risks, and consult qualified financial advisors before making investment decisions. Only invest what you can afford to lose.
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.
Western Astrological Cycle Trading Indicator v1.0Western Astrological Cycle Trading Indicator v1.0
Overview
The Western Astrological Cycle Trading Indicator is a comprehensive Pine Script tool that overlays astrological cycles and predictions onto trading charts. It integrates Western astrological theory with technical analysis to provide unique cyclical perspectives on market movements based on planetary and zodiacal alignments.
What It Does
Core Functionality
Astrological Year Mapping:
Assigns each year (2000 onward) a specific planet-zodiac combination
Follows a 10-year planetary cycle and 12-year zodiac cycle
Generates theoretical market predictions based on these combinations
Visual Elements:
Background coloring based on yearly astrological predictions
Detailed information table with comprehensive astrological data
Year labels with zodiac symbols and predictions
Ten-year planetary cycle progress bar
Important year markers (Jupiter, Neptune, etc.)
Astrological calendar showing daily and monthly phases
Trading Insights:
Trend indicators (Bullish/Neutral/Bearish) based on planetary positions
Confidence levels for predictions
Element relationships affecting financial markets
Historical and future astrological phase tracking
How It Works
Technical Implementation
1. Cycle Calculation System
Planetary Cycle: 10-year rotation (Sun, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto)
Zodiac Cycle: 12-year rotation through all zodiac signs
Calculation:
pinescript
planetIndex = math.floor((year - 2000) % 10)
zodiacIndex = math.floor((year - 2000) % 12)
2. Prediction Engine
Each planet-zodiac combination generates specific predictions
Confidence scores (0-100%) assigned to each prediction
Trend direction determined by planetary attributes:
Bullish: Sun, Jupiter, Venus
Bearish: Mars, Saturn, Pluto
Neutral: Mercury, Uranus, Neptune
3. Visual Rendering System
Multiple label positioning algorithms to prevent overlap
Dynamic table generation with color-coded cells
Progress bar visualization of cycle completion
Time-aware markers that appear only on year transitions
4. Date Management
Comprehensive date calculation functions
Leap year detection
Day/month/year progression tracking
Future/past date predictions
Astrological Logic
The indicator uses traditional Western astrological correspondences:
Planets represent different market energies
Zodiac signs modify and color these energies
Elements (Fire, Earth, Air, Water) show elemental relationships
Modalities (Cardinal, Fixed, Mutable) indicate the nature of change
How to Use It
Installation
Open TradingView platform
Navigate to Pine Editor
Paste the entire script
Click "Add to Chart"
Configuration
Basic Settings
Show Background Color: Toggle prediction-based background coloring
Show Info Table: Display/hide the comprehensive information table
Show Year Labels: Toggle yearly astrological labels on the chart
Customization Options
Year Label Settings:
Choose label color
Adjust font size (small/normal/large)
Toggle year numbers and zodiac symbols
Planetary Cycle Progress:
Display ten-year cycle progress bar
Customize progress bar colors
Adjust position on chart
Marker Lines:
Toggle individual planet markers (Jupiter, Venus/Mars, Saturn/Uranus, Neptune)
Customize marker colors and positions
Adjust marker font sizes
Additional Elements:
Disclaimer display
Trend indicator
Element relationship hints
Current year information
Interpretation Guide
Reading the Information Table
The table provides:
Astro Year: Current planet-zodiac combination
Trend: Bullish/Neutral/Bearish direction
Theoretical Forecast: Market prediction based on astrology
Confidence: Probability score of prediction
Cycle Progress: Position in 10-year planetary cycle
Element Relation: How current element interacts with financial markets
Understanding Visual Elements
Background Colors:
Orange/Green: Bullish years (Sun, Jupiter, Venus)
Red/Brown: Bearish years (Mars, Saturn, Pluto)
Blue/Purple: Neutral/transitional years
Year Labels:
Appear at year transitions
Show planet-zodiac combination
Include prediction summary
Special Markers:
Jupiter Years: Blue markers - potential expansion/bull markets
Neptune Years: Purple markers - cycle endings/uncertainty
Saturn/Uranus Years: Red markers - contraction/revolution
Progress Bar:
Shows current position in 10-year cycle
Indicates years remaining to next Jupiter year
Using the Astrological Calendar
The bottom-right calendar shows:
Daily phases: Current planetary influences
Monthly phases: Broader monthly trends
Trend signals: Daily/monthly direction indicators
Quarterly overview: Longer-term perspectives
Practical Trading Application
Long-term Planning:
Use Jupiter year markers for potential bull market entries
Be cautious during Saturn/Pluto years (potential bear markets)
Note cycle transitions (Neptune years) for market shifts
Medium-term Analysis:
Consider monthly planetary changes for quarterly planning
Use element relationships to understand sector rotations
Short-term Awareness:
Check daily phases for potential reversal days
Monitor trend changes at month transitions
Risk Management:
Reduce position size during low-confidence periods
Increase vigilance during transition years
Use astrological signals as confluence with technical analysis
Alerts System
Enable alerts to receive notifications for:
Year transitions
Important astrological events
Cycle beginnings/endings
Important Notes
Theoretical Nature: This indicator is based on astrological theory, not financial advice
Confluence Trading: Use alongside traditional technical analysis
Backtesting: Always test strategies before live implementation
Risk Management: Never rely solely on astrological signals for trading decisions
Customization Tips
Label Overlap: Adjust label spacing if labels overlap
Performance: Reduce max_lines_count/max_labels_count if experiencing lag
Color Schemes: Customize colors to match your chart theme
Positioning: Adjust marker positions based on your chart's volatility
Disclaimer
This indicator is for educational and research purposes only. It combines astrological theory with technical analysis for experimental purposes. Past performance does not guarantee future results. Always conduct your own research and consult with financial advisors before making trading decisions.
Debt-Cycle vs Bitcoin-CycleDebt-Cycle vs Bitcoin-Cycle Indicator
The Debt-Cycle vs Bitcoin-Cycle indicator is a macro-economic analysis tool that compares traditional financial market cycles (debt/credit cycles) against Bitcoin market cycles. It uses Z-score normalization to track the relative positioning of global financial conditions versus cryptocurrency market sentiment, helping identify potential turning points and divergences between traditional finance and digital assets.
Key Features
Dual-Cycle Analysis: Simultaneously tracks traditional financial cycles and Bitcoin-specific cycles
Z-Score Normalization: Standardizes diverse data sources for meaningful comparison
Multi-Asset Coverage: Analyzes currencies, commodities, bonds, monetary aggregates, and on-chain metrics
Divergence Detection: Identifies when Bitcoin cycles move independently from traditional finance
21-Day Timeframe: Optimized for Long-term cycle analysis
What It Measures
Finance-Cycle (White Line)
Tracks traditional financial market health through:
Currencies: USD strength (DXY), global currency weights (USDWCU, EURWCU)
Commodities: Oil, gold, natural gas, agricultural products, and Bitcoin price
Corporate Bonds: Investment-grade spreads, high-yield spreads, credit conditions
Monetary Aggregates: M2 money supply, foreign exchange reserves (weighted by currency)
Treasury Bonds: Yield curve (2Y/10Y, 3M/10Y), term premiums, long-term rates
Bitcoin-Cycle (Orange Line)
Tracks Bitcoin market positioning through:
On-Chain Metrics:
MVRV Ratio (Market Value to Realized Value)
NUPL (Net Unrealized Profit/Loss)
Profit/Loss Address Distribution
Technical Indicators:
Bitcoin price Z-score
Moving average deviation
Relative Strength:
ETH/BTC ratio (altcoin strength indicator)
Visual Elements
White Line: Finance-Cycle indicator (positive = expansionary conditions, negative = contractionary)
Orange Line: Bitcoin-Cycle indicator (positive = bullish positioning, negative = bearish)
Zero Line: Neutral reference point
Interpretation
Cycle Alignment
Both positive: Risk-on environment, favorable for crypto
Both negative: Risk-off environment, caution warranted
Divergence: Potential opportunities or warning signals
Divergence Signals
Finance positive, Bitcoin negative: Bitcoin may be undervalued relative to macro conditions
Finance negative, Bitcoin positive: Bitcoin may be overextended or decoupling from traditional finance
Important Limitations
This indicator uses some technical and macro data but still has significant gaps:
⚠️ Limited monetary data - missing:
Funding rates (repo, overnight markets)
Comprehensive bond spread analysis
Collateral velocity and quality metrics
Central bank balance sheet details
⚠️ Basic economic coverage - missing:
GDP growth rates
Inflation expectations
Employment data
Manufacturing indices
Consumer confidence
⚠️ Simplified on-chain analysis - missing:
Exchange flow data
Whale wallet movements
Mining difficulty adjustments
Hash rate trends
Network fee dynamics
⚠️ No sentiment data - missing:
Fear & Greed Index
Options positioning
Futures open interest
Social media sentiment
The indicator provides a high-level cycle comparison but should be combined with comprehensive fundamental analysis, detailed on-chain research, and proper risk management.
Settings
Offset: Adjust the horizontal positioning of the indicators (default: 0)
Timeframe: Fixed at 21 days for optimal cycle detection
Use Cases
Macro-crypto correlation analysis: Understand when Bitcoin moves with or against traditional markets
Cycle timing: Identify potential tops and bottoms in both cycles
Risk assessment: Gauge overall market conditions across asset classes
Divergence trading: Spot opportunities when cycles diverge significantly
Portfolio allocation: Balance traditional and crypto assets based on cycle positioning
Technical Notes
Uses Z-score normalization with varying lookback periods (40-60 bars)
Applies HMA (Hull Moving Average) smoothing to reduce noise
Asymmetric multipliers for upside/downside movements in certain metrics
Requires access to FRED economic data, Glassnode, CoinMetrics, and IntoTheBlock feeds
21-day timeframe optimized for cycle analysis
Strategy Applications
This indicator is particularly useful for:
Cross-asset allocation - Decide between traditional finance and crypto exposure
Cycle positioning - Identify where we are in credit/debt cycles vs. Bitcoin cycles
Regime changes - Detect shifts in market leadership and correlation patterns
Risk management - Reduce exposure when both cycles turn negative
Disclaimer: This indicator is a cycle analysis tool and should not be used as the sole basis for investment decisions. It has limited coverage of monetary conditions, economic fundamentals, and on-chain metrics. The indicator provides directional insight but cannot predict exact timing or magnitude of market moves. Always conduct thorough research, consider multiple data sources, and maintain proper risk management in all investment decisions.






















