Dominant Direction (DD)The Dominant Direction indicator is a custom technical analysis tool that uses the Dominant Cycle Estimators library to identify the dominant trend direction in the market. The indicator utilizes the MAMA Cycle function, which is a part of the library, to calculate the period of the data. The resulting period is then used to plot lines on the chart that represent the dominant trend direction.
The indicator takes two inputs, the source of data, and the high and low values of the source. The MAMA Cycle function is used to calculate the period of the data, with the lower bound and upper bound of the dynamic length defined by the user. The indicator then plots lines on the chart to represent the dominant trend direction. The lines are plotted from the current bar to the bar that is a certain number of periods away, as defined by the MAMA Cycle function, in the direction of the trend.
The indicator also has a feature of removing the lines when the trend is no longer confirmed. If the bar state is confirmed, the line is deleted and this helps the user to have a clearer view of the chart.
In summary, the Dominant Direction indicator is a powerful tool for identifying the dominant trend direction in the market. It uses the MAMA Cycle function to calculate the period of the data and plots lines on the chart to represent the dominant trend direction. This can help traders identify potential entry and exit points, and make more informed trading decisions.
Cerca negli script per "Cycle"
Earnings Season Highlighter (Jan/Apr/Jul/Oct)Purpose:
This indicator visually highlights the four “earnings season” months — January, April, July, and October — on any TradingView chart. It is designed for traders and investors who want a quick visual cue of when companies typically report quarterly earnings.
Features:
Highlights Jan, Apr, Jul, and Oct with a light blue background.
Works on any timeframe: intraday, daily, weekly, or monthly charts.
No dependency on price data — purely a time-based visual overlay.
Simple, lightweight, and easy to apply to any chart.
Usage:
Apply the indicator to your chart.
During the highlighted months, the background will turn light blue, signaling earnings season.
Ideal for planning trades, earnings plays, or simply monitoring market cycles.
Trading Sessions with Holidays & Timer🌍 Trading Sessions Matter
Markets breathe in cycles. When Tokyo, London, or New York steps in, liquidity shifts and price often reacts fast.
Example: New York closed BTC at $110K, and when traders woke up, the price was already $113K. That gap says everything about overnight pressure and the next move.
⚡ Indicator Features
✅ Session boxes (Tokyo, London, NY) with custom colors & time zones
✅ Open/close lines → spot gaps & momentum
✅ Average price per session → see where pressure builds
✅ Tick range → quick volatility check
✅ 🏖 Holiday markers → avoid false quiet markets
✅ Live status table → session OPEN / CLOSED + countdown timer
🚀 How to Use
Works on intraday timeframes (1m–4h)
Watch session opens/closes → liquidity shift points
Compare ranges & averages between Tokyo, London, NY
Use the timer to prep before the next wave
This tool helps you visualize the heartbeat of global markets session by session.
🔖 #BTCUSDT #Forex #TradingSessions #Crypto #DayTrading
True Open CalculationsIndicator Description: True Open Calculations
This custom Pine Script indicator calculates and plots key "True Open" levels based on specific time intervals and trading sessions. The True Open levels represent significant price points on the chart, helping traders identify key reference points tied to various market opening times. These levels are important for understanding price action in relation to market sessions and trading cycles. The indicator is designed to plot lines corresponding to different "True Opens" on the chart and display labels with the associated information.
Key Features:
True Year Open:
This represents the opening price on the first Monday of April each year. It serves as a reference point for the yearly price level.
Plot Color: Green.
True Month Open:
This represents the opening price on the second Monday of each month. It helps in identifying monthly trends and provides a key reference for monthly price movements.
Plot Color: Blue.
True Week Open:
This represents the opening price every Monday at 6:00 PM. It gives traders a level to track weekly opening movements and can be useful for weekly trend analysis.
Plot Color: Orange.
True Day Open:
This represents the opening price at 12:00 AM (midnight) each day. It serves as a daily benchmark for price action at the start of the trading day.
Plot Color: Red.
True New York Session Open:
This represents the opening price at 7:30 AM (New York session start time). This level is crucial for traders focused on the New York trading session.
Plot Color: Purple.
Additional Features:
Labels: The indicator displays labels to the right of each plotted line to describe which "True Open" it represents (e.g., "True Year Open," "True Month Open," etc.).
Dynamic Plotting: The lines are only plotted on the current candle, and the lines are dynamically updated for each time period based on the corresponding "True Open."
Visual Cues: The colors of the plotted lines (green, blue, orange, red, purple) help quickly distinguish between different "True Open" levels, making it easy for traders to track price action and make informed decisions.
Use Cases:
Yearly, Monthly, Weekly, Daily, and Session Benchmarking: This indicator provides traders with important price levels to use as benchmarks for the current year, month, week, and day, helping to identify trends and potential reversals.
Session Awareness: It is particularly useful for traders who want to track key market sessions, such as the New York session, and their impact on price movement.
Long-term Analysis: By including the yearly open, this indicator helps traders gain a broader perspective on market trends and provides context for analyzing shorter-term price movements.
Benefits:
Helps identify important reference points for longer-term trends (yearly, monthly) as well as shorter-term moves (daily, weekly, and session).
Visually intuitive with color-coded lines and labels, allowing quick and easy identification of key market open levels.
Dynamic and real-time: The indicator plots and updates the True Open levels dynamically as the market progresses.
Trading Sessions Highs/Lows | InvrsROBINHOODTrading Sessions Highs/Lows | InvrsROBINHOOD
🚀 A powerful indicator for tracking key trading sessions and the highs and lows of each session!
📌 Description
The Trading Sessions Highs/Lows indicator visually marks the most critical trading sessions—Asia, London, and New York—using small colored dots at the bottom of the candle. It also tracks and plots the highs and lows of each session, along with the Daily Open and Weekly Open levels.
This tool is designed to help traders identify session-based liquidity zones, price reactions, and potential trade setups with minimal chart clutter.
Key Features:
✅ Session markers (Asia, London, NY AM, NY Lunch, NY PM) plotted as small dots
✅ Plots session highs and lows for market structure insights
✅ Daily Open line for intraday reference
✅ Weekly Open line for higher timeframe bias
✅ Alerts for session high/low breaks to capture momentum shifts
✅ User-defined UTC offset for global traders
✅ Customizable session colors for personal preference
📖 How to Use the Indicator
1️⃣ Understanding the Sessions
Asia Session (Yellow Dot) → Marks liquidity buildup & pre-London moves
London Session (Blue Dot) → Strong volatility, breakout opportunities
New York AM Session (Green Dot) → Major trends & institutional participation
New York Lunch (Red Dot) → Low volume, ranging market
New York PM Session (Dark Green Dot) → End-of-day movements & reversals
2️⃣ Session Highs & Lows for Market Structure
Session Highs can act as resistance or breakout points.
Session Lows can act as support or stop-hunt zones.
Break of a session high/low with volume may indicate continuation or reversal.
3️⃣ Using the Daily & Weekly Open
The Daily Open (Black Line) helps gauge the intraday trend.
Above Daily Open → Bearish Bias
Below Daily Open → Bullish Bias
The Weekly Open (Red Line) sets the higher timeframe directional bias.
4️⃣ Alerts for Breakouts
The indicator will trigger alerts when price breaks session highs or lows.
Useful for setting stop-losses, breakout trades, and risk management.
💡 Why This Indicator is Important for Beginners
1️⃣ Avoids Overtrading:
Many beginners trade in low-volume periods (NY Lunch, Asia session) and get stuck in choppy price action.
This indicator highlights when volatility is high so traders focus on better opportunities.
2️⃣ Session-Based Liquidity Traps:
Market makers often run stops at session highs/lows before reversing.
Watching session breaks prevents traders from falling into liquidity grabs.
3️⃣ Reduces Emotional Trading:
If price is above the Daily Open, a beginner shouldn’t look for shorts.
If price is below a key session low, it may signal a fake breakout.
4️⃣ Aligns with Institutional Trading:
Smart money traders use session highs/lows to set stop hunts & reversals.
Beginners can use this indicator to spot these zones before entering trades.
🛡️ How to Mitigate Risk with This Indicator
✅ Wait for Confirmations – Don’t trade blindly at session highs/lows. Look for wicks, rejections, or break/retests.
✅ Use Stop-Loss Above/Below Session Levels – If you’re going long, set SL below a session low. If short, set SL above a session high.
✅ Watch Volume & News Events – Breakouts without strong volume or news may be fake moves.
✅ Combine with Other Strategies – Use price action, trendlines, or EMAs with this indicator for higher probability trades.
✅ Use the Weekly Open for Trend Bias – If price stays below the Weekly Open, avoid bullish setups unless key support holds.
🎯 Who is This Indicator For?
📌 Beginners who need clear session-based trading levels.
📌 Day traders & scalpers looking to refine their intraday setups.
📌 Smart money traders using liquidity concepts.
📌 Swing traders tracking higher timeframe momentum shifts.
🚀 Final Thoughts
This indicator is an essential tool for traders who want to understand market structure, liquidity, and volatility cycles. Whether you’re trading forex, stocks, or crypto, it helps you stay on the right side of the market and avoid unnecessary risks.
🔹 Set it up, customize your colors, define your UTC offset, and start trading smarter today! 🏆📈
Yearly Profit BackgroundDescription:
The Yearly Profit Background indicator is a powerful tool designed to help traders quickly visualize the profitability of each calendar year on their charts. By analyzing the annual performance of an asset, this indicator colors the background of each completed year green if the year was profitable (close > open) or red if it resulted in a loss (close < open). This visual representation allows traders to identify long-term trends and historical performance at a glance.
Key Features:
Annual Profit Calculation: Automatically calculates the yearly performance based on the opening price of January 1st and the closing price of December 31st.
Visual Background Coloring: Highlights each completed year with a green (profit) or red (loss) background, making it easy to spot trends.
Customizable Transparency: The background colors are set at 90% transparency, ensuring they don’t obstruct your chart analysis.
Optional Price Plots: Displays the annual opening (blue line) and closing (orange line) prices for additional context.
How to Use:
Add the indicator to your chart.
Observe the background colors for each completed year:
Green: The year was profitable.
Red: The year resulted in a loss.
Use the optional price plots to analyze annual opening and closing levels.
Ideal For:
Long-term investors analyzing historical performance.
Traders looking to identify multi-year trends.
Anyone interested in visualizing annual market cycles.
Why Use This Indicator?
Understanding the annual performance of an asset is crucial for making informed trading decisions. The Yearly Profit Background indicator simplifies this process by providing a clear, visual representation of yearly profitability, helping you spot patterns and trends that might otherwise go unnoticed.
Smoothed ROC Z-Score with TableSmoothed ROC Z-Score with Table
This indicator calculates the Rate of Change (ROC) of a chosen price source and transforms it into a smoothed Z-Score oscillator, allowing you to identify market cycle tops and bottoms with reduced noise.
How it works:
The ROC is calculated over a user-defined length.
A moving average and standard deviation over a separate window are used to standardize the ROC into a Z-Score.
This Z-Score is further smoothed using an exponential moving average (EMA) to filter noise and highlight clearer cycle signals.
The smoothed Z-Score oscillates around zero, with upper and lower bands defined by user inputs (default ±2 standard deviations).
When the Z-Score reaches or exceeds ±3 (customizable), the value shown in the table is clamped at ±2 for clearer interpretation.
The indicator plots the smoothed Z-Score line with zero and band lines, and displays a colored Z-Score table on the right for quick reference.
How to read it:
Values near zero indicate neutral momentum.
Rising Z-Scores towards the upper band suggest increasing positive momentum, possible market tops or strength.
Falling Z-Scores towards the lower band indicate negative momentum, potential bottoms or weakness.
The color-coded table gives an easy visual cue: red/orange for strong positive signals, green/teal for strong negative signals, and gray for neutral zones.
Use cases:
Identify turning points in trending markets.
Filter noisy ROC data for cleaner signals.
Combine with other indicators to time entries and exits more effectively.
Maancyclus Volatiliteitsindicator (2025)This Moon Cycle Volatility Indicator for TradingView is designed to help traders track and analyze market volatility around specific lunar phases, namely the Full Moon and New Moon. The indicator marks the dates of these moon phases on the chart and measures volatility using the Average True Range (ATR) indicator, which gauges market price fluctuations.
Key Features:
Moon Phase Markers: The indicator marks the Full Moon and New Moon on the chart using labels. Blue labels are placed below bars for Full Moons, while red labels are placed above bars for New Moons. These markers are based on a manually curated list of moon phase dates for the year 2025.
Volatility Calculation: The indicator calculates market volatility using the ATR (14), which provides a sense of market movement and potential risk. Volatility is plotted as histograms, with blue histograms representing volatility around Full Moons and red histograms around New Moons.
Comparative Analysis: By comparing the volatility around these moon phases to the average volatility, traders can spot potential patterns or heightened market movements. This can inform trading strategies, such as anticipating increased market activity around specific lunar events.
In essence, this tool helps traders identify potential high-volatility periods tied to lunar cycles, which could impact market sentiment and price action.
Time Cycle IntervalsTo set time ranges in a chart within a day
Timezone: To sync with current timezone selected on the chart, where Exchange represent the chart Exchange timezone, New York for New York Time
New Day Start: Example New Day for New York Start at 17:00 seen on chart, thus value as "17:00"
Linhas Max/Min 30m NY - SegmentadasThis indicator aims to mark the highs and lows of each 30-minute period according to Zeussy's time cycle studies.
from 7:00 AM to 4:00 PM
Intraday Time Cycle Levels (Labels + Alerts + Colors)Jag japp detta spelet fram och tbx.
Tack för ert förtoende.
SCPEM - Socionomic Crypto Peak Model (0-85 Scale)SCPEM Indicator Overview
The SCPEM (Socionomic Crypto Peak Evaluation Model) indicator is a TradingView tool designed to approximate cycle peaks in cryptocurrency markets using socionomic theory, which links market behavior to collective social mood. It generates a score from 0-85 (where 85 signals extreme euphoria and high reversal risk) and plots it as a blue line on the chart for visual backtesting and real-time analysis.
#### How It Works
The indicator uses technical proxies to estimate social mood factors, as Pine Script cannot fetch external data like sentiment indices or social media directly. It calculates a weighted composite score on each bar:
- Proxies derive from price, volume, and volatility data.
- The raw sum of factor scores (max ~28) is normalized to 0-85.
- The score updates historically for backtesting, showing mood progression over time.
- Alerts trigger if the score exceeds 60, indicating high peak probability.
Users can adjust inputs (e.g., lengths for RSI or pivots) to fine-tune for different assets or timeframes.
Metrics Used (Technical Proxies)
Crypto-Specific Sentiment
Approximated by RSI (overbought levels indicate greed).
Social Media Euphoria
Based on volume relative to its SMA (spikes suggest herding/FOMO).
Broader Social Mood Proxies
Derived from ATR volatility (high values signal uncertain/mixed mood).
Search and Cultural Interest Proxied by OBV trend (rising accumulation implies growing interest).
Socionomic Wildcard
Uses Bollinger Band width (expansion for positive mood, contraction for negative).
Elliott Wave Position
Counts recent price pivots (more swings indicate later wave stages and exhaustion).
Simplified STH-MVRV + Z-ScoreSimplified Short Term Holder MVRV (STH-MVRV) + Z-Score Indicator
Description:
This indicator visualizes the Short Term Holder Market Value to Realized Value ratio (STH-MVRV) and its normalized Z-Score, providing insight into Bitcoin’s market cycle phases and potential overbought or oversold conditions.
How it works:
The STH-MVRV ratio compares the market value of coins held by short-term holders to their realized value, helping to identify periods of profit-taking or accumulation by these holders.
The indicator calculates three versions:
STH-MVRV (MVRV): Ratio of current MVRV to its 155-day SMA.
STH-MVRV (Price): Ratio of BTC price to its 155-day SMA.
STH-MVRV (AVG): Average of the above two ratios.
You can select which ratio to display via the input dropdown.
Threshold Lines:
Adjustable upper and lower threshold lines mark significant levels where market sentiment might shift.
The indicator also plots a baseline at 1.0 as a reference.
Z-Score Explanation:
The Z-Score is a normalized value scaled between -3 and +3, calculated relative to the chosen threshold levels.
When the ratio hits the upper threshold, the Z-Score approaches +2, indicating potential overbought conditions.
Conversely, reaching the lower threshold corresponds to a Z-Score near -2, signaling potential oversold conditions.
This Z-Score is shown in a clear table in the top right corner of the chart for easy monitoring.
Data Sources:
MVRV data is fetched from the BTC_MVRV dataset.
Price data is sourced from the BTC/USD index.
Usage:
Use this indicator to assess short-term holder market behavior and to help identify buying or selling opportunities based on extremes indicated by the Z-Score.
Combining this tool with other analysis can improve timing decisions in Bitcoin trading.
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...
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! 🚀
Timeframe Quadrants | InvrsROBINHOODTimeframe Quadrant Visualizer
Summary
This indicator is a powerful visualization tool designed to help traders analyze price action by dividing various timeframes into four distinct, color-coded quadrants. By breaking down periods from a full year to a single minute, it offers a unique perspective on market cycles and intraday patterns. The script includes fully customizable colors and display styles, allowing you to tailor the visual output to your specific charting needs.
Key Features
Multiple Timeframe Divisions: Choose to divide a Year, Month, Week, Day, Hour, or Minute into four parts.
Customizable Quadrant Logic:
Year: Divided into calendar quarters (Jan-Mar, Apr-Jun, Jul-Sep, Oct-Dec).
Month: Divided into four approximate weeks (Days 1-7, 8-14, 15-21, 22-end).
Week: Divided into four 42-hour blocks, starting from Sunday at 00:00.
Day: Divided into four 6-hour blocks.
Hour: Divided into four 15-minute blocks.
Minute: Divided into four 15-second blocks.
Flexible Display Options: Visualize the quadrants as either a full Background Color overlay or a Bar Overlay that colors the price bars directly.
Timeframe Separators: A vertical line is automatically drawn at the beginning of each selected timeframe (e.g., at the start of each new day when "Day" is selected), making it easy to see where each period begins.
Full Color Customization: All four quadrant colors are user-definable, along with a global transparency setting to ensure the indicator complements your chart without obscuring price action.
Timezone-Aware: All calculations are performed based on a user-selected timezone from a dropdown menu, ensuring accuracy and consistency across different markets and trading sessions. As an added option, there is a manual input if the timezone is not available.
How to Use
Add to Chart: Add the "Timeframe Quadrants" indicator to your chart.
Open Settings: Hover over the indicator's name on your chart and click the Settings (gear) icon.
Configure the Indicator:
Timeframe: Select the primary time period you want to divide (e.g., "Day", "Week", "Hour").
Display Method: Choose whether you want the quadrants to appear as a Background Color or a Bar Overlay.
Timezone: Select the desired timezone from the dropdown menu. This is crucial for aligning the quadrants with specific market sessions (e.g., "America/New_York" for the NYSE session).
Quadrant Colors: Customize the color for each of the four quadrants.
Transparency %: Adjust the transparency of the colors to your preference.
Underlying Concepts
This script operates by using Pine Script's built-in time and date variables. It identifies the current bar's position within the user-selected timeframe (timeframe_choice) and assigns it to one of four quadrants based on pre-defined logic. For example, when "Day" is selected, it uses the hour() function to determine which 6-hour block the current bar falls into. The vertical separator lines are generated by detecting a change in the relevant time unit (e.g., ta.change(dayofmonth)), which marks the first bar of a new period.
Disclaimer: This tool is intended for visual analysis and pattern recognition. It does not generate buy or sell signals and should be used in conjunction with your own trading strategy and risk management. Past performance is not indicative of future results.
Day of Week Highlighter# 📅 Day of Week Highlighter - Global Market Edition
**Enhanced visual trading tool that highlights each day of the week with customizable colors across all major global financial market timezones.**
## 🌍 Global Market Coverage
This indicator supports **27 major financial market timezones**, including:
- **Asia-Pacific**: Tokyo, Sydney, Hong Kong, Singapore, Shanghai, Seoul, Mumbai, Dubai, Auckland (New Zealand)
- **Europe**: London, Frankfurt, Zurich, Paris, Amsterdam, Moscow, Istanbul
- **Americas**: New York, Chicago, Toronto, São Paulo, Buenos Aires
- **Plus UTC and other key financial centers**
## ✨ Key Features
### 🎨 **Fully Customizable Colors**
- Individual color picker for each day of the week
- Transparent overlays that don't obstruct price action
- Professional color scheme defaults
### 🌐 **Comprehensive Timezone Support**
- 27 major global financial market timezones
- Automatic daylight saving time adjustments
- Perfect for multi-market analysis and global trading
### ⚙️ **Flexible Display Options**
- Toggle individual days on/off
- Optional day name labels with size control
- Clean, professional appearance
### 📊 **Trading Applications**
- **Market Session Analysis**: Identify trading patterns by day of week
- **Multi-Market Coordination**: Track different markets in their local time
- **Pattern Recognition**: Spot day-specific market behaviors
- **Risk Management**: Avoid trading on historically volatile days
## 🔧 How to Use
1. **Add to Chart**: Apply the indicator to any timeframe
2. **Select Timezone**: Choose your preferred market timezone from the dropdown
3. **Customize Colors**: Set unique colors for each day in the settings panel
4. **Enable/Disable Days**: Toggle specific days on or off as needed
5. **Optional Labels**: Show day names with customizable label sizes
## 💡 Pro Tips
- Use different color intensities to highlight your preferred trading days
- Combine with other session indicators for comprehensive market timing
- Perfect for swing traders who want to identify weekly patterns
- Ideal for international traders managing multiple market sessions
## 🎯 Perfect For
- Day traders tracking intraday patterns
- Swing traders analyzing weekly cycles
- International traders managing multiple markets
- Anyone wanting better visual organization of their charts
**Works on all timeframes and instruments. Set it once, trade with confidence!**
---
*Compatible with Pine Script v6 | No repainting | Lightweight performance*
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.
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.
Cycle Phase & ETA Tracker [Robust v4]
Cycle Phase & ETA Tracker
Description
The Cycle Phase & ETA Tracker is a powerful tool for analyzing market cycles and predicting the completion of the current cycle (Estimated Time of Arrival, or ETA). It visualizes the cycle phase (0–100%) using a smoothed signal and displays the forecasted completion date with an optional confidence band based on cycle length variability. Ideal for traders looking to time their trades based on cyclical patterns, this indicator offers flexible settings for robust cycle analysis.
Key Features
Cycle Phase Visualization: Tracks the current cycle phase (0–100%) with color-coded zones: green (0–33%), blue (33–66%), orange (66–100%).
ETA Forecast: Shows a vertical line and label indicating the estimated date of cycle completion.
Confidence Band (±σ): Displays a band around the ETA to reflect uncertainty, calculated using the standard deviation of cycle lengths.
Multiple Averaging Methods: Choose from three methods to calculate average cycle length:
Median (Robust): Uses the median for resilience against outliers.
Weighted Mean: Prioritizes recent cycles with linear or quadratic weights.
Simple Mean: Applies equal weights to all cycles.
Adaptive Cycle Length: Automatically adjusts cycle length based on the timeframe or allows a fixed length.
Debug Histogram: Optionally displays the smoothed signal for diagnostic purposes.
Setup and Usage
Add the Indicator:
Search for "Cycle Phase & ETA Tracker " in TradingView’s indicator library and apply it to your chart.
Configure Parameters:
Core Settings:
Track Last N Cycles: Sets the number of recent cycles used to calculate the average cycle length (default: 20). Higher values provide stability but may lag market shifts.
Source: Selects the data source for analysis (e.g., close, open, high; default: close price).
Use Adaptive Cycle Length?: Enables automatic cycle length adjustment based on timeframe (e.g., shorter for intraday, longer for daily) or uses a fixed length if disabled.
Fixed Cycle Length: Defines the cycle length in bars when adaptive mode is off (default: 14). Smaller values increase sensitivity to short-term cycles.
Show Debug Histogram: Enables a histogram of the smoothed signal for debugging signal behavior.
Cycle Length Estimation:
Average Mode: Selects the method for calculating average cycle length: "Median (Robust)", "Weighted Mean", or "Simple Mean".
Weights (for Weighted Mean): For "Weighted Mean", chooses "linear" (moderate emphasis on recent cycles) or "quadratic" (strong emphasis on recent cycles).
ETA Visualization:
Show ETA Line & Label: Toggles the display of the ETA line and date label.
Show ETA Confidence Band (±σ): Toggles the confidence band around the ETA, showing the uncertainty range.
Band Transparency: Adjusts the transparency of the confidence band (0 = fully transparent, 100 = fully opaque; default: 85).
ETA Color: Sets the color for the ETA line, label, and confidence band (default: orange).
Interpretation:
The cycle phase (0–100%) indicates progress: green for the start, blue for the middle, and orange for the end of the cycle.
The ETA line and label show the predicted cycle completion date.
The confidence band reflects the uncertainty range (±1 standard deviation) of the ETA.
If a warning "Insufficient cycles for ETA" appears, wait for the indicator to collect at least 3 cycles.
Limitations
Requires at least 3 cycles for reliable ETA and confidence band calculations.
On low timeframes or low-volatility markets, zero-crossings may be infrequent, delaying ETA updates.
Accuracy depends on proper cycle length settings (adaptive or fixed).
Notes
Test the indicator across different assets and timeframes to optimize settings.
Use the debug histogram to troubleshoot if the ETA appears inaccurate.
For feedback or suggestions, contact the author via TradingView.
Cycle Phase & ETA Tracker
Описание
Индикатор Cycle Phase & ETA Tracker предназначен для анализа рыночных циклов и прогнозирования времени завершения текущего цикла (ETA — Estimated Time of Arrival). Он отслеживает фазы цикла (0–100%) на основе сглаженного сигнала и отображает предполагаемую дату завершения цикла с опциональной доверительной полосой, основанной на стандартном отклонении длин циклов. Индикатор идеально подходит для трейдеров, которые хотят выявлять циклические закономерности и планировать свои действия на основе прогнозируемого времени.
Ключевые особенности
Фазы цикла: Визуализирует текущую фазу цикла (0–100%) с цветовой кодировкой: зеленый (0–33%), синий (33–66%), оранжевый (66–100%).
Прогноз ETA: Показывает вертикальную линию и метку с предполагаемой датой завершения цикла.
Доверительная полоса (±σ): Отображает зону неопределенности вокруг ETA, основанную на стандартном отклонении длин циклов.
Гибкие методы усреднения: Поддерживает три метода расчета средней длины цикла:
Median (Robust): Медиана, устойчивая к выбросам.
Weighted Mean: Взвешенное среднее, где недавние циклы имеют больший вес (линейный или квадратичный).
Simple Mean: Простое среднее с равными весами.
Адаптивная длина цикла: Автоматически подстраивает длину цикла под таймфрейм или позволяет задать фиксированную длину.
Отладочная гистограмма: Опционально отображает сглаженный сигнал для анализа.
Настройка и использование
Добавьте индикатор:
Найдите "Cycle Phase & ETA Tracker " в библиотеке индикаторов TradingView и добавьте его на график.
Настройте параметры:
Core Settings:
Track Last N Cycles: Количество последних циклов для расчета средней длины (по умолчанию 20). Большие значения дают более стабильные результаты, но могут запаздывать.
Source: Источник данных (по умолчанию цена закрытия).
Use Adaptive Cycle Length?: Включите для автоматической настройки длины цикла по таймфрейму или отключите для использования фиксированной длины.
Fixed Cycle Length: Длина цикла в барах, если адаптивная длина отключена (по умолчанию 14).
Show Debug Histogram: Включите для отображения сглаженного сигнала (полезно для отладки).
Cycle Length Estimation:
Average Mode: Выберите метод усреднения: "Median (Robust)", "Weighted Mean" или "Simple Mean".
Weights (for Weighted Mean): Для режима "Weighted Mean" выберите "linear" (умеренный вес для новых циклов) или "quadratic" (сильный вес для новых циклов).
ETA Visualization:
Show ETA Line & Label: Включите для отображения линии и метки ETA.
Show ETA Confidence Band (±σ): Включите для отображения доверительной полосы.
Band Transparency: Прозрачность полосы (0 — полностью прозрачная, 100 — полностью непрозрачная, по умолчанию 85).
ETA Color: Цвет для линии, метки и полосы (по умолчанию оранжевый).
Интерпретация:
Фаза цикла (0–100%) показывает прогресс текущего цикла: зеленый — начало, синий — середина, оранжевый — конец.
Линия и метка ETA указывают предполагаемую дату завершения цикла.
Доверительная полоса показывает диапазон неопределенности (±1 стандартное отклонение).
Если отображается предупреждение "Insufficient cycles for ETA", дождитесь, пока индикатор соберет минимум 3 цикла.
Ограничения
Требуется минимум 3 цикла для надежного расчета ETA и доверительной полосы.
На низких таймфреймах или рынках с низкой волатильностью пересечения нуля могут быть редкими, что замедляет обновление ETA.
Эффективность зависит от правильной настройки длины цикла (fixedL или адаптивной).
Примечания
Протестируйте индикатор на разных таймфреймах и активах, чтобы подобрать оптимальные параметры.
Используйте отладочную гистограмму для анализа сигнала, если ETA кажется неточным.
Для вопросов или предложений по улучшению свяжитесь через TradingView.