Katik Cycle 56 DaysThis script plots vertical dotted lines on the chart every 56 trading days, starting from the first bar. It calculates intervals based on the bar_index and draws the lines for both historical and future dates by projecting the lines forward.
The lines are extended across the entire chart height using extend=extend.both, ensuring visibility regardless of chart zoom level. You can customize the interval length using the input box.
Note: Use this only for 1D (Day) candle so that you can find the changes in the trend...
在腳本中搜尋"Cycle"
It Screams When Crypto BottomsGet ready to ride the crypto rollercoaster with your new favourite tool for catching Bitcoin at its juiciest, most oversold moments.
This isn’t just another boring indicator — it screams when it’s time to load your bags and get ready for the ride back up!
Expect it to scream just once or twice per cycle at the very bottom, so you know exactly when the party starts!
Why You'll Love It:
Crypto-Exclusive Magic: It does not really matter what chart you are on; this indicator only bothers about the original and realised market cap of BTC. We all know the rest will follow.
Big Picture Focus: Designed for daily. No noisy intraday drama — just pure, clear signals.
Screaming Alerts: When the signal hits, it’s like a neon sign screaming, “Crypto Bottomed!"
Think of this indicator as your backstage pass to the crypto world’s most dramatic moments. It’s not subtle — it’s bold, loud, and ready to help you time the market like a pro.
P.S.: Use it only on a daily chart. Don’t even try it on shorter timeframes — it won’t scream, and you’ll miss the show! 🙀
AMDX Time ZoneThis script is base on the theory of @traderdaye, on the TimeZone AMDX
Accumulation
Manipulation
Distribution
X reversal / continuation
OR
AMDX
It show you the box on intraday Timeframe:
Q1: 18.00 - 19.30 | Q2: 19.30 - 21.00 | Q3: 21.00 - 22.30 | Q4: 22.30 - 00.00 (90min Cycles of the Asian Session)
Q1: 00.00 - 01.30 | Q2: 01.30 - 03.00 | Q3: 03.00 - 04.30 | Q4: 04.30 - 06.00 (90min Cycles of the London Session)
Q1: 06.00 - 07.30 | Q2: 07.30 - 09.00 | Q3: 09.00 - 10.30 | Q4: 10.30 - 12.00 (90min Cycles of the NY Session)
Q1: 12.00 - 13.30 | Q2: 13.30 - 15.00 | Q3: 15.00 - 16.30 | Q4: 16.30 - 18.00 (90min Cycles of the PM Session)
You can extend this theory to the day => to the week => to the month
Thanks LuxAlgo for the base,
Hope you enjoy it
OPEX & VIX Expiry Markers (Past, Present, Future)Expiry Date Indicator for Options & Index Traders
Track Key Expiration Dates Automatically
For traders focused on options, indices, and expiration-based strategies, staying aware of key expiration dates is essential. This TradingView indicator automatically plots OPEX, VIX Expiry, and Quarterly Expirations on your charts—helping you plan trades more effectively without manual tracking.
Features:
✔ OPEX Expiration Markers – Highlights the third Friday of each month, when equity and index options expire.
✔ VIX Expiration Tracking – Marks Wednesday VIX expirations, useful for volatility-based trades.
✔ Quarterly Expiration Highlights – Identifies major market expiration cycles for better trade management.
✔ Live Countdown to Next OPEX – Displays how many days remain until the next expiration.
✔ Works on Any Timeframe – Past, present, and future expiration dates update dynamically.
✔ Customizable Settings – Enable or disable specific features based on your trading style.
Ideal for Traders Who Use:
📈 SPX / SPY / NDX / VIX Options Strategies
📅 Iron Condors, Credit Spreads, and Expiration-Based Trades
This tool helps traders stay ahead of expiration cycles, ensuring they never miss an important date. Simple, effective, and built for seamless integration into your trading workflow.
This keeps it professional and to the point without overhyping it. Let me know if you'd like any further refinements! 🚀
Bull Bear Indicator (BBI)/Introduction
The Bull Bear Indicator (BBI) identifies bull market conditions and bear market conditions for equity investors so they can avoid missing a bull market or getting caught in a bear market.
/Signals
There are two signals:
1. Bull Market Alert - This indicates prices of stocks in the broader market are rising.
2. Bear market Alert - This indicates prices of stocks in the broader market are falling.
Both signals are indicated by a background colour and an upward/downward triangle. A green background and an upward green triangle below the bar signifies an environment of rising prices. A red background and a downward red triangle above the bar indicates an environment of falling prices.
Lack of a coloured background indicates a transition period from Bull to Bear or Bear to Bull conditions. The transitions may be rapid during periods of high volatility.
/Construction
The indicator is constructed using market breadth, price action and moving averages.
1.Market Breadth:
Definition: Market breadth refers to the number of stocks advancing versus the number declining in the stock market. It provides insight into the overall health and strength of a market move.
Use in Identifying Bull/Bear Markets:
Bull Market Indicators: In a bull market, market breadth is typically strong, with a large number of stocks advancing. This indicates widespread participation in the market rally, confirming the strength and sustainability of the upward trend.
Bear Market Indicators: Conversely, in a bear market, market breadth weakens, with more stocks declining than advancing. This suggests that the downward movement is broad-based across the market, reinforcing the bearish sentiment.
How the indicator does this: The number of stocks in a bullish/bearish trend is counted and normalised to a percentage to determine what percentage of stocks in the overall market are bullish/bearish.
2. Price Action:
Definition: Price action involves the study of historical price movements to predict future price direction. It includes analyzing patterns, trends, and the reactions of prices to certain levels (like support and resistance).
Use in Identifying Bull/Bear Markets:
Bull Market Indicators: In a bull market, price action typically shows higher highs and higher lows, indicating an ongoing upward trend. The reaction to support levels is often strong, with prices bouncing off these levels.
Bear Market Indicators: In a bear market, the price action is characterized by lower highs and lower lows. Prices tend to break through support levels and bounce off resistance levels, reflecting the dominant downward trend.
3. Trend Analysis:
Definition: Trend analysis involves identifying the direction and strength of market movements. This was done using moving averages.
Use in Identifying Bull/Bear Markets:
Bull Market Indicators: A bull market is often identified by upward-sloping trendlines and prices consistently staying above key moving averages.
Bear Market Indicators: In a bear market, the trendlines slope downwards, and prices remain below key moving averages.
How the indicator does this: The average closing prices of the largest capitalised stocks and their intermediate trend is assessed relative to their moving averages, the moving average combines price action and trend because it is simply the average closing price over time.
/Originality
This indicator is simple and effective in that it uses multiple factors to assess the market environment. Market breadth gives an overview of the participation level in the market trend, price action helps identify specific patterns and reactions to key levels indicating a bull or bear market, and trend analysis provides a macro view of the market direction and its strength. Combining these tools can gives a comprehensive picture of the market environment and help in distinguishing between bull and bear markets. The market environments are boldly marked out through background colours and triangle markers. The indicator performance is only valid from 2002 to date because the market breadth data used is not available before this date.
Why market Market breadth: Because it takes into account all the stocks in the market, this is essential in identifying the level of participation in a trend.
Why moving averages: Because it ensures that the price action and overall trend of the stocks can be monitored over a given lookback period
So together, moving average/price action + market breadth = trend + participation
Note:
The indicator has no predictive power, performance described here does not guarantee future results. Equity markets are particularly volatile and prone to cycles, and individual psychology can significantly affect indicator interpretation. Price data may also vary across exchanges.
/Settings
The parameters are fixed and there is no room for optimisation however, style settings can be modified by the user.
/Tickers
The BBI indicator is ticker agnostic but best viewed on a 1 day chart of the SPY.
Seasonal Market Strategy (SMS)/Introduction
The Seasonal Market Strategy (SMS) is not a technical strategy, it is based on market seasonality and draws heavily from the work of Yale Hirsch, creator of the Stock Trader's Almanac.
/Signals
The strategy is long only. Four different seasonal signals are generated to ensure stock market history, cycles, psychology and patterns are turned into actionable trades. The signals are:
1. Sell in May and Go Away: A strategy suggesting investors sell stocks in May and avoid the market until November, based on historical underperformance during this period.
2. Turn of the Month: Trading tactic that capitalises on the tendency of stock prices to rise at the month's beginning.
3. Santa Claus Rally: Refers to the often-seen increase in stock prices around Christmas and the New Year.
4. Turn Around Tuesday: A pattern where stock markets rebound on Tuesdays following a decline on Mondays.
There is no logic or calculation, just dates for entry and exit. These seasonal patterns are explained in various places online for those who want to understand why they are profitable. Stock Trader's Almanac is a good resource to start with.
/Interpretation
SMS will display an upward blue arrow signifying a buy signal after the candle closes, when entry conditions are met. A label below the arrow will describe which signal was triggered and a number depicting the number of units (they can be deactivated in the style settings). SMS will also display a downwards pink arrow above the candle when the exit conditions are met.
/Strategy Results
The backtest results are based on a starting capital of $13,700 (convenient amount for retail traders) with 5% of equity for the position size and pyramiding of 4 consecutive positions because there are four signals. Because of the large amount of trades, this strategy is suitable with brokers that do not charge commissions, so commissions is set to zero while slippage of 3 ticks is used to ensure the results are representative of real world, market order, end-of-day trading. The backtest results are available to view at the bottom of this page.
NOTE:
Past results are not indicative of future results. The strategy is backtested in ideal conditions, it has no predictive abilities and seasonal trends may breakdown at anytime hence, results from live trading may not achieve the same performance shown here as each trader may introduce subjectivity or interfere with its performance or market conditions might change significantly.
/Tickers
This strategy has been backtested on the Dow Jones Industrial Average ETF with ticker DIA but it also performs well with the SPY ticker which is the ETF for the S&P500.
Goertzel Browser [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 Browser 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.
█ Brief Overview of the Goertzel Browser
The Goertzel Browser 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 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.
3. Project the composite wave into the future, providing a potential roadmap for upcoming price movements.
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 past and dotted lines for the future projections. The color of the lines indicates whether the wave is increasing or decreasing.
5. Displaying cycle information: The indicator provides a table that displays detailed information about the detected cycles, including their rank, period, Bartel's test results, amplitude, and phase.
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 and their potential future trajectory, 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 and WindowSizeFuture: These inputs define the window size for past and future projections of 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.
UseCycleList: This boolean input determines whether a user-defined list of cycles should be used for constructing the composite wave. If set to false, the top N cycles will be used.
Cycle1, Cycle2, Cycle3, Cycle4, and Cycle5: These inputs define the user-defined list of cycles when 'UseCycleList' is set to true. If using a user-defined list, each of these inputs represents the period of a specific cycle to include in the composite wave.
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 Browser Code
The Goertzel Browser 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 Browser 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 and future window sizes (WindowSizePast, WindowSizeFuture), Bartels filter flag (FilterBartels), Bartels-related parameters (BartNoCycles, BartSmoothPer, BartSigLimit), sorting flag (SortBartels), and output buffers (goeWorkPast, goeWorkFuture, 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 Browser 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 Browser 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 Browser code calculates the waveform of the significant cycles for both past and future time windows. The past and future windows are defined by the WindowSizePast and WindowSizeFuture 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 matrices:
The calculated waveforms for each cycle are stored in two matrices - goeWorkPast and goeWorkFuture. These matrices hold the waveforms for the past and future time windows, respectively. Each row in the matrices represents a time window position, and each column corresponds to a cycle.
Returning the number of cycles:
The Goertzel Browser 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 Browser 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 Browser'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 both past and future time windows based on the detected cycles. Here's a detailed explanation of this process:
Updating WindowSizePast and WindowSizeFuture:
The WindowSizePast and WindowSizeFuture are updated to ensure they are at least twice the MaxPer (maximum period).
Initializing matrices and arrays:
Two matrices, goeWorkPast and goeWorkFuture, are initialized to store the Goertzel results for past and future 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 past and future waveforms:
Three arrays, epgoertzel, goertzel, and goertzelFuture, are initialized to store the endpoint Goertzel, non-endpoint Goertzel, and future Goertzel projections, respectively.
Calculating composite waveform for past bars (goertzel array):
The past 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.
Calculating composite waveform for future bars (goertzelFuture array):
The future composite waveform is calculated in a similar way as the past composite waveform.
Drawing past composite waveform (pvlines):
The past 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).
Drawing future composite waveform (fvlines):
The future composite waveform is drawn on the chart using dotted lines. The color of the lines is determined by the direction of the waveform (fuchsia for upward, yellow for downward).
Displaying cycle information in a table (table3):
A table is created to display the cycle information, including the rank, period, Bartel value, amplitude (or cycle strength), and phase of each detected cycle.
Filling the table with cycle information:
The indicator iterates through the detected cycles and retrieves the relevant information (period, amplitude, phase, and Bartel value) from the corresponding arrays. It then fills the table with this information, displaying the values up to six decimal places.
To summarize, this indicator generates a composite waveform based on the detected cycles in the financial data. It calculates the composite waveforms for both past and future time windows and visualizes them on the chart using colored lines. Additionally, it displays detailed cycle information in a table, including the rank, period, Bartel value, amplitude (or cycle strength), and phase of each detected cycle.
█ 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 and potential future impact. 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.
No guarantee of future performance: While the script can provide insights into past cycles and potential future trends, it is important to remember that past performance does not guarantee future results. Market conditions can change, and relying solely on the script's predictions without considering other factors may lead to poor trading decisions.
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 Browser indicator can be interpreted by analyzing the plotted lines and the table presented alongside them. The indicator plots two lines: past and future composite waves. The past composite wave represents the composite wave of the past price data, and the future composite wave represents the projected composite wave for the next period.
The past composite wave line displays a solid line, with green indicating a bullish trend and red indicating a bearish trend. On the other hand, the future composite wave line is a dotted line with fuchsia indicating a bullish trend and yellow indicating a bearish trend.
The table presented alongside the indicator shows the top cycles with their corresponding rank, period, Bartels, amplitude or cycle strength, and phase. The amplitude is a measure of the strength of the cycle, while the phase is the position of the cycle within the data series.
Interpreting the Goertzel Browser indicator involves identifying the trend of the past and future composite wave lines and matching them with the corresponding bullish or bearish color. Additionally, traders can identify the top cycles with the highest amplitude or cycle strength and utilize them in conjunction with other technical indicators and fundamental analysis for trading decisions.
This indicator is considered a repainting indicator because the value of the indicator is calculated based on the past price data. As new price data becomes available, the indicator's value is recalculated, potentially causing the indicator's past values to change. This can create a false impression of the indicator's performance, as it may appear to have provided a profitable trading signal in the past when, in fact, that signal did not exist at the time.
The Goertzel indicator is also non-endpointed, meaning that it is not calculated up to the current bar or candle. Instead, it uses a fixed amount of historical data to calculate its values, which can make it difficult to use for real-time trading decisions. For example, if the indicator uses 100 bars of historical data to make its calculations, it cannot provide a signal until the current bar has closed and become part of the historical data. This can result in missed trading opportunities or delayed signals.
█ Conclusion
The Goertzel Browser 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 Browser 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 Browser 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:
The first term represents the deviation of the data from the trend.
The second term represents the smoothness of the trend.
λ 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.
Trend & Pullback Toolkit (Expo)█ Overview
The Trend & Pullback Trading Toolkit is an all-encompassing suite of tools designed for serious traders who want a comprehensive trend approach. It empowers traders to align their strategies with prevailing market trends, thereby mitigating risk while maximizing profit potential.
The Toolkit helps traders spot, analyze, and react to market trends, pullbacks, and significant trends. It combines multiple trading methodologies, such as the Elliott Wave theory, cyclical analysis, retracement analysis, strength analysis, volatility analysis, and pivot analysis, to provide a thorough understanding of the market. All these tools can help traders detect trends, pullbacks, and major shifts in the overall trend. By integrating different methodologies, this toolkit offers a multifaceted approach to analyzing market trends.
In essence, the Trend & Pullback Toolkit is the complete package for traders seeking to detect, evaluate, and act upon market trends and pullbacks while being prepared for major trend shifts.
The Trend & Pullback Toolkit works in any market and timeframe for discretionary analysis and includes many oscillators and features, but first, let us define what a cycle is:
█ What is a cycle
This involves the analysis of recurring patterns or events in the market that repeat over a specific period. Cycles can exist in various time frames and can be identified and analyzed with various tools, including some types of oscillators or time-based analysis methods.
Traders must also be aware that cycles do not always repeat perfectly and can often shift, evolve, or disappear entirely.
█ Features & How They Work
Elliott Wave Cycles: This is a method of technical analysis that traders use to analyze financial market cycles and forecast market trends. Elliott Wave theory asserts that markets move in repetitive cycles, which traders can analyze to predict future price movement. The core principle behind the theory is that market prices alternate between an impulsive, or driving phase, and a corrective phase on all time scales of trend. This pattern forms a fractal, meaning it's a self-similar pattern that repeats regardless of the degree or size of the waves.
The Elliott Wave Cycle Feature uses the principle of the Elliott Wave to identify trends and pullbacks in real-time.
Ratio Wave Cycle: This method elaborates on the concept of how negative volatility, or the degree of variation in the negative returns of a financial instrument, influences the effectiveness of a relative price move. Essentially, it delves into the relationship between the negative fluctuations in the market and the resulting relative price change, exploring how the two aspects interact with each other.
The central concept is that trends are generally more stable and predictable than rapid retracements. Therefore, the indicator calculates the relationship between these two market movements. By doing so, it establishes a trend-based identification system. This system aids in forecasting future market movements, allowing traders to make informed decisions based on these predictions. Essentially, it uses the calculated relationship to discern the overall direction (trend) of the market despite temporary counter-movements (retracements), thereby providing a more robust trading signal.
Periodic Wave Cycle: Thi refers to patterns or events in price action that recur over a specific time period. Periodic cycles can range from short-term intraday cycles (like the tendency for stock market volatility to be high at the opening and close of trading) to long-term cycles trend cycles. Traders use this to predict future price movements and trends.
By identifying the phases of a cycle, traders can predict key turning points in the market.
Retracement Cycles: Retracements are temporary price reversals that occur within a larger trend. These retracements are a common occurrence in all markets and timeframes, representing a pause or counter-move within a larger prevailing trend. Retracements can be driven by a variety of factors, including profit-taking, market uncertainty, or a change in market fundamentals. Despite these periodic reversals, the overall trend (upwards or downwards) often continues after the retracement is complete.
Fibonacci retracement functions are primarily used to identify potential retracement levels.
Volatility Cycle: A volatility cycle refers to the periodic changes in the degree of dispersion or variability of a security's returns, expressed as a standard deviation or variance. This feature uses both measures.
Strength Cycle: Gauges the power of a market trend and its inherent impulses. This feature offers a broad perspective on the cyclical nature of markets, which alternate between periods of strength, often referred to as bull markets, and periods of weakness, known as bear markets. It effectively tracks the direction, intensity, and cyclic patterns of market behavior.
Let us define the difference between strength and impulse:
Strength: This refers to the power or force behind a price move. In trading, this refers to the momentum or volume supporting a price move.
Impulse: In the context of trading, an impulse usually refers to a strong move in price. Impulse moves are typically followed by corrective moves against the trend.
Pivot Cycles: Pivot cycles refer to the observation of recurring price patterns or turning points in the market. Pivots can be defined as significant highs or lows that act as potential reversal or support/resistance points. Pivot point analysis helps traders understand the prevailing market sentiment. Overall, pivot cycles provide traders with a framework to identify potential market turning points and price levels of interest.
█ How to use the Trend & Pullback Toolkit
Elliott Wave Cycles
Ratio Wave Cycle
Periodic Wave Cycle
Retracement Cycles
Volatility Cycle:
Strength Cycle
Pivot Cycles
█ Why is this Trend & Pullback Toolkit Needed?
The core philosophy of this toolkit revolves around the popular adage in trading circles: "The trend is your friend." This toolkit ensures that you are always in sync with the trend, thereby increasing the chances of successful trades.
Here's an overview of the key benefits:
Trend Identification: The toolkit includes sophisticated algorithms and indicators that help identify the prevailing trend in the market. These algorithms analyze price patterns, momentum, volume, and other factors to determine the direction and strength of the trend.
Risk Reduction: By enabling traders to trade with the trend, this toolkit reduces the risk of betting against market momentum.
Profit Maximization: Trading with the trend increases the likelihood of successful trades.
Advanced Analysis Tools: The toolkit includes tools that provide a deeper insight into market dynamics. These tools enable a multi-dimensional analysis of market trends, from Elliott Wave cycles and period cycles to retracement cycles, ratio wave cycles, pivot cycles, and strength cycles.
User-friendly Interface: Despite its sophistication, the toolkit is designed with user-friendliness in mind. It allows for customization and presents data in easy-to-understand formats.
Versatility: The toolkit is versatile and can be used across different markets - stocks, forex, commodities, and cryptocurrencies. This makes it a valuable resource for all types of traders.
█ Any Alert Function Call
This function allows traders to combine any feature and create customized alerts. These alerts can be set for various conditions and customized according to the trader's strategy or preferences.
█ In conclusion, The Trading Toolkit is a powerful ally for any trader, offering the capabilities to navigate the complexities of the market with ease. Whether you're a novice or an experienced trader, this toolkit provides a structured and systematic approach to trading.
-----------------
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!
Ichimoku Theories [LuxAlgo]The Ichimoku Theories indicator is the most complete Ichimoku tool you will ever need. Four tools combined into one to harness all the power of Ichimoku Kinkō Hyō.
This tool features the following concepts based on the work of Goichi Hosoda:
Ichimoku Kinkō Hyō: Original Ichimoku indicator with its five main lines and kumo.
Time Theory: automatic time cycle identification and forecasting to understand market timing.
Wave Theory: automatic wave identification to understand market structure.
Price Theory: automatic identification of developing N waves and possible price targets to understand future price behavior.
🔶 ICHIMOKU KINKŌ HYŌ
Ichimoku with lines only, Kumo only and both together
Let us start with the basics: the Ichimoku original indicator is a tool to understand the market, not to predict it, it is a trend-following tool, so it is best used in trending markets.
Ichimoku tells us what is happening in the market and what may happen next, the aim of the tool is to provide market understanding, not trading signals.
The tool is based on calculating the mid-point between the high and low of three pre-defined ranges as the equilibrium price for short (9 periods), medium (26 periods), and long (52 periods) time horizons:
Tenkan sen: middle point of the range of the last 9 candles
Kinjun sen: middle point of the range of the last 26 candles
Senkou span A: middle point between Tankan Sen and Kijun Sen, plotted 26 candles into the future
Senkou span B: midpoint of the range of the last 52 candles, plotted 26 candles into the future
Chikou span: closing price plotted 26 candles into the past
Kumo: area between Senkou pans A and B (kumo means cloud in Japanese)
The most basic use of the tool is to use the Kumo as an area of possible support or resistance.
🔶 TIME THEORY
Current cycles and forecast
Time theory is a critical concept used to identify historical and current market cycles, and use these to forecast the next ones. This concept is based on the Kihon Suchi (translating to "Basic Numbers" in Japanese), these are 9 and 26, and from their combinations we obtain the following sequence:
9, 17, 26, 33, 42, 51, 65, 76, 129, 172, 200, 257
The main idea is that the market moves in cycles with periods set by the Kihon Suchi sequence.
When the cycle has the same exact periods, we obtain the Taito Suchi (translating to "Same Number" in Japanese).
This tool allows traders to identify historical and current market cycles and forecast the next one.
🔹 Time Cycle Identification
Presentation of 4 different modes: SWINGS, HIGHS, KINJUN, and WAVES .
The tool draws a horizontal line at the bottom of the chart showing the cycles detected and their size.
The following settings are used:
Time Cycle Mode: up to 7 different modes
Wave Cycle: Which wave to use when WAVE mode is selected, only active waves in the Wave Theory settings will be used.
Show Time Cycles: keep a cleaner chart by disabling cycles visualisation
Show last X time cycles: how many cycles to display
🔹 Time Cycle Forecast
Showcasing the two forecasting patterns: Kihon Suchi and Taito Suchi
The tool plots horizontal lines, a solid anchor line, and several dotted forecast lines.
The following settings are used:
Show time cycle forecast: to keep things clean
Forecast Pattern: comes in two flavors
Kihon Suchi plots a line from the anchor at each number in the Kihon Suchi sequence.
Taito Suchi plot lines from the anchor with the same size detected in the anchored cycle
Anchor forecast on last X time cycle: traders can place the anchor in any detected cycle
🔶 WAVE THEORY
All waves activated with overlapping
The main idea behind this theory is that markets move like waves in the sea, back and forth (making swing lows and highs). Understanding the current market structure is key to having realistic expectations of what the market may do next. The waves are divided into Simple and Complex.
The following settings are used:
Basic Waves: allows traders to activate waves I, V and N
Complex Waves: allows traders to activate waves P, Y and W
Overlapping waves: to avoid missing out on any of the waves activated
Show last X waves: how many waves will be displayed
🔹 Basic Waves
The three basic waves
The basic waves from which all waves are made are I, V, and N
I wave: one leg moves
V wave: two legs move, one against the other
N wave: Three legs move, push, pull back, and another push
🔹 Complex Waves
Three complex waves
There are other waves like
P wave: contracting market
Y wave: expanding market
W wave: double top or double bottom
🔶 PRICE THEORY
All targets for the current N wave with their calculations
This theory is based on identifying developing N waves and predicting potential price targets based on that developing wave.
The tool displays 4 basic targets (V, E, N, and NT) and 3 extended targets (2E and 3E) according to the calculations shown in the chart above. Traders can enable or disable each target in the settings panel.
🔶 USING EVERYTHING TOGETHER
Please DON'T do this. This is not how you use it
Now the real example:
Daily chart of Nasdaq 100 futures (NQ1!) with our Ichimoku analysis
Time, waves, and price theories go together as one:
First, we identify the current time cycles and wave structure.
Then we forecast the next cycle and possible key price levels.
We identify a Taito Suchi with both legs of exactly 41 candles on each I wave, both together forming a V wave, the last two I waves are part of a developing N wave, and the time cycle of the first one is 191 candles. We forecast this cycle into the future and get 22nd April as a key date, so in 6 trading days (as of this writing) the market would have completed another Taito Suchi pattern if a new wave and time cycle starts. As we have a developing N wave we can see the potential price targets, the price is actually between the NT and V targets. We have a bullish Kumo and the price is touching it, if this Kumo provides enough support for the price to go further, the market could reach N or E targets.
So we have identified the cycle and wave, our expectations are that the current cycle is another Taito Suchi and the current wave is an N wave, the first I wave went for 191 candles, and we expect the second and third I waves together to amount to 191 candles, so in theory the N wave would complete in the next 6 trading days making a swing high. If this is indeed the case, the price could reach the V target (it is almost there) or even the N target if the bulls have the necessary strength.
We do not predict the future, we can only aim to understand the current market conditions and have future expectations of when (time), how (wave), and where (price) the market will make the next turning point where one side of the market overcomes the other (bulls vs bears).
To generate this chart, we change the following settings from the default ones:
Swing length: 64
Show lines: disabled
Forecast pattern: TAITO SUCHI
Anchor forecast: 2
Show last time cycles: 5
I WAVE: enabled
N WAVE: disabled
Show last waves: 5
🔶 SETTINGS
Show Swing Highs & Lows: Enable/Disable points on swing highs and swing lows.
Swing Length: Number of candles to confirm a swing high or swing low. A higher number detects larger swings.
🔹 Ichimoku Kinkō Hyō
Show Lines: Enable/Disable the 5 Ichimoku lines: Kijun sen, Tenkan sen, Senkou span A & B and Chikou Span.
Show Kumo: Enable/Disable the Kumo (cloud). The Kumo is formed by 2 lines: Senkou Span A and Senkou Span B.
Tenkan Sen Length: Number of candles for Tenkan Sen calculation.
Kinjun Sen Length: Number of candles for the Kijun Sen calculation.
Senkou Span B Length: Number of candles for Senkou Span B calculation.
Chikou & Senkou Offset: Number of candles for Chikou and Senkou Span calculation. Chikou Span is plotted in the past, and Senkou Span A & B in the future.
🔹 Time Theory
Show Time Cycle Forecast: Enable/Disable time cycle forecast vertical lines. Disable for better performance.
Forecast Pattern: Choose between two patterns: Kihon Suchi (basic numbers) or Taito Suchi (equal numbers).
Anchor forecast on last X time cycle: Number of time cycles in the past to anchor the time cycle forecast. The larger the number, the deeper in the past the anchor will be.
Time Cycle Mode: Choose from 7 time cycle detection modes: Tenkan Sen cross, Kijun Sen cross, Kumo change between bullish & bearish, swing highs only, swing lows only, both swing highs & lows and wave detection.
Wave Cycle: Choose which type of wave to detect from 6 different wave types when the time cycle mode is set to WAVES.
Show Time Cycles: Enable/Disable time cycle horizontal lines. Disable for better performance.
how last X time cycles: Maximum number of time cycles to display.
🔹 Wave Theory
Basic Waves: Enable/Disable the display of basic waves, all at once or one at a time. Disable for better performance.
Complex Waves: Enable/Disable complex wave display, all at once or one by one. Disable for better performance.
Overlapping Waves: Enable/Disable the display of waves ending on the same swing point.
Show last X waves: 'Maximum number of waves to display.
🔹 Price Theory
Basic Targets: Enable/Disable horizontal price target lines. Disable for better performance.
Extended Targets: Enable/Disable extended price target horizontal lines. Disable for better performance.
Daye Quarterly Theory by toodegrees> Introduction and Acknowledgements
The Daye Quarterly Theory° tool encompasses the cyclical Time aspect of the markets as studied and developed by Daye (traderdaye on Twitter).
I am not the creator of this Theory, and I do not hold the answers to all the questions you may have; I suggest you to study it from Daye's tweets and material.
I collaborated directly with Daye to bring a comprehensive Time tool to Tradingview.
S/O to @a1tmaniac and @joshuuu for their previous works on this Theory.
> Tool Description
This is purely a graphical aid for traders to be able to quickly determine Daye's Quarterly Cycles, and save Time while on the charts.
The disruptive value of this tool is that it reliably plots forwards in Time, allowing you to strategize and tape read efficiently; as well as calculating all the Cycles, from Micro Sessions, to the Year.
> Quarterly Theory by Daye
The underlying idea is that Time is to be divided in Quarters for correct interpretation of Market Cycles. The specific starting point of a Cycle will depend on the Timeframe at hand.
Daye being one of the most prominent Inner Circle Trader students, these ideas stem from ICT's concepts themselves, and are to be used hand in hand (PD Array Matrix, PO3, Institutional Price Levels, ...).
These Quarters represent:
A - Accumulation (required for a cycle to occur)
M - Manipulation
D - Distribution
X - Reversal/Continuation
The latter are going to always be in this specific sequence; however the cycle can be transposed to have its beginning in X, trivially followed by A, M, and finally D.
This feature is not automatic and at the subjective discretion of the Analyst.
Note: this theory has been developed on Futures, hence its validity and reliability may change depending on the market Time.
This tool does provide a dynamic and auto-adapting aspect to different market types and Times, however they must be seen as experimental.
> Quarterly Cycles
The Quarterly Cycles currently supported are: Yearly, Monthly, Weekly, Daily, 90 Minute, Micro Sessions.
– Yearly Cycle:
Analogously to financial quarters, the year is divided in four sections of three months each
Q1 - January, February, March
Q2 - April, May, June (True Open, April Open)
Q3 - July, August, September
Q4 - October, November, December
Note: this Cycle is the most difficult to optimize as Timeframes become more granular due to the sheer length of its duration. With Time and advancements it will become more accurate. This is the only Cycle for which accuracy is not 100%.
– Monthly Cycle:
Considering that we have four weeks in a month, we start the cycle on the first month’s Monday (regardless of the calendar Day).
Q1 - Week 1, first Monday of the month
Q2 - Week 2, second Monday of the month (True Open, Daily Candle Open Price)
Q3 - Week 3, third Monday of the month
Q4 - Week 4, fourth Monday of the month
– Weekly Cycle:
Daye determined that although the trading week is composed by 5 trading days, we should ignore Friday, and the small portion of Sunday’s price action.
Q1 - Monday
Q2 - Tuesday (True Open, Daily Candle Open Price)
Q3 - Wednesday
Q4 - Thursday
– Daily Cycle:
The Day can be broken down into 6H quarters. These Times roughly define the sessions of the Trading Day, reinforcing the Theory’s validity.
Q1 - 18:00 - 00:00, Asian Session
Q2 - 00:00 - 06:00, London Session (True Open, Midnight New York Time)
Q3 - 06:00 - 12:00, NY Session
Q4 - 12:00 - 18:00, PM Session
Note: these Times are based on Futures Trading in New York Time, these will vary depending on the market type (experimental).
– 90 Minute Cycle:
Merely dividing one of the Daily Cycle’s Quarters we obtain 90 minute quarters. The first one in a Trading Day – 90min Cycles of the Asian Session – follows as an example, in New York Time.
Q1 - 18:00 - 19:30
Q2 - 19:30 - 21:00 (True Open)
Q3 - 21:00 - 22:30
Q4 - 22:30 - 00:00
– Micro Cycle:
Lastly, dividing a 90 Minute Cycle yields 22.5 Minute Quarters, known as Micro Sessions. An example breaking down the 90 Minute Cycle from 18:00 to 19:30 follows.
Q1 - 18:00 - 18:22:30
Q2 - 18:22:30 - 18:45 (True Open)
Q3 - 18:45 - 19:07:30
Q4 - 19:07:30 - 19:30
Note: trivially, these may not be exact unless the Timeframe is in the seconds, to correctly account for the half minute in each quarter – this said the tool is able to plot these anyways, although slight inaccuracy needs to be taken account depending on the Timeframe.
It is important to remember and be aware that the current chart’s Timeframe will heavily impact the plotted Time Cycles. This tool is in its initial form and it will be improved and adapted as traders start using it on a daily basis.
> Tool Settings
Plot Settings:
"Plot Type" will allow you to decide how the Cycles will be displayed. Out of the box the tool will be plotted on a separate pane, at the bottom of the chart; you can decide the orientation of the cycles from longest cycle at the bottom (Bottom Pane), or top (Top Pane). Alternatively you can move the tool to the chart and have the cycles plot on price (Move To -> Existing Pane Above), specifically above price (Top), or below (Bottom). The cycles will auto adjust their position based on the visible price action.
"Historical Cycles" will show previous Historical Cycles, up to where available in terms of script memory.
"Plot Size" will allow you to vary the height of the Cycle’s boxes
"Show Labels" will give you an auto-adapting legend which will help you determine which Cycle is which if you get lost.
The remaining Settings are self explanatory, allowing you to change colors, and choose which Cycles to see.
The source of the code is hidden due to the use of private libraries of mine. Happy to answer any questions in terms of code, where I will not be able to divulge any detail that concerns said libraries. Thank you for understanding!
Major thanks to Daye for his Time and Knowledge, it was a pleasure to collaborate and work together on this tool.
GLGT!
AlgoCados x Gann Toolkit AnalysisAlgoCados x Gann Toolkit Analysis
The "AlgoCados x Gann Toolkit Analysis" is an advanced TradingView indicator combining the principles of W.D. Gann’s methodologies with the power of custom anchor points and time cycles. Tailored for traders seeking precision in market timing and price-level analysis, this toolkit integrates the Anchored Square of 9, customizable Gann Fans, and Time cycles. It offers unparalleled flexibility, allowing users to apply Gann’s techniques across different market assets and timeframes by squaring the chart, providing insights into support, resistance, and potential trend reversals.
CME_MINI:NQH2025
# Core Functionalities
# Gann’s Square of 9 Price Projections
This indicator applies Gann’s Square of 9 principles, allowing traders to anchor price projections at significant highs, lows, opens, or closes. By following the Gann Wheel methodology, it calculates critical support and resistance levels through angular shifts, providing accurate projections based on the chosen anchor point. Traders can adjust the anchor to align with various market conditions, refining their analysis according to their preferred starting price.
# Gann’s Cycles Time Projection
Incorporating Gann’s natural cycles of 144 and 360, this indicator utilizes bar index logic to project time cycles, best suited for unit-based timeframes (e.g., 1 minute, 1 hour, 1 day). These time projections are plotted dynamically, adapting in real time to new data and offering a structured view of Gann’s cyclical approach to market timing.
# Customizable Gann Fans
The toolkit includes a flexible Gann Fan module that lets traders scale ratios around a user-defined “1x1” ratio, making it adaptable across different assets and timeframes. With seven standard fan lines (1x1, 2x1, 4x1, 8x1, 1x2, 1x4, 1x8), each line is drawn dynamically based on the selected anchor point, providing insights into price action direction and potential support/resistance zones. These fans can be positioned for both bullish and bearish setups.
# Square of 4 Projections
By dividing Gann’s 360° cycles into four 90° segments, the indicator generates additional projections for more granular analysis. These divisions highlight key support/resistance levels, allowing traders to observe market responses at each 90° increment and identify potential reversal points. By default users will view larger cycles, up to 5760°, to capture significant long-term trends.
# Dynamic Labeling and Visualization
The indicator features customizable line styles (solid, dotted, dashed) and labeling options (Levels, Prices, Levels + Prices). This flexibility allows traders to create clear, structured chart visuals that reflect their analytical needs. Dynamic labels display degrees and prices for each projection, helping traders understand price movements at a glance.
CME_MINI:NQH2025
# Mathematical Foundation and Indicator Logic
# Anchor Point Calculation
The selected anchor (High, Low, Open, or Close) serves as the baseline for Gann calculations, determining all subsequent projections. Users can control the anchor time and adjust for offsets to optimize alignment with key market events.
# Angular Shifts and Square Root Scaling
Projections are calculated by applying angular shifts to the square root of the anchor price, with the toolkit generating both positive and negative deviations. This method reveals potential price levels by mapping out a series of support and resistance points based on Gann’s cyclic philosophy.
# Time Cycle Analysis_ 144 & 360 Cycles
Utilizing the bar index logic, the indicator plots time projections aligned with Gann’s 144 and 360 cycles, which apply best to unit-based timeframes like 1 minute, 1 hour, 1 day, etc. Time cycles are labeled and extended dynamically, ensuring the chart reflects real-time market shifts as new bars are added.
# Key Features and Customization Options
# Adjustable Angular Shifts and Cycles
Angular shifts from 360° to 5760° are available, offering detail from intraday to long-term trends. The Square of 4 cycles enhance analysis by dividing the 360° Gann Wheel into four equal parts, revealing critical resistance/support points within each cycle.
# Fully Customizable Projection Lines
Projection lines are customizable by style (solid, dotted, dashed) and color, ensuring a clear distinction between equilibrium, support, and resistance levels. The toolkit also includes separate settings for upper and lower deviations, allowing traders to focus on specific market directions.
# Flexible Input Settings for Time and Price
Users can set anchor points, time cycles, line styles, and labels with precision, tailoring the indicator to any asset, timeframe, or market condition.
# Dynamic Labeling and Offsets
Each projection line displays dynamic labels that show angular shifts and associated prices, enhancing readability and ease of analysis. Labels can be offset to avoid chart clutter, creating a clean and user-friendly chart.
CME_MINI:NQH2025
# Recommended Usage
# Time Cycles for Key Market Events
Anchor points should align with major highs or lows to reflect accurate time cycles. The toolkit’s flexibility in time cycle selection (1x1, 144, or 360 cycles) ensures precision in market timing analysis. Ideal for unit-based timeframes such as 1 minute, 1 hour, 1 day, 1 week, or 1 month.
# Price Levels with Gann Fans
Set anchor points on significant highs or lows to apply the Gann Fan tool effectively, projecting key price levels across multiple timeframes; the default fan is set on 1x1 (one price unit for one time unit), the ratio can be manually changed based on the chart specifics.
# Square of 4 Analysis
Dividing Gann Wheels into 90° segments allows traders to identify critical support and resistance levels within each 360° cycle. This feature is ideal for pinpointing intraday reversals or aligning with long-term trend cycles.
# Technical Overview
Indicator Name : AlgoCados x Gann Toolkit Analysis
Platform Compatibility : TradingView
Version : Pine Script v6
License: Mozilla Public License 2.0
Author : AlgoCados, © 2025
Overlay : True (overlays directly on price chart)
Core Functions : Anchored Square of 9, Customizable Gann Fans, and Time-Cycles projections
Customizable Settings : Anchor time/point, Angular shifts, Time cycles, Fan ratios, Label styles
Maximize Gann Analysis Precision with AlgoCados; Healthy with Your Trading!
SFC Smart Money Manipulation - Time, Advanced Market StructureThis indicator shows the market structure in more advanced way and different time cycles.
Markets moves in cycles and swings. The indicator will help to determine these cycles and swings by time and price. These are the two columns of the market understanding. The third one is volume/ momentum, but it will not be discussed here.
Advanced Market Structure
According to ICT and Larry Williams Market Structure is not only Highs and Lows.
They present more advanced understanding of the MS:
-Short Term Highs/ Lows
-Intermediate Term Highs/ Lows
-Long Term Highs/ Lows
Rules of how to determine the Swing Points according to Larry Williams:
"A market has made a short-term low when we have a day (or bar if you are using different time periods) that has a higher low on both sides. By the same token a short-term high will be a day (or bar) that has lower bars on both sides of it."
"A short-term high with lower short-term highs on both sides is an intermediate- term high. By the same token, a short-term low with higher short-term lows on both sides is an intermediate-term low."
"An intermediate-term high with lower intermediate-term highs on both sides of it is just naturally a long-term high by our definition, thanks to understanding market structure.
An intermediate-term low with higher intermediate-term lows on both sides of it is just naturally a long-term low by our definition, thanks to understanding market structure."
If the Highs and Lows are labeled properly there is high probability to predict the next High or Low. In this way the trader will know how the current trend is changing and what kind of retracement is coming - deep or shallow.
Timing
Market moves in time cycles.
There is a theory that the swings are equal by time and length. This is not always the case, but very very often.
Indicator time features:
- Swing Trading days - how many time market needed to form a swing. Only Long term(main) Swings are measured. This will help trader to label T-formations.
" T Formations is cyclically related for formations that can be drawn to project the time frame of likely turning points. Basically T-formations are based on the concept that the time distance between the starting low/high of the cyclical wave and its peak is likely to be subsequently repeated between that peak and the final low/high of that cycle."
- Seasonality - theoretically an asset should go up or down in particular yearly quarter. Practically the direction not always match to quarters. Thats why the indicator shows the theoretical seasonal direction and historical real direction.
Seasonal direction is automatically displayed or XAUUSD, XAGUSD, EURUSD, AUDUSD, GBPUSD. There is a ways to set the seasonality manually.
- Earnings Season - This time is very important for Stocks and Indices. Most of the time the assets are in bullish trend during the Earnings Seasons.
- Monthly separator - Shows the monthly time cycle
- Gold bullish months - There are studies on Gold market. They shows that Gold is very bullish in particular months. These are displayed.
The indicator works only on Daily Time Frame.
Quinn-Fernandes Fourier Transform of Filtered Price [Loxx]Down the Rabbit Hole We Go: A Deep Dive into the Mysteries of Quinn-Fernandes Fast Fourier Transform and Hodrick-Prescott Filtering
In the ever-evolving landscape of financial markets, the ability to accurately identify and exploit underlying market patterns is of paramount importance. As market participants continuously search for innovative tools to gain an edge in their trading and investment strategies, advanced mathematical techniques, such as the Quinn-Fernandes Fourier Transform and the Hodrick-Prescott Filter, have emerged as powerful analytical tools. This comprehensive analysis aims to delve into the rich history and theoretical foundations of these techniques, exploring their applications in financial time series analysis, particularly in the context of a sophisticated trading indicator. Furthermore, we will critically assess the limitations and challenges associated with these transformative tools, while offering practical insights and recommendations for overcoming these hurdles to maximize their potential in the financial domain.
Our investigation will begin with a comprehensive examination of the origins and development of both the Quinn-Fernandes Fourier Transform and the Hodrick-Prescott Filter. We will trace their roots from classical Fourier analysis and time series smoothing to their modern-day adaptive iterations. We will elucidate the key concepts and mathematical underpinnings of these techniques and demonstrate how they are synergistically used in the context of the trading indicator under study.
As we progress, we will carefully consider the potential drawbacks and challenges associated with using the Quinn-Fernandes Fourier Transform and the Hodrick-Prescott Filter as integral components of a trading indicator. By providing a critical evaluation of their computational complexity, sensitivity to input parameters, assumptions about data stationarity, performance in noisy environments, and their nature as lagging indicators, we aim to offer a balanced and comprehensive understanding of these powerful analytical tools.
In conclusion, this in-depth analysis of the Quinn-Fernandes Fourier Transform and the Hodrick-Prescott Filter aims to provide a solid foundation for financial market participants seeking to harness the potential of these advanced techniques in their trading and investment strategies. By shedding light on their history, applications, and limitations, we hope to equip traders and investors with the knowledge and insights necessary to make informed decisions and, ultimately, achieve greater success in the highly competitive world of finance.
█ Fourier Transform and Hodrick-Prescott Filter in Financial Time Series Analysis
Financial time series analysis plays a crucial role in making informed decisions about investments and trading strategies. Among the various methods used in this domain, the Fourier Transform and the Hodrick-Prescott (HP) Filter have emerged as powerful techniques for processing and analyzing financial data. This section aims to provide a comprehensive understanding of these two methodologies, their significance in financial time series analysis, and their combined application to enhance trading strategies.
█ The Quinn-Fernandes Fourier Transform: History, Applications, and Use in Financial Time Series Analysis
The Quinn-Fernandes Fourier Transform is an advanced spectral estimation technique developed by John J. Quinn and Mauricio A. Fernandes in the early 1990s. It builds upon the classical Fourier Transform by introducing an adaptive approach that improves the identification of dominant frequencies in noisy signals. This section will explore the history of the Quinn-Fernandes Fourier Transform, its applications in various domains, and its specific use in financial time series analysis.
History of the Quinn-Fernandes Fourier Transform
The Quinn-Fernandes Fourier Transform was introduced in a 1993 paper titled "The Application of Adaptive Estimation to the Interpolation of Missing Values in Noisy Signals." In this paper, Quinn and Fernandes developed an adaptive spectral estimation algorithm to address the limitations of the classical Fourier Transform when analyzing noisy signals.
The classical Fourier Transform is a powerful mathematical tool that decomposes a function or a time series into a sum of sinusoids, making it easier to identify underlying patterns and trends. However, its performance can be negatively impacted by noise and missing data points, leading to inaccurate frequency identification.
Quinn and Fernandes sought to address these issues by developing an adaptive algorithm that could more accurately identify the dominant frequencies in a noisy signal, even when data points were missing. This adaptive algorithm, now known as the Quinn-Fernandes Fourier Transform, employs an iterative approach to refine the frequency estimates, ultimately resulting in improved spectral estimation.
Applications of the Quinn-Fernandes Fourier Transform
The Quinn-Fernandes Fourier Transform has found applications in various fields, including signal processing, telecommunications, geophysics, and biomedical engineering. Its ability to accurately identify dominant frequencies in noisy signals makes it a valuable tool for analyzing and interpreting data in these domains.
For example, in telecommunications, the Quinn-Fernandes Fourier Transform can be used to analyze the performance of communication systems and identify interference patterns. In geophysics, it can help detect and analyze seismic signals and vibrations, leading to improved understanding of geological processes. In biomedical engineering, the technique can be employed to analyze physiological signals, such as electrocardiograms, leading to more accurate diagnoses and better patient care.
Use of the Quinn-Fernandes Fourier Transform in Financial Time Series Analysis
In financial time series analysis, the Quinn-Fernandes Fourier Transform can be a powerful tool for isolating the dominant cycles and frequencies in asset price data. By more accurately identifying these critical cycles, traders can better understand the underlying dynamics of financial markets and develop more effective trading strategies.
The Quinn-Fernandes Fourier Transform is used in conjunction with the Hodrick-Prescott Filter, a technique that separates the underlying trend from the cyclical component in a time series. By first applying the Hodrick-Prescott Filter to the financial data, short-term fluctuations and noise are removed, resulting in a smoothed representation of the underlying trend. This smoothed data is then subjected to the Quinn-Fernandes Fourier Transform, allowing for more accurate identification of the dominant cycles and frequencies in the asset price data.
By employing the Quinn-Fernandes Fourier Transform in this manner, traders can gain a deeper understanding of the underlying dynamics of financial time series and develop more effective trading strategies. The enhanced knowledge of market cycles and frequencies can lead to improved risk management and ultimately, better investment performance.
The Quinn-Fernandes Fourier Transform is an advanced spectral estimation technique that has proven valuable in various domains, including financial time series analysis. Its adaptive approach to frequency identification addresses the limitations of the classical Fourier Transform when analyzing noisy signals, leading to more accurate and reliable analysis. By employing the Quinn-Fernandes Fourier Transform in financial time series analysis, traders can gain a deeper understanding of the underlying financial instrument.
Drawbacks to the Quinn-Fernandes algorithm
While the Quinn-Fernandes Fourier Transform is an effective tool for identifying dominant cycles and frequencies in financial time series, it is not without its drawbacks. Some of the limitations and challenges associated with this indicator include:
1. Computational complexity: The adaptive nature of the Quinn-Fernandes Fourier Transform requires iterative calculations, which can lead to increased computational complexity. This can be particularly challenging when analyzing large datasets or when the indicator is used in real-time trading environments.
2. Sensitivity to input parameters: The performance of the Quinn-Fernandes Fourier Transform is dependent on the choice of input parameters, such as the number of harmonic periods, frequency tolerance, and Hodrick-Prescott filter settings. Choosing inappropriate parameter values can lead to inaccurate frequency identification or reduced performance. Finding the optimal parameter settings can be challenging, and may require trial and error or a more sophisticated optimization process.
3. Assumption of stationary data: The Quinn-Fernandes Fourier Transform assumes that the underlying data is stationary, meaning that its statistical properties do not change over time. However, financial time series data is often non-stationary, with changing trends and volatility. This can limit the effectiveness of the indicator and may require additional preprocessing steps, such as detrending or differencing, to ensure the data meets the assumptions of the algorithm.
4. Limitations in noisy environments: Although the Quinn-Fernandes Fourier Transform is designed to handle noisy signals, its performance may still be negatively impacted by significant noise levels. In such cases, the identification of dominant frequencies may become less reliable, leading to suboptimal trading signals or strategies.
5. Lagging indicator: As with many technical analysis tools, the Quinn-Fernandes Fourier Transform is a lagging indicator, meaning that it is based on past data. While it can provide valuable insights into historical market dynamics, its ability to predict future price movements may be limited. This can result in false signals or late entries and exits, potentially reducing the effectiveness of trading strategies based on this indicator.
Despite these drawbacks, the Quinn-Fernandes Fourier Transform remains a valuable tool for financial time series analysis when used appropriately. By being aware of its limitations and adjusting input parameters or preprocessing steps as needed, traders can still benefit from its ability to identify dominant cycles and frequencies in financial data, and use this information to inform their trading strategies.
█ 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.
Another significant advantage of the HP Filter is its ability to adapt to changes in the underlying trend. This feature makes it particularly well-suited for analyzing financial time series, which often exhibit non-stationary behavior. By employing the HP Filter to smooth financial data, traders can more accurately identify and analyze the long-term trends that drive asset prices, ultimately leading to better-informed investment decisions.
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.
█ Combined Application of Fourier Transform and Hodrick-Prescott Filter
The integration of the Fourier Transform and the Hodrick-Prescott Filter in financial time series analysis can offer several benefits. By first applying the HP Filter to the financial data, traders can remove short-term fluctuations and noise, effectively isolating the underlying trend. This smoothed data can then be subjected to the Fourier Transform, allowing for the identification of dominant cycles and frequencies with greater precision.
By combining these two powerful techniques, traders can gain a more comprehensive understanding of the underlying dynamics of financial time series. This enhanced knowledge can lead to the development of more effective trading strategies, better risk management, and ultimately, improved investment performance.
The Fourier Transform and the Hodrick-Prescott Filter are powerful tools for financial time series analysis. Each technique offers unique benefits, with the Fourier Transform being adept at identifying dominant cycles and frequencies, and the HP Filter excelling at isolating long-term trends from short-term noise. By combining these methodologies, traders can develop a deeper understanding of the underlying dynamics of financial time series, leading to more informed investment decisions and improved trading strategies. As the financial markets continue to evolve, the combined application of these techniques will undoubtedly remain an essential aspect of modern financial analysis.
█ Features
Endpointed and Non-repainting
This is an endpointed and non-repainting indicator. These are crucial factors that contribute to its usefulness and reliability in trading and investment strategies. Let us break down these concepts and discuss why they matter in the context of a financial indicator.
1. Endpoint nature: An endpoint indicator uses the most recent data points to calculate its values, ensuring that the output is timely and reflective of the current market conditions. This is in contrast to non-endpoint indicators, which may use earlier data points in their calculations, potentially leading to less timely or less relevant results. By utilizing the most recent data available, the endpoint nature of this indicator ensures that it remains up-to-date and relevant, providing traders and investors with valuable and actionable insights into the market dynamics.
2. Non-repainting characteristic: A non-repainting indicator is one that does not change its values or signals after they have been generated. This means that once a signal or a value has been plotted on the chart, it will remain there, and future data will not affect it. This is crucial for traders and investors, as it offers a sense of consistency and certainty when making decisions based on the indicator's output.
Repainting indicators, on the other hand, can change their values or signals as new data comes in, effectively "repainting" the past. This can be problematic for several reasons:
a. Misleading results: Repainting indicators can create the illusion of a highly accurate or successful trading system when backtesting, as the indicator may adapt its past signals to fit the historical price data. This can lead to overly optimistic performance results that may not hold up in real-time trading.
b. Decision-making uncertainty: When an indicator repaints, it becomes challenging for traders and investors to trust its signals, as the signal that prompted a trade may change or disappear after the fact. This can create confusion and indecision, making it difficult to execute a consistent trading strategy.
The endpoint and non-repainting characteristics of this indicator contribute to its overall reliability and effectiveness as a tool for trading and investment decision-making. By providing timely and consistent information, this indicator helps traders and investors make well-informed decisions that are less likely to be influenced by misleading or shifting data.
Inputs
Source: This input determines the source of the price data to be used for the calculations. Users can select from options like closing price, opening price, high, low, etc., based on their preferences. Changing the source of the price data (e.g., from closing price to opening price) will alter the base data used for calculations, which may lead to different patterns and cycles being identified.
Calculation Bars: This input represents the number of past bars used for the calculation. A higher value will use more historical data for the analysis, while a lower value will focus on more recent price data. Increasing the number of past bars used for calculation will incorporate more historical data into the analysis. This may lead to a more comprehensive understanding of long-term trends but could also result in a slower response to recent price changes. Decreasing this value will focus more on recent data, potentially making the indicator more responsive to short-term fluctuations.
Harmonic Period: This input represents the harmonic period, which is the number of harmonics used in the Fourier Transform. A higher value will result in more harmonics being used, potentially capturing more complex cycles in the price data. Increasing the harmonic period will include more harmonics in the Fourier Transform, potentially capturing more complex cycles in the price data. However, this may also introduce more noise and make it harder to identify clear patterns. Decreasing this value will focus on simpler cycles and may make the analysis clearer, but it might miss out on more complex patterns.
Frequency Tolerance: This input represents the frequency tolerance, which determines how close the frequencies of the harmonics must be to be considered part of the same cycle. A higher value will allow for more variation between harmonics, while a lower value will require the frequencies to be more similar. Increasing the frequency tolerance will allow for more variation between harmonics, potentially capturing a broader range of cycles. However, this may also introduce noise and make it more difficult to identify clear patterns. Decreasing this value will require the frequencies to be more similar, potentially making the analysis clearer, but it might miss out on some cycles.
Number of Bars to Render: This input determines the number of bars to render on the chart. A higher value will result in more historical data being displayed, but it may also slow down the computation due to the increased amount of data being processed. Increasing the number of bars to render on the chart will display more historical data, providing a broader context for the analysis. However, this may also slow down the computation due to the increased amount of data being processed. Decreasing this value will speed up the computation, but it will provide less historical context for the analysis.
Smoothing Mode: This input allows the user to choose between two smoothing modes for the source price data: no smoothing or Hodrick-Prescott (HP) smoothing. The choice depends on the user's preference for how the price data should be processed before the Fourier Transform is applied. Choosing between no smoothing and Hodrick-Prescott (HP) smoothing will affect the preprocessing of the price data. Using HP smoothing will remove some of the short-term fluctuations from the data, potentially making the analysis clearer and more focused on longer-term trends. Not using smoothing will retain the original price fluctuations, which may provide more detail but also introduce noise into the analysis.
Hodrick-Prescott Filter Period: This input represents the Hodrick-Prescott filter period, which is used if the user chooses to apply HP smoothing to the price data. A higher value will result in a smoother curve, while a lower value will retain more of the original price fluctuations. Increasing the Hodrick-Prescott filter period will result in a smoother curve for the price data, emphasizing longer-term trends and minimizing short-term fluctuations. Decreasing this value will retain more of the original price fluctuations, potentially providing more detail but also introducing noise into the analysis.
Alets and signals
This indicator featues alerts, signals and bar coloring. You have to option to turn these on/off in the settings menu.
Maximum Bars Restriction
This indicator requires a large amount of processing power to render on the chart. To reduce overhead, the setting "Number of Bars to Render" is set to 500 bars. You can adjust this to you liking.
█ Related Indicators and Libraries
Goertzel Cycle Composite Wave
Goertzel Browser
Fourier Spectrometer of Price w/ Extrapolation Forecast
Fourier Extrapolator of 'Caterpillar' SSA of Price
Normalized, Variety, Fast Fourier Transform Explorer
Real-Fast Fourier Transform of Price Oscillator
Real-Fast Fourier Transform of Price w/ Linear Regression
Fourier Extrapolation of Variety Moving Averages
Fourier Extrapolator of Variety RSI w/ Bollinger Bands
Fourier Extrapolator of Price w/ Projection Forecast
Fourier Extrapolator of Price
STD-Stepped Fast Cosine Transform Moving Average
Variety RSI of Fast Discrete Cosine Transform
loxfft
dmn's ICT AMD-Goldbach█ OVERVIEW
This script is built on ICT time & price theory and the theory of algorithmic market maker models, and visualizes the intraday divided using powers of three into accumulation, manipulation and distribution cycles.
It also includes an automatically calculated and plotted Goldbach level (a.k.a. IPDA level or Huddleston level) overlay, to help visualize where in the current market maker profile price is in relation to the AMD cycles, and where it might trade to.
█ CONCEPTS
Accumulation, Manipulation, Distribution Cycles
A 24 hour day, with the default set to start at 20:00 CET (the start of the Forex CLS Settlement operational timeline) is split in three parts - 9, 6 and 9 hours for the three cycles (roughly corresponding with Asia, London Open and New York + London Close sessions).
Since charts are fractals, there's also intra-cycle time fibs available in the script, to highlight the smaller fractal equivalents in each cycle.
These cycles are used to visualize the three phases (AMD) for easier identification of the current daily profile by analyzing during what cycle highs and lows of the day are made.
An example of a bullish day could be price rallying before making a low during the accumulation cycle, being manipulated higher and retracing to form an optimal trade entry during the manipulation cycle, expanding and creating the high of the day before selling off during the distribution cycle, with a potential reversal before it ends.
Goldbach levels
The Goldbach levels are based on the size of a price range (or price swing, if you will) expressed as a factor of power of three (3^n).
To decide what number to tell the script to use for the calculation, we look at what 3^n number best fits an average swing on the preferred timeframe we're trading.
For example; PO3 27 (3^3)might be fit for scalping, while PO3 243 (3^5) may correspond to the daily or weekly range, depending on the asset.
The script then calculates a range high and a range low using a power of three formula based on the current price and divides it into levels using Goldbach numbers.
At these levels one might expect to see price form various "blocks" as defined in concept by Michael J. Huddleston.
The blocks that correspond to the Goldbach levels are labeled with abbreviations as follows:
Ext = External range
Low = Range low
High = Range high
FVG = Fair value gap
RB = Rejection block
OB = Order block
LV = Liquidity void
BR = Breaker
MB = Mitigation block
Using these levels and said blocks we identify where in the current running market maker profile price is offered, and trade the preferred timeframe in line with the AMD cycles accordingly.
█ FEATURES
Custom AMD time cycles session times.
Custom time fib for fractal cycles.
Color and style customization.
Show only current or also historical cycles.
Equilibrium mode for Goldbach levels (show only high/low and midpoint)
Autodetection of asset type, with manual override.
█ NOTE
The default timings for the AMD cycles are set up for Forex pairs. For other asset types, such as indices, other timings are nessecary for optimal results.
Goldbach levels requires the correct symbol type setting for the calculation to work properly. Disable the script's autodetection and enable/disable the Forex option according to the type of chart if it fails.
BTI - Bitcoin (BTC) Top Indicator [Logue]Bitcoin top indicator. This indicator is a combination of multiple on-chain and seasonality BTC macro cycle top indicators, plus the Pi-Cycle top moving average. Because there is no magic single indicator to detect macro cycle tops in bitcoin, the BTI detects confluence of multiple indicators to select tops of each BTC macro cycle. The individual indicators used for the BTI are:
1) Cumulative Value Days Destroyed (CVDD) - The CVDD was created by Willy Woo and is the ratio of the cumulative value of Coin Days Destroyed in USD and the market age (in days). While this indicator is used to detect bottoms normally, an extension is used to allow detection of BTC tops. When the BTC price goes above the CVDD extension, BTC is generally considered to be overvalued. Because the "strength" of the BTC tops has decreased over the cycles, a logarithmic function for the extension was created by fitting past cycles as log extension = slope * time + intercept. This indicator is triggered when the BTC price is above the CVDD extension.
2) Net Unrealized Profit Loss (NUPL) - The NUPL measures the profit state of the bitcoin network to determine if past transfers of BTC are currently in an unrealized profit or loss state.
Values above zero indicate that the network is in overall profit, while values below zero indicate the network is in overall loss. Highly positive NUPL values indicate overvaluation of the BTC network. Based on decreasing "strength" of BTC tops, a decreasing linear function (trigger = slope * time + intercept) was fit to past cycle tops. Therefore, future trigger values can be calculated over time. This indicator is triggered when the NUPL is above the trigger value.
3) Market Value-Realized Value Z-score (MVRV-Z) - The MVRV-Z measures the value of the bitcoin network by comparing the market cap to the realized value and dividing by the standard deviation of the market cap (market cap – realized cap) / std(market cap)). When the market value is significantly higher than the realized value, the bitcoin network is "overvalued". Very high values have signaled cycle tops in the past. This indicator is triggered when the MVRVZ value is above 55.
4) Puell multiple (PUELL) - PUELL is the ratio between the daily coin issuance in USD and its 365-day moving average. This multiple helps to measure miner profitability. When the PUELL goes to extremely high values relative to historical values, it indicates the profitability of the miners is very high and a top may be near. This indicator triggers when the PUELL is above 3.33.
5) Calendar Seasonality Index (CSI) - The CSI takes advantage of the consistency of BTC cycles. Past cycles have formed macro tops every four years between October 21st and December 12th. Therefore, this indicator triggers at set times that are marked every four years between these two dates.
6) Halving Seasonality Index (HSI) - The HSI, as with the CSI, takes advantage of the consistency of BTC cycles following the major event that is the halving. Aside from the first halving cycle, cycles have formed macro tops approximately 538 days after each halving. Therefore, this indicator triggers at set times that are marked 528 to 548 days (i.e., 538 +- 10 days) after each halving.
7) Polylog Regression (PLR) - The BTC cycle tops and bottoms were separately fit using a polynomial regression for the PLR. The bottom band was fit on much more data than the top band, so is likely to be more reliable. The shape of the regression into the future was estimated, so may not be accurate into the future, but is the best fit of tops and bottoms to date. This indicator is used to estimate when tops and bottoms are near when the price goes into the top or bottom bands. This triggers when the BTC price is inside or above the upper polylog regression channel.
8) Realized Price (RP) - The RP is summation of the value of each BTC when it last moved divided by the total number of BTC in circulation. This gives an estimation of the average "purchase" price of BTC on the bitcoin network based on when it was last transacted. This indicator tells us if the average network participant is in a state of profit or loss. This indicator is normally used to detect BTC bottoms, but an extension can be used to detect when the bitcoin network is "highly" overvalued. Because the "strength" of the BTC tops has decreased over the cycles, a logarithmic function for the extension was created by fitting past cycles as log extension = slope * time + intercept. This indicator triggers when the BTC price is above the realized price extension.
9) Pi-cycle Top (PCT) - The PCT indicator is simply the cross of the 111-day moving average above a 2x multiple of the 350-day moving average of the BTC price. While there is no fundamental reasoning behind why this works, it has worked to indicate previous bitcoin tops by taking advantage of the cyclicality of the BTC price and measurement overextension of BTC price. This indicator triggers when the fast moving average (111-day) crosses above the 2x multiple of the slow moving average (350-day).
10) Transaction Fee Spike (TFS) - Transaction fees on the bitcoin network can signal a mania phase when they increase well above historical values. This mania phase may indicate we are near a top in the BTC price. The daily transaction fee total in USD is divided by the number of daily transactions to calculate the average transaction fee paid on the bitcoin network. The transaction fees increasing above $40 trigger this indicator.
The on-chain indicators (CVDD, NUPL, MVRV-Z, PUELL, RP, and TFS) work together to give a health check of the BTC price as compared to its network health. The seasonality indicators (CSI, HSI, and PLR) work together to map the macro cycles of BTC. The PCT gives a view of the overvaluation of the BTC price. Each of these indicators is weighted evenly when selected and if over 45% of the indicators are triggering on a candle (i.e., at least 5 of 10), the overall BTI indicator prints a clear signal -- a red dot with a white middle portion between the white horizontal lines at the top of the indicator. This signal is meant to indicate when the macro cycle top is likely already hit or is near. Each of the individual indicators used for the BTI are proven macro top indicators over multiple cycles.
Each of the individual indicators are shown in their own rows to visualize which indicators are triggering. You are able to deselect any indicator you do not wish to have considered and select it back again. To prepare you for indicators triggering, the BTI shows dark blue or dark green when the indicator is close to triggering (i.e., generally around 20% from the trigger value, a less intense background will appear, and 10% from the trigger value, a more intense background will appear). The color of the individual indicators turns pink when they are triggered. The background color of the BTI becomes blue when at least 30% of the indicators considered are triggering and it becomes purple/pink when the BTI fully triggers. See the BTC chart above the indicator showing the performance of the indicator in picking out macro top regions (red dots with white middle portion). Because not all daily data for BTC can be shown on one chart, ensure you also play with the indictor yourself. The BLX is most appropriate, but the indicator works on all BTC/USD charts. Because of the limits imposed by TradingView, the indicator doesn't work on time frames lower than 4 h or higher than the weekly.
You can use this indicator to help you understand when the BTC price is more likely topping based on past performance of these indicators. This indicator pairs with the BBI (Bitcoin (BTC) Bottom Indictor) and the BTB (Bitcoin Top and Bottom indicator).
Use this indicator at your own risk. I make no assertions that this indicator will work to detect any future top since we all know that past performance is no guarantee of future results.
BBI - Bitcoin (BTC) Bottom Indicator [Logue]This indicator is a combination of multiple on-chain and seasonality BTC macro cycle bottom indicators. Because there is no magic single indicator to detect macro cycle bottoms in bitcoin, the BBI detects confluence of multiple indicators to select bottoms of each BTC macro cycle. The individual indicators used for the BBI are:
1) Cumulative Value Days Destroyed (CVDD) - The CVDD was created by Willy Woo and is the ratio of the cumulative value of Coin Days Destroyed in USD and the market age (in days). When the BTC price goes below this value, BTC is generally considered to be undervalued. This indicator is triggered when the BTC price is below the CVDD.
2) Net Unrealized Profit Loss (NUPL) - The NUPL measures the profit state of the bitcoin network to determine if past transfers of BTC are currently in an unrealized profit or loss state.
Values above zero indicate that the network is in overall profit, while values below zero indicate the network is in overall loss. Highly negative NUPL values indicate an undervaluation of the BTC network. This indicator is triggered when the NUPL is below -15.
3) Market Value-Realized Value Z-score (MVRV-Z) - The MVRV-Z measures the value of the bitcoin network by comparing the market cap to the realized value and dividing by the standard deviation of the market cap (market cap – realized cap) / std(market cap)). When the market value is significantly lower than the realized value, the bitcoin network is "undervalued". Very low values have signaled cycle bottoms in the past. This indicator is triggered when the MVRVZ value is below 4.
4) Puell multiple (PUELL) - PUELL is the ratio between the daily coin issuance in USD and its 365-day moving average. This multiple helps to measure miner profitability. When the PUELL goes to extremely low values relative to historical values, it indicates the profitability of the miners is low and a bottom may be near. This indicator triggers when the PUELL is below 0.4.
5) Calendar Seasonality Index (CSI) - The CSI takes advantage of the consistency of BTC cycles. Past cycles have formed macro bottoms every four years between December and February. Therefore, this indicator triggers at set times that are marked every four years in December, January, or February.
6) Halving Seasonality Index (HSI) - The HSI, as with the CSI, takes advantage of the consistency of BTC cycles following the major event that is the halving. Past cycles have formed macro bottoms approximately 948 days after each halving. Therefore, this indicator triggers at set times that are marked 903-993 days (i.e., 948 +- 45 days) after each halving.
7) Polylog Regression (PLR) - The BTC cycle tops and bottoms were separately fit using a polynomial regression for the PLR. The bottom band was fit on much more data than the top band, so is likely to be more reliable. The shape of the regression into the future was estimated, so may not be accurate into the future, but is the best fit of tops and bottoms to date. This indicator is used to estimate when tops and bottoms are near when the price goes into the top or bottom bands. This triggers when the BTC price is inside or below the lower polylog regression channel.
8) Realized Price (RP) - The RP is summation of the value of each BTC when it last moved divided by the total number of BTC in circulation. This gives an estimation of the average "purchase" price of BTC on the bitcoin network based on when it was last transacted. This indicator tells us if the average network participant is in a state of profit or loss. This indicator triggers when the BTC price is below the realized price.
9) Hash Rate Capitulation (HRC) - The HRC indicator measures the rate of change of the hash rate. Steadily increasing hash rate is a sign of health of the bitcoin network. This indicator uses moving averages (20- and 100-day) of the hash rate to indicate when a decrease in the rate of change is has occurred (i.e., the 20-day MA goes below the 100-day MA). This indicator triggers when the 20-day moving average of the hash rate going below the 100-day moving average.
The on-chain indicators (CVDD, NUPL, MVRV-Z, PUELL, RP, and HRC) work together to give a health check of the BTC price as compared to its network health. The seasonality indicators (CSI, HSI, and PLR) work together to map the macro cycles of BTC. Each of these indicators is weighted evenly when selected and if over 40% of the indicators are triggering on a candle (i.e., at least 4 of 9), the overall BBI indicator prints a clear signal -- a green dot with a white middle portion between the white horizontal lines at the top of the indicator. This signal is meant to indicate when the macro cycle bottom is likely already hit or is near. Each of the individual indicators used for the BBI are proven macro bottom indicators over multiple cycles.
Each of the individual indicators are shown in their own rows to visualize which indicators are triggering. You are able to deselect any indicator you do not wish to have considered and select it back again. To prepare you for indicators triggering, the BBI shows dark blue or dark green when the indicator is close to triggering (i.e., generally around 20% from the trigger value, a less intense background will appear, and 10% from the trigger value, a more intense background will appear). The color of the individual indicators turns pink when they are triggered. The background color of the BBI becomes blue when at least 30% of the indicators considered are triggering and it becomes green when the BBI fully triggers. See the BTC chart above the indicator showing the performance of the indicator in picking out macro bottom regions (green dots with white middle portion). Because not all daily data for BTC can be shown on one chart, ensure you also play with the indictor yourself. The BLX is most appropriate, but the indicator works on all BTC/USD charts. Because of the limitations of moving averages in TradingView, the indicator doesn't work on time frames lower than 4 h.
You can use this indicator to help you understand when the BTC price is more likely bottoming based on past performance of these indicators. This indicator pairs with the BTI (Bitcoin (BTC) top indictor) and the BTB (Bitcoin top and bottom) indicators.
Use this indicator at your own risk. I make no assertions that this indicator will work to detect any future bottom since we all know that past performance is no guarantee of future results.
BTB - Bitcoin (BTC) Top and Bottom Indicator [Logue]This indicator is a combination of multiple on-chain, seasonality, and momentum BTC macro cycle bottom and top indicators. The BTB detects confluence of multiple indicators to select bottoms and tops of each BTC macro cycle. More detail can be seen on the BTI and BBI indicators. The BTB indicators are:
1) Cumulative Value Days Destroyed (CVDD) - The CVDD is the ratio of the cumulative value of coin days destroyed in USD and the market age (in days). When the BTC price goes below this value, BTC is generally considered to be undervalued. The bottom indicator is triggered when the BTC price is below the CVDD or above the CVDD extension. Because the "strength" of the BTC tops has decreased over the cycles, a logarithmic function for the extension was created by fitting past cycles as log extension = slope * time + intercept.
2) Net Unrealized Profit Loss (NUPL) - The NUPL measures if past transfers of BTC are currently in an unrealized profit or loss state. Historically positive or negative NUPL values indicate an over/undervaluation of the BTC network. The bottom indicator is triggered when the NUPL is below -15 and the top is triggered above an adjusted value based on decreasing "strength" of BTC tops. A decreasing linear function (trigger = slope * time + intercept) was fit to past cycle tops and used to determine overvaluation.
3) Market Value-Realized Value Z-score (MVRV-Z) - The MVRV-Z measures the value of the bitcoin network by comparing the market cap to the realized value and dividing by the standard deviation of the market cap (market cap – realized cap) / std(market cap)). The bottom indicator is triggered when the MVRVZ value is below 4 and tops are above 55.
4) Puell multiple (PUELL) - PUELL is the ratio between the daily coin issuance in USD and its 365-day moving average. This multiple helps to measure miner profitability. Extremes in PUELL may indicate tops or bottoms. The bottom indicator triggers when the PUELL is below 0.4 and top is triggered above 3.33.
5) Calendar Seasonality Index (CSI) - The CSI takes advantage of the consistency of BTC cycles. Past cycles have formed macro bottoms every four years between December and February which triggers the bottom indicator. Past cycles have formed macro tops every four years between October 21st and December 12th, triggering the top indicator.
6) Halving Seasonality Index (HSI) - Past cycles have formed macro bottoms approximately 948 days after each halving, triggering this indicator at set times, 948 +- 45 days, after each halving. Aside from the first halving, cycles have formed macro tops approximately 538 days after each halving. Therefore, this indicator triggers at 538 +- 10 days after each halving.
7) Polylog Regression (PLR) - The BTC cycle tops and bottoms were separately fit using a polynomial regression. The shape of the regression into the future was estimated and a fit was used to estimate when tops and bottoms are near. This triggers when the BTC price is inside or below the lower polylog regression channel and when the BTC price is inside or above the upper polylog regression channel.
8) Realized Price (RP) - The RP is summation of the value of each BTC when it last moved divided by the total number of BTC in circulation. This gives an estimation of the average "purchase" price of BTC. This indicator triggers when the BTC price is below the realized price or above an RP extension. Because the "strength" of the BTC tops has decreased over the cycles, a logarithmic function for the extension was created by fitting past cycles as log extension = slope * time + intercept.
9) Plus Directional Movement (PDM) weekly index - The PDM is a momentum indicator that measures the strength of a trend in the positive direction. The weekly PDM is calculated by determining the difference between the week's high price and the previous week's high price smoothed by a 14-period moving average. Higher PDM values indicate higher momentum in the positive (higher price) direction. Based on decreasing "strength" of BTC tops, a decreasing linear function (trigger = slope * time + intercept) was fit to past cycle tops for this indicator. This indicator is triggered when the PDM is above the trigger value or below 14.
10) Logarithmic Moving Average Convergence Divergence (LMACD) weekly indicator - The LMACD is a momentum indicator that measures the strength of a trend using the difference of the log values of the 12-period and 26-week exponential moving averages. Larger positive numbers indicate a larger positive momentum. Based on decreasing "strength" of BTC tops, a decreasing linear function (trigger = slope * time + intercept) was fit to past cycle tops for this indicator. This indicator is triggered when the PDM is above the trigger value or below -0.06.
11) Hash Rate Capitulation (HRC) - The HRC indicator measures the rate of change of the hash rate. Steadily increasing hash rate is a sign of health of the bitcoin network. This indicator uses moving averages (20- and 100-day) of the hash rate to indicate when a decrease in the rate of change is has occurred (i.e., the 20-day MA goes below the 100-day MA). This indicator triggers when the 20-day moving average of the hash rate going below the 100-day moving average.
12) Pi-cycle Top (PCT) - The PCT indicator is simply the cross of the 111-day moving average above a 2x multiple of the 350-day moving average of the BTC price. While there is no fundamental reasoning behind why this works, it has worked to indicate previous bitcoin tops by taking advantage of the cyclicality of the BTC price and measurement overextension of BTC price. This indicator triggers when the fast moving average (111-day) crosses above the 2x multiple of the slow moving average (350-day).
13) Transaction Fee Spike (TFS) - Transaction fees on the bitcoin network can signal a mania phase when they increase well above historical values. This mania phase may indicate we are near a top in the BTC price. The daily transaction fee total in USD is divided by the number of daily transactions to calculate the average transaction fee paid on the bitcoin network. The transaction fees increasing above $40 trigger this indicator.
The on-chain indicators (CVDD, NUPL, MVRV-Z, PUELL, RP, and HRC) work together to give a health check of the BTC price as compared to its network health. The seasonality indicators (CSI, HSI, and PLR) work together to map the macro cycles of BTC. The momentum indicators (PDM and LMACD) give the strength of the BTC trend. Each of these indicators is weighted evenly when selected and if over 45% of the indicators are triggering on a candle, the overall BTB indicator prints a clear signal. This signal is meant to indicate when the macro cycle bottom or top is likely hit or is near.
You are able to deselect any indicator you do not wish to have considered and select it back again. To prepare you for indicators triggering, the BTB shows dark blue or dark green when the indicator is close to triggering. The background color of the BBI becomes blue when at least 30% of the indicators considered are triggering and it becomes green when the BBI fully triggers. The BLX is most appropriate chart, but the indicator works on all BTC/USD charts. Because of the limitations of TradingView, the indicator doesn't work on time frames lower than 4 h or over one week.
Use this indicator at your own risk. I make no assertions that this indicator will work to detect any future bottom or top since we all know that past performance is no guarantee of future results.
Sentient FLDOverview of the FLD
The Future Line of Demarcation (FLD) was first proposed by JM Hurst in the 1970s as a cycle analysis tool. It is a smoothed median price plotted on a time-based chart, and displaced into the future (to the right on the chart). The amount of displacement is determined by performing a cycle analysis, the line then plotted to extend beyond the right hand edge of the chart by half a cycle wavelength.
Interactions between price and the FLD
As price action unfolds, price interacts with the FLD line, either by crossing over the line, or by finding support or resistance at the line.
Targets
When price crosses an FLD a target for the price move is generated. The target consists of a price level and also expected time.
When price reaches that target it is an indication that the cycle influencing price to move up or down has completed that action and is about to turn around.
If price fails to reach a target by the expected time, it indicates bullish or bearish pressure from longer cycles, and a change in mood of the market.
Sequence of interactions
Price interacts with the FLD in a regular sequence of 8 interactions which are labelled using the letters A - H, in alphabetical order. This sequence of interactions occurs between price and a cycle called the Signal cycle. The full sequence plays out over a single wave of a longer cycle, called the Sequence cycle. The interactions are:
A category interaction is where price crosses above the FLD as it rises out of a trough of the Sequence cycle.
B & C category interactions often occur together as a pair, where price comes back to the FLD line and finds support at the level of the FLD as the first trough of the Signal cycle forms.
D category interaction is where price crosses below the FLD as it falls towards the second trough of the Signal cycle.
E category interaction is where price crosses above the FLD again as it rises out of the second trough of the Signal cycle.
F category interaction is where price crosses below the FLD as it falls towards the next trough of the Sequence cycle.
G & H category interactions often occur together as a pair, where price comes back to the FLD line and finds resistance at the level of the FLD before a final move down into the next Sequence cycle trough.
Trading Opportunities
This sequence of interactions provides the trader with trading opportunities:
A and E category interactions involve price crossing over the FLD line, for a long trading opportunity.
D and F category interactions involve price crossing below the FLD line, for a short trading opportunity.
B and C category interactions occur where price finds support at the FLD, another long trading opportunity.
G and H category interactions occur where price finds resistance at the FLD, another short trading opportunity.
3 FLD Lines Plotted
The Sentient FLD indicator plots three FLD lines, for three primary cycles on your time-based charts:
The Signal cycle (pink color, can be changed in the settings), which is used to generate trading signals on the basis of the sequence of interactions between price and the FLD
The Mid cycle (orange color, can be changed in the settings), which is used for confirmation of the signals from the signal cycle FLD.
The Sequence cycle (green color, can be changed in the settings) which is the cycle over which the entire A - H sequence of interactions plays out.
Cycle Analysis
In addition to plotting the three FLD lines, the Sentient FLD indicator performs a cycle phasing analysis and identifies the positions of the troughs of five cycles on your chart (The Signal, Mid & Sequence cycles and two longer cycles for determining the underlying trend).
The results of this analysis are plotted by using diamond symbols to mark the timing of past troughs of the cycles, and circles to mark the timing of the next expected troughs, with lines extending to each side to represent the range of time in which the trough is expected to form. These are called circles-and-whiskers. The diamonds are stacked vertically because the troughs are synchronized in time. The circles-and-whiskers therefore are also stacked, creating a nest-of-lows which is a high probability period for a trough to form.
Identifying the Interactions
The Sentient FLD also identifies the interactions between price and each one of the three FLDs plotted on your chart, and those interactions are labelled so that you can keep track of the unfolding A - H sequence.
Next Expected Interaction
Because the Sentient FLD is able to identify the sequence of interactions, it is also able to identify the next expected interaction between price and the FLD. This enables you to anticipate levels of support or resistance, or acceleration levels where price is expected to cross through the FLD.
Cycle Table
A cycle table is displayed on the chart (position can be changed in settings). The cycle table comprises 6 columns:
The Cycle Name (CYCLE): the name of the cycle which is its nominal wavelength in words.
The Nominal Wavelength (NM): The nominal wavelength of the cycle measured in bars.
The Current Wavelength (CR): The current recent wavelength of the cycle measured in bars.
The Variation (VAR): The variation between the nominal wavelength and current wavelength as a percentage (%).
The relevant Sequence Cycle (SEQ): The cycle over which the sequence of interactions with this FLD plays out.
The Mode (MODE): Whether the cycle is currently Bearish, Neutral or Bullish.
Benefits of using the Sentient FLD
The cycle analysis shown with diamonds and circles marking the troughs, and next expected troughs of the cycles enable you to anticipate the timing of market turns (troughs and peaks in the price), because of the fact that cycles, by definition, repeat with some regularity.
The results of the cycle analysis are also displayed on your chart in a table, and enable you to understand at a glance what the current mode of each cycle is, whether bullish, bearish or neutral.
The identification of the sequence of interactions between price and the FLD enables you to anticipate the next interaction, and thereby expect either a price cross of the FLD or dynamic levels of support and resistance at the levels of the FLD lines, only visible to the FLD trader.
When the next expected interaction between price and the FLD is an acceleration point (price is expected to cross over the FLD), that level can be used as a signal for entry into a trade.
Similarly when the next expected interaction between price and the FLD is either support or resistance, that level can be used as a signal for entry into a trade when price reacts as expected, finding support or resistance.
The targets that are generated as a result of price crossing the FLD represent cycle exhaustion levels and times, and can be used as take profit exits, or as levels after which stops should be tightened.
The indicator optionally also calculates targets for longer timeframes, and displays them on your chart providing useful context for the influence of longer cycles without needing to change timeframe.
Example
In this image you can see an example of the different aspects of the indicator working on a 5 minute chart (details below):
This is what the indicator shows:
The 3 FLD lines are for the 100 minute (pink), 3 hour (orange) and 6 hour (green) cycles (refer to the cycle table for the cycle names).
Previous targets can be seen, shown as pointed labels, with the same colors.
The cycle table at the bottom left of the chart is colour coded, and indicates that the cycles are all currently running a bit long, by about 14%.
Note also the grey-colored 6 hour target generated by the 15 x minute timeframe at 12:20. When targets are close together their accuracy is enhanced.
At the foot of the chart we can see a collection of circles-and-whiskers in a nest-of-lows, indicating that a 12 hour cycle trough has been due to form in the past hour.
The past interactions between price and the signal cycle are labelled and we can see the sequence of E (with some +E post-interaction taps), F and then G-H.
The next interaction between price and the signal is the A category interaction - a long trading opportunity as price bounces out of the 12 hour cycle trough.
Notice the green upward pointing triangles on the FLD lines, indicating that they are expected to provide acceleration points, where price will cross over the FLD and move towards a target above the FLD.
The cycle table shows that the cycles of 6 hours and longer are all expected to be bullish (with the 12 hour cycle neutral to bullish).
On the basis that we are expecting a 12 hour trough to form, and the 6 hour cycle targets have been reached, and the next interaction with the signal cycle is an A category acceleration point, we can plan to enter into a long trade.
Two hours later
This screenshot shows the situation almost 2 hours later:
Notes:
The expected 12 hour cycle trough has been confirmed in the cycle analysis, and now displayed as a stack of diamonds at 12:25
Price did cross over the signal cycle FLD (the 100 minute cycle, pink FLD line) as expected. That price cross is labelled as an A category interaction at 13:00.
A 100 minute target was generated. That target was almost, but not quite reached in terms of price, indicating that the move out of the 12 hour cycle trough is not quite as bullish as would be expected (remember the 12 hour cycle is expected to be neutral-bullish). The time element of the target proved accurate however with a peak forming at the expected time. Stops could have been tightened at that time.
Notice that price then came back to the signal FLD (100 minute) line at the time that the next 100 minute cycle trough was expected (see the pink circle-and-whiskers between 13:40 and 14:25, with the circle at 14:05.
Price found support (as was expected) when it touched the signal FLD at 13:55 and 14:00, and that interaction has been labelled as a B-C category interaction pair.
We also have a 3 hour target above us at about 6,005. That could be a good target for the move.
Another 2 hours later
This screenshot shows the situation another 2 hours later:
Notes:
We can see that the 100 minute cycle trough has been confirmed at 13:45
The nest-of-lows marking the time the 3 hour cycle trough was expected is between 15:00 and 15:45, with a probable trough in price at 15:00
The sequence of interactions is labelled: A at 13:00; B-C at 14:00; another B-C (double B-C interactions are common) at 14:30; E at 15:10; +E (a post E tap) at 16:20
Price has just reached a cluster of targets at 6005 - 6006. The 3 hour target we noted before, as well as a 6 hour target and a 12 hour target from the 15 x minute timeframe.
Notice how after those targets were achieved, price has exhausted its upward move, and has turned down.
The next expected interaction with the signal cycle FLD is an F category interaction. The downward pointing red triangles on the line indicate that the interaction is expected to be a price cross down, as price moves down into the next 6 hour cycle trough.
Other Details
The Sentient FLD indicator works on all time-based charts from 10 seconds up to monthly.
The indicator works on all actively traded instruments, including forex, stocks, indices, commodities, metals and crypto.
TASC 2025.01 Linear Predictive Filters█ OVERVIEW
This script implements a suite of tools for identifying and utilizing dominant cycles in time series data, as introduced by John Ehlers in the "Linear Predictive Filters And Instantaneous Frequency" article featured in the January 2025 edition of TASC's Traders' Tips . Dominant cycle information can help traders adapt their indicators and strategies to changing market conditions.
█ CONCEPTS
Conventional technical indicators and strategies often rely on static, unchanging parameters, which may fail to account for the dynamic nature of market data. In his article, John Ehlers applies digital signal processing principles to address this issue, introducing linear predictive filters to identify cyclic information for adapting indicators and strategies to evolving market conditions.
This approach treats market data as a complex series in the time domain. Analyzing the series in the frequency domain reveals information about its cyclic components. To reduce the impact of frequencies outside a range of interest and focus on a specific range of cycles, Ehlers applies second-order highpass and lowpass filters to the price data, which attenuate or remove wavelengths outside the desired range. This band-limited analysis isolates specific parts of the frequency spectrum for various trading styles, e.g., longer wavelengths for position trading or shorter wavelengths for swing trading.
After filtering the series to produce band-limited data, Ehlers applies a linear predictive filter to predict future values a few bars ahead. The filter, calculated based on the techniques proposed by Lloyd Griffiths, adaptively minimizes the error between the latest data point and prediction, successively adjusting its coefficients to align with the band-limited series. The filter's coefficients can then be applied to generate an adaptive estimate of the band-limited data's structure in the frequency domain and identify the dominant cycle.
█ USAGE
This script implements the following tools presented in the article:
Griffiths Predictor
This tool calculates a linear predictive filter to forecast future data points in band-limited price data. The crosses between the prediction and signal lines can provide potential trade signals.
Griffiths Spectrum
This tool calculates a partial frequency spectrum of the band-limited price data derived from the linear predictive filter's coefficients, displaying a color-coded representation of the frequency information in the pane. This mode's display represents the data as a periodogram . The bottom of each plotted bar corresponds to a specific analyzed period (inverse of frequency), and the bar's color represents the presence of that periodic cycle in the time series relative to the one with the highest presence (i.e., the dominant cycle). Warmer, brighter colors indicate a higher presence of the cycle in the series, whereas darker colors indicate a lower presence.
Griffiths Dominant Cycle
This tool compares the cyclic components within the partial spectrum and identifies the frequency with the highest power, i.e., the dominant cycle . Traders can use this dominant cycle information to tune other indicators and strategies, which may help promote better alignment with dynamic market conditions.
Notes on parameters
Bandpass boundaries:
In the article, Ehlers recommends an upper bound of 125 bars or higher to capture longer-term cycles for position trading. He recommends an upper bound of 40 bars and a lower bound of 18 bars for swing trading. If traders use smaller lower bounds, Ehlers advises a minimum of eight bars to minimize the potential effects of aliasing.
Data length:
The Griffiths predictor can use a relatively small data length, as autocorrelation diminishes rapidly with lag. However, for optimal spectrum and dominant cycle calculations, the length must match or exceed the upper bound of the bandpass filter. Ehlers recommends avoiding excessively long lengths to maintain responsiveness to shorter-term cycles.
Bitcoin Value Capture HeatmapBTC Value Capture Heatmap answers a question originally posed by Willy Woo:
"How much pressure on Bitcoin's market cap does one dollar of purchasing power exert?"
The higher the print, the more market cap grows per dollar invested -- adjusted for global M2 growth.
Bitcoin Value Capture Heatmap = ( market cap / global M2 ) / realized cap
A NOVEL INGREDIENT REVEALS A UNIQUE USE CASE
Adjusting bitcoin's market cap for global M2 growth sharpens a legacy metric with a normalizing factor that 'stabilizes' its view across cycles.
The metric peaked at identical levels (4.2), three bitcoin bull markets in a row. On the same day bitcoin price volatility peaked for the cycle, every time.
One might naturally expect this to coincide with cycle tops. But it doesn't.
It precede's cycle's tops: in a consistent, very specific way, that predisposing a unique use case.
BITCOIN'S VOLATILTY TOP
The metric's true use case only comes into clear focus when paired with an unrelated insight:
Whether in distribution (in Spring 2021) or a parabolic blow off top (2017 & 2013), each of the last 3 bitcoin cycle tops shows tight consistent adherence to the Wykoff Distribution Schematic.
"But Wykoff schematics apply to distribution tops, not to blow off tops."
A closer look at the last 15-20 years of parabolic blow off tops, across all asset classes , viewed through a Wykoff lens, reveals recurring tight adherence to Wykoff's Distribution Schematic.
Including (and especially) BTC's parabolic top in Dec 2017; BTC's parabolic top in 2013; and ETH's blow off top in Jan 2018.
In our age of automation, this makes sense. Wykoff's schematics mirror the timeless archetypal goal of his 'Composite Operator': max pain for all other market participants.
A process that lends itself to automation, optimized a bit more each passing year.
Peak cycle volatility maps directly to the Wykoff Distribution Schematic's 'Buying Climax'.
An event that preceded parabolic cycle tops, by about 2 weeks.
Future BTC parabolas (should they recur) would come at exponentially higher market caps, so they may take longer to unfold -- I don't take the 2 week pattern too seriously.
But Parabolic Distribution as an emergent archetypal market structure is likely encoded.
PUTTING IT ALL TOGETHER
Bitcoin Value Capture Heatmap signals peak cycle volatility, on a daily close of 4.2 on the metric's Y axis. It has never reached that level twice in the same cycle.
Awareness that:
(a) peak volatility for the cycle has likely been reached, and
(b) peak volatility has a history of tightly preceding bitcoin cycle tops, can
(c) empowers traders with a data-driven 'guide post' to their likely exactly location in an increasingly archetypal topping process.
SPECIFIC USES IN AN EXIT STRATEGY
When the Heatmap's signal level is reached, one might (for instance):
* Hedge, since bitcoin is likely closing in on its cycle top, OR
* Start to DCA out, over a pre-planned time period OR
* Rotate up the risk curve, since BTC probably doesn't have much upside left, OR
* Wait for acceptance one leg higher, which (consistent with Wykoff logic) is the likeliest place to expect an actual cycle top.
Though the ratio (in the past) touched 4.2 each cycle, a closer look shows subtly lower peaks per cycle, like most other on-chain cycle oscillators.
Extrapolating out, one might expect bitcoin's next top on volatility to print on any touch of 4.0 or higher.
Or one might give it more room to run, consistent with record institutiional flows this cycle.
Alerts are enabled for both options.
The metric works on any timeframe, but should only be used on the 1D chart.
Cycle Trend SROverview:
This indicator draws resistance and support lines calculated by market cycles.
By default, blue dots are resistance and red dots are support.
How to calculate market cycle?:
It use sine wave indicator by John Ehlers to calculate the market cycle.
How to determine support and resistance levels?:
There are two conditions for the depiction of a resistance and support lines.
The sine wave indicator has two lines(sine and lead sine).
The first condition is the crossing of these two lines.
The second condition is a new high or low.
- In the case of a resistance, it is a move below the low of the previous candle.
- In the case of a support, it is a move above the high of the previous candle.
When the two conditions are fulfilled, the highest or lowest price of the past few candles is used.
The default setting is three, but this can be changed in parameter settings.
Cycle changes and market reversals do not always occur at the same time.
This is because price movements are not created by cycles, but by the results of trades.
This allows us to understand the true support or resistance line, not the theoretical one.
How to use?:
This indicator assumes that price movements are formed by cycles and trends.
The first step is to determine whether the cycle or the trend is stronger.
- When the price is above support or below resistance, the Cycle dominates the market.
- When the price is below support or above resistance, the Trend dominates the market.
In a cycle-dominated situation, enter the market at the time when support or resistance lines is depicted.
It is better to target only those cycles that match the upper time frame.
In a trend-dominated situation, think about riding the trend.
The timing to go outside of support and resistance is a trigger.
PB(pullback) will be drawn only in case of a strong trend.
A strong uptrend is when the price goes above a resistance line and the next support line depicted is above the resistance line.
There is a threshold for this, which is twice as high as the price of ATR for period 14.
A strong downtrend is the opposite of this.
At the end of the cycle after the PB, the END is described.
This can be used as a sign of a market reversal.
If PB and END are not needed, hide them in the settings.
BAERMThe Bitcoin Auto-correlation Exchange Rate Model: A Novel Two Step Approach
THIS IS NOT FINANCIAL ADVICE. THIS ARTICLE IS FOR EDUCATIONAL AND ENTERTAINMENT PURPOSES ONLY.
If you enjoy this software and information, please consider contributing to my lightning address
Prelude
It has been previously established that the Bitcoin daily USD exchange rate series is extremely auto-correlated
In this article, we will utilise this fact to build a model for Bitcoin/USD exchange rate. But not a model for predicting the exchange rate, but rather a model to understand the fundamental reasons for the Bitcoin to have this exchange rate to begin with.
This is a model of sound money, scarcity and subjective value.
Introduction
Bitcoin, a decentralised peer to peer digital value exchange network, has experienced significant exchange rate fluctuations since its inception in 2009. In this article, we explore a two-step model that reasonably accurately captures both the fundamental drivers of Bitcoin’s value and the cyclical patterns of bull and bear markets. This model, whilst it can produce forecasts, is meant more of a way of understanding past exchange rate changes and understanding the fundamental values driving the ever increasing exchange rate. The forecasts from the model are to be considered inconclusive and speculative only.
Data preparation
To develop the BAERM, we used historical Bitcoin data from Coin Metrics, a leading provider of Bitcoin market data. The dataset includes daily USD exchange rates, block counts, and other relevant information. We pre-processed the data by performing the following steps:
Fixing date formats and setting the dataset’s time index
Generating cumulative sums for blocks and halving periods
Calculating daily rewards and total supply
Computing the log-transformed price
Step 1: Building the Base Model
To build the base model, we analysed data from the first two epochs (time periods between Bitcoin mining reward halvings) and regressed the logarithm of Bitcoin’s exchange rate on the mining reward and epoch. This base model captures the fundamental relationship between Bitcoin’s exchange rate, mining reward, and halving epoch.
where Yt represents the exchange rate at day t, Epochk is the kth epoch (for that t), and epsilont is the error term. The coefficients beta0, beta1, and beta2 are estimated using ordinary least squares regression.
Base Model Regression
We use ordinary least squares regression to estimate the coefficients for the betas in figure 2. In order to reduce the possibility of over-fitting and ensure there is sufficient out of sample for testing accuracy, the base model is only trained on the first two epochs. You will notice in the code we calculate the beta2 variable prior and call it “phaseplus”.
The code below shows the regression for the base model coefficients:
\# Run the regression
mask = df\ < 2 # we only want to use Epoch's 0 and 1 to estimate the coefficients for the base model
reg\_X = df.loc\ [mask, \ \].shift(1).iloc\
reg\_y = df.loc\ .iloc\
reg\_X = sm.add\_constant(reg\_X)
ols = sm.OLS(reg\_y, reg\_X).fit()
coefs = ols.params.values
print(coefs)
The result of this regression gives us the coefficients for the betas of the base model:
\
or in more human readable form: 0.029, 0.996869586, -0.00043. NB that for the auto-correlation/momentum beta, we did NOT round the significant figures at all. Since the momentum is so important in this model, we must use all available significant figures.
Fundamental Insights from the Base Model
Momentum effect: The term 0.997 Y suggests that the exchange rate of Bitcoin on a given day (Yi) is heavily influenced by the exchange rate on the previous day. This indicates a momentum effect, where the price of Bitcoin tends to follow its recent trend.
Momentum effect is a phenomenon observed in various financial markets, including stocks and other commodities. It implies that an asset’s price is more likely to continue moving in its current direction, either upwards or downwards, over the short term.
The momentum effect can be driven by several factors:
Behavioural biases: Investors may exhibit herding behaviour or be subject to cognitive biases such as confirmation bias, which could lead them to buy or sell assets based on recent trends, reinforcing the momentum.
Positive feedback loops: As more investors notice a trend and act on it, the trend may gain even more traction, leading to a self-reinforcing positive feedback loop. This can cause prices to continue moving in the same direction, further amplifying the momentum effect.
Technical analysis: Many traders use technical analysis to make investment decisions, which often involves studying historical exchange rate trends and chart patterns to predict future exchange rate movements. When a large number of traders follow similar strategies, their collective actions can create and reinforce exchange rate momentum.
Impact of halving events: In the Bitcoin network, new bitcoins are created as a reward to miners for validating transactions and adding new blocks to the blockchain. This reward is called the block reward, and it is halved approximately every four years, or every 210,000 blocks. This event is known as a halving.
The primary purpose of halving events is to control the supply of new bitcoins entering the market, ultimately leading to a capped supply of 21 million bitcoins. As the block reward decreases, the rate at which new bitcoins are created slows down, and this can have significant implications for the price of Bitcoin.
The term -0.0004*(50/(2^epochk) — (epochk+1)²) accounts for the impact of the halving events on the Bitcoin exchange rate. The model seems to suggest that the exchange rate of Bitcoin is influenced by a function of the number of halving events that have occurred.
Exponential decay and the decreasing impact of the halvings: The first part of this term, 50/(2^epochk), indicates that the impact of each subsequent halving event decays exponentially, implying that the influence of halving events on the Bitcoin exchange rate diminishes over time. This might be due to the decreasing marginal effect of each halving event on the overall Bitcoin supply as the block reward gets smaller and smaller.
This is antithetical to the wrong and popular stock to flow model, which suggests the opposite. Given the accuracy of the BAERM, this is yet another reason to question the S2F model, from a fundamental perspective.
The second part of the term, (epochk+1)², introduces a non-linear relationship between the halving events and the exchange rate. This non-linear aspect could reflect that the impact of halving events is not constant over time and may be influenced by various factors such as market dynamics, speculation, and changing market conditions.
The combination of these two terms is expressed by the graph of the model line (see figure 3), where it can be seen the step from each halving is decaying, and the step up from each halving event is given by a parabolic curve.
NB - The base model has been trained on the first two halving epochs and then seeded (i.e. the first lag point) with the oldest data available.
Constant term: The constant term 0.03 in the equation represents an inherent baseline level of growth in the Bitcoin exchange rate.
In any linear or linear-like model, the constant term, also known as the intercept or bias, represents the value of the dependent variable (in this case, the log-scaled Bitcoin USD exchange rate) when all the independent variables are set to zero.
The constant term indicates that even without considering the effects of the previous day’s exchange rate or halving events, there is a baseline growth in the exchange rate of Bitcoin. This baseline growth could be due to factors such as the network’s overall growth or increasing adoption, or changes in the market structure (more exchanges, changes to the regulatory environment, improved liquidity, more fiat on-ramps etc).
Base Model Regression Diagnostics
Below is a summary of the model generated by the OLS function
OLS Regression Results
\==============================================================================
Dep. Variable: logprice R-squared: 0.999
Model: OLS Adj. R-squared: 0.999
Method: Least Squares F-statistic: 2.041e+06
Date: Fri, 28 Apr 2023 Prob (F-statistic): 0.00
Time: 11:06:58 Log-Likelihood: 3001.6
No. Observations: 2182 AIC: -5997.
Df Residuals: 2179 BIC: -5980.
Df Model: 2
Covariance Type: nonrobust
\==============================================================================
coef std err t P>|t| \
\------------------------------------------------------------------------------
const 0.0292 0.009 3.081 0.002 0.011 0.048
logprice 0.9969 0.001 1012.724 0.000 0.995 0.999
phaseplus -0.0004 0.000 -2.239 0.025 -0.001 -5.3e-05
\==============================================================================
Omnibus: 674.771 Durbin-Watson: 1.901
Prob(Omnibus): 0.000 Jarque-Bera (JB): 24937.353
Skew: -0.765 Prob(JB): 0.00
Kurtosis: 19.491 Cond. No. 255.
\==============================================================================
Below we see some regression diagnostics along with the regression itself.
Diagnostics: We can see that the residuals are looking a little skewed and there is some heteroskedasticity within the residuals. The coefficient of determination, or r2 is very high, but that is to be expected given the momentum term. A better r2 is manually calculated by the sum square of the difference of the model to the untrained data. This can be achieved by the following code:
\# Calculate the out-of-sample R-squared
oos\_mask = df\ >= 2
oos\_actual = df.loc\
oos\_predicted = df.loc\
residuals\_oos = oos\_actual - oos\_predicted
SSR = np.sum(residuals\_oos \*\* 2)
SST = np.sum((oos\_actual - oos\_actual.mean()) \*\* 2)
R2\_oos = 1 - SSR/SST
print("Out-of-sample R-squared:", R2\_oos)
The result is: 0.84, which indicates a very close fit to the out of sample data for the base model, which goes some way to proving our fundamental assumption around subjective value and sound money to be accurate.
Step 2: Adding the Damping Function
Next, we incorporated a damping function to capture the cyclical nature of bull and bear markets. The optimal parameters for the damping function were determined by regressing on the residuals from the base model. The damping function enhances the model’s ability to identify and predict bull and bear cycles in the Bitcoin market. The addition of the damping function to the base model is expressed as the full model equation.
This brings me to the question — why? Why add the damping function to the base model, which is arguably already performing extremely well out of sample and providing valuable insights into the exchange rate movements of Bitcoin.
Fundamental reasoning behind the addition of a damping function:
Subjective Theory of Value: The cyclical component of the damping function, represented by the cosine function, can be thought of as capturing the periodic fluctuations in market sentiment. These fluctuations may arise from various factors, such as changes in investor risk appetite, macroeconomic conditions, or technological advancements. Mathematically, the cyclical component represents the frequency of these fluctuations, while the phase shift (α and β) allows for adjustments in the alignment of these cycles with historical data. This flexibility enables the damping function to account for the heterogeneity in market participants’ preferences and expectations, which is a key aspect of the subjective theory of value.
Time Preference and Market Cycles: The exponential decay component of the damping function, represented by the term e^(-0.0004t), can be linked to the concept of time preference and its impact on market dynamics. In financial markets, the discounting of future cash flows is a common practice, reflecting the time value of money and the inherent uncertainty of future events. The exponential decay in the damping function serves a similar purpose, diminishing the influence of past market cycles as time progresses. This decay term introduces a time-dependent weight to the cyclical component, capturing the dynamic nature of the Bitcoin market and the changing relevance of past events.
Interactions between Cyclical and Exponential Decay Components: The interplay between the cyclical and exponential decay components in the damping function captures the complex dynamics of the Bitcoin market. The damping function effectively models the attenuation of past cycles while also accounting for their periodic nature. This allows the model to adapt to changing market conditions and to provide accurate predictions even in the face of significant volatility or structural shifts.
Now we have the fundamental reasoning for the addition of the function, we can explore the actual implementation and look to other analogies for guidance —
Financial and physical analogies to the damping function:
Mathematical Aspects: The exponential decay component, e^(-0.0004t), attenuates the amplitude of the cyclical component over time. This attenuation factor is crucial in modelling the diminishing influence of past market cycles. The cyclical component, represented by the cosine function, accounts for the periodic nature of market cycles, with α determining the frequency of these cycles and β representing the phase shift. The constant term (+3) ensures that the function remains positive, which is important for practical applications, as the damping function is added to the rest of the model to obtain the final predictions.
Analogies to Existing Damping Functions: The damping function in the BAERM is similar to damped harmonic oscillators found in physics. In a damped harmonic oscillator, an object in motion experiences a restoring force proportional to its displacement from equilibrium and a damping force proportional to its velocity. The equation of motion for a damped harmonic oscillator is:
x’’(t) + 2γx’(t) + ω₀²x(t) = 0
where x(t) is the displacement, ω₀ is the natural frequency, and γ is the damping coefficient. The damping function in the BAERM shares similarities with the solution to this equation, which is typically a product of an exponential decay term and a sinusoidal term. The exponential decay term in the BAERM captures the attenuation of past market cycles, while the cosine term represents the periodic nature of these cycles.
Comparisons with Financial Models: In finance, damped oscillatory models have been applied to model interest rates, stock prices, and exchange rates. The famous Black-Scholes option pricing model, for instance, assumes that stock prices follow a geometric Brownian motion, which can exhibit oscillatory behavior under certain conditions. In fixed income markets, the Cox-Ingersoll-Ross (CIR) model for interest rates also incorporates mean reversion and stochastic volatility, leading to damped oscillatory dynamics.
By drawing on these analogies, we can better understand the technical aspects of the damping function in the BAERM and appreciate its effectiveness in modelling the complex dynamics of the Bitcoin market. The damping function captures both the periodic nature of market cycles and the attenuation of past events’ influence.
Conclusion
In this article, we explored the Bitcoin Auto-correlation Exchange Rate Model (BAERM), a novel 2-step linear regression model for understanding the Bitcoin USD exchange rate. We discussed the model’s components, their interpretations, and the fundamental insights they provide about Bitcoin exchange rate dynamics.
The BAERM’s ability to capture the fundamental properties of Bitcoin is particularly interesting. The framework underlying the model emphasises the importance of individuals’ subjective valuations and preferences in determining prices. The momentum term, which accounts for auto-correlation, is a testament to this idea, as it shows that historical price trends influence market participants’ expectations and valuations. This observation is consistent with the notion that the price of Bitcoin is determined by individuals’ preferences based on past information.
Furthermore, the BAERM incorporates the impact of Bitcoin’s supply dynamics on its price through the halving epoch terms. By acknowledging the significance of supply-side factors, the model reflects the principles of sound money. A limited supply of money, such as that of Bitcoin, maintains its value and purchasing power over time. The halving events, which reduce the block reward, play a crucial role in making Bitcoin increasingly scarce, thus reinforcing its attractiveness as a store of value and a medium of exchange.
The constant term in the model serves as the baseline for the model’s predictions and can be interpreted as an inherent value attributed to Bitcoin. This value emphasizes the significance of the underlying technology, network effects, and Bitcoin’s role as a medium of exchange, store of value, and unit of account. These aspects are all essential for a sound form of money, and the model’s ability to account for them further showcases its strength in capturing the fundamental properties of Bitcoin.
The BAERM offers a potential robust and well-founded methodology for understanding the Bitcoin USD exchange rate, taking into account the key factors that drive it from both supply and demand perspectives.
In conclusion, the Bitcoin Auto-correlation Exchange Rate Model provides a comprehensive fundamentally grounded and hopefully useful framework for understanding the Bitcoin USD exchange rate.