Multi-Factor Reversal AnalyzerMulti-Factor Reversal Analyzer – Quantitative Reversal Signal System
OVERVIEW
Multi-Factor Reversal Analyzer is a comprehensive technical analysis toolkit designed to detect market tops and bottoms with high precision. It combines trend momentum analysis, price action behavior, wave oscillation structure, and volatility breakout potential into one unified indicator.
This indicator is not a random mix of tools — each module is carefully selected for a specific purpose. When combined, they form a multi-dimensional view of the market, merging trend analysis, momentum divergence, and volatility compression to produce high-confidence signals.
Why Combine These Modules?
Module Combination Ideas & How to Use Them
Factor A: Trend Detector + Gold Zone
Concept:
• The Trend Detector (light yellow histogram) evaluates market strength:
• Histogram trending downward or staying below 50 → bearish conditions;
• Trending upward or staying above 50 → bullish conditions.
• The Gold Zone identifies areas of volatility compression — typically a prelude to explosive market moves.
Practical Application:
• When the Gold Zone appears and the Trend Detector is bearish → likely downside move;
• When the Gold Zone appears and the Trend Detector is bullish → likely upside breakout.
• Note: The Gold Zone does not mean the bottom is in. It is not a buy signal on its own — always combine it with other modules for directional bias.
Factor B: PAI + Wave Trend
Concept:
• PAI (Price Action Index) is a custom oscillator that combines price momentum with volatility dispersion, displaying strength zones:
• Green area → bullish dominance;
• Red area → bearish pressure.
• Wave Trend offers smoothed crossover signals via the main and signal lines.
Practical Application:
• When PAI is in the green zone and Wave Trend makes a bullish crossover → potential reversal to the upside;
• When PAI is in the red zone and Wave Trend shows a bearish crossover → potential start of a downtrend.
Factor C: Trend Detector + PAI
Concept:
• Combines directional trend strength with price action strength to confirm setups via confluence.
Practical Application:
• Trend Detector histogram bottoms out + PAI enters the green zone → high chance of upward reversal;
• Histogram tops out + PAI in the red zone → increased likelihood of downside continuation.
Multi-Factor Confluence (Advanced Use)
• When Trend Detector, PAI, and Wave Trend all align in the same direction (bullish or bearish), the directional signal becomes significantly more reliable.
• This setup is especially useful for trend-following or swing trade entries.
KEY FEATURES
1. Multi-Layer Reversal Logic
• Combines trend scoring, oscillator divergence, and volatility squeezes for triangulated reversal detection.
• Helps traders distinguish between trend pullbacks and true reversals.
2. Advanced Divergence Detection
• Detects both regular and hidden divergences using pivot-based confirmation logic.
• Customizable lookback ranges and pivot sensitivity provide flexible tuning for different market styles.
3. Gold Zone Volatility Compression
• Highlights pre-breakout zones using custom oscillation models (RSI, harmonic, Karobein, etc.).
• Improves anticipation of breakout opportunities following low-volatility compressions.
4. Trend Direction Context
• PAI and Trend Score components provide top-down insight into prevailing bias.
• Built-in “Straddle Area” highlights consolidation zones; breakouts from this area often signal new trend phases.
5. Flexible Visualization
• Color-coded trend bars, reversal markers, normalized oscillator plots, and trend strength labels.
• Designed for both visual discretionary traders and data-driven system developers.
USAGE GUIDELINES
1. Applicable Markets
• Suitable for stocks, crypto, futures, and forex
• Supports reversal, mean-reversion, and breakout trading styles
2. Recommended Timeframes
• Short-term traders: 5m / 15m / 1H — use Wave Trend divergence + Gold Zone
• Swing traders: 4H / Daily — rely on Price Action Index and Trend Detector
• Macro trend context: use PAI HTF mode for higher timeframe overlays
3. Reversal Strategy Flow
• Watch for divergence (WT/PAI) + Gold Zone compression
• Confirm with Trend Score weakening or flipping
• Use Straddle Area breakout for final trigger
• Optional: enable bar coloring or labels for visual reinforcement
• The indicator performs optimally when used in conjunction with a harmonic pattern recognition tool
4. Additional Note on the Gold Zone
The “Gold Zone” does not directly indicate a market bottom. Since it is displayed at the bottom of the chart, it may be misunderstood as a bullish signal. In reality, the Gold Zone represents a compression of price momentum and volatility, suggesting that a significant directional move is about to occur. The direction of that move—upward or downward—should be determined by analyzing the histogram:
• If histogram momentum is weakening, the Gold Zone may precede a downward move.
• If histogram momentum is strengthening, it may signal an upcoming rebound or rally.
Treat the Gold Zone as a warning of impending volatility, and always combine it with trend indicators for accurate directional judgment.
RISK DISCLAIMER
• This indicator calculates trend direction based on historical data and cannot guarantee future market performance. When using this indicator for trading, always combine it with other technical analysis tools, fundamental analysis, and personal trading experience for comprehensive decision-making.
• Market conditions are uncertain, and trend signals may result in false positives or lag. Traders should avoid over-reliance on indicator signals and implement stop-loss strategies and risk management techniques to reduce potential losses.
• Leverage trading carries high risks and may result in rapid capital loss. If using this indicator in leveraged markets (such as futures, forex, or cryptocurrency derivatives), exercise caution, manage risks properly, and set reasonable stop-loss/take-profit levels to protect funds.
• All trading decisions are the sole responsibility of the trader. The developer is not liable for any trading losses. This indicator is for technical analysis reference only and does not constitute investment advice.
• Before live trading, it is recommended to use a demo account for testing to fully understand how to use the indicator and apply proper risk management strategies.
CHANGELOG
v1.0: Initial release featuring integrated Price Action Index, Trend Strength Scoring, Wave Trend Oscillator, Gold Zone Compression Detection, and dual-type divergence recognition. Supports higher timeframe (HTF) synchronization, visual signal markers, and diversified parameter configurations.
在腳本中搜尋"wave"
[blackcat] L2 Ehlers Autocorrelation Indicator V2OVERVIEW
The Ehlers Autocorrelation Indicator is a technical analysis tool developed by John F. Ehlers that measures the correlation between price data and its lagged versions to identify potential market cycles and reversals.
BACKGROUND
Originally introduced in Ehlers' "Cycle Analytics for Traders" (2013), this indicator leverages autocorrelation principles to detect patterns in market data that deviate from random noise or perfect sine waves.
FEATURES
• Calculates Pearson correlation coefficients for lags from 0 to 60 bars
• Visualizes correlations using colored bars ranging from red (negative correlation) to yellow (positive correlation)
• Provides minimum averaging option through AvgLength input parameter
• Displays sharp reversal signals at price turning points
• Shows variations in bar thickness and count over time
HOW TO USE
Add the indicator to your chart
Adjust the AvgLength input as needed:
• Set to 0 for no averaging
• Increase value for smoother results
Interpret the colored bars:
• Red: Negative correlation
• Yellow: Positive correlation
• Sharp transitions indicate potential reversal points
LIMITATIONS
• Requires sufficient historical data for accurate calculations
• Performance may vary across different market conditions
• Results depend on proper parameter settings
NOTES
• The indicator uses highpass filtering and super smoother filtering techniques
• Color intensity varies based on correlation strength
• Multiple lag periods are displayed simultaneously for comprehensive analysis
THANKS
This implementation is based on Ehlers' original work and has been adapted for TradingView's Pine Script platform.
TrendWave Bands [BigBeluga]This is a trend-following indicator that dynamically adapts to market trends using upper and lower bands. It visually highlights trend strength and duration through color intensity while providing additional wave bands for deeper trend analysis.
🔵Key Features:
Adaptive Trend Bands:
➣ Displays a lower band in uptrends and an upper band in downtrends to indicate trend direction.
➣ The bands act as dynamic support and resistance levels, helping traders identify potential entry and exit points.
Wave Bands for Additional Analysis:
➣ A dashed wave band appears opposite the main trend band for deeper trend confirmation.
➣ In an uptrend, the upper dashed wave band helps analyze momentum, while in a downtrend, the lower dashed wave band serves the same purpose.
Gradient Color Intensity:
➣ The trend bands have a color gradient that fades as the trend continues, helping traders visualize trend duration.
➣ The wave bands have an inverse gradient effect—starting with low intensity at the trend's beginning and increasing in intensity as the trend progresses.
Trend Change Signals:
➣ Circular markers appear at trend reversals, providing clear entry and exit points.
➣ These signals mark transitions between bullish and bearish phases based on price action.
🔵Usage:
Trend Following: Use the lower band for confirmation in uptrends and the upper band in downtrends to stay on the right side of the market.
Trend Duration Analysis: Gradient wavebands give an idea of the duration of the current trend — new trends will have high-intensity colored wavebands and as time goes on, trends will fade.
Trend Reversal Detection: Circular markers highlight trend shifts, making it easier to spot entry and exit opportunities.
Volatility Awareness: Volatility-based bands help traders adjust their strategies based on market volatility, ensuring better risk management.
TrendWave Bands is a powerful tool for traders seeking to follow market trends with enhanced visual clarity. By combining trend bands, wave bands, and gradient-based color scaling, it provides a detailed view of market dynamics and trend evolution.
Squeeze Momentum Indicator Strategy [LazyBear + PineIndicators]The Squeeze Momentum Indicator Strategy (SQZMOM_LB Strategy) is an automated trading strategy based on the Squeeze Momentum Indicator developed by LazyBear, which itself is a modification of John Carter's "TTM Squeeze" concept from his book Mastering the Trade (Chapter 11). This strategy is designed to identify low-volatility phases in the market, which often precede explosive price movements, and to enter trades in the direction of the prevailing momentum.
Concept & Indicator Breakdown
The strategy employs a combination of Bollinger Bands (BB) and Keltner Channels (KC) to detect market squeezes:
Squeeze Condition:
When Bollinger Bands are inside the Keltner Channels (Black Crosses), volatility is low, signaling a potential upcoming price breakout.
When Bollinger Bands move outside Keltner Channels (Gray Crosses), the squeeze is released, indicating an expansion in volatility.
Momentum Calculation:
A linear regression-based momentum value is used instead of traditional momentum indicators.
The momentum histogram is color-coded to show strength and direction:
Lime/Green: Increasing bullish momentum
Red/Maroon: Increasing bearish momentum
Signal Colors:
Black: Market is in a squeeze (low volatility).
Gray: Squeeze is released, and volatility is expanding.
Blue: No squeeze condition is present.
Strategy Logic
The script uses historical volatility conditions and momentum trends to generate buy/sell signals and manage positions.
1. Entry Conditions
Long Position (Buy)
The squeeze just released (Gray Cross after Black Cross).
The momentum value is increasing and positive.
The momentum is at a local low compared to the past 100 bars.
The price is above the 100-period EMA.
The closing price is higher than the previous close.
Short Position (Sell)
The squeeze just released (Gray Cross after Black Cross).
The momentum value is decreasing and negative.
The momentum is at a local high compared to the past 100 bars.
The price is below the 100-period EMA.
The closing price is lower than the previous close.
2. Exit Conditions
Long Exit:
The momentum value starts decreasing (momentum lower than previous bar).
Short Exit:
The momentum value starts increasing (momentum higher than previous bar).
Position Sizing
Position size is dynamically adjusted based on 8% of strategy equity, divided by the current closing price, ensuring risk-adjusted trade sizes.
How to Use This Strategy
Apply on Suitable Markets:
Best for stocks, indices, and forex pairs with momentum-driven price action.
Works on multiple timeframes but is most effective on higher timeframes (1H, 4H, Daily).
Confirm Entries with Additional Indicators:
The author recommends ADX or WaveTrend to refine entries and avoid false signals.
Risk Management:
Since the strategy dynamically sizes positions, it's advised to use stop-losses or risk-based exits to avoid excessive drawdowns.
Final Thoughts
The Squeeze Momentum Indicator Strategy provides a systematic approach to trading volatility expansions, leveraging the classic TTM Squeeze principles with a unique linear regression-based momentum calculation. Originally inspired by John Carter’s method, LazyBear's version and this strategy offer a refined, adaptable tool for traders looking to capitalize on market momentum shifts.
Adaptive Fourier Transform Supertrend [QuantAlgo]Discover a brand new way to analyze trend with Adaptive Fourier Transform Supertrend by QuantAlgo , an innovative technical indicator that combines the power of Fourier analysis with dynamic Supertrend methodology. In essence, it utilizes the frequency domain mathematics and the adaptive volatility control technique to transform complex wave patterns into clear and high probability signals—ideal for both sophisticated traders seeking mathematical precision and investors who appreciate robust trend confirmation!
🟢 Core Architecture
At its core, this indicator employs an adaptive Fourier Transform framework with dynamic volatility-controlled Supertrend bands. It utilizes multiple harmonic components that let you fine-tune how market frequencies influence trend detection. By combining wave analysis with adaptive volatility bands, the indicator creates a sophisticated yet clear framework for trend identification that dynamically adjusts to changing market conditions.
🟢 Technical Foundation
The indicator builds on three innovative components:
Fourier Wave Analysis: Decomposes price action into primary and harmonic components for precise trend detection
Adaptive Volatility Control: Dynamically adjusts Supertrend bands using combined ATR and standard deviation
Harmonic Integration: Merges multiple frequency components with decreasing weights for comprehensive trend analysis
🟢 Key Features & Signals
The Adaptive Fourier Transform Supertrend transforms complex wave calculations into clear visual signals with:
Dynamic trend bands that adapt to market volatility
Sophisticated cloud-fill visualization system
Strategic L/S markers at key trend reversals
Customizable bar coloring based on trend direction
Comprehensive alert system for trend shifts
🟢 Practical Usage Tips
Here's how you can get the most out of the Adaptive Fourier Transform Supertrend :
1/ Setup:
Add the indicator to your favorites, then apply it to your chart ⭐️
Start with close price as your base source
Use standard Fourier period (14) for balanced wave detection
Begin with default harmonic weight (0.5) for balanced sensitivity
Start with standard Supertrend multiplier (2.0) for reliable band width
2/ Signal Interpretation:
Monitor trend band crossovers for potential signals
Watch for convergence of price with Fourier trend
Use L/S markers for trade entry points
Monitor bar colors for trend confirmation
Configure alerts for significant trend reversals
🟢 Pro Tips
Fine-tune Fourier parameters for optimal sensitivity:
→ Lower Base Period (8-12) for more reactive analysis
→ Higher Base Period (15-30) to filter out noise
→ Adjust Harmonic Weight (0.3-0.7) to control shorter trend influence
Customize Supertrend settings:
→ Lower multiplier (1.5-2.0) for tighter bands
→ Higher multiplier (2.0-3.0) for wider bands
→ Adjust ATR length based on market volatility
Strategy Enhancement:
→ Compare signals across multiple timeframes
→ Combine with volume analysis
→ Use with support/resistance levels
→ Integrate with other momentum indicators
Quantum Transform - AynetQuantum Transform Trading Indicator: Explanation
This script is called a "Quantum Transform Trading Indicator" and aims to enhance market analysis by applying complex mathematical models. Written in Pine Script, the indicator includes the following elements:
1. General Structure
Quantum Parameters: Inspired by physical and mathematical concepts (Planck constant ℏ, wave function Ψ, time τ, etc.), it uses specific parameters.
Transformation Functions: Applies various mathematical operations to transform price data in different ways.
Signal Generation: Produces signals for long and short positions.
Visualization: Displays different price transformations and signals on the chart.
2. Core Parameters
The parameters allow users to control various transformations:
Planck Constant (ℏ): A scaling factor for wave modulation.
Wave (Ψ): Controls oscillation in price data.
Time (τ): The length of the lookback period for calculations.
Relativity (γ): Power factor in the Lorentz transformation.
Phase Shift (β): Manages phase shift in transformations.
Frequency (ω): Represents the frequency of price movements.
Dimensions (∇): Enables multi-dimensional field analysis.
3. Functions
a) Relativistic Transform
Inspired by the theory of relativity.
Calculates the Lorentz factor using the rate of price change.
Transforms price data to amplify the relativity effect.
b) Phase Transform
Calculates the phase of price data and applies wave modulation.
Creates phase and amplitude modulation based on the bar index.
c) Resonance Transform
Calculates resonance effects using natural frequency and oscillations.
Highlights periodic behaviors of price movements.
d) Field Transform
Applies multi-dimensional field calculations.
Combines strength, wave, and coherence aspects of price data.
e) Chaos Transform
Implements a chaos effect based on sensitivity analysis.
Simulates chaotic behaviors of price movements.
4. Main Calculations
Quantum Price: The average of all transformation functions.
Bands:
Upper Band: The highest level of quantum price.
Lower Band: The lowest level of quantum price.
Mid Band: The average of upper and lower bands.
Momentum: Calculates the rate of change in quantum price.
5. Signal Generation
Long Signal:
Triggered when the phase price crosses above the field price.
Momentum must be positive, and the price above the mid-band.
Short Signal:
Triggered when the phase price crosses below the field price.
Momentum must be negative, and the price below the mid-band.
Signal strength is calculated relative to the momentum moving average.
6. Visualization
Each transformation is displayed in a unique color.
Bands and Momentum: Visualize price behavior.
Signal Icons: Show buy/sell signals using up/down arrows on the chart.
7. Information Panel
A table in the top-right corner of the chart displays:
The current values of each transformation.
Signal strength (as a percentage).
The type of signal (⬆: Long, ⬇: Short).
Applications
Trend Following: Analyze trends with complex transformations.
Resonance and Chaos Analysis: Understand dynamic behaviors of price.
Signal Strategies: Create strong and reliable buy/sell signals.
If you have any additional questions or customization requests regarding this indicator, feel free to ask!
Sigma 2.0 - Advanced Buy and Sell Signal IndicatorOverview:
Sigma 2.0 is a sophisticated trading indicator designed to help traders identify potential buy and sell opportunities across various financial markets. By leveraging advanced mathematical calculations and incorporating multiple analytical tools, Sigma 2.0 aims to enhance trading strategies by providing precise entry and exit signals.
Key Features:
Advanced Sigma Calculations:
Utilizes a combination of Exponential Moving Averages (EMAs) and price deviations to calculate the Sigma lines (sigma1 and sigma2).
Detects potential trend reversals through the crossover of these Sigma lines.
Customizable Signal Filtering:
Offers the ability to filter buy and sell signals based on user-defined thresholds.
Helps reduce false signals in volatile markets by setting overbought and oversold levels.
Overbought and Oversold Detection:
Identifies extreme market conditions where price reversals are more likely.
Changes the background color of the chart to visually indicate overbought or oversold states.
Integration of Exponential Moving Averages (EMAs):
Includes EMAs of different lengths (10, 21, 55, 200) to assist in identifying market trends.
EMAs act as dynamic support and resistance levels.
Higher Timeframe Signal Incorporation:
Allows users to include signals from a higher timeframe to align trades with the broader market trend.
Enhances the reliability of signals by considering multiple timeframes.
Custom Alerts:
Provides alert conditions for both buy and sell signals.
Enables traders to receive notifications, ensuring timely decision-making.
How It Works:
Sigma Calculation Methodology:
The indicator calculates an average price (ap) and applies EMAs to derive the Sigma lines.
sigma1 represents the smoothed price deviation, while sigma2 is a moving average of sigma1.
A crossover of sigma1 above sigma2 generates a buy signal, indicating potential upward momentum.
Conversely, a crossover of sigma1 below sigma2 generates a sell signal.
Signal Filtering and Thresholds:
Users can enable filtering to only consider signals when sigma1 is below or above certain thresholds.
This helps in focusing on more significant market movements and reducing noise.
Overbought/Oversold Levels:
The indicator monitors sigma1 to detect when the market is in extreme conditions.
Background color changes provide a quick visual cue for these conditions.
EMA Analysis:
The plotted EMAs help in confirming the trend direction.
They can be used alongside Sigma signals to validate trade entries and exits.
Higher Timeframe Signals:
Incorporates signals from a user-selected higher timeframe.
Helps in aligning trades with the overall market trend, increasing the potential success rate.
How to Use:
Adding the Indicator to Your Chart:
Search for "Sigma 2.0" in the TradingView Indicators menu and add it to your chart.
Configuring the Settings:
Adjust the Sigma configurations (Channel Length, Average Length, Signal Line Length) to suit your trading style.
Set the overbought and oversold levels according to your risk tolerance.
Choose whether to filter signals by thresholds.
Select the higher timeframe for additional signal confirmation.
Interpreting the Signals:
Buy Signals:
Indicated by a green triangle below the price bar.
Occur when sigma1 crosses above sigma2 and other conditions are met.
Sell Signals:
Indicated by a red triangle above the price bar.
Occur when sigma1 crosses below sigma2 and other conditions are met.
Higher Timeframe Signals:
Plotted with lime (buy) and maroon (sell) triangles.
Help confirm signals in the current timeframe.
Utilizing EMAs:
Observe the EMAs to gauge the overall trend.
Consider aligning buy signals when the price is above key EMAs and sell signals when below.
Setting Up Alerts:
Use the built-in alert conditions to receive notifications for buy and sell signals.
Customize alert messages as needed.
Credits:
Original Concept Inspiration:
This indicator is inspired by the WaveTrend oscillator and other momentum-based indicators.
Special thanks to the original authors whose work laid the foundation for this enhanced version.
Disclaimer:
Trading involves significant risk, and past performance is not indicative of future results.
This indicator is a tool to assist in analysis and should not be the sole basis for any trading decision.
Always perform thorough analysis and consider multiple factors before entering a trade.
Note:
Ensure your chart is clean and only includes this indicator when publishing.
The script is open-source and can be modified to fit individual trading strategies.
For any questions or support, feel free to reach out or comment.
E9 Shark-32 PatternUnderstanding the Shark-32 Pattern and its Trading Applications
The Shark-32 Pattern is a bearish technical trading formation used to predict market reversals or trend continuations. It highlights a downward move followed by a corrective rally, signaling a potential resumption of the downtrend. Here’s a breakdown of how it works:
What is the Shark-32 Pattern?
The Shark-32 pattern is a five-wave structure typically observed in bearish markets:
Wave 0 to X: A significant price decline starts the pattern.
Wave X to A: A correction pushes the price slightly upward.
Wave A to B: The price drops again but doesn’t reach the initial low.
Wave B to C: A final sharp decline concludes the pattern.
Once Wave C is formed, it suggests that the market will continue to move downward, presenting a potential selling or shorting opportunity.
Using the Pattern in Trading
This pattern is valuable for traders seeking high-probability bearish setups. The goal is to capitalize on the continuation of a downtrend following the corrective rally (X to A). Identifying the Shark-32 pattern helps anticipate the next wave of selling pressure.
Trading Setup
Identify a Shark-32 pattern.
If the price closes above the pattern's high, buy at the open the next day.
If the price closes below the pattern's low, short at the open the next day.
Sell/cover when the price moves 7% in the direction of the breakout.
Close the trade for a loss if the price moves 7% in the opposite direction.
For example, in a bull market after an upward breakout from a Shark-32, the net gain was $69.55. The method won 56% of the time with 5,218 winning trades and an average gain of $714.07. Conversely, 44% of trades were losers, with an average loss of $747.33. The average holding period was 26 calendar days.
The gains and losses were closely aligned with the 7% threshold set for this test.
Key Target Levels
To enhance the strategy, use dotted projection lines as target levels:
Upper Target: Drawn above the high of the corrective rally (Wave A). If the price breaks above this line, it may signal further upward movement, indicating a potentially weaker downtrend.
Lower Target: Positioned below the low of Wave C, providing a target for bearish trades.
These lines help determine future price targets and assist in setting take-profit or stop-loss levels.
Trading the Breakout
Look for breakouts once the Shark-32 pattern is identified:
Upward Breakout: If the price closes above the green line (high from two bars ago), it indicates a potential reversal to the upside.
Downward Breakout: If the price breaks below the red line (low from two bars ago), it confirms the bearish continuation.
Breakouts allow traders to adjust their positions based on market shifts.
Trading Tips
Continuation: The Shark-32 pattern acts as a continuation 60% of the time, confirming the ongoing trend.
Breakout Confirmation: Wait for the price to close above or below the pattern’s key levels before entering a trade.
Trade with the Trend: Since the Shark-32 is a continuation pattern, expect the breakout to align with the inbound price trend.
Symmetry: Patterns with symmetry often perform better. For more insights, refer to detailed trading literature.
Half-Staff: The Shark-32 can form midway in a trend, similar to flags and pennants.
Shark-32: Trading Performance
Based on an analysis of 23,369 trades, the following performance metrics were observed:
Bull Market with Upward Breakout: The average net profit was $69.55. This method won 56% of the time, with winning trades averaging $714.07. Losing trades, which constituted 44% of the total, had an average loss of $747.33. The average holding period was 26 calendar days.
Bull Market with Downward Breakout: The average net loss was $(76.36). This method won 43% of the time, with winning trades averaging $753.56. Losing trades, which constituted 57% of the total, had an average loss of $706.32. The average holding period was 23 calendar days.
Bear Market with Upward Breakout: The average net loss was $(89.13). This method won 46% of the time, with winning trades averaging $710.77. Losing trades, which constituted 54% of the total, had an average loss of $756.97. The average holding period was 16 calendar days.
Bear Market with Downward Breakout: The average net profit was $65.17. This method won 52% of the time, with winning trades averaging $781.62. Losing trades, which constituted 48% of the total, had an average loss of $722.41. The average holding period was 13 calendar days.
ABCD Projection [Trendoscope®]Over the years, we have extensively explored and published numerous scripts centered around various chart patterns, including Harmonic Patterns, Reversal Patterns, Elliott Waves, and more. Our expertise in these areas has led to frequent requests for an indicator based on the ABCD pattern. Although we didn't include it as part of our Harmonic Patterns collection, the development of a dedicated ABCD Projection Indicator has always been a priority for us.
🎲 Overview of the ABCD Projection Indicator
The ABCD Projection Indicator is designed to identify and project ABCD patterns using a Zigzag-based approach. This pattern, characterized by alternating pivot highs and lows labeled as A, B, C, and D, is particularly significant in trending markets where it signifies trend continuation following deep pullbacks.
The indicator works by confirming the ABC pivots and projecting the D pivot based on the established price swings. Since ABCD patterns are most effective in trending environments, the indicator focuses on filtering patterns where the retracement from the C pivot has not compromised the trade's potential. Specifically, it ensures that the starting point (S)—where the pattern is detected—has not retraced beyond a defined threshold, preserving the opportunity to execute a trade with the goal of reaching the projected D pivot.
Additionally, the ABCD Projection Indicator considers the retracement ratio from the C pivot, which plays a crucial role in risk management. A higher retracement ratio reduces the stop distance (from pivot A to the entry point S) while increasing the distance to the target (pivot D), thereby enhancing the reward/risk ratio for trades.
🎲 Components of the ABCD Projection Indicator
The ABCD Projection Indicator comprises several key components:
A, B, C Pivots and Zigzag Wave : These elements form the foundational structure of the ABCD pattern.
S Point : This is the location where the pattern is identified, positioned a few bars away from the confirmed C pivot.
Estimated D Pivot : The D pivot is projected based on the A, B, and C price levels. The time or distance to the D pivot is influenced by the starting point S.
Mini Stats Table : Located in the top right corner, this table displays win/loss ratios and risk/reward data for both bullish and bearish scenarios.
Fibonacci Levels : Calculated from the C to D pivots, these levels are provided as a reference for additional analysis.
🎲 Indicator Settings
The settings for the ABCD Projection Indicator are minimal and intuitive, with tooltips provided to guide users through the configuration process.
Auto Volume Spread Analysis (VSA) [TANHEF]Auto Volume Spread Analysis (visible volume and spread bars auto-scaled): Understanding Market Intentions through the Interpretation of Volume and Price Movements.
All the sections below contain the same descriptions as my other indicator "Volume Spread Analysis" with the exception of 'Auto Scaling'.
█ Auto-Scaling
This indicator auto-scales spread bars to match the visible volume bars, unlike the previous "Volume Spread Analysis " version which limited the number of visible spread bars to a fixed count. The auto-scaling feature allows for easier navigation through historical data, enabling both more historical spread bars to be viewed and more historical VSA pattern labels being displayed without requiring using the bar replay tool. Please note that this indicator’s auto-scaling feature recalculates the visible bars on the chart, causing the indicator to reload whenever the chart is moved.
Auto-scaled spread bars have two display options (set via 'Spread Bars Method' setting):
Lines: a bar lookback limit of 500 bars.
Polylines: no bar lookback limit as only plotted on visible bars on chart, which uses multiple polylines are used.
█ Simple Explanation:
The Volume Spread Analysis (VSA) indicator is a comprehensive tool that helps traders identify key market patterns and trends based on volume and spread data. This indicator highlights significant VSA patterns and provides insights into market behavior through color-coded volume/spread bars and identification of bars indicating strength, weakness, and neutrality between buyers and sellers. It also includes powerful volume and spread forecasting capabilities.
█ Laws of Volume Spread Analysis (VSA):
The origin of VSA begins with Richard Wyckoff, a pivotal figure in its development. Wyckoff made significant contributions to trading theory, including the formulation of three basic laws:
The Law of Supply and Demand: This fundamental law states that supply and demand balance each other over time. High demand and low supply lead to rising prices until demand falls to a level where supply can meet it. Conversely, low demand and high supply cause prices to fall until demand increases enough to absorb the excess supply.
The Law of Cause and Effect: This law assumes that a 'cause' will result in an 'effect' proportional to the 'cause'. A strong 'cause' will lead to a strong trend (effect), while a weak 'cause' will lead to a weak trend.
The Law of Effort vs. Result: This law asserts that the result should reflect the effort exerted. In trading terms, a large volume should result in a significant price move (spread). If the spread is small, the volume should also be small. Any deviation from this pattern is considered an anomaly.
█ Volume and Spread Analysis Bars:
Display: Volume and spread bars that consist of color coded levels, with the spread bars scaled to match the volume bars. A displayable table (Legend) of bar colors and levels can give context and clarify to each volume/spread bar.
Calculation: Levels are calculated using multipliers applied to moving averages to represent key levels based on historical data: low, normal, high, ultra. This method smooths out short-term fluctuations and focuses on longer-term trends.
Low Level: Indicates reduced volatility and market interest.
Normal Level: Reflects typical market activity and volatility.
High Level: Indicates increased activity and volatility.
Ultra Level: Identifies extreme levels of activity and volatility.
This illustrates the appearance of Volume and Spread bars when scaled and plotted together:
█ Forecasting Capabilities:
Display: Forecasted volume and spread levels using predictive models.
Calculation: Volume and Spread prediction calculations differ as volume is linear and spread is non-linear.
Volume Forecast (Linear Forecasting): Predicts future volume based on current volume rate and bar time till close.
Spread Forecast (Non-Linear Dynamic Forecasting): Predicts future spread using a dynamic multiplier, less near midpoint (consolidation) and more near low or high (trending), reflecting non-linear expansion.
Moving Averages: In forecasting, moving averages utilize forecasted levels instead of actual levels to ensure the correct level is forecasted (low, normal, high, or ultra).
The following compares forecasted volume with actual resulting volume, highlighting the power of early identifying increased volume through forecasted levels:
█ VSA Patterns:
Criteria and descriptions for each VSA pattern are available as tooltips beside them within the indicator’s settings. These tooltips provide explanations of potential developments based on the volume and spread data.
Signs of Strength (🟢): Patterns indicating strong buying pressure and potential market upturns.
Down Thrust
Selling Climax
No Effort ➤ Bearish Result
Bearish Effort ➤ No Result
Inverse Down Thrust
Failed Selling Climax
Bull Outside Reversal
End of Falling Market (Bag Holder)
Pseudo Down Thrust
No Supply
Signs of Weakness (🔴): Patterns indicating strong selling pressure and potential market downturns.
Up Thrust
Buying Climax
No Effort ➤ Bullish Result
Bullish Effort ➤ No Result
Inverse Up Thrust
Failed Buying Climax
Bear Outside Reversal
End of Rising Market (Bag Seller)
Pseudo Up Thrust
No Demand
Neutral Patterns (🔵): Patterns indicating market indecision and potential for continuation or reversal.
Quiet Doji
Balanced Doji
Strong Doji
Quiet Spinning Top
Balanced Spinning Top
Strong Spinning Top
Quiet High Wave
Balanced High Wave
Strong High Wave
Consolidation
Bar Patterns (🟡): Common candlestick patterns that offer insights into market sentiment. These are required in some VSA patterns and can also be displayed independently.
Bull Pin Bar
Bear Pin Bar
Doji
Spinning Top
High Wave
Consolidation
This demonstrates the acronym and descriptive options for displaying bar patterns, with the ability to hover over text to reveal the descriptive text along with what type of pattern:
█ Alerts:
VSA Pattern Alerts: Notifications for identified VSA patterns at bar close.
Volume and Spread Alerts: Alerts for confirmed and forecasted volume/spread levels (Low, High, Ultra).
Forecasted Volume and Spread Alerts: Alerts for forecasted volume/spread levels (High, Ultra) include a minimum percent time elapsed input to reduce false early signals by ensuring sufficient bar time has passed.
█ Inputs and Settings:
Indicator Bar Color: Select color schemes for bars (Normal, Detail, Levels).
Indicator Moving Average Color: Select schemes for bars (Fill, Lines, None).
Price Bar Colors: Options to color price bars based on VSA patterns and volume levels.
Legend: Display a table of bar colors and levels for context and clarity of volume/spread bars.
Forecast: Configure forecast display and prediction details for volume and spread.
Average Multipliers: Define multipliers for different levels (Low, High, Ultra) to refine the analysis.
Moving Average: Set volume and spread moving average settings.
VSA: Select the VSA patterns to be calculated and displayed (Strength, Weakness, Neutral).
Bar Patterns: Criteria for bar patterns used in VSA (Doji, Bull Pin Bar, Bear Pin Bar, Spinning Top, Consolidation, High Wave).
Colors: Set exact colors used for indicator bars, indicator moving averages, and price bars.
More Display Options: Specify how VSA pattern text is displayed (Acronym, Descriptive), positioning, and sizes.
Alerts: Configure alerts for VSA patterns, volume, and spread levels, including forecasted levels.
█ Usage:
The Volume Spread Analysis indicator is a helpful tool for leveraging volume spread analysis to make informed trading decisions. It offers comprehensive visual and textual cues on the chart, making it easier to identify market conditions, potential reversals, and continuations. Whether analyzing historical data or forecasting future trends, this indicator provides insights into the underlying factors driving market movements.
Volume Spread Analysis [TANHEF]Volume Spread Analysis: Understanding Market Intentions through the Interpretation of Volume and Price Movements.
█ Simple Explanation:
The Volume Spread Analysis (VSA) indicator is a comprehensive tool that helps traders identify key market patterns and trends based on volume and spread data. This indicator highlights significant VSA patterns and provides insights into market behavior through color-coded volume/spread bars and identification of bars indicating strength, weakness, and neutrality between buyers and sellers. It also includes powerful volume and spread forecasting capabilities.
█ Laws of Volume Spread Analysis (VSA):
The origin of VSA begins with Richard Wyckoff, a pivotal figure in its development. Wyckoff made significant contributions to trading theory, including the formulation of three basic laws:
The Law of Supply and Demand: This fundamental law states that supply and demand balance each other over time. High demand and low supply lead to rising prices until demand falls to a level where supply can meet it. Conversely, low demand and high supply cause prices to fall until demand increases enough to absorb the excess supply.
The Law of Cause and Effect: This law assumes that a 'cause' will result in an 'effect' proportional to the 'cause'. A strong 'cause' will lead to a strong trend (effect), while a weak 'cause' will lead to a weak trend.
The Law of Effort vs. Result: This law asserts that the result should reflect the effort exerted. In trading terms, a large volume should result in a significant price move (spread). If the spread is small, the volume should also be small. Any deviation from this pattern is considered an anomaly.
█ Volume and Spread Analysis Bars:
Display: Volume and/or spread bars that consist of color coded levels. If both of these are displayed, the number of spread bars can be limited for visual appeal and understanding, with the spread bars scaled to match the volume bars. While automatic calculation of the number of visual bars for auto scaling is possible, it is avoided to prevent the indicator from reloading whenever the number of visual price bars on the chart is adjusted, ensuring uninterrupted analysis. A displayable table (Legend) of bar colors and levels can give context and clarify to each volume/spread bar.
Calculation: Levels are calculated using multipliers applied to moving averages to represent key levels based on historical data: low, normal, high, ultra. This method smooths out short-term fluctuations and focuses on longer-term trends.
Low Level: Indicates reduced volatility and market interest.
Normal Level: Reflects typical market activity and volatility.
High Level: Indicates increased activity and volatility.
Ultra Level: Identifies extreme levels of activity and volatility.
This illustrates the appearance of Volume and Spread bars when scaled and plotted together:
█ Forecasting Capabilities:
Display: Forecasted volume and spread levels using predictive models.
Calculation: Volume and Spread prediction calculations differ as volume is linear and spread is non-linear.
Volume Forecast (Linear Forecasting): Predicts future volume based on current volume rate and bar time till close.
Spread Forecast (Non-Linear Dynamic Forecasting): Predicts future spread using a dynamic multiplier, less near midpoint (consolidation) and more near low or high (trending), reflecting non-linear expansion.
Moving Averages: In forecasting, moving averages utilize forecasted levels instead of actual levels to ensure the correct level is forecasted (low, normal, high, or ultra).
The following compares forecasted volume with actual resulting volume, highlighting the power of early identifying increased volume through forecasted levels:
█ VSA Patterns:
Criteria and descriptions for each VSA pattern are available as tooltips beside them within the indicator’s settings. These tooltips provide explanations of potential developments based on the volume and spread data.
Signs of Strength (🟢): Patterns indicating strong buying pressure and potential market upturns.
Down Thrust
Selling Climax
No Effort → Bearish Result
Bearish Effort → No Result
Inverse Down Thrust
Failed Selling Climax
Bull Outside Reversal
End of Falling Market (Bag Holder)
Pseudo Down Thrust
No Supply
Signs of Weakness (🔴): Patterns indicating strong selling pressure and potential market downturns.
Up Thrust
Buying Climax
No Effort → Bullish Result
Bullish Effort → No Result
Inverse Up Thrust
Failed Buying Climax
Bear Outside Reversal
End of Rising Market (Bag Seller)
Pseudo Up Thrust
No Demand
Neutral Patterns (🔵): Patterns indicating market indecision and potential for continuation or reversal.
Quiet Doji
Balanced Doji
Strong Doji
Quiet Spinning Top
Balanced Spinning Top
Strong Spinning Top
Quiet High Wave
Balanced High Wave
Strong High Wave
Consolidation
Bar Patterns (🟡): Common candlestick patterns that offer insights into market sentiment. These are required in some VSA patterns and can also be displayed independently.
Bull Pin Bar
Bear Pin Bar
Doji
Spinning Top
High Wave
Consolidation
This demonstrates the acronym and descriptive options for displaying bar patterns, with the ability to hover over text to reveal the descriptive text along with what type of pattern:
█ Alerts:
VSA Pattern Alerts: Notifications for identified VSA patterns at bar close.
Volume and Spread Alerts: Alerts for confirmed and forecasted volume/spread levels (Low, High, Ultra).
Forecasted Volume and Spread Alerts: Alerts for forecasted volume/spread levels (High, Ultra) include a minimum percent time elapsed input to reduce false early signals by ensuring sufficient bar time has passed.
█ Inputs and Settings:
Display Volume and/or Spread: Choose between displaying volume bars, spread bars, or both with different lookback periods.
Indicator Bar Color: Select color schemes for bars (Normal, Detail, Levels).
Indicator Moving Average Color: Select schemes for bars (Fill, Lines, None).
Price Bar Colors: Options to color price bars based on VSA patterns and volume levels.
Legend: Display a table of bar colors and levels for context and clarity of volume/spread bars.
Forecast: Configure forecast display and prediction details for volume and spread.
Average Multipliers: Define multipliers for different levels (Low, High, Ultra) to refine the analysis.
Moving Average: Set volume and spread moving average settings.
VSA: Select the VSA patterns to be calculated and displayed (Strength, Weakness, Neutral).
Bar Patterns: Criteria for bar patterns used in VSA (Doji, Bull Pin Bar, Bear Pin Bar, Spinning Top, Consolidation, High Wave).
Colors: Set exact colors used for indicator bars, indicator moving averages, and price bars.
More Display Options: Specify how VSA pattern text is displayed (Acronym, Descriptive), positioning, and sizes.
Alerts: Configure alerts for VSA patterns, volume, and spread levels, including forecasted levels.
█ Usage:
The Volume Spread Analysis indicator is a helpful tool for leveraging volume spread analysis to make informed trading decisions. It offers comprehensive visual and textual cues on the chart, making it easier to identify market conditions, potential reversals, and continuations. Whether analyzing historical data or forecasting future trends, this indicator provides insights into the underlying factors driving market movements.
VolumeSpreadAnalysisLibrary "VolumeSpreadAnalysis"
A library for Volume Spread Analysis (VSA).
spread(_barIndex)
Calculates the spread of a bar.
Parameters:
_barIndex (int) : (int) The index of the bar.
Returns: (float) The spread of the bar.
volume(_barIndex)
Retrieves the volume of a bar.
Parameters:
_barIndex (int) : (int) The index of the bar.
Returns: (float) The volume of the bar.
body(_barIndex)
Calculates the body of a bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The body size of the bar.
wickUpper(_barIndex)
Calculates the upper wick of a bar (upper shadow).
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The upper wick size of the bar.
wickLower(_barIndex)
Calculates the lower wick of a bar (lower shadow).
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The lower wick size of the bar.
calcForecastedSMA(_source, _length, _forecastedLevel)
Calculates the forecasted Simple Moving Average (SMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the SMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted SMA value.
calcForecastedEMA(_source, _length, _forecastedLevel)
Calculates the forecasted Exponential Moving Average (EMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the EMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted EMA value.
calcForecastedRMA(_source, _length, _forecastedLevel)
Calculates the forecasted Relative Moving Average (RMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the RMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted RMA value.
calcForecastedWMA(_source, _length, _forecastedLevel)
Calculates the forecasted Weighted Moving Average (WMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the WMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted WMA value.
calcElapsedTimePercent()
Calculates the elapsed time percent of the current bar.
Returns: (float) The elapsed time percent.
calcForecastedSpread(multiplierAtMidpoints, multiplierAtPeaks)
Calculates the forecasted spread using elapsed time and dynamic multipliers, handling spread's non-linear nature.
Parameters:
multiplierAtMidpoints (float) : (float) The multiplier value at midpoints.
multiplierAtPeaks (float) : (float) The multiplier value at peaks.
Returns: (float) The forecasted spread value.
calcForecastedVolume()
Calculates the forecasted volume using elapsed time, satisfying volume's linear nature.
Returns: (float) The forecasted volume value.
calcForecastedMA(_source, _length, _forecastedSource, _type)
Calculates the forecasted Moving Average (MA) based on the specified type.
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the MA.
_forecastedSource (float) : (float) The forecasted level to include in the calculation.
_type (simple string) : (string) The type of the MA ("SMA", "EMA", "SMMA (RMA)", "WMA").
Returns: (float) The forecasted MA value.
calcMA(_source, _length, _type)
Calculates the Moving Average (MA) based on the specified type.
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the MA.
_type (simple string) : (string) The type of the MA ("SMA", "EMA", "SMMA (RMA)", "WMA").
Returns: (float) The MA value.
bullBar(_barIndex)
Determines if the bar is bullish.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if the bar is bullish, otherwise false.
bearBar(_barIndex)
Determines if the bar is bearish.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if the bar is bearish, otherwise false.
breakout(_barIndex)
Determines if there is a breakout above the previous bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if there is a breakout, otherwise false.
breakdown(_barIndex)
Determines if there is a breakdown below the previous bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if there is a breakdown, otherwise false.
rejectionWickUpper(_rejectionWick)
Determines if the upper wick is a rejection wick.
Parameters:
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if the upper wick is a rejection wick, otherwise false.
rejectionWickLower(_rejectionWick)
Determines if the lower wick is a rejection wick.
Parameters:
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if the lower wick is a rejection wick, otherwise false.
setupDataVolume(_data, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _maTypeVolume)
Sets up data for volume levels.
Parameters:
_data (map) : (map) The map to store the levels.
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthVolume (simple int) : (int) The length for MA.
_maTypeVolume (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataSpread(_data, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _maTypeSpread)
Sets up data for spread levels.
Parameters:
_data (map) : (map) The map to store the levels.
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthSpread (simple int) : (int) The length for MA.
_maTypeSpread (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataForecastVolume(_dataForecast, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _predictedLevelVolume, _maTypeVolume)
Sets up data for volume and spread levels for forecast.
Parameters:
_dataForecast (map)
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthVolume (simple int) : (int) The length for MA.
_predictedLevelVolume (float) : (float) The predicted level for MA.
_maTypeVolume (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataForecastSpread(_dataForecast, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _predictedLevelSpread, _maTypeSpread)
Sets up data for spread levels for forecast.
Parameters:
_dataForecast (map)
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthSpread (simple int) : (int) The length for MA.
_predictedLevelSpread (float) : (float) The predicted level for MA.
_maTypeSpread (simple string) : (string) The type for MA.
Returns: (void) Nothing.
isVolumeLow(_data, _barIndex)
Determines if the volume is low.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is low, otherwise false.
isVolumeNormal(_data, _barIndex)
Determines if the volume is normal.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is normal, otherwise false.
isVolumeHigh(_data, _barIndex)
Determines if the volume is high.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is high, otherwise false.
isVolumeUltra(_data, _barIndex)
Determines if the volume is ultra.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is ultra, otherwise false.
isSpreadLow(_data, _barIndex)
Determines if the spread is low.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is low, otherwise false.
isSpreadNormal(_data, _barIndex)
Determines if the spread is normal.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is normal, otherwise false.
isSpreadHigh(_data, _barIndex)
Determines if the spread is high.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is high, otherwise false.
isSpreadUltra(_data, _barIndex)
Determines if the spread is ultra.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is ultra, otherwise false.
isVolumeText(_data)
Determines text string representing the volume area level.
Parameters:
_data (map) : (map) The data map with volume levels.
Returns: (string) Text string of Low, Normal, High, or Ultra.
isSpreadText(_data)
Determines text string representing the spread area level.
Parameters:
_data (map) : (map) The data map with spread levels.
Returns: (string) Text string of Low, Normal, High, or Ultra.
calcBarColor(_value, _level)
Calculates the color based level.
Parameters:
_value (float) : (float) The value to check.
_level (float) : (float) The value level for comparison.
Returns: (color) The color for the bar.
bullPinBar(_maxBodyPercent, _minWickPercent)
Determines if the bar is a bull pin bar.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
Returns: (bool) True if the bar is a bull pin bar, otherwise false.
bearPinBar(_maxBodyPercent, _minWickPercent)
Determines if the bar is a bear pin bar.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
Returns: (bool) True if the bar is a bear pin bar, otherwise false.
dojiBar(_maxBodyPercent)
Determines if the bar is a doji.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
Returns: (bool) True if the bar is a doji, otherwise false.
spinningTopBar(_minWicksPercent, _emaLength)
Determines if the bar is a spinning top.
Parameters:
_minWicksPercent (simple float) : (float) The minimum wicks percentage.
_emaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if the bar is a spinning top, otherwise false.
highWaveBar(_minBodyPercent, _minWickPercent, _bars)
Determines if the bar is a high wave bar.
Parameters:
_minBodyPercent (simple float) : (float) The minimum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
_bars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if the bar is a high wave bar, otherwise false.
consolidationBar(_data, _spread, _bars)
Determines if the bars are in consolidation.
Parameters:
_data (map) : (map) The data map with spread levels.
_spread (simple float) : (float) The spread percentage for comparison.
_bars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if the bars are in consolidation, otherwise false.
S_DownThrust(_data, _bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (DownThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (DownThrust), otherwise false.
S_SellingClimax(_data, _rejectionWick)
Determines if there is a sign of strength (Selling Climax).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if there is a sign of strength (Selling Climax), otherwise false.
S_NoEffortBearishResult()
Determines if there is a sign of strength (No Effort Bearish Result).
Returns: (bool) True if there is a sign of strength (No Effort Bearish Result), otherwise false.
S_BearishEffortNoResult()
Determines if there is a sign of strength (Bearish Effort No Result).
Returns: (bool) True if there is a sign of strength (Bearish Effort No Result), otherwise false.
S_InverseDownThrust(_data, _bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of strength (Inverse DownThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of strength (Inverse DownThrust), otherwise false.
S_FailedSellingClimax()
Determines if there is a sign of strength (Failed Selling Climax).
Returns: (bool) True if there is a sign of strength (Failed Selling Climax), otherwise false.
S_BullOutsideReversal(_data)
Determines if there is a sign of strength (Bull Outside Reversal).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of strength (Bull Outside Reversal), otherwise false.
S_EndOfFallingMarket(_data)
Determines if there is a sign of strength (End of Falling Market).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of strength (End of Falling Market), otherwise false.
S_PseudoDownThrust(_bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (Pseudo DownThrust).
Parameters:
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (Pseudo DownThrust), otherwise false.
S_NoSupply(_bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (No Supply).
Parameters:
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (No Supply), otherwise false.
W_UpThrust(_data, _bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (UpThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (UpThrust), otherwise false.
W_BuyingClimax(_data, _rejectionWick)
Determines if there is a sign of weakness (Buying Climax).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if there is a sign of weakness (Buying Climax), otherwise false.
W_NoEffortBullishResult()
Determines if there is a sign of weakness (No Effort Bullish Result).
Returns: (bool) True if there is a sign of weakness (No Effort Bullish Result), otherwise false.
W_BullishEffortNoResult()
Determines if there is a sign of weakness (Bullish Effort No Result).
Returns: (bool) True if there is a sign of weakness (Bullish Effort No Result), otherwise false.
W_InverseUpThrust(_data, _bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of weakness (Inverse UpThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of weakness (Inverse UpThrust), otherwise false.
W_FailedBuyingClimax()
Determines if there is a sign of weakness (Failed Buying Climax).
Returns: (bool) True if there is a sign of weakness (Failed Buying Climax), otherwise false.
W_BearOutsideReversal(_data)
Determines if there is a sign of weakness (Bear Outside Reversal).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of weakness (Bear Outside Reversal), otherwise false.
W_EndOfRisingMarket(_data)
Determines if there is a sign of weakness (End of Rising Market).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of weakness (End of Rising Market), otherwise false.
W_PseudoUpThrust(_bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (Pseudo UpThrust).
Parameters:
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (Pseudo UpThrust), otherwise false.
W_NoDemand(_bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (No Demand).
Parameters:
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (No Demand), otherwise false.
N_QuietDoji(_dojiBarMaxBody)
Determines if there is a neutral signal (Quiet Doji).
Parameters:
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Quiet Doji), otherwise false.
N_BalancedDoji(_data, _dojiBarMaxBody)
Determines if there is a neutral signal (Balanced Doji).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Balanced Doji), otherwise false.
N_StrongDoji(_dojiBarMaxBody)
Determines if there is a neutral signal (Strong Doji).
Parameters:
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Strong Doji), otherwise false.
N_QuietSpinningTop(_spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Quiet Spinning Top).
Parameters:
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Quiet Spinning Top), otherwise false.
N_BalancedSpinningTop(_data, _spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Balanced Spinning Top).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Balanced Spinning Top), otherwise false.
N_StrongSpinningTop(_spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Strong Spinning Top).
Parameters:
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Strong Spinning Top), otherwise false.
N_QuietHighWave(_highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Quiet High Wave).
Parameters:
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Quiet High Wave), otherwise false.
N_BalancedHighWave(_data, _highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Balanced High Wave).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Balanced High Wave), otherwise false.
N_StrongHighWave(_highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Strong High Wave).
Parameters:
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Strong High Wave), otherwise false.
N_Consolidation(_data, _consolidationBarSpread, _consolidationBarBars)
Determines if there is a neutral signal (Consolidation).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_consolidationBarSpread (simple float) : (float) The spread percentage for consolidation bar.
_consolidationBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Consolidation), otherwise false.
Alligator + MA Trend Catcher [TradeDots]The "Alligator + MA Trend Catcher" is a trading strategy that integrates the William Alligator indicator with a Moving Average (MA) to establish robust entry and exit conditions, optimized for capturing trends.
HOW IT WORKS
This strategy combines the traditional William Alligator set up with an additional Moving Average indicator for enhanced trend confirmation, creating a user-friendly backtesting tool for traders who prefer the Alligator method.
The original Alligator strategy can frequently present fluctuations, even in well-established trends, leading to potentially premature exits. To mitigate this, we incorporate a Moving Average as a secondary confirmation measure to ensure the market trend has indeed shifted.
Here’s the operational flow for long orders:
Entry Signal: When the price rises above the Moving Average, it confirms a bullish market state. Enter if Alligator spread in an upward direction. The trade remains active even if the Alligator indicator suggests a trend reversal.
Exit Signal: The position is closed when the price falls below the Moving Average, and the Alligator spreads in the downward direction. This setup helps traders to maintain positions through the entirety of the trend for maximum gain.
APPLICATION
This strategy is tailored for assets with significant, well-defined trends, such as Bitcoin and Ethereum, which are known for their high volatility and substantial price movements.
This strategy offers a low win-rate but high reward configuration, making asset selection critical for long-term profitability. If you choose assets that lack strong price momentum, there's a high chance that this strategy may not be effective.
For traders seeking to maximize gains from large trends without exiting prematurely, this strategy provides an aggressive yet controlled approach to riding out substantial market waves.
DEFAULT SETUP
Commission: 0.01%
Initial Capital: $10,000
Equity per Trade: 80%
RISK DISCLAIMER
Trading entails substantial risk, and most day traders incur losses. All content, tools, scripts, articles, and education provided by TradeDots serve purely informational and educational purposes. Past performances are not definitive predictors of future results.
AWR_WaveTrend Multitimeframe [adapted from LazyBear]I've adapted a script from Lazy Bear (WT trend oscillator)
WaveTrend Oscillator is a port of a famous TS/MT indicator.
When the oscillator (WT1 designed as a line) is above the overbought band (50 to 60) and crosses down the WT2 (dotted line), it is usually a good SELL signal. Similarly, when the oscillator crosses above the signal when below the Oversold band ( (-50 to -60)), it is a good BUY signal.
In this indicator, you can display at the same time, different time frames.
Choice possible are 1 mn, 15 mn, 30 mn, 60 mn, 120 mn, 240 mn, 1D, Week, Month.
Small time frames (1 to 30 mn) are represented by a blue lines (light to dark)
1H is in grey
2H & 4H are in purple (light to dark)
1D is in green
1W is in orange
1M is in black
You can choose which timeframes you want to display for the current period or for the last period closed.
In a few seconds, you perfectly see the selected timeframes trends.
There is also at the bottom right a table summing up all the different values of WT1, WT2 and difference between them.
Positive difference means an upside trend
Negative difference means a downside trend.
Another way of using this indicator is displaying only the difference between WT1 & WT2. It's giving the speed & the direction of all trends. Trends are our friends ...
You can observe the significent times frames and look if they are all positives or negatives or if the speed of lower timeframe cross a longer timeframe of if the speed is decreasing or increasing...
Difference values goes generaly from -20 to 20 (it can exceed a bit but really rare). 12 is already high level of speed.
Many uses possible.
In the exemple posted, I've selected WT1 and WT2 for timeframes 4H, Daily & Weekly.
Marker 1:
Orange lines (WT1) are far below - 50 (-67 here) and cross WT2 pointed lines : weekly buy signal
But this buy signal is balanced by 4H & Daily sell signal = it's marking start of hesitations of main trend !!!!
Marker 2 :
Next buy signal in 4H or daily would normaly confirm the start
Marker 3 :
Sell signal in 4H and daily but weekly has an upside trend ! Start of a counter trend in the trend. To find the perfect timing of that you have to look to lower time frames, because 4H and daily are giving many hesitations signals crossing down & crossing up many times in an overbought zone.
Marker 4 :
End of the counter trend. Most of the time, the countertrend don't go in the "over" zone. That's why if you trading in an counter trend, you have to keep it in mind.
Then a few days later you can see the sell signal. And what a sell signal ! 4H & daily are smashed down really fastly ! Trends change warning !
Marker 5
Long hesitation/change of the trend. Daily WT and 4H are below the weekly trends. Weekly start to go down.
Start of a counter trend inside the trend giving us the best selling signal at her end !
Marker 6 :
Long hesitation/change of the trend.
You have to look in lower time frames to identify the short trend. Difficult to find the best timing to get in. ....
I've add many alerts. When a time frame become positive or negative. When many time frames are positive or negative or above or below 47 level...
Please feel free to explore.
Hope it will help you.
Thanks to Lazybear ! Thousands thanks to Lazybear !
Exemple with difference
Squeeze Momentum DeluxeThe Squeeze Momentum Deluxe is a comprehensive trading toolkit built with features of momentum, volatility, and price action. This script offers a suite for both mean reversion and trend-following analysis. Developed based on the original TTM Squeeze implementation by @LazyBear, this indicator introduces several innovative components to enhance your trading insights.
🔲 Components and Features
Momentum Oscillator - as rooted in the TTM Squeeze, quantifies the relationship between price and its extremes over a defined period. By normalizing the calculation, the values become comparable throughout time and across securities, allowing for a nuanced assessment of Bullish and Bearish momentum. Furthermore, by presenting it as a ribbon with a signal line we gain additional information about the direction of price swings.
Squeeze Bars - The original squeeze concept is based on the relationship between the Bollinger Bands and Keltner Channel , once the BB resides inside the KC a squeeze occurs. By understanding their fundamentals a new form of calculation can be inferred.
method bb(float src, simple int len, simple float mult) => method kc(float src, simple int len, simple float mult) =>
float basis = ta.sma (src, len) float basis = ta.sma (src, len)
float dev = ta.stdev(src, len) float rng = ta.atr ( len)
float upper = basis + dev * mult float upper = basis + rng * mult
float lower = basis - dev * mult float lower = basis - rng * mult
Both BB and KC are constructed upon a moving average with the addition of Standard Deviation and Average True Range respectively. Therefore, the calculation can be transformed to when the Stdev is lower than the ATR a squeeze occurs.
method sqz(float src, simple int len) =>
float dev = ta.stdev(src, len)
float atr = ta.atr ( len)
dev < atr ? true : false
This indicator uses three different thresholds for the ATR to gain three levels of price "Squeeze" for further analysis.
Directional Flux- This component measures the overall direction of price volatility, offering insights into trend sentiment. Presented as waves in the background, it includes an OverFlux feature to signal extreme market bias in a particular direction which can signal either exhaustion or vital continuation. Additionally, the user can choose if to base the calculation on Heikin-Ashi Candles to bias the tool toward trend assessment.
Confluence Gauges - Placed at the top and bottom of the indicator, these gauges measure confluence in the relationship between the Momentum Oscillator and Directional Flux. They provide traders with an easily interpretable visual aid for detecting market sentiment. Reversal doritos displayed alongside them contribute to mean reversion analysis.
Divergences (Real-Time) - Equipped with a custom algorithm, the indicator detects real-time divergences between price and the oscillator. This dynamic feature enhances your ability to spot potential trend reversals as they occur.
🔲 Settings
Directional Flux Length - Adjusts the period of which the background volatility waves operate on.
Trend Bias - Bases the calculation of the Flux to HA candles to bias its behavior toward the trend of price action.
Squeeze Momentum Length - Calibrates the length of the main oscillator ribbon as well as the period for the squeeze algorithm.
Signal - Controls the width of the ribbon. Lower values result in faster responsiveness at the cost of premature positives.
Divergence Sensitivity - Adjusts a threshold to limit the amount of divergences detected based on strength. Higher values result in less detections, stronger structure.
🔲 Alerts
Sell Signal
Buy Signal
Bullish Momentum
Bearish Momentum
Bullish Flux
Bearish Flux
Bullish Swing
Bearish Swing
Strong Bull Gauge
Strong Bear Gauge
Weak Bull Gauge
Weak Bear Gauge
High Squeeze
Normal Squeeze
Low Squeeze
Bullish Divergence
Bearish Divergence
As well as the option to trigger 'any alert' call.
The Squeeze Momentum Deluxe is a comprehensive tool that goes beyond traditional momentum indicators, offering a rich set of features to elevate your trading strategy. I recommend using toolkit alongside other indicators to have a wide variety of confluence to therefore gain higher probabilistic and better informed decisions.
Flags and Pennants [Trendoscope®]🎲 An extension to Chart Patterns based on Trend Line Pairs - Flags and Pennants
After exploring Algorithmic Identification and Classification of Chart Patterns and developing Auto Chart Patterns Indicator , we now delve into extensions of these patterns, focusing on Flag and Pennant Chart Patterns. These patterns evolve from basic trend line pair-based structures, often influenced by preceding market impulses.
🎲 Identification rules for the Extension Patterns
🎯 Identify the existence of Base Chart Patterns
Before identifying the flag and pennant patterns, we first need to identify the existence of following base trend line pair based converging or parallel patterns.
Ascending Channel
Descending Channel
Rising Wedge (Contracting)
Falling Wedge (Contracting)
Converging Triangle
Descending Triangle (Contracting)
Ascending Triangle (Contracting)
🎯 Identifying Extension Patterns.
The key to pinpointing these patterns lies in spotting a strong impulsive wave – akin to a flagpole – preceding a base pattern. This setup suggests potential for an extension pattern:
A Bullish Flag emerges from a positive impulse followed by a descending channel or a falling wedge
A Bearish Flag appears after a negative impulse leading to an ascending channel or a rising wedge.
A Bullish Pennant is indicated by a positive thrust preceding a converging triangle or ascending triangle.
A Bearish Pennant follows a negative impulse and a converging or descending triangle.
🎲 Pattern Classifications and Characteristics
🎯 Bullish Flag Pattern
Characteristics of Bullish Flag Pattern are as follows
Starts with a positive impulse wave
Immediately followed by either a short descending channel or a falling wedge
Here is an example of Bullish Flag Pattern
🎯 Bearish Flag Pattern
Characteristics of Bearish Flag Pattern are as follows
Starts with a negative impulse wave
Immediately followed by either a short ascending channel or a rising wedge
Here is an example of Bearish Flag Pattern
🎯 Bullish Pennant Pattern
Characteristics of Bullish Pennant Pattern are as follows
Starts with a positive impulse wave
Immediately followed by either a converging triangle or ascending triangle pattern.
Here is an example of Bullish Pennant Pattern
🎯 Bearish Pennant Pattern
Characteristics of Bearish Pennant Pattern are as follows
Starts with a negative impulse wave
Immediately followed by either a converging triangle or a descending converging triangle pattern.
Here is an example of Bearish Pennant Pattern
🎲 Trading Extension Patterns
In a strong market trend, it's common to see temporary periods of consolidation, forming patterns that either converge or range, often counter to the ongoing trend direction. Such pauses may lay the groundwork for the continuation of the trend post-breakout. The assumption that the trend will resume shapes the underlying bias of Flag and Pennant patterns
It's important, however, not to base decisions solely on past trends. Conducting personal back testing is crucial to ascertain the most effective entry and exit strategies for these patterns. Remember, the behavior of these patterns can vary significantly with the volatility of the asset and the specific timeframe being analyzed.
Approach the interpretation of these patterns with prudence, considering that market dynamics are subject to a wide array of influencing factors that might deviate from expected outcomes. For investors and traders, it's essential to engage in thorough back testing, establishing entry points, stop-loss orders, and target goals that align with your individual trading style and risk appetite. This step is key to assessing the viability of these patterns in line with your personal trading strategies and goals.
It's fairly common to witness a breakout followed by a swift price reversal after these patterns have formed. Additionally, there's room for innovation in trading by going against the bias if the breakout occurs in the opposite direction, specially when the trend before the formation of the pattern is in against the pattern bias.
🎲 Cheat Sheet
🎲 Indicator Settings
Custom Source : Enables users to set custom OHLC - this means, the indicator can also be applied on oscillators and other indicators having OHLC values.
Zigzag Settings : Allows users to enable different zigzag base and set length and depth for each zigzag.
Scanning Settings : Pattern scanning settings set some parameters that define the pattern recognition process.
Display Settings : Determine the display of indicators including colors, lines, labels etc.
Backtest Settings : Allows users to set a predetermined back test bars so that the indicator will not time out while trying to run for all available bars.
Triple Confirmation Kernel Regression Overlay [QuantraSystems]Kernel Regression Oscillator - Overlay
Introduction
The Kernel Regression Oscillator (ᏦᏒᎧ) represents an advanced tool for traders looking to capitalize on market trends.
This Indicator is valuable in identifying and confirming trend directions, as well as probabilistic and dynamic oversold and overbought zones.
It achieves this through a unique composite approach using three distinct Kernel Regressions combined in an Oscillator.
The additional Chart Overlay Indicator adds confidence to the signal.
Which is this Indicator.
This methodology helps the trader to significantly reduce false signals and offers a more reliable indication of market movements than more widely used indicators can.
Legend
The upper section is the Overlay. It features the Signal Wave to display the current trend.
Its Overbought and Oversold zones start at 50% and end at 100% of the selected Standard Deviation (default σ = 3), which can indicate extremely rare situations which can lead to either a softening momentum in the trend or even a mean reversion situation.
The lower one is the Base Chart.
The Indicator is linked here
It features the Kernel Regression Oscillator to display a composite of three distinct regressions, also displaying current trend.
Its Overbought and Oversold zones start at 50% and end at 100% of the selected Standard Deviation (default σ = 2), which can indicate extremely rare situations.
Case Study
To effectively utilize the ᏦᏒᎧ, traders should use both the additional Overlay and the Base
Chart at the same time. Then focus on capturing the confluence in signals, for example:
If the 𝓢𝓲𝓰𝓷𝓪𝓵 𝓦𝓪𝓿𝓮 on the Overlay and the ᏦᏒᎧ on the Base Chart both reside near the extreme of an Oversold zone the probability is higher than normal that momentum in trend may soften or the token may even experience a reversion soon.
If a bar is characterized by an Oversold Shading in both the Overlay and the Base Chart, then the probability is very high to experience a reversion soon.
In this case the trader may want to look for appropriate entries into a long position, as displayed here.
If a bar is characterized by an Overbought Shading in either Overlay or Base Chart, then the probability is high for momentum weakening or a mean reversion.
In this case the trade may have taken profit and closed his long position, as displayed here.
Please note that we always advise to find more confluence by additional indicators.
Recommended Settings
Swing Trading (1D chart)
Overlay
Bandwith: 45
Width: 2
SD Lookback: 150
SD Multiplier: 2
Base Chart
Bandwith: 45
SD Lookback: 150
SD Multiplier: 2
Fast-paced, Scalping (4min chart)
Overlay
Bandwith: 75
Width: 2
SD Lookback: 150
SD Multiplier: 3
Base Chart
Bandwith: 45
SD Lookback: 150
SD Multiplier: 2
Notes
The Kernel Regression Oscillator on the Base Chart is also sensitive to divergences if that is something you are keen on using.
For maximum confluence, it is recommended to use the indicator both as a chart overlay and in its Base Chart.
Please pay attention to shaded areas with Standard Deviation settings of 2 or 3 at their outer borders, and consider action only with high confidence when both parts of the indicator align on the same signal.
This tool shows its best performance on timeframes lower than 4 hours.
Traders are encouraged to test and determine the most suitable settings for their specific trading strategies and timeframes.
The trend following functionality is indicated through the "𝓢𝓲𝓰𝓷𝓪𝓵 𝓦𝓪𝓿𝓮" Line, with optional "Up" and "Down" arrows to denote trend directions only (toggle “Show Trend Signals”).
Methodology
The Kernel Regression Oscillator takes three distinct kernel regression functions,
used at similar weight, in order to calculate a balanced and smooth composite of the regressions. Part of it are:
The Epanechnikov Kernel Regression: Known for its efficiency in smoothing data by assigning less weight to data points further away from the target point than closer data points, effectively reducing variance.
The Wave Kernel Regression: Similarly assigning weight to the data points based on distance, it captures repetitive and thus wave-like patterns within the data to smoothen out and reduce the effect of underlying cyclical trends.
The Logistic Kernel Regression: This uses the logistic function in order to assign weights by probability distribution on the distance between data points and target points. It thus avoids both bias and variance to a certain level.
kernel(source, bandwidth, kernel_type) =>
switch kernel_type
"Epanechnikov" => math.abs(source) <= 1 ? 0.75 * (1 - math.pow(source, 2)) : 0.0
"Logistic" => 1/math.exp(source + 2 + math.exp(-source))
"Wave" => math.abs(source) <= 1 ? (1 - math.abs(source)) * math.cos(math.pi * source) : 0.
kernelRegression(src, bandwidth, kernel_type) =>
sumWeightedY = 0.
sumKernels = 0.
for i = 0 to bandwidth - 1
base = i*i/math.pow(bandwidth, 2)
kernel = kernel(base, 1, kernel_type)
sumWeightedY += kernel * src
sumKernels += kernel
(src - sumWeightedY/sumKernels)/src
// Triple Confirmations
Ep = kernelRegression(source, bandwidth, 'Epanechnikov' )
Lo = kernelRegression(source, bandwidth, 'Logistic' )
Wa = kernelRegression(source, bandwidth, 'Wave' )
By combining these regressions in an unbiased average, we follow our principle of achieving confluence for a signal or a decision, by stacking several edges to increase the probability that we are correct.
// Average
AV = math.avg(Ep, Lo, Wa)
The Standard Deviation bands take defined parameters from the user, in this case sigma of ideally between 2 to 3,
to help the indicator detect extremely improbable conditions and thus take an inversely probable signal from it to forward to the user.
The parameter settings and also the visualizations allow for ample customizations by the trader. The indicator comes with default and recommended settings.
For questions or recommendations, please feel free to seek contact in the comments.
Triple Confirmation Kernel Regression Base [QuantraSystems]Kernel Regression Oscillator - BASE
Introduction
The Kernel Regression Oscillator (ᏦᏒᎧ) represents an advanced tool for traders looking to capitalize on market trends.
This Indicator is valuable in identifying and confirming trend directions, as well as probabilistic and dynamic oversold and overbought zones.
It achieves this through a unique composite approach using three distinct Kernel Regressions combined in an Oscillator. The additional Chart Overlay Indicator adds confidence to the signal.
This methodology helps the trader to significantly reduce false signals and offers a more reliable indication of market movements than more widely used indicators can.
Legend
The upper section is the Overlay. It features the Signal Wave to display the current trend.
Its Overbought and Oversold zones start at 50% and end at 100% of the selected Standard Deviation (default σ = 3), which can indicate extremely rare situations which can lead to either a softening momentum in the trend or even a mean reversion situation.
The lower one is the Base Chart - This Indicator.
It features the Kernel Regression Oscillator to display a composite of three distinct regressions, also displaying current trend.
Its Overbought and Oversold zones start at 50% and end at 100% of the selected Standard Deviation (default σ = 2), which can indicate extremely rare situations.
Case Study
To effectively utilize the ᏦᏒᎧ, traders should use both the additional Overlay and the Base
Chart at the same time. Then focus on capturing the confluence in signals, for example:
If the 𝓢𝓲𝓰𝓷𝓪𝓵 𝓦𝓪𝓿𝓮 on the Overlay and the ᏦᏒᎧ on the Base Chart both reside near the extreme of an Oversold zone the probability is higher than normal that momentum in trend may soften or the token may even experience a reversion soon.
If a bar is characterized by an Oversold Shading in both the Overlay and the Base Chart, then the probability is very high to experience a reversion soon.
In this case the trader may want to look for appropriate entries into a long position, as displayed here.
If a bar is characterized by an Overbought Shading in either Overlay or Base Chart, then the probability is high for momentum weakening or a mean reversion.
In this case the trade may have taken profit and closed his long position, as displayed here.
Please note that we always advise to find more confluence by additional indicators.
Recommended Settings
Swing Trading (1D chart)
Overlay
Bandwith: 45
Width: 2
SD Lookback: 150
SD Multiplier: 2
Base Chart
Bandwith: 45
SD Lookback: 150
SD Multiplier: 2
Fast-paced, Scalping (4min chart)
Overlay
Bandwith: 75
Width: 2
SD Lookback: 150
SD Multiplier: 3
Base Chart
Bandwith: 45
SD Lookback: 150
SD Multiplier: 2
Notes
The Kernel Regression Oscillator on the Base Chart is also sensitive to divergences if that is something you are keen on using.
For maximum confluence, it is recommended to use the indicator both as a chart overlay and in its Base Chart.
Please pay attention to shaded areas with Standard Deviation settings of 2 or 3 at their outer borders, and consider action only with high confidence when both parts of the indicator align on the same signal.
This tool shows its best performance on timeframes lower than 4 hours.
Traders are encouraged to test and determine the most suitable settings for their specific trading strategies and timeframes.
The trend following functionality is indicated through the "𝓢𝓲𝓰𝓷𝓪𝓵 𝓦𝓪𝓿𝓮" Line, with optional "Up" and "Down" arrows to denote trend directions only (toggle “Show Trend Signals”).
Methodology
The Kernel Regression Oscillator takes three distinct kernel regression functions,
used at similar weight, in order to calculate a balanced and smooth composite of the regressions. Part of it are:
The Epanechnikov Kernel Regression: Known for its efficiency in smoothing data by assigning less weight to data points further away from the target point than closer data points, effectively reducing variance.
The Wave Kernel Regression: Similarly assigning weight to the data points based on distance, it captures repetitive and thus wave-like patterns within the data to smoothen out and reduce the effect of underlying cyclical trends.
The Logistic Kernel Regression: This uses the logistic function in order to assign weights by probability distribution on the distance between data points and target points. It thus avoids both bias and variance to a certain level.
kernel(source, bandwidth, kernel_type) =>
switch kernel_type
"Epanechnikov" => math.abs(source) <= 1 ? 0.75 * (1 - math.pow(source, 2)) : 0.0
"Logistic" => 1/math.exp(source + 2 + math.exp(-source))
"Wave" => math.abs(source) <= 1 ? (1 - math.abs(source)) * math.cos(math.pi * source) : 0.
kernelRegression(src, bandwidth, kernel_type) =>
sumWeightedY = 0.
sumKernels = 0.
for i = 0 to bandwidth - 1
base = i*i/math.pow(bandwidth, 2)
kernel = kernel(base, 1, kernel_type)
sumWeightedY += kernel * src
sumKernels += kernel
(src - sumWeightedY/sumKernels)/src
// Triple Confirmations
Ep = kernelRegression(source, bandwidth, 'Epanechnikov' )
Lo = kernelRegression(source, bandwidth, 'Logistic' )
Wa = kernelRegression(source, bandwidth, 'Wave' )
By combining these regressions in an unbiased average, we follow our principle of achieving confluence for a signal or a decision, by stacking several edges to increase the probability that we are correct.
// Average
AV = math.avg(Ep, Lo, Wa)
The Standard Deviation bands take defined parameters from the user, in this case sigma of ideally between 2 to 3,
to help the indicator detect extremely improbable conditions and thus take an inversely probable signal from it to forward to the user.
The parameter settings and also the visualizations allow for ample customizations by the trader. The indicator comes with default and recommended settings.
For questions or recommendations, please feel free to seek contact in the comments.
Trailing Stop-Loss Indicator (FinnoVent)The Dynamic 9 EMA Trailing Stop-Loss Indicator is a specialized tool designed for the TradingView community to enhance risk management in trading. This script dynamically adjusts a trailing stop-loss level based on the position of the price relative to a 9-period Exponential Moving Average (EMA), offering traders a systematic approach to protect potential profits and limit downside risk.
Functionality:
Adaptive Trailing Stop: The indicator calculates a trailing stop-loss that adjusts with the 9 EMA, providing a responsive method to secure gains or prevent extensive losses.
EMA Trend Indicator: The 9-period EMA serves as a momentum indicator, with the script adjusting the trailing stop-loss accordingly — above the EMA for short positions and below for long positions.
Entry Signal Visualization: Entry signals are visualized on the chart, indicating potential long and short positions based on price crossovers with the EMA.
Application:
This indicator is ideal for traders who utilize technical analysis to make informed decisions. By automatically adjusting the stop-loss level to the evolving market conditions, it is particularly useful for:
Day traders looking to capitalize on short-term price movements.
Swing traders aiming to secure positions during more extended market waves.
Any trading strategy that benefits from dynamic stop-loss management.
Usage:
To use the indicator, simply add it to your TradingView chart, and it will automatically plot the trailing stop levels. The green and red lines represent the trailing stops for long and short positions, respectively, providing clear visual cues for potential exit points.
Compliance with TradingView House Rules:
This script is provided for educational purposes and does not constitute investment advice. It is a unique creation that has been developed to contribute to the TradingView community by offering a tool that helps traders manage their trades more effectively.
Fibonacci TradingFibonacci Trading
This simple script draw Fibonacci Retracement to define pullback level and draw Fibonacci Extension to define target level of a upward wave or doward wave
1. Upward wave
1.1 Fibonacci Retracement
+ Fibonacci Retracement measuare from support to nearest resistance on the right.
+ Retracement Level 0 named as "Breake Even"
+ Retracement Level 100 named as "Long Invalidation"
+ Retracement Level 50 and 61.8 is ploted as blue line
+ The zone between Retracement Level 50 and 100 is filled by blue color and named as "Buy zone"
1.2 Fibonacci Extension
+ Fibonacci Extension measuare from Retracement Level 61.8 to Retracement Level 0
+ Fibonacci Extension Level 161.8 named as "Tp1 (Target point 1)"
+ Fibonacci Extension Level 261.8 named as "Tp2 (Target point 2)"
2. Doward wave
2.1 Fibonacci Retracement
+ Fibonacci Retracement measuare from resistance to nearest support on the right.
+ Retracement Level 0 named as "Breake Even"
+ Retracement Level 100 named as "Short Invalidation"
+ Retracement Level 50 and 61.8 is ploted as red line
+ The zone between Retracement Level 50 and 100 is filled by red color and named as "Sell zone"
2.2 Fibonacci Extension
+ Fibonacci Extension measuare from Retracement Level 61.8 to Retracement Level 0
+ Fibonacci Extension Level 161.8 named as "Tp1 (Target point 1)"
+ Fibonacci Extension Level 261.8 named as "Tp2 (Target point 2)"
3. Trading Setup
3.1 Long Only: Only display Fibonacci of Upward wave
3.2 Short Only: Only display Fibonacci of Doward wave
3.3 Both: Display both Fibonacci of Upward wave and Doward wave
MA Slope : New Method1 . Introduction
Hello, traders.
This indicator is designed to measure the slope of a moving average line.
I imagine many of you who use Pine Script have struggled with this; measuring the slope of a moving average line can be quite challenging.
Firstly, this is because while the x-axis is fixed to the 'number of candles', the price scale on the y-axis can be adjusted freely.
Secondly, while the concept of differentiation could simplify the measurement process, the resulting value will differ from the conventional derivative we are familiar with since 'delta x' is fixed to '1'.
Consequently, I've put a lot of thought into how to configure the x-axis and y-axis in order to measure a slope that aligns with our perception of 'slope'.
After some reflection, I, like many others, realized that many people measure the slope based on the pivot of the moving average line.
This indicator is the product of that reflection.
2. Description
A. Setting
First, select the moving average line for which you want to check the slope. While SMA is commonly used, T3 is set as the default because it best visualizes the slope.
If you check 'Show MA Slope Average Pivot Range?' in the input window, it displays the average of the recent 30 slope pivot highs and pivot lows.
In other words, it shows 'On average, this level of slope was produced in the recent 30 waves.'
B. Usage
A cross from 0 in the slope indicates a 'reversal in the slope of the curve', which is the most crucial value when observing the slope.
Thus, fundamentally, it's important to look at the points where the slope becomes "0". Furthermore, when the slope starts to curve after rising, it signifies a change in acceleration, suggesting an imminent slope reversal.
(Note that acceleration was omitted from the indicator representation due to its tendency to overly complicate the data.)
While a shorter length of the moving average line may provide more useful slope data for actual trading, a less smooth moving average line may cross around 0 too often, making it less useful.
Therefore, it's crucial to adjust the 'Smoothing Length' in the input values to find a value that you believe is appropriate.
3. Conclusion
I always contemplate how to find a value in Pine Script that is similar to the perceived slope.
I made this script thinking that it might be a novel approach, but there are still many areas that need improvement.
If you have any innovative ideas about the slope, please feel free to provide feedback anytime.
Thank you.
--------
1. 서론
트레이더 여러분 안녕하세요. 이 지표는 이동평균선의 기울기를 측정하는 지표입니다.
아마 파인스크립트를 다루는 많은 분들이 같은 고민을 하셨을 것 같은데, 이동평균선의 기울기를 측정하는 것은 매우 어렵습니다.
그 이유로 첫번째는 x축은 '캔들 갯수'로 고정되어있는 반면, y축의 가격 스케일은 유동적으로 바꿀 수 있기 때문입니다.
두번째로는, 미분 개념을 이용하면 훨씬 수월하게 구할 수 있을테지만, 델타x가 '1'로 고정되어있기 때문에 우리가 알고있는 미분과 다른 값이 나옵니다.
따라서 x축과 y축을 어떻게 하면 실제 우리가 인식하는 '기울기'에 가깝도록 구성할 수 있을지에 대해 고민해보았습니다.
고민해본 결과 저 역시 그러하고, 많은 사람들이 이동평균선의 피벗을 기준으로 기울기를 측정한다는 사실을 알게되었습니다.
이 지표는 그 고민의 결과물입니다.
2. 내용 설명
A. 셋팅
먼저, 기울기를 확인하고싶은 이동평균선을 선택해주세요.
일반적으로 SMA를 많이 보시겠지만, T3가 기울기로 표현할 때 가장 아름다운 모습이 나오기 때문에 기본 설정을 T3로 설정했습니다.
Input창에 있는 'Show MA Slope Average Pivot Range?'를 체크하면, 최근 30개의 기울기 피벗 하이와 피벗 로우의 평균을 보여줍니다.
즉, '평균적으로, 최근 30개의 파동에서는 이 정도의 기울기가 만들어졌다'라는 것을 보여줍니다
B. 사용법
기울기가 0에서 크로스 된다는 것은, "곡선의 기울기가 반전"된다는 것이기에 기울기를 봄에 있어서 가장 중요한 값입니다. 따라서 가장 기본적으로는, 기울기가 "0"이 되는 곳을 보는 것이 중요하고
또 기울기가 올라갔다 꺾이기 시작할 때는, 가속도가 바뀌고 있다는 뜻이므로, 곧 기울기가 반전될 것을 의미합니다.
(다만 가속도를 지표로 표현하기엔, 너무나도 데이터가 지저분해져서 생략하였습니다)
이동평균선의 길이를 짧게 할수록 더 실제 트레이딩에 유용한 기울기 데이터를 얻을 수 있으나,
부드럽지 못한 이동평균선은 기울기가 0 근처에서 크로스 되는 모습이 지나치게 많이 나올 것이기에 유용하지 않을 수 있습니다.
따라서, input값에 있는 'Smoothing Length'를 조절해가면서 자신이 생각하기에 맞는 값을 고르는 것이 중요합니다.
3. 맺음말
파인스크립트에서 어떻게하면 실제 인식하는 기울기와 유사한 값을 찾을 수 있을까를 항상 고민합니다. 나름 새로운 접근방법이라 생각해서 이렇게 스크립트로 만들었으나, 여전히 아쉬운 부분이 많이 존재합니다.
기울기에 대한 좋은 아이디어가 있다면 언제든 피드백 해주세요.
감사합니다.
Range of a source displayed in thirdsThis indicator will take the value of any external source input and display how it has changed over time (the lookback period in settings). For the purposes of display here I'm using the WT1 line from Wavetrend with Crosses by LazyBear to provide a source input.
The highest and lowest value of the source over the lookback period are used to determine the highest and lowest point - the green and red lines at the top and bottom of the bands. This region is then mathematically split into three, such that the source (and its optional moving average line) can be defined as being in the top third, the middle or the bottom third.
Applications for this could be in risk management where you may wish to take on a larger position size when a certain indicator is in the top third, or decide that you want to enter / leave positions when the source crosses in / out of the extreme points.
Variety MA Cluster Filter Crosses [Loxx]What is a Cluster Filter?
One of the approaches to determining a useful signal (trend) in stream data. Small filtering (smoothing) tests applied to market quotes demonstrate the potential for creating non-lagging digital filters (indicators) that are not redrawn on the last bars.
Standard Approach
This approach is based on classical time series smoothing methods. There are lots of articles devoted to this subject both on this and other websites. The results are also classical:
1. The changes in trends are displayed with latency;
2. Better indicator (digital filter) response achieved at the expense of smoothing quality decrease;
3. Attempts to implement non-lagging indicators lead to redrawing on the last samples (bars).
And whereas traders have learned to cope with these things using persistence of economic processes and other tricks, this would be unacceptable in evaluating real-time experimental data, e.g. when testing aerostructures.
The Main Problem
It is a known fact that the majority of trading systems stop performing with the course of time, and that the indicators are only indicative over certain intervals. This can easily be explained: market quotes are not stationary. The definition of a stationary process is available in Wikipedia:
A stationary process is a stochastic process whose joint probability distribution does not change when shifted in time.
Judging by this definition, methods of analysis of stationary time series are not applicable in technical analysis. And this is understandable. A skillful market-maker entering the market will mess up all the calculations we may have made prior to that with regard to parameters of a known series of market quotes.
Even though this seems obvious, a lot of indicators are based on the theory of stationary time series analysis. Examples of such indicators are moving averages and their modifications. However, there are some attempts to create adaptive indicators. They are supposed to take into account non-stationarity of market quotes to some extent, yet they do not seem to work wonders. The attempts to "punish" the market-maker using the currently known methods of analysis of non-stationary series (wavelets, empirical modes and others) are not successful either. It looks like a certain key factor is constantly being ignored or unidentified.
The main reason for this is that the methods used are not designed for working with stream data. All (or almost all) of them were developed for analysis of the already known or, speaking in terms of technical analysis, historical data. These methods are convenient, e.g., in geophysics: you feel the earthquake, get a seismogram and then analyze it for few months. In other words, these methods are appropriate where uncertainties arising at the ends of a time series in the course of filtering affect the end result.
When analyzing experimental stream data or market quotes, we are focused on the most recent data received, rather than history. These are data that cannot be dealt with using classical algorithms.
Cluster Filter
Cluster filter is a set of digital filters approximating the initial sequence. Cluster filters should not be confused with cluster indicators.
Cluster filters are convenient when analyzing non-stationary time series in real time, in other words, stream data. It means that these filters are of principal interest not for smoothing the already known time series values, but for getting the most probable smoothed values of the new data received in real time.
Unlike various decomposition methods or simply filters of desired frequency, cluster filters create a composition or a fan of probable values of initial series which are further analyzed for approximation of the initial sequence. The input sequence acts more as a reference than the target of the analysis. The main analysis concerns values calculated by a set of filters after processing the data received.
In the general case, every filter included in the cluster has its own individual characteristics and is not related to others in any way. These filters are sometimes customized for the analysis of a stationary time series of their own which describes individual properties of the initial non-stationary time series. In the simplest case, if the initial non-stationary series changes its parameters, the filters "switch" over. Thus, a cluster filter tracks real time changes in characteristics.
Cluster Filter Design Procedure
Any cluster filter can be designed in three steps:
1. The first step is usually the most difficult one but this is where probabilistic models of stream data received are formed. The number of these models can be arbitrary large. They are not always related to physical processes that affect the approximable data. The more precisely models describe the approximable sequence, the higher the probability to get a non-lagging cluster filter.
2. At the second step, one or more digital filters are created for each model. The most general condition for joining filters together in a cluster is that they belong to the models describing the approximable sequence.
3. So, we can have one or more filters in a cluster. Consequently, with each new sample we have the sample value and one or more filter values. Thus, with each sample we have a vector or artificial noise made up of several (minimum two) values. All we need to do now is to select the most appropriate value.
An Example of a Simple Cluster Filter
For illustration, we will implement a simple cluster filter corresponding to the above diagram, using market quotes as input sequence. You can simply use closing prices of any time frame.
1. Model description. We will proceed on the assumption that:
The aproximate sequence is non-stationary, i.e. its characteristics tend to change with the course of time.
The closing price of a bar is not the actual bar price. In other words, the registered closing price of a bar is one of the noise movements, like other price movements on that bar.
The actual price or the actual value of the approximable sequence is between the closing price of the current bar and the closing price of the previous bar.
The approximable sequence tends to maintain its direction. That is, if it was growing on the previous bar, it will tend to keep on growing on the current bar.
2. Selecting digital filters. For the sake of simplicity, we take two filters:
The first filter will be a variety filter calculated based on the last closing prices using the slow period. I believe this fits well in the third assumption we specified for our model.
Since we have a non-stationary filter, we will try to also use an additional filter that will hopefully facilitate to identify changes in characteristics of the time series. I've chosen a variety filter using the fast period.
3. Selecting the appropriate value for the cluster filter.
So, with each new sample we will have the sample value (closing price), as well as the value of MA and fast filter. The closing price will be ignored according to the second assumption specified for our model. Further, we select the МА or ЕМА value based on the last assumption, i.e. maintaining trend direction:
For an uptrend, i.e. CF(i-1)>CF(i-2), we select one of the following four variants:
if CF(i-1)fastfilter(i), then CF(i)=slowfilter(i);
if CF(i-1)>slowfilter(i) and CF(i-1)slowfilter(i) and CF(i-1)>fastfilter(i), then CF(i)=MAX(slowfilter(i),fastfilter(i)).
For a downtrend, i.e. CF(i-1)slowfilter(i) and CF(i-1)>fastfilter(i), then CF(i)=MAX(slowfilter(i),fastfilter(i));
if CF(i-1)>slowfilter(i) and CF(i-1)fastfilter(i), then CF(i)=fastfilter(i);
if CF(i-1)<slowfilter(i) and CF(i-1)<fastfilter(i), then CF(i)=MIN(slowfilter(i),fastfilter(i)).
Where:
CF(i) – value of the cluster filter on the current bar;
CF(i-1) and CF(i-2) – values of the cluster filter on the previous bars;
slowfilter(i) – value of the slow filter
fastfilter(i) – value of the fast filter
MIN – the minimum value;
MAX – the maximum value;
What is Variety MA Cluster Filter Crosses?
For this indicator we calculate a fast and slow filter of the same filter and then we run a cluster filter between the fast and slow filter outputs to detect areas of chop/noise. The output is the uptrend is denoted by green color, downtrend by red color, and chop/noise/no-trade zone by white color. As a trader, you'll likely want to avoid trading during areas of chop/noise so you'll want to avoid trading when the color turns white.
Extras
Bar coloring
Alerts
Loxx's Expanded Source Types, see here:
Loxx's Moving Averages, see here:
An example of filtered chop, see the yellow circles. The cluster filter identifies chop zones so you don't get stuck in a sideways market.