Historical Monthly Returns TrackerThe Historical Monthly Returns Tracker is a powerful Pine Script v5 indicator designed to provide a detailed performance analysis of an asset’s monthly returns over time. It calculates and displays the percentage change for each month, aggregated into a structured table. The indicator helps traders and investors identify seasonal trends, recurring patterns, and historical profitability for a selected asset.
Key Features
✅ Historical Performance Analysis – Tracks monthly percentage changes for any asset.
✅ Customizable Start Year – Users can define the beginning year for data analysis.
✅ Comprehensive Data Table – Displays a structured table with yearly returns per month.
✅ Aggregated Statistics – Shows average return, total sum, number of positive months, and win rate (WR) for each month.
✅ Clear Color Coding – Highlights positive returns in green, negative in red, and neutral in gray.
✅ Works on Daily & Monthly Timeframes – Ensures accurate calculations based on higher timeframes.
How It Works
Data Collection:
The script fetches monthly closing prices.
It calculates month-over-month percentage change.
The values are stored in a matrix for further processing.
Table Generation:
Displays a structured table where each row represents a year, and each column represents a month (Jan–Dec).
Monthly returns are color-coded for easy interpretation.
Aggregated Statistics:
AVG: The average return per month across all available years.
SUM: The total cumulative return for each month.
+ive: The number of times a month had positive performance vs. total occurrences.
WR (Win Rate): The percentage of times a month had a positive return.
Use Cases
📈 Seasonality Analysis: Identify which months historically perform better or worse.
📊 Risk Management: Plan trading strategies based on historical trends.
🔍 Backtesting Aid: Support algorithmic and discretionary traders with real data insights.
🔄 Asset Comparison: Compare different stocks, forex pairs, or cryptocurrencies for their seasonal behavior.
How to Use
Apply the Indicator to a chart in TradingView.
Ensure your timeframe is Daily or Monthly (lower timeframes are not supported).
The table will automatically populate based on available historical data.
Analyze the patterns, trends, and win rates to optimize trading decisions.
Limitations
⚠️ Requires a sufficient amount of historical data to provide accurate analysis.
⚠️ Works best on high-liquidity assets (stocks, indices, forex, crypto).
⚠️ Not a predictive tool but rather a historical performance tracker.
Final Thoughts
The Historical Monthly Returns Tracker is an excellent tool for traders seeking to leverage seasonal trends in their strategies. Whether you're a stock, forex, or crypto trader, this indicator provides clear, data-driven insights to help refine entry and exit points based on historical patterns.
🚀 Use this tool to make smarter, more informed trading decisions!
Komut dosyalarını "algo" için ara
Adaptive RSI with Real-Time Divergence [AIBitcoinTrend]👽 Adaptive RSI Trailing Stop (AIBitcoinTrend)
The Adaptive RSI Trailing Stop is an indicator that integrates Gaussian-weighted RSI calculations with real-time divergence detection and a dynamic ATR-based trailing stop. This advanced approach allows traders to monitor momentum shifts, identify divergences early, and manage risk with adaptive trailing stop levels that adjust to price action.
👽 What Makes the Adaptive RSI with Signals and Trailing Stop Unique?
Unlike traditional RSI indicators, this version applies a Gaussian-weighted smoothing algorithm, making it more responsive to price action while reducing noise. Additionally, the trailing stop feature dynamically adjusts based on volatility and trend conditions, allowing traders to:
Detects real-time divergences (bullish/bearish) with a smart pivot-based system.
Filter noise with Gaussian weighting, ensuring smoother RSI transitions.
Utilize crossover-based trailing stop activation, for systematic trade management.
👽 The Math Behind the Indicator
👾 Gaussian Weighted RSI Calculation
Traditional RSI calculations rely on simple averages of gains and losses. Instead, this indicator weights recent price changes using a Gaussian distribution, prioritizing more relevant data points while maintaining smooth transitions.
Key Features:
Exponential decay ensures recent price changes are weighted more heavily.
Reduces short-term noise while maintaining responsiveness.
👾 Real-Time Divergence Detection
The indicator detects bullish and bearish divergences using pivot points on RSI compared to price action.
👾 Dynamic ATR-Based Trailing Stop
Bullish Trailing Stop: Activates when RSI crosses above 20 and dynamically adjusts based on low - ATR multiplier.
Bearish Trailing Stop: Activates when RSI crosses below 80 and adjusts based on high + ATR multiplier
This allows traders to:
Lock in profits systematically by adjusting stop-losses dynamically.
Stay in trades longer while maintaining adaptive risk management.
👽 How It Adapts to Market Movements
✔️ Gaussian Filtering ensures smooth RSI transitions while preventing excessive lag.
✔️ Real-Time Divergence Alerts provide early trade signals based on price-RSI discrepancies.
✔️ ATR Trailing Stop dynamically expands or contracts based on market volatility.
✔️ Crossover-Based Activation enables the stop-loss system only when RSI confirms a momentum shift.
👽 How Traders Can Use This Indicator
👾 Divergence Trading
Traders can use real-time divergence detection to anticipate reversals before they happen.
Bullish Divergence Setup:
Look for RSI making a higher low, while price makes a lower low.
Enter long when RSI confirms upward momentum.
Bearish Divergence Setup:
Look for RSI making a lower high, while price makes a higher high.
Enter short when RSI confirms downward momentum.
👾 Trailing Stop Signals
Bullish Signal and Trailing Stop Activation:
When RSI crosses above 20, a trailing stop is placed using low - ATR multiplier.
If price crosses below the stop, it exits the trade and removes the stop.
Bearish Signal and Trailing Stop Activation:
When RSI crosses below 80, a trailing stop is placed using high + ATR multiplier.
If price crosses above the stop, it exits the trade and removes the stop.
This makes trend-following strategies more efficient, while ensuring proper risk management.
👽 Why It’s Useful for Traders
✔️ Dynamic and Adaptive: Adjusts to changing market conditions automatically.
✔️ Noise Reduction: Gaussian-weighted RSI reduces short-term price distortions.
✔️ Comprehensive Strategy Tool: Combines momentum detection, divergence analysis, and automated risk management into a single indicator.
✔️ Works Across Markets & Timeframes: Suitable for stocks, forex, crypto, and futures trading.
👽 Indicator Settings
RSI Length: Defines the lookback period for RSI smoothing.
Gaussian Sigma: Controls how much weight is given to recent data points.
Enable Signal Line: Option to display an RSI-based moving average.
Divergence Lookback: Configures how far back pivot points are detected.
Crossover/crossunder values for signals: Set the crossover/crossunder values that triggers signals.
ATR Multiplier: Adjusts trailing stop sensitivity to market volatility.
Disclaimer: This indicator is designed for educational purposes and does not constitute financial advice. Please consult a qualified financial advisor before making investment decisions.
Ivan Gomes StrategyIG Signals+ - Ivan Gomes Strategy
This script is designed for scalping and binary options trading, generating buy and sell signals at the beginning of each candle. Although it is mainly optimized for short-term operations, it can also be used for medium and long-term strategies with appropriate adjustments.
How It Works
• The indicator provides buy or sell signals at the start of the candle, based on a statistical probability of candle patterns, depending on the timeframe.
• It is essential to enter the trade immediately after the signal appears and exit at the end of the same candle.
• If the first operation results in a loss (Loss), the script will send another trade signal at the start of the next candle. However, if the first trade results in a win (Gain), no new signal will be generated.
• The signals follow cycles of 3 candles, regardless of the timeframe. However, if a Doji candle appears, the cycle is interrupted, and no signals will be generated until the next valid cycle starts.
• The strategy consists of up to two trades per cycle: if the first trade is not successful, the second trade serves as an additional attempt to recover.
Key Points to Consider
1. Avoid trading in sideways markets – If price levels do not fluctuate significantly, the accuracy of the signals may decrease.
2. Trade in the direction of the trend – Using Ichimoku clouds or other trend indicators can help confirm trend direction and improve signal reliability. If the market is in an uptrend (bullish trend) and the indicator generates a sell signal, the most prudent decision would be to wait for a buy signal that aligns with the main trend. The same applies to downtrends, where buy signals may be riskier.
These decisions should be based on chart reading and supported by other technical analysis tools, such as support and resistance levels, which indicate zones where price might face obstacles or reverse direction. Additionally, Fibonacci retracement levels can help identify possible pullback points within a trend. Moving averages are also useful for visualizing the general market direction and confirming whether an indicator signal aligns with the overall price structure. Combining these tools can increase trade accuracy and prevent unnecessary trades against the main trend, reducing risks.
3. Works based on probability statistics – The algorithm analyzes candle formations and their statistical probabilities depending on the timeframe to optimize trade entries.
4. Best suited for scalping and binary options – This strategy performs best in 1-minute and 5-minute timeframes, allowing for multiple trades throughout the day.
Technical Details
• The script detects the candle cycle and assigns an index to each candle to identify patterns and possible reversals.
• It recognizes reference candles, stores their colors, and compares them with subsequent candles to determine if a signal should be triggered.
• Doji candle rules are implemented to avoid false signals in indecisive market conditions. When a Doji appears, the script does not generate signals for that cycle.
• The indicator displays visual alerts and notifications, ensuring fast execution of trades.
Disclaimer
The IG Signals+ indicator was created to assist traders who struggle to analyze the market by providing objective trade signals. However, no strategy is foolproof, and this script does not guarantee profits.
Trading involves significant financial risk, and users should test it in a demo account before trading with real money. Proper risk management is crucial for long-term success.
MTF Sentiment ProMTF Sentiment Pro - Advanced Multi-Timeframe Analysis
Purpose & Methodology
MTF Sentiment Pro provides traders with comprehensive market sentiment analysis across multiple timeframes. This indicator's unique innovation is its weighted scoring system that evaluates both technical indicators and volume metrics to determine market sentiment across customizable timeframes.
Unlike simple indicator overlays or basic multi-timeframe tools, this indicator:
1. Calculates sentiment using a proprietary weighted formula across 7 different timeframes
2. Incorporates volume confirmation to validate price movements (a critical element often overlooked)
3. Provides clear visualization of sentiment alignment between lower and higher timeframes
4. Uses majority-rule algorithms for overall sentiment determination (2/3 rule for LTF, 3/4 rule for HTF)
Technical Components & Integration
Each timeframe's sentiment score is derived from a combination of:
- **EMA**: Evaluates trend direction and price position relative to moving average
- **RSI**: Measures momentum with sensitivity to the 50-level for trend determination
- **MACD**: Assesses trend strength and momentum through histogram analysis
- **Bollinger Bands**: Determines price volatility and position relative to the mean
- **VWAP**: Provides volume-adjusted price reference
- **OBV**: Confirms price moves with cumulative volume analysis
What makes this combination powerful is how these components are integrated:
- Each indicator contributes a weighted value to the overall sentiment score
- User-definable weights allow customization based on strategy preferences
- Volume confirmation adds a critical dimension beyond basic price-only indicators
- Multi-timeframe analysis helps identify alignment/divergence across time horizons
Trading Applications & Limitations
This indicator works best for:
- Trend confirmation across multiple timeframes
- Identifying potential reversal zones where LTF and HTF sentiments diverge
- Entry/exit timing when paired with your primary strategy rules
- Market structure analysis across different time horizons
Note: While this indicator provides comprehensive sentiment analysis, it should be used as part of a complete trading strategy with proper risk management. No indicator can predict market movements with certainty.
Usage Instructions
1. Select appropriate timeframes for your trading style or use one of the included presets
2. Adjust indicator weights to match your analytical preferences
3. Look for timeframe alignment/divergence to identify potential opportunities
4. Use the overall LTF and HTF sentiment readings for broader market context
This indicator was developed to solve the challenge of efficiently analyzing sentiment across multiple timeframes while incorporating volume confirmation - something that would otherwise require multiple indicators and manual correlation.
Dynamic Breakout Master by tradingbauhaus 🌟 Code Description:
This Pine Script implements a trading strategy called "Dynamic Breakout Master" 💥. The core idea of the strategy is to identify breakouts (price movements) at key support 💙 and resistance 🔴 levels, through a dynamic channel that adapts to the market’s conditions. Here's how it works:
🔧 Customizable Input Parameters:
🧭 Pivot Period: This defines the number of bars (candles) to the left and right used to detect pivots (highs and lows) that mark the support and resistance zones.
📊 Data Source: You can choose whether to use highs and lows or closes and opens of the candles to identify the pivots.
📏 Max Channel Width: Specifies the maximum width allowed for the support/resistance channel, expressed as a percentage over the last 300 bars.
💪 Minimum Pivot Strength: This defines the minimum number of pivots needed for a support or resistance level to be considered valid.
🏔 Max Support/Resistance Zones: Limits the number of key zones displayed on the chart.
📅 Lookback Period: Adjusts how many bars back the system should check to find and validate support and resistance levels.
🎨 Custom Colors: You can choose colors for the support, resistance, and in-channel zones.
📉 Moving Averages (MA): The strategy allows adding up to two moving averages (SMA or EMA) to assist in making trading decisions.
📊 Calculating Support/Resistance Levels:
The system uses an algorithm to identify pivots from prices and calculates dynamic support and resistance zones 🔒🔓.
The closer the pivots are and the stronger their influence, the more relevant the zone becomes for the strategy.
The dynamic channel is drawn on the chart, with a maximum width limit for these zones defined by the input parameter.
📈 Trading Logic:
🚀 Identifying Breakouts:
The strategy looks for when the price breaks (breakouts) a resistance or support level.
If the price breaks upward through the resistance level, a buy order 📈 is triggered.
If the price breaks downward through the support level, a sell order 📉 is triggered.
🔔 Alerts:
Resistance Break (ResBreak) and Support Break (SupBreak) alerts are configured to notify users when a significant breakout occurs.
💰 Commissions:
The strategy includes a commission (0.1%) to simulate transaction costs for each trade.
📊 Chart Visualization:
The support and resistance zones are displayed as colored rectangles:
🔴 Resistance (red) and
🔵 Support (blue).
Pivots of support and resistance can be labeled as P (for resistance) and V (for support).
Breakouts of support or resistance levels are marked with triangles that appear on the chart 🔺🔻.
📈 Trading Strategy:
If the price breaks upward through the resistance level, a long position (buy) 📈 is opened.
If the price breaks downward through the support level, a short position (sell) 📉 is opened.
🏆 Conclusion:
This script is a dynamic breakout strategy 💥 that allows traders to capture significant price movements when support or resistance channels break. The customizable parameters let users fine-tune the strategy according to their preferences, while the visual alerts on the chart make it easier to follow trading opportunities. The inclusion of moving averages and key price zones adds an extra layer of analysis to improve decision-making 💡.
Auto Fib Retracement [victhoreb]Auto Fib Retracement is an automated Fibonacci retracement tool for TradingView that dynamically identifies key swing points and plots Fibonacci levels to help traders visualize potential support and resistance areas. Using a Zigzag algorithm, the indicator detects recent pivot highs and lows and calculates retracement levels based on these significant price swings. Key features include:
- Dynamic Pivot Detection: Automatically identifies recent swing highs and lows using configurable lookback periods, ensuring the Fibonacci levels adjust as the market evolves.
- Customizable Fibonacci Levels: Users can tailor the Fibonacci retracement levels (0, 0.214, 0.382, 0.5, 0.618, 0.786,) along with individual colors, offering flexibility to match various trading strategies.
- Zigzag Visualization: Optionally displays a Zigzag line that connects the detected pivot points, providing a clear visual representation of the price swing dynamics.
- Adjustable Line Extension: Retracement lines can be extended for a specified number of bars.
- Repainting Option: Includes an option to repaint the Zigzag, ensuring that the most current price action is reflected in the indicator’s output.
- The Auto Fibonacci Retracement itself DOES NOT REPAINT : )
This indicator streamlines the analysis process by automatically drawing Fibonacci retracement levels, allowing traders to quickly identify potential reversal areas and make more informed trading decisions.
Accurate Trend IndicatorAccurate Trend Indicator
The Accurate Trend Indicator is a powerful trend-following tool designed to help traders identify optimal buy and sell opportunities with precision. Based on the Supertrend algorithm, this indicator dynamically tracks market trends and provides clear entry and exit signals.
Features:
✅ Supertrend-Based Signals – Uses ATR (Average True Range) to determine trend direction.
✅ Buy & Sell Alerts – Displays green "BUY" labels and red "SELL" labels when trend changes.
✅ Color-Coded Candles – Bullish candles turn green, and bearish candles turn red for better visualization.
✅ Works on Any Market – Compatible with Forex, Stocks, Crypto, and Commodities.
✅ Customizable Inputs – Adjust the ATR length and multiplier to fit your trading strategy.
How It Works:
A BUY signal appears when the price crosses above the Supertrend line.
A SELL signal appears when the price crosses below the Supertrend line.
Candle colors change based on trend direction to enhance clarity.
This indicator is ideal for traders who want a simple yet effective tool to follow market trends and make informed decisions.
🚀 Try it now and enhance your trading strategy! 🚀
Anchored Powered KAMA [LuxAlgo]The Anchored Powered KAMA tool is a new flavor of the famous Kaufman's Adaptive Moving Average (KAMA).
It adds 5 different anchoring periods, a power exponent to the original KAMA calculation to increase the degree of filtering during ranging trends, and standard deviation bands calculated against the KAMA itself.
🔶 USAGE
In the image above we can see the different parts of the tool, it displays the Anchored Powered KAMA surrounded by standard deviation bands at 2x (solid) and 1x (dashed) by default.
This tool provides a simple and easy way to determine if the current market is ranging or trending and where the market extremes are in the current period.
As a rule of thumb, traders may want to trade extremes in ranges and pullbacks in trends.
When the KAMA is flat, a range is in place, so traders may want to wait for the price to reach an extreme before opening a trade in the other direction.
Conversely, if the KAMA is moving up or down, a trend is in place and traders may want to wait for the price to pull back to the KAMA before opening a trade in the direction of the trend.
🔹 Anchor Period
On the above chart, we can see different anchor periods on different chart timeframes.
This option is very useful for those traders who use multi-timeframe analysis, allowing them to see how the market behaves over different timeframes.
The valid values for this parameter are:
Hourly
Daily
Weekly
Monthly
Yearly
The tool has a built-in Auto feature for traders convenience, it automatically selects the optimal Anchor Period in function of the chart timeframe.
timeframes up to 2m: Hourly
timeframes up to 15m: Daily
timeframes up to 1H: Weekly
timeframes up to 4H: Monthly
larger timeframes: Yearly
🔹 Choosing the Right Anchor Period
In the chart above we can see the custom error message that the tool displays when the Auto feature is disabled and the Anchor Period is too large for the current chart timeframe.
Traders can select a smaller Anchor Period or a larger chart timeframe for the tool to display correctly.
🔶 DETAILS
The tool uses Welford's algorithm to calculate the KAMA's standard deviation, then plots the outer bands at the multiplier specified in the settings panel, and the inner bands at the multiplier specified minus 1.
🔹 Power Exponent
The graph above shows how different values of this parameter can affect the output.
To display the original KAMA a value of 1 must be set, by default this parameter is set to 2.
The higher the value, the better the tool's ability to detect ranges.
🔶 SETTINGS
Anchor Period: Select up to 5 different time periods from Hourly, Daily, Weekly, Monthly, and Yearly.
Source: Choose the source for all calculations.
Power Exponent: Fine-tune the KAMA calculation, a value of 1 will output the original KAMA, and is set to 2 by default.
Band Multiplier: Select the multiplier for the standard deviation bands.
3cfThis indicator identifies and signals the points of swing highs and swing lows on the price chart using an algorithm based on market structure. Local highs and lows are highlighted with a colored dot, making it easier to perform technical analysis and recognize trend reversals.
The indicator analyzes a predefined number of bars (e.g., 5 candles) to determine relative highs and lows:
Swing High (Local High) → The current candle has a higher high compared to the previous and subsequent candle.
Swing Low (Local Low) → The current candle has a lower low compared to the previous and subsequent candle.
When a candle meets one of these conditions, a visual dot is placed to indicate the potential reversal point.
MACD Divergence all in oneMACD Divergence all in one
It can also be named as MACD dual divergence detector pro !
A sophisticated yet user-friendly tool designed to identify both bullish and bearish divergences using the MACD (Moving Average Convergence Divergence) indicator. This advanced script helps traders spot potential trend reversals by detecting hidden momentum shifts in the market, offering a comprehensive solution for divergence trading.
🎯 Key Features:
• Automatic detection of bullish and bearish divergences
• Clear visual signals with color-coded lines (Green for bullish, Red for bearish)
• Smart filtering system to eliminate false signals
• Customizable parameters to match your trading style
• Clean, uncluttered chart presentation
• Optimized performance for real-time analysis
• Easy-to-read labels showing divergence types
• Built-in signal spacing to avoid clustering
📊 How it works:
The indicator uses an advanced algorithm to analyze the relationship between price action and MACD momentum to identify:
Bullish Divergences:
- Price makes higher lows while MACD shows lower lows
- Signals potential trend reversal from bearish to bullish
- Marked with green lines and upward labels
Bearish Divergences:
- Price makes lower highs while MACD shows higher highs
- Signals potential trend reversal from bullish to bearish
- Marked with red lines and downward labels
⚙️ Customizable Settings:
1. MACD Parameters:
- Fast Length (default: 12)
- Slow Length (default: 26)
- Signal Length (default: 9)
2. Divergence Detection:
- Left/Right Pivot Bars
- Divergence Lookback Period
- Minimum/Maximum Divergence Length
- Divergence Strength Filter
3. Visual Settings:
- Clear color coding for easy identification
- Adjustable line thickness
- Customizable label size
💡 Best Practices:
- Most effective on higher timeframes (1H, 4H, Daily)
- Combine with support/resistance levels
- Use with trend lines and price action
- Consider volume confirmation
- Best results during trending markets
- Use appropriate stop-loss levels
🎓 Trading Tips:
1. Look for bullish divergences near support levels
2. Watch for bearish divergences near resistance zones
3. Confirm signals with other technical indicators
4. Consider market context and overall trend
5. Use proper position sizing and risk management
⚠️ Important Notes:
- Past performance doesn't guarantee future results
- Always use proper risk management
- Test settings on historical data first
- Different timeframes may require parameter adjustments
- Not all divergences lead to reversals
Created by: Anmol-max-star
Last Updated: 2025-02-25 16:15:08 UTC
📌 Regular updates and improvements planned!
Disclaimer:
This indicator is for informational purposes only. Always conduct your own analysis and use proper risk management techniques. Trading involves risk of loss, and past performance does not guarantee future results.
🤝 Support:
Feel free to leave comments for:
- Suggestions
- Improvements
- Feature requests
- Bug reports
- General feedback
Your feedback helps make this tool better for everyone!
Happy Trading and May the Trends Be With You! 📈
Delta VolDelta Volume BTC - Multi Pair
Description The Delta Volume BTC - Multi Pair indicator visualizes the balance between buying and selling volume across multiple Bitcoin exchanges. By analyzing price action within each bar, it provides insight into underlying market pressure that traditional volume indicators miss. This indicator allows traders to:
Compare volume flow across Coinbase, Binance, and Binance Perpetual markets
Identify divergences between exchanges that may signal market shifts
Detect accumulation or distribution patterns through volume imbalances
View exchanges individually or in aggregate for comprehensive analysis
Calculation Methods The indicator offers three volume delta calculation methods:
VWAP Based (default):
price_range = high - low
buy_percent = (close - low) / price_range
sell_percent = (high - close) / price_range
delta = volume * (buy_percent - sell_percent)
This method distributes volume based on where price closed within the bar's range, providing a nuanced view of buying/selling pressure.
Tick Based :
delta = volume * sign(hlc3 - previous_hlc3)
This approach assigns volume based on the direction of typical price movement between bars, capturing momentum between periods.
Simple :
delta = close > open ? volume : close < open ? -volume : 0
A straightforward method that assigns positive volume to up bars and negative volume to down bars.
When Aggregate Mode is enabled, the indicator sums the volume deltas from all selected exchanges:
aggregate_delta = coinbase_delta + binance_delta + binance_perp_delta
Features
Multi-Exchange Support : Track volume delta across Coinbase, Binance, and Binance Perpetual futures
Advanced Calculation Methods : Choose between VWAP-based, tick-based, or simple volume delta algorithms
Flexible Display Options : Visualize as histogram, columns, area, or line charts
Customizable Colors : Distinct color schemes for each exchange and direction
Smoothing Options : Apply EMA, SMA, or WMA to reduce noise
Aggregate Mode : Combine all exchanges to see total market flow
How to Use
Individual Exchange Analysis : Uncheck "Aggregate Mode" to see each exchange separately, revealing where smart money may be positioning
Divergence Detection : Watch for one exchange showing buying while others show selling
Volume Trend Confirmation : Strong price moves should be accompanied by strong delta in the same direction
Liquidity Analysis : Compare spot vs futures volume delta to identify market sentiment shifts
The Delta Volume BTC - Multi Pair indicator helps identify the "hidden" buying and selling pressure that may not be apparent from price action alone, giving you an edge in understanding market dynamics across the Bitcoin ecosystem.
SuperTrend + Relative Volume (Kernel Optimized)Introducing our new KDE Optimized Supertrend + Relative Volume Indicator!
This innovative indicator combines the power of the Supertrend indicator along with Relative Volume. It utilizes the Kernel Density Estimation (KDE) to estimate the probability of a candlestick marking a significant trend break or reversal.
❓How to Interpret the KDE %:
The KDE % is a crucial metric that reflects the likelihood that the current candlestick represents a true break in the SuperTrend line, supported by an increase in relative volume. It estimates the probability of a trend shift or continuation based on historical SuperTrend breaks and volume patterns:
Low KDE %: A lower probability that the current break is significant. Price action is less likely to reverse, and the trend may continue.
Moderate KDE - High KDE %: An increased possibility that a trend reversal or consolidation could occur. Traders should start watching for confirmation signals.
📌How Does It Work?
The SuperTrend indicator uses the Average True Range (ATR) to determine the direction of the trend and identifies when the price crosses the SuperTrend line, signaling a potential trend reversal. Here's how the KDE Optimized SuperTrend Indicator works:
SuperTrend Calculation: The SuperTrend indicator is calculated, and when the price breaks above (bullish) or below (bearish) the SuperTrend line, it is logged as a significant event.
Relative Volume: For each break in the SuperTrend line, we calculate the relative volume (current volume vs. the average volume over a defined period). High relative volume can suggest stronger confirmation of the trend break.
KDE Array Calculation: KDE is applied to the break points and relative volume data:
Define the KDE options: Bandwidth, Number of Steps, and Array Range (Array Max - Array Min).
Create a density range array using the defined number of steps, corresponding to potential break points.
Apply a Gaussian kernel function to the break points and volume data to estimate the likelihood of the trend break being significant.
KDE Value and Signal Generation: The KDE array is updated as each break occurs. The KDE % is calculated for the breakout candlestick, representing the likelihood of the trend break being significant. If the KDE value exceeds the defined activation threshold, a darker bullish or bearish arrow is plotted after bar confirmation. If the KDE value falls below the threshold, a more transparent arrow is drawn, indicating a possible but lower probability break.
⚙️Settings:
SuperTrend Settings:
ATR Length: The period over which the Average True Range (ATR) is calculated.
Multiplier: The multiplier applied to the ATR to determine the SuperTrend threshold.
KDE Settings:
Bandwidth: Determines the smoothness of the KDE function and the width of the influence of each break point.
Number of Bins (Steps): Defines the precision of the KDE algorithm, with higher values offering more detailed calculations.
KDE Threshold %: The level at which relative volume is considered significant for confirming a break.
Relative Volume Length: The number of historic candles used in calculating KDE %
RSI Classic calculationClassic RSI with Moving Average
This script implements the Classic RSI (Relative Strength Index) method with the option to use either an Exponential Moving Average (EMA) or a Simple Moving Average (SMA) for smoothing the gains and losses. This custom implementation primarily aims to resolve a specific issue I encountered when cross-referencing RSI values with Python-based data, which is calculated differently than in Pine Script. However, the methodology here can benefit anyone who needs to align RSI calculations across different programming languages or platforms.
The Problem:
When working with Python for data analysis, the RSI values are calculated differently. The smoothing method, for example, can vary—RMA (Relative Moving Average) may be used instead of SMA or EMA, resulting in discrepancies when comparing RSI values across systems. To solve this problem, this script allows for the same type of smoothing to be applied (EMA or SMA) as used in Python, ensuring consistency in the data.
Why This Implementation:
The main goal of this approach was to align RSI calculations across Python and Pine Script so that I could cross-check the results accurately. By offering both EMA and SMA options, this script bridges the gap between Pine Script and Python, ensuring that the data is comparable and consistent. While this particular issue arose from my work with Python, this solution is valuable for anyone dealing with cross-platform RSI comparisons in different coding languages or systems.
Benefits:
Cross-Platform Consistency: This script ensures that RSI values calculated in Pine Script are directly comparable to those from Python (or any other platform), which is crucial for accurate analysis, especially in automated trading systems.
Flexibility: The ability to choose between EMA and SMA provides flexibility in line with the specific needs of your strategy or data source.
Ease of Use: The RSI is plotted with overbought and oversold levels clearly marked, making it easy to visualize and use in decision-making processes.
Limitations:
Calculation Differences: While this script bridges the gap between Pine Script and Python, if you're working with a different platform or coding language that uses variations like RMA, small discrepancies may still arise.
Sensitivity Trade-Off: The choice between EMA and SMA impacts the sensitivity of the RSI. EMA responds quicker to recent price changes, which could lead to faster signals, while SMA provides a more stable but slower response.
Conclusion:
This Classic RSI script, with its customizable moving average type (EMA or SMA), not only solves the issue I faced with Python-based calculations but also provides a solution for anyone needing consistency across different programming languages and platforms. Whether you're working with Pine Script, Python, or other languages, this script ensures that your RSI values are aligned for more accurate cross-platform analysis. However, always be mindful of the small differences that can arise when different smoothing techniques (like RMA) are used in other systems.
Time-based Alerts for Trading Windows🌟 Time-based Alerts for Trading Windows 🌐📈
This is a re-uploaded script as the previous one got hidden.
This Time-based Alerts for Trading Windows script is a highly customizable and reliable tool designed to assist traders in managing automated strategies or manually monitoring specific market conditions. Inspired by CrossTrade's Time-based Alert, this script is tailored for those who rely on precise time windows to trigger actions, such as sending webhook signals or managing Expert Advisors (EAs).
Whether you are a scalper, day trader, or algorithmic trader, this script empowers you to stay on top of your trades with fully customizable time-based alerts.
🛠️ Customizable Time Alerts
This indicator allows you to create up to 12 unique time windows by specifying the exact hour and minute for each alert. Each time window corresponds to an individual alert condition, making it perfect for managing trades during specific market sessions or key time periods.
For example:
Alert 1 can be set at 9:30 AM (market open).
Alert 2 can be set at 3:55 PM (just before market close).
Each alert can be toggled on or off in the indicator settings, allowing you to manage alerts without having to reconfigure your script.
You can adjust the colours to fit any colour scheme you like!
🕒 Odd and Even Time Alerts
The script comes with three built-in alert type categories:
Odd Alerts (marked with a green triangle on the chart): These correspond to odd-numbered inputs like Alert 1, Alert 3, Alert 5, and so on.
Even Alerts (marked with a red triangle on the chart): These correspond to even-numbered inputs like Alert 2, Alert 4, Alert 6, and so on.
You can also customize all 12 alerts individually to include a custom alert message
These alerts serve as a convenient way to differentiate between multiple trading strategies or market conditions. You can customize alert messages for odd and even alerts directly from TradingView’s alert panel.
🔗 Webhook Integration for Automation
This script is fully compatible with webhook-based automation. By configuring your alerts in TradingView, you can send signals to trading bots, EAs, or any third-party system. For example, you can:
Turn off an EA at a specific time (e.g., 3:55 PM EST).
Send buy/sell signals to your bot during predefined trading windows.
Simply use TradingView’s alert message editor to format webhook payloads for your automation system.
🌐 Timezone Flexibility
Trading happens across multiple time zones, and this script accounts for that. You can toggle between:
Eastern Time (New York): Ideal for most US-based markets.
Central Time (Exchange): Useful for futures and commodities traders.
This ensures your alerts are always in sync with your preferred time zone, eliminating confusion.
🎨 Visual Indicators
The script plots visual markers directly on your chart to indicate active alerts:
Up Facing Triangles: Represent odd-numbered alerts, providing a quick reference for these time windows.
Down Facing Triangles: Represent even-numbered alerts, helping you track different strategies or conditions.
These visual markers make it easy to see when alerts are triggered, even at a glance.
📈 Practical Use Case
Let’s say you’re trading the USTEC index on a 1-minute chart. You want to:
Turn off your trading bot at 16:55 EST to avoid after-market volatility.
Trigger a re-entry signal at 17:30 EST to capture moves during the Asian session.
Visually monitor these actions on your chart for easy reference.
This script makes it possible with precision alerts and webhook integration. Simply configure the time windows in the settings and set up your alerts in TradingView.
🚨 How to Set Up Alerts
Enable or Disable Alerts: Use the script’s settings to toggle specific alerts on or off as needed.
Set Custom Time Windows: Define the hour and minute for each alert in the settings panel.
Create Alerts in TradingView:
Go to the TradingView alert panel.
Select the condition (e.g., "Odd Time-based Alert (Green)" or "Even Time-based Alert (Red)").
Customize the alert message for webhook integration or personal notification.
Choose the trigger type: Once Per Bar or Once Per Bar Close to keep the alert active.
Integrate with Webhooks: Use the alert message field to format payloads for automation systems like MT4, MT5, or third-party bots.
📋 Key Notes
Alerts can trigger indefinitely if set to "Once Per Bar" or "Once Per Bar Close".
Always ensure the expiration date is set far in the future to avoid unexpected alert deactivation.
Test webhook messages and alert configurations thoroughly before using them in live trading.
This script is a powerful addition to your trading toolbox, offering precision, flexibility, and automation capabilities. Whether you’re turning off an EA, managing trades during market sessions, or automating strategies via webhooks, this script is here to support you.
Start using the Time-based Alerts for Trading Windows today and trade with confidence! 🚀✨
MT-Trend Zone IdentifierTrend Zone Identifier – A Dynamic Market Trend Mapping Tool
Overview
The Trend Zone Identifier is an advanced TradingView indicator that helps traders visualize different market trend phases. By leveraging Pivot Points, Moving Averages (MA), ADX (Average Directional Index), and Retest Confirmation, this tool identifies uptrend, downtrend, and ranging (sideways) conditions dynamically.
This indicator is designed to segment the market into clear trend zones, allowing traders to distinguish between confirmed trends, trend transitions (pending zones), and ranging markets. It provides an intuitive visual overlay to enhance market structure analysis and assist in decision-making.
Key Features
✔ Trend Zone Identification – Classifies price action into Uptrend (Green), Downtrend (Red), Pending Confirmation (Light Colors), and Sideways Market (Gray/Neutral)
✔ Pivot-Based Breakout & Breakdown Detection – Uses pivot highs/lows to determine trend shifts
✔ Moving Average & ADX Validation – Ensures the trend is backed by MA structure and ADX trend strength
✔ Pullback Confirmation – Allows trend confirmation based on price retesting key levels
✔ Extreme Volatility & Gaps Filtering – Optional ATR-based extreme movement filtering to avoid false signals
✔ Multi-Timeframe Support – Option to integrate higher timeframe trend validation
✔ Customizable Sensitivity – Fine-tune MA smoothing, ADX thresholds, pivot detection, and pullback range
How It Works
1. Trend Classification
• Uptrend (Green): Price is above a key MA, ADX confirms strength, and a pivot breakout occurs
• Downtrend (Red): Price is below a key MA, ADX confirms strength, and a pivot breakdown occurs
• Pending Trend (Light Colors): Initial trend breakout or breakdown is detected but requires further confirmation
• Sideways/Ranging (Gray): ADX signals a weak trend, and price remains within a neutral zone
2. Retest & Confirmation Logic
• A trend is only confirmed after a breakout or breakdown followed by a successful retest
• If the market fails the retest, the indicator resets to a neutral state
3. Custom Filters for Optimization
• Enable or disable volume filtering for confirmation
• Adjust pivot sensitivity to detect major or minor swing points
• Choose to require consecutive bars confirming the breakout/breakdown
Ideal Use Cases
🔹 Swing traders who want to capture trend transitions early
🔹 Trend-following traders who rely on confirmed market cycles
🔹 Range traders looking to identify sideways market zones
🔹 Algorithmic traders who need clean trend segmentation for automated strategies
Final Thoughts
The Trend Zone Identifier is a versatile market structure indicator that helps traders define trend cycles visually and avoid trading against weak trends. By providing clear breakout, breakdown, and retest conditions, it enhances market clarity and reduces decision-making errors.
➡ Add this to your TradingView workspace and start analyzing market trends like a pro! 🚀
MACD & Bollinger Bands Overbought OversoldMACD & Bollinger Bands Reversal Detector
This indicator combines the power of MACD divergence analysis with Bollinger Bands to help traders identify potential reversal points in the market.
Key Features:
MACD Calculation & Divergence:
The script calculates the standard MACD components (MACD line, Signal line, and Histogram) using configurable fast, slow, and signal lengths. It includes a simplified divergence detection mechanism that flags potential bearish divergence—when the price makes a new swing high but the MACD fails to confirm the move. This divergence can serve as an early warning that the bullish momentum is waning.
Bollinger Bands:
A 20-period simple moving average (SMA) is used as the basis, with upper and lower bands drawn at 2 standard deviations. These bands help visualize overbought and oversold conditions. For example, a close at or above the upper band suggests the market may be overextended (overbought), while a close at or below the lower band may indicate oversold conditions.
Visual Alerts:
The indicator plots the Bollinger Bands on the chart along with labels marking overbought and oversold conditions. Additionally, it marks potential bearish divergence with a downward triangle, providing a quick visual cue to traders.
Usage Suggestions:
Confluence with Other Signals:
Use the divergence signals and Bollinger Band conditions as filters. For example, even if another indicator suggests a long entry, you might avoid it if the price is overbought or if MACD divergence warns of weakening momentum.
Customization:
All key parameters, such as the MACD lengths, Bollinger Band period, and multiplier, are fully configurable. This flexibility allows you to adjust the indicator to suit different markets or trading styles.
Disclaimer:
This script is provided for educational purposes only. Always perform your own analysis and backtesting before trading with live capital.
Son Model ICT [TradingFinder] HTF DOL H1 + Sweep M15 + FVG M1🔵 Introduction
The ICT Son Model setup is a precise trading strategy based on market structure and liquidity, implemented across multiple timeframes. This setup first identifies a liquidity level in the 1-hour (1H) timeframe and then confirms a Market Structure Shift (MSS) in the 5-minute (5M) timeframe to validate the trend. After confirmation, the price forms a new swing in the 5-minute timeframe, absorbing liquidity.
Once this level is broken, traders typically drop to the 30-second (30s) timeframe and enter trades based on a Fair Value Gap (FVG). However, since access to the 30-second timeframe is not available to most traders, we take the entry signal directly from the 5-minute timeframe, using the same liquidity zones and confirmed breakouts to execute trades. This approach simplifies execution and makes the strategy accessible to all traders.
This model operates in two setups :
Bullish ICT Son Model and Bearish ICT Son Model. In the bullish setup, liquidity is first accumulated at the lows of the 1-hour timeframe, and after confirming a market structure shift, a long position is initiated. Conversely, in the bearish setup, liquidity is first drawn from higher levels, and upon confirmation of a bearish trend, a short position is executed.
Bullish Setup :
Bearish Setup :
🔵 How to Use
The ICT Son Model setup is designed around liquidity analysis and market structure shifts and can be applied in both bullish and bearish market conditions. The strategy first identifies a liquidity level in the 1-hour (1H) timeframe and then confirms a Market Structure Shift (MSS) in the 5-minute (5M) timeframe.
After this shift, the price forms a new swing, absorbing liquidity. When this level is broken in the 5-minute timeframe, the trader enters based on a Fair Value Gap (FVG). While the ideal entry is in the 30-second (30s) timeframe, due to accessibility constraints, we take entry signals directly from the 5-minute timeframe.
🟣 Bullish Setup
In the Bullish ICT Son Model, the 1-hour timeframe first identifies liquidity at the market lows, where price sweeps this level to absorb liquidity. Then, in the 5-minute timeframe, an MSS confirms the bullish shift.
After confirmation, the price forms a new swing, absorbing liquidity at a higher level. The price then retraces into a Fair Value Gap (FVG) created in the 5-minute timeframe, where the trader enters a long position, placing the stop-loss below the FVG.
🟣 Bearish Setup
In the Bearish ICT Son Model, liquidity at higher market levels is identified in the 1-hour timeframe, where price sweeps these levels to absorb liquidity. Then, in the 5-minute timeframe, an MSS confirms the bearish trend.
After confirmation, the price forms a new swing, absorbing liquidity at a lower level. The price then retraces into a Fair Value Gap (FVG) created in the 5-minute timeframe, where the trader enters a short position, placing the stop-loss above the FVG.
🔵 Settings
Swing period : You can set the swing detection period.
Max Swing Back Method : It is in two modes "All" and "Custom". If it is in "All" mode, it will check all swings, and if it is in "Custom" mode, it will check the swings to the extent you determine.
Max Swing Back : You can set the number of swings that will go back for checking.
FVG Length : Default is 120 Bar.
MSS Length : Default is 80 Bar.
FVG Filter : This refines the number of identified FVG areas based on a specified algorithm to focus on higher quality signals and reduce noise.
Types of FVG filters :
Very Aggressive Filter: Adds a condition where, for an upward FVG, the last candle's highest price must exceed the middle candle's highest price, and for a downward FVG, the last candle's lowest price must be lower than the middle candle's lowest price. This minimally filters out FVGs.
Aggressive Filter: Builds on the Very Aggressive mode by ensuring the middle candle is not too small, filtering out more FVGs.
Defensive Filter: Adds criteria regarding the size and structure of the middle candle, requiring it to have a substantial body and specific polarity conditions, filtering out a significant number of FVGs.
Very Defensive Filter: Further refines filtering by ensuring the first and third candles are not small-bodied doji candles, retaining only the highest quality signals.
🔵 Conclusion
The ICT Son Model setup is a structured and precise method for trade execution based on liquidity analysis and market structure shifts. This strategy first identifies a liquidity level in the 1-hour timeframe and then confirms a trend shift using the 5-minute timeframe.
Trade entries are executed based on Fair Value Gaps (FVGs), which highlight optimal entry points. By applying this model, traders can leverage existing market liquidity to enter high-probability trades. The bullish setup activates when liquidity is swept from market lows and a market structure shift confirms an upward trend, whereas the bearish setup is used when liquidity is drawn from market highs, confirming a downtrend.
This approach enables traders to identify high-probability trade setups with greater precision compared to many other strategies. Additionally, since access to the 30-second timeframe is limited, the strategy remains fully functional in the 5-minute timeframe, making it more practical and accessible for a wider range of traders.
Kalman Filter Trend BreakersThe Kalman filter is a recursive algorithm developed in 1960 by Rudolf E. Kálmán, a Hungarian-American engineer and mathematician, that provides optimal estimates of a system's state by combining noisy measurements with a predictive model. It is widely used in control systems, signal processing, and finance for tracking and forecasting.
In trading, KF might be a good replacement for a moving average, as it reacts to price changes in a different way. Not only it follows price direction, but can also track the velocity of price change. This specific behaviour of KF is used in this indicator to track changes in trends.
Trend is characterized by price moving directionally, however, any trend comes to pause or complete stop and reversal, as the price changes more slowly (a trend fades into a sideways movement for a while) or the price movement changes direction, thus making a reversal.
This indicator detects the points where such changes occur (trend breaker points), and produces signals, which serve as points of current trend pausing or reversing. By applying different settings for KF calculation, you can produce less or more signals that indicate change in trend character, and either detect only significant trends changes, or less and shorter trends changes as well.
The signals do not differentiate the exact type of a trend change (it can be a brief trend pause followed by a continuation, as well as a complete reversal). However, once you are in a trend, the significant velocity change indicates a change in trend structure. In this sense, trend breaker signals should not be followed blindly, and can be used only as trend (and subsequently, position) exit confirmations, but not the entry contrarian confirmations.
For better visual representation, you can use chart signals attached to bars, and additionally paint a vertical gradient at each signal which shows significant trend deceleration.
Kalman filter calculations used in this indicator are partially based on an open-source code from @loxx which was published in 2022 as Kalman filter overlay .
Precious Metals & GSR (Zeiierman)█ Overview
The Precious Metals & GSR (Zeiierman) is designed to provide traders and investors with a comprehensive view of the Gold-Silver Ratio (GSR) and other precious metal relationships. This tool helps evaluate the relative strength between different metals by analyzing their price ratios over historical periods, using quantile-based analysis and trend interpretation tables to highlight key insights.
The Gold-Silver Ratio (GSR) is a widely utilized metric in precious metals trading, representing the number of silver ounces required to purchase one ounce of gold. Historically, this ratio has fluctuated, providing traders with insights into the relative value of these two metals. By analyzing the GSR, traders can identify potential trading opportunities based on historical patterns and market dynamics.
By integrating customizable percentile bands, gradient coloring for performance visualization, and dynamic ratio analysis, this indicator assists in understanding how one metal is performing relative to another, making it useful for trend tracking, risk management, and portfolio allocation.
█ How It Works
The Precious Metals & GSR Indicator operates by fetching the latest prices of the selected precious metals in the user's chosen currency. It then calculates the ratio between two selected metals (Metal 1 and Metal 2) and analyzes this ratio over a specified period. By computing quantile bands and high/low bands, the indicator provides insights into the historical performance and current standing of the ratio.
⚪ Ratio Calculation
The core of this indicator is the metal ratio, calculated by dividing the price of Metal 1 by Metal 2.
A rising ratio means Metal 1 is outperforming Metal 2.
A falling ratio means Metal 2 is outperforming Metal 1.
The indicator automatically retrieves live market prices of Gold, Silver, Platinum, and Palladium to compute the ratio.
⚪ Quantile Ratio Bands
The indicator calculates the highest (max) and lowest (min) ratio levels over a user-defined period.
It also plots quantile bands at the 10th, 25th, 50th (median), 75th, and 90th percentiles, providing deeper statistical insights into how extreme or average the current ratio is.
The median (Q50) acts as a reference level, showing whether the ratio is above or below its historical midpoint.
⚪ Interpretation Table
The Ratio Interpretation Table provides a text-based summary of the ratio’s strength.
It detects whether Metal 1 is at a historical high, low, or within common ranges.
This helps traders and investors make informed decisions on whether the ratio is overextended, mean-reverting, or trending.
⚪ Precious Metals Table
Displays live market prices for Gold, Silver, Platinum, and Palladium.
Prices are shown in different units (oz, kg, grams, and troy ounces) based on user preferences.
A color-coded system highlights price changes, making it easier to track market movements.
⚪ Physical Holding Calculator
Users can enter their precious metal holdings to estimate their current value.
The system adjusts calculations based on weight, purity (24K, 22K, etc.), and unit of measurement.
The holding value is displayed in the selected currency (USD, EUR, GBP, etc.).
█ How to Use
⚪ Trend Identification
If the ratio is increasing, Metal 1 is gaining strength relative to Metal 2 → Possible Long Position on Metal 1 / Short on Metal 2
If the ratio is decreasing, Metal 2 is gaining strength relative to Metal 1 → Possible Short Position on Metal 1 / Long on Metal 2
⚪ Mean Reversion Strategy
When the ratio reaches the 90th percentile, Metal 1 is historically overextended (expensive) compared to Metal 2.
Traders may look to sell Metal 1 and buy Metal 2, expecting the ratio to decline back toward its historical average.
Example (Gold/Silver Ratio): If the GSR is above the 90th percentile, gold is very expensive relative to silver, suggesting a potential buying opportunity in silver and/or a selling opportunity in gold.
When the ratio reaches the 10th percentile, Metal 1 is historically undervalued (cheap) compared to Metal 2.
Traders may look to buy Metal 1 and sell Metal 2, expecting the ratio to rise back toward its historical average.
Example (Gold/Silver Ratio): If the GSR is below the 10th percentile, gold is very cheap relative to silver, suggesting a potential buying opportunity in gold and/or a selling opportunity in silver.
⚪ Common Strategy Based on GSR Insights
A common approach involves monitoring the ratio for extreme values based on historical data. When the ratio reaches historically high levels, it suggests that gold is expensive relative to silver, potentially indicating a buying opportunity for silver and/or a selling opportunity for gold. Conversely, when the ratio is at historically low levels, silver is expensive relative to gold, suggesting a potential buying opportunity for gold and/or selling opportunity for silver. This mean-reversion strategy relies on the tendency of the GSR to return to its historical average over time.
⚪ Hedging & Portfolio Diversification
If Gold is strongly outperforming Silver, investors may shift allocations to balance risk.
If Silver is rapidly gaining on Gold, it may indicate increased industrial demand or speculative interest.
⚪ Inflation & Economic Cycles
A rising Gold-Silver ratio often correlates with economic downturns and increased risk aversion.
A falling Gold-Silver ratio may signal stronger economic growth and higher inflation expectations.
█ Settings
Precious Metals Table
Select which metals to display (Gold, Silver, Platinum, Palladium)
Choose measurement units (oz, kg, grams, troy ounces)
Ratio Analysis
Select Metal 1 & Metal 2 for ratio calculation
Set historical length for quantile calculations
Interpretation Table
Enable automated insights based on ratio levels
Physical Holdings Calculator
Enter metal weight, purity, and unit
Select calculation currency
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Market Structure HH, HL, LH and LLMarket Structure Indicator (HH, HL, LH, LL) – Explanation and Usage
Overview:
This indicator is designed to detect and visualize market structure shifts by identifying Higher Highs (HH), Higher Lows (HL), Lower Highs (LH), and Lower Lows (LL). It plots a ZigZag structure to mark trend changes, helping traders analyze price swings and market direction.
Indicator Logic:
The indicator operates based on ZigZag swing points to define trend shifts and structure changes.
Identifying Market Swings:
It finds local highs and lows using the ZigZag Length (zigzag_len), which defines how many bars back to check for a new swing high/low.
If the current high is the highest over zigzag_len periods, it marks it as a swing high.
If the current low is the lowest over zigzag_len periods, it marks it as a swing low.
Determining Market Structure:
Uptrend: Higher Highs (HH) & Higher Lows (HL)
Downtrend: Lower Lows (LL) & Lower Highs (LH)
The script continuously tracks the last two highs (h0, h1) and last two lows (l0, l1) to classify the current market structure.
Visual Elements:
ZigZag Line (Optional): Connects major swing highs and lows for trend visualization.
Labels (HH, HL, LH, LL):
HH (Higher High) – Price is making new highs → Uptrend Continuation.
HL (Higher Low) – Price forms a higher bottom → Uptrend Confirmation.
LL (Lower Low) – Price is making new lows → Downtrend Continuation.
LH (Lower High) – Price forms a lower top → Downtrend Confirmation.
Breakout Confirmation with Fibonacci Factor (Optional)
The indicator includes an option to confirm breakouts using the fib_factor, which ensures price moves beyond a certain retracement level.
How to Use This Indicator in Trading:
1. Identifying Trends & Trend Reversals
Uptrend: Look for a sequence of HH and HL.
Downtrend: Look for a sequence of LL and LH.
Trend Reversal: If price transitions from HH-HL to LH-LL, it signals a shift from an uptrend to a downtrend (and vice versa).
2. Confirming Entry & Exit Points
Buy Entry (Long Position)
Enter after a Higher Low (HL) is confirmed in an uptrend.
Combine with support zones or moving averages for confirmation.
Sell Entry (Short Position)
Enter after a Lower High (LH) is confirmed in a downtrend.
Combine with resistance zones or moving averages for confirmation.
Exit Strategy
Exit long trades when price fails to make a HH and forms an LH instead.
Exit short trades when price fails to make a LL and forms an HL instead.
3. Spotting Breakouts & Order Blocks
The Fib Factor setting allows traders to filter false breakouts by confirming price movement beyond a retracement threshold.
Potential Order Blocks can be identified by looking at the last major swing point before a breakout.
Benefits of This Indicator for Traders
✅ Trend Identification: Helps traders quickly determine if the market is in an uptrend or downtrend.
✅ Clear Market Structure Labels: Easily visualizes Higher Highs, Higher Lows, Lower Highs, and Lower Lows.
✅ Avoids Noise: The ZigZag algorithm removes small fluctuations and focuses on significant market movements.
✅ Assists with Entry & Exit Decisions: Provides objective signals for trend continuation or reversals.
✅ Works in All Markets: Useful for stocks, forex, crypto, and futures trading.
Would you like me to add additional features like Order Blocks, Breakout Confirmation, or Alerts to improve this indicator? 🚀
PaddingThe Padding library is a comprehensive and flexible toolkit designed to extend time series data within TradingView, making it an indispensable resource for advanced signal processing tasks such as FFT, filtering, convolution, and wavelet analysis. At its core, the library addresses the common challenge of edge effects by "padding" your data—that is, by appending additional data points beyond the natural boundaries of your original dataset. This extension not only mitigates the distortions that can occur at the endpoints but also helps to maintain the integrity of various transformations and calculations performed on the series. The library accomplishes this while preserving the ordering of your data, ensuring that the most recent point always resides at index 0.
Central to the functionality of this library are two key enumerations: Direction and PaddingType. The Direction enum determines where the padding will be applied. You can choose to extend the data in the forward direction (ahead of the current values), in the backward direction (behind the current values), or in both directions simultaneously. The PaddingType enum defines the specific method used for extending the data. The library supports several methods—including symmetric, reflect, periodic, antisymmetric, antireflect, smooth, constant, and zero padding—each of which has been implemented to suit different analytical scenarios. For instance, symmetric padding mirrors the original data across its boundaries, while reflect padding continues the trend by reflecting around endpoint values. Periodic padding repeats the data, and antisymmetric padding mirrors the data with alternating signs to counterbalance it. The antireflect and smooth methods take into account the derivatives of your data, thereby extending the series in a way that preserves or smoothly continues these derivative values. Constant and zero padding simply extend the series using fixed endpoint values or zeros. Together, these enums allow you to fine-tune how your data is extended, ensuring that the padding method aligns with the specific requirements of your analysis.
The library is designed to work with both single variable inputs and array inputs. When using array-based methods—particularly with the antireflect and smooth padding types—please note that the implementation intentionally discards the last data point as a result of the delta computation process. This behavior is an important consideration when integrating the library into your TradingView studies, as it affects the overall data length of the padded series. Despite this, the library’s structure and documentation make it straightforward to incorporate into your existing scripts. You simply provide your data source, define the length of your data window, and select the desired padding type and direction, along with any optional parameters to control the extent of the padding (using both_period, forward_period, or backward_period).
In practical application, the Padding library enables you to extend historical data beyond its original range in a controlled and predictable manner. This is particularly useful when preparing datasets for further signal processing, as it helps to reduce artifacts that can otherwise compromise the results of your analytical routines. Whether you are an experienced Pine Script developer or a trader exploring advanced data analysis techniques, this library offers a robust solution that enhances the reliability and accuracy of your studies by ensuring your algorithms operate on a more complete and well-prepared dataset.
Library "Padding"
A comprehensive library for padding time series data with various methods. Supports both single variable and array inputs, with flexible padding directions and periods. Designed for signal processing applications including FFT, filtering, convolution, and wavelets. All methods maintain data ordering with most recent point at index 0.
symmetric(source, series_length, direction, both_period, forward_period, backward_period)
Applies symmetric padding by mirroring the input data across boundaries
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with symmetric padding applied
method symmetric(source, direction, both_period, forward_period, backward_period)
Applies symmetric padding to an array by mirroring the data across boundaries
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with symmetric padding applied
reflect(source, series_length, direction, both_period, forward_period, backward_period)
Applies reflect padding by continuing trends through reflection around endpoint values
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with reflect padding applied
method reflect(source, direction, both_period, forward_period, backward_period)
Applies reflect padding to an array by continuing trends through reflection around endpoint values
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with reflect padding applied
periodic(source, series_length, direction, both_period, forward_period, backward_period)
Applies periodic padding by repeating the input data
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with periodic padding applied
method periodic(source, direction, both_period, forward_period, backward_period)
Applies periodic padding to an array by repeating the data
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with periodic padding applied
antisymmetric(source, series_length, direction, both_period, forward_period, backward_period)
Applies antisymmetric padding by mirroring data and alternating signs
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with antisymmetric padding applied
method antisymmetric(source, direction, both_period, forward_period, backward_period)
Applies antisymmetric padding to an array by mirroring data and alternating signs
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with antisymmetric padding applied
antireflect(source, series_length, direction, both_period, forward_period, backward_period)
Applies antireflect padding by reflecting around endpoints while preserving derivatives
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with antireflect padding applied
method antireflect(source, direction, both_period, forward_period, backward_period)
Applies antireflect padding to an array by reflecting around endpoints while preserving derivatives
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with antireflect padding applied. Note: Last data point is lost when using array input
smooth(source, series_length, direction, both_period, forward_period, backward_period)
Applies smooth padding by extending with constant derivatives from endpoints
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with smooth padding applied
method smooth(source, direction, both_period, forward_period, backward_period)
Applies smooth padding to an array by extending with constant derivatives from endpoints
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with smooth padding applied. Note: Last data point is lost when using array input
constant(source, series_length, direction, both_period, forward_period, backward_period)
Applies constant padding by extending endpoint values
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with constant padding applied
method constant(source, direction, both_period, forward_period, backward_period)
Applies constant padding to an array by extending endpoint values
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with constant padding applied
zero(source, series_length, direction, both_period, forward_period, backward_period)
Applies zero padding by extending with zeros
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with zero padding applied
method zero(source, direction, both_period, forward_period, backward_period)
Applies zero padding to an array by extending with zeros
Namespace types: array
Parameters:
source (array) : Array of values to pad
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with zero padding applied
pad_data(source, series_length, padding_type, direction, both_period, forward_period, backward_period)
Generic padding function that applies specified padding type to input data
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
padding_type (series PaddingType) : Type of padding to apply (see PaddingType enum)
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with specified padding applied
method pad_data(source, padding_type, direction, both_period, forward_period, backward_period)
Generic padding function that applies specified padding type to array input
Namespace types: array
Parameters:
source (array) : Array of values to pad
padding_type (series PaddingType) : Type of padding to apply (see PaddingType enum)
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to array length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to array length if not specified
Returns: Array ordered with most recent point at index 0, containing original data with specified padding applied. Note: Last data point is lost when using antireflect or smooth padding types
make_padded_data(source, series_length, padding_type, direction, both_period, forward_period, backward_period)
Creates a window-based padded data series that updates with each new value. WARNING: Function must be called on every bar for consistency. Do not use in scopes where it may not execute on every bar.
Parameters:
source (float) : Input value to pad from
series_length (int) : Length of the data window
padding_type (series PaddingType) : Type of padding to apply (see PaddingType enum)
direction (series Direction) : Direction to apply padding
both_period (int) : Optional - periods to pad in both directions. Overrides forward_period and backward_period if specified
forward_period (int) : Optional - periods to pad forward. Defaults to series_length if not specified
backward_period (int) : Optional - periods to pad backward. Defaults to series_length if not specified
Returns: Array ordered with most recent point at index 0, containing windowed data with specified padding applied
Machine Learning: kNN Trend PredictorThe kNN Trend Predictor is a machine learning-based indicator that uses the k-Nearest Neighbors (kNN) algorithm for price prediction in trading. By analyzing historical price movements and computing Euclidean distances, the script identifies the closest past price patterns and forecasts potential trends. It provides color-coded trend signals, optional trade entry labels, and alerts for long and short signals.
AI Volume Breakout for scalpingPurpose of the Indicator
This script is designed for trading, specifically for scalping, which involves making numerous trades within a very short time frame to take advantage of small price movements. The indicator looks for volume breakouts, which are moments when trading volume significantly increases, potentially signaling the start of a new price movement.
Key Components:
Parameters:
Volume Threshold (volumeThreshold): Determines how much volume must increase from one bar to the next for it to be considered significant. Set at 4.0, meaning volume must quadruplicate for a breakout signal.
Price Change Threshold (priceChangeThreshold): Defines the minimum price change required for a breakout signal. Here, it's 1.5% of the bar's opening price.
SMA Length (smaLength): The period for the Simple Moving Average, which helps confirm the trend direction. Here, it's set to 20.
Cooldown Period (cooldownPeriod): Prevents signals from being too close together, set to 10 bars.
ATR Period (atrPeriod): The period for calculating Average True Range (ATR), used to measure market volatility.
Volatility Threshold (volatilityThreshold): If ATR divided by the close price exceeds this, the market is considered too volatile for trading according to this strategy.
Calculations:
SMA (Simple Moving Average): Used for trend confirmation. A bullish signal is more likely if the price is above this average.
ATR (Average True Range): Measures market volatility. Lower volatility (below the threshold) is preferred for this strategy.
Signal Generation:
The indicator checks if:
Volume has increased significantly (volumeDelta > 0 and volume / volume >= volumeThreshold).
There's enough price change (math.abs(priceDelta / open) >= priceChangeThreshold).
The market isn't too volatile (lowVolatility).
The trend supports the direction of the price change (trendUp for bullish, trendDown for bearish).
If all these conditions are met, it predicts:
1 (Bullish) if conditions suggest buying.
0 (Bearish) if conditions suggest selling.
Cooldown Mechanism:
After a signal, the script waits for a number of bars (cooldownPeriod) before considering another signal to avoid over-trading.
Visual Feedback:
Labels are placed on the chart:
Green label for bullish breakouts below the low price.
Red label for bearish breakouts above the high price.
How to Use:
Entry Points: Look for the labels on your chart to decide when to enter trades.
Risk Management: Since this is for scalping, ensure each trade has tight stop-losses to manage risk due to the quick, small movements.
Market Conditions: This strategy might work best in markets with consistent volume and price changes but not extreme volatility.
Caveats:
This isn't real AI; it's a heuristic based on volume and price. Actual AI would involve machine learning algorithms trained on historical data.
Always backtest any strategy, and consider how it behaves in different market conditions, not just the ones it was designed for.