Engulfing BoxEngulfing Day Trading Strategy | Version 1.0
This indicator highlights Bullish and Bearish Engulfing candlestick patterns, designed for day trading strategies. It identifies key market reversals and potential breakout points using simple price action principles.
🔑 Features:
Detects Bullish and Bearish Engulfing patterns based on customizable trend filters.
Automatically draws percentage levels (20%, 50%, and 75%) for target zones.
Bullish Engulfing → Levels drawn top to bottom.
Bearish Engulfing → Levels drawn bottom to top.
Highlights the engulfing candle and previous bar with colored boxes.
Supports trend detection using SMA50 or SMA50 & SMA200.
Alert conditions for both bullish and bearish setups.
Ideal for scalping, day trading, and identifying potential reversals.
📊 How to Use:
Apply the indicator on your preferred time frame (5M, 15M, 1H, etc.).
Wait for the engulfing pattern to form and monitor the drawn levels for potential entry/exit points.
Use in combination with volume or momentum indicators for enhanced confirmation.
⚠️ Disclaimer:
This is a tool for educational purposes and should not be considered financial advice. Always manage your risk and backtest before live trading.
Indicators and strategies
Breakouts with timefilter [LuciTech]Here's the updated description with "colors" replaced by "colours" throughout, maintaining the original structure and content:
Breaking Point 2.0
This is a technical analysis overlay indicator designed to identify breakout levels based on pivot highs and lows, with a focus on price action during customizable time windows using London time (UK). It draws horizontal lines at pivot points and plots signals when price breaks above or below these levels, offering traders a tool to monitor potential bullish or bearish movements. The indicator includes options for time filtering and displaying only the most recent breakout.
Features
The Pivot Breakout Lines display horizontal lines at detected pivot highs (bullish) and pivot lows (bearish), coloured green and red by default. These lines extend from the pivot point to the breakout bar and can be set to show only the latest breakout.
The Breakout Signals mark bullish breakouts with an upward triangle below the bar and bearish breakouts with a downward triangle above the bar, using customizable colours.
The Time Filter restricts signals and lines to a specific window (default: 14:30–15:00 UK), which can be toggled on or off. A shaded background highlights this period when enabled.
How It Works
The indicator calculates pivot highs and lows using a user-defined lookback period (default: 5 bars). When price closes above a pivot high, it triggers a bullish signal and draws a line from the pivot to the breakout bar. When price closes below a pivot low, it triggers a bearish signal with a corresponding line.
If the time filter is active, signals and lines only appear within the specified window. Outside this period—or if the filter is disabled—they appear based solely on price action. The indicator maintains up to three recent pivots in memory, removing older ones as new pivots form.
Alerts are available for both bullish and bearish breakouts, triggered when signals occur.
Settings
Length controls the lookback period for pivot detection (default: 5).
Colours Bull/Bear sets the colours for bullish (default: green) and bearish (default: red) lines and signals.
Show Last Breakout toggles whether only the most recent breakout line and signal are displayed (default: false).
Time Filter enables or disables the time restriction (default: true).
Fill Background toggles a shaded area during the time window (default: true), with a customizable colour.
Time Settings define the start hour/minute and end hour/minute for the filter (default: 14:30–15:00).
Interpretation
The Pivot Breakout Lines highlight levels where price has previously reversed, potentially acting as support or resistance. A breakout above a pivot high may suggest bullish momentum, while a breakout below a pivot low may indicate bearish pressure.
The Breakout Signals provide visual cues for these events, useful for timing entries or exits. When "Show Last Breakout" is enabled, the chart focuses on the most recent signal, reducing clutter.
The Time Filter and background shading help traders concentrate on specific trading sessions, such as high-volatility periods. When disabled, the indicator tracks breakouts across all times.
Triple HMA Colored [Chichomax]Triple HMA Colored Indicator Description
The Triple HMA Colored indicator is a sophisticated technical analysis tool designed to enhance trend identification by displaying three Hull Moving Averages (HMAs) on your chart, each with fully customizable periods and dynamic color settings. This indicator is built on the refined HMA calculation method, which leverages weighted moving averages (WMAs) to generate smooth and responsive trend lines with minimal lag.
Key Features:
- Triple HMA Setup:
Displays three HMAs, each computed with different, user-configurable periods, enabling multi-timeframe analysis in a single indicator.
- Dynamic Color Coding:
Each HMA line is color-coded based on its directional movement. When the current HMA value exceeds the previous value, the line is drawn in the designated "up" color, and when it falls below, it switches to the "down" color. This provides immediate visual cues for trend shifts.
- Customizable Inputs:
Users can adjust the period lengths for each of the three HMAs and select from six different color options (two for each HMA) directly from the indicator’s settings panel, ensuring that the tool can be tailored to match various trading strategies and visual preferences.
- Efficient Trend Detection:
By combining the speed of WMAs with the smoothness of the Hull Moving Average, this indicator offers a reliable method to detect market momentum changes, making it a valuable asset for both trend-following and counter-trend strategies.
Ideal for traders who demand flexibility and clarity in their chart analysis, the Triple HMA Colored indicator simplifies the process of tracking market trends across multiple timeframes while providing clear, visual signals for potential entry and exit points.
TICK Indikator
English:
The TICK Indicator measures in real time the number of up ticking stocks minus the number of down ticking stocks on the New York Stock Exchange (NYSE). It can display either the current TICK value ("Normal" mode) or the cumulative TICK values over the trading day ("Cumulative" mode). Positive values indicate market strength, while negative values signal weakness. Colored bars visualize momentum: green shades for rising, red for falling values. The zero line acts as a reference between buying and selling pressure.
Interpretation:
> +1000 and/or continuos lows above 0 → strong buying pressure
< -1000 and/or continuos highs below 0 → strong selling pressure
Around 0 → balanced market
Deutsch:
Der TICK Indikator misst in Echtzeit die Anzahl der Aktien, die an der New York Stock Exchange (NYSE) steigen, minus der Anzahl der fallenden Aktien. Der Indikator kann im "Normal"-Modus den aktuellen TICK-Wert anzeigen oder im "Cumulative"-Modus die kumulierten TICK-Werte über den Tag hinweg summieren. Positive Werte deuten auf eine allgemeine Markstärke hin, während negative Werte Schwäche signalisieren. Farbige Balken visualisieren die Dynamik: grüne Töne bei steigenden, rote bei fallenden Werten. Die Nullinie dient als Referenzpunkt zwischen Kauf- und Verkaufsdruck.
Interpretation:
> +1000 und/oder mehrere aufeinander folgende Tiefs über 0 → starker Kaufdruck
< -1000 und/oder mehrere aufeinander folgende Hochs unter 0 → starker Verkaufsdruck
Nahe 0 → ausgeglichener Markt
Previous Day's Close Indicator (Regular Hours)This indicator was developed to replace TradingView's built-in previous close indicator—which erroneously uses the close from two trading days prior. By capturing the actual last trade during the standard session, this script provides a reliable and precise previous close level.
Key features include:
Accurate Previous Close: This indicator locks in the last trade of the regular session, ensuring you always see the true previous day close.
Customizable Display Options: Users can choose between a line or circle plot, with adjustable size settings to suit their charting preferences.
Enjoy!
Donchian Trend Ribbon MTF HeatmapIf you're familiar with Donchian Channels, you probably already know how they work, so I won’t dive too deep into that.
This indicator builds upon the concept of Donchian Channels to create a Donchian Trend Ribbon MultiTimeframe (MTF) Heatmap. The aim is to visualize trend strength across multiple timeframes and provide a clearer picture of market direction.
How it Works:
Main Trend Calculation: The indicator calculates the main trend direction based on a user-defined period (e.g., 20 periods). You can adjust this length to fit your trading strategy.
Secondary Trend Analysis: It also calculates the trend direction for each of the 9 lower lengths. For example, if you set the length to 20, the secondary lengths would be 19, 18, ..., down to 11.
Trend Alignment Check: The indicator compares the trend direction from the lower lengths to the main trend direction to determine alignment.
Trend Ribbon Coloring: Based on this alignment, the trend ribbon changes color to reflect the strength and direction of the trend. The color intensity adjusts as the strength of the trend shifts.
Trend Colors:
Yellow: Strong uptrend
Dark Yellow: Weak uptrend
Red: Strong downtrend
Dark Red: Weak downtrend
Gray: Neutral or no strong trend
Additionally, weak trends are highlighted with emojis (😯 for weak long and 😡 for weak short), making it easy to spot when trends are fading.
Warning:
Entry points provided by this indicator may also indicate potential trend reversals, so use caution.
Consider utilizing a stop-loss line if you plan to take positions based on the signals generated by this tool.
Notes :
Non-Repainting: This indicator does not repaint, providing reliable historical signals.
Educational Use: The indicator is designed primarily for educational purposes and has not been backtested. Please use it as part of your broader analysis before making trading decisions.
Original Code by:
The original version of this code was created by LonesomeTheBlue. This enhanced version includes additional features such as multi-timeframe analysis and trend strength visualization.
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.
Multi-Timeframe ATR Levels by Hitesh2603Description:
"Multi-Timeframe ATR Levels by Hitesh2603" is a versatile and adaptive indicator designed to help traders identify key price levels based on the Average True Range (ATR) from a higher timeframe. The script automatically adapts to the current chart’s timeframe and allows you to customize the higher timeframe for ATR calculations, making it ideal for intraday and swing trading strategies.
The indicator plots upper and lower price levels based on the ATR multiplier, providing clear visual cues for potential profit-taking or exit points. It also includes features like editable timeframe presets , historical level plotting , labels , and alerts , making it a powerful tool for traders of all experience levels.
---
Key Features:
1. Automatic Timeframe Adaptation : - The script automatically detects the current chart’s timeframe and selects the appropriate higher timeframe for ATR calculations.
2. Editable Preset Timeframe Pairs : - Customize the higher timeframe for each chart timeframe directly in the indicator settings.
3. Dynamic ATR-Based Levels :- Plots upper and lower price levels using the formula:
- Upper Level = Current Candle Open + (Previous Candle ATR * Multiplier)
- Lower Level = Current Candle Open - (Previous Candle ATR * Multiplier)
4. Customizable Inputs :
- Adjust ATR length, multiplier, line length, colors, and more.
5. Labels :
- Displays the exact values of the upper and lower levels for easy reference.
6. Historical Levels :
- Optionally plots historical levels for all candles.
7. Alerts :
- Get notified when the price crosses the upper or lower levels.
---
Use Cases:
1. Intraday Trading :
- Use the script on a 5-minute or 15-minute chart with a 1-hour higher timeframe to identify intraday profit-taking or exit points.
2. Swing Trading :
- Use the script on a 1-hour or 4-hour chart with a daily higher timeframe to identify swing trading opportunities.
3. Position Trading :
- Use the script on a daily chart with a weekly higher timeframe to identify key levels for position trading.
4. Breakout Confirmation :
- Use the upper and lower levels as confirmation points for breakouts or reversals.
5. Risk Management :
- Use the levels to set stop-loss or take-profit targets based on market volatility.
---
How to Use:
1. Add the Script to Your Chart :
- Search for "Multi-Timeframe ATR Levels by Hitesh2603" in the TradingView indicator library and add it to your chart.
2. Customize the Settings :
- Adjust the inputs (e.g., ATR length, multiplier, line length, colors, etc.) to suit your trading strategy.
3. Set the Higher Timeframe :
- The script will automatically display an input for the higher timeframe based on the current chart’s timeframe. Customize it as needed.
4. Interpret the Levels :
- The script will plot two horizontal lines (upper and lower levels) on the chart. Use these levels for profit-taking, exits, or breakout confirmation.
5. Enable Alerts :
- Set up alerts to get notified when the price crosses the upper or lower levels.
---
Input Parameters:
1. ATR Length :
- The period used to calculate the ATR (default: 14).
2. ATR Multiplier :
- The multiplier applied to the ATR to calculate the levels (default: 0.65).
3. Line Length :
- The number of candles to extend the lines (default: 10).
4. Show Labels :
- Toggle to display the exact values of the levels (default: true).
5. Show Historical Levels :
- Toggle to plot historical levels for all candles (default: false).
6. Line Colors :
- Customize the colors of the upper and lower levels.
7. Line Width :
- Adjust the thickness of the lines (default: 2).
---
Example:
- Current Chart : 5-minute
- Higher Timeframe : 1-hour
- Previous Hour’s ATR : 4.6
- Current Hour’s Open : 102
- Multiplier : 0.65
Levels :
- Upper Level = 102 + (4.6 * 0.65) = 105.0
- Lower Level = 102 - (4.6 * 0.65) = 99.0
The script will plot horizontal lines at 105.0 and 99.0 on the 5-minute chart.
---
Alerts:
- Price Crosses Upper Level :
- Triggered when the price crosses above the upper level.
- Price Crosses Lower Level :
- Triggered when the price crosses below the lower level.
---
Notes:
- The script is designed to be flexible and adaptable to various trading styles and timeframes.
- Always backtest and validate the indicator with your trading strategy before using it in live trading.
---
Credits:
- Developed by Hitesh2603 .
- Special thanks to the TradingView community for inspiration and support.
VWAP [cryptalent]VWAP Indicator with Adjustable Source
Overview
This TradingView indicator calculates Daily, Weekly, and Monthly VWAP (Volume Weighted Average Price) with the flexibility to select different price sources (Open, High, Low, Close, HLC3, etc.). It also displays previous period VWAP levels, helping traders analyze past liquidity zones.
Key Features:
✅ Adjustable Source – Users can choose the price used for VWAP calculations (e.g., Close, High, Low, Open).
✅ Multi-Timeframe VWAP – Tracks Daily, Weekly, and Monthly VWAP to provide a broader market view.
✅ Historical VWAP Levels – Displays previous VWAP values for comparison and reference.
✅ Step Line Style – Ensures clear distinction between different periods and prevents overlapping.
✅ Visible in the Price Scale – The latest and historical VWAP values are displayed in the right-hand price scale for easy reference.
Customization:
You can easily modify the input settings to match your trading style.
Adjust the VWAP source price to test different perspectives (e.g., Open vs. High vs. Close).
[TehThomas] - MA Cross with DisplacementThis TradingView script, "MA Cross with Displacement," is designed to detect potential long and short trade opportunities based on moving average (MA) crossovers combined with price displacement confirmation. The script utilizes two simple moving averages (SMA) and highlights potential trade signals when a crossover occurs alongside a strong price movement (displacement).
Why This Indicator is Useful
This indicator enhances the standard moving average crossover strategy by incorporating a displacement condition, making trade signals more reliable. Many traders rely on moving average crossovers to determine trend reversals, but false signals often occur due to minor price fluctuations. By requiring a significant price movement (displacement), this indicator helps filter out weak or insignificant crossovers, leading to more high-probability trade opportunities.
How It Works
Calculates Two Moving Averages (MA)
The user can set two different MA periods:
MA 1 (blue line): Default period is 9 (shorter-term trend).
MA 2 (red line): Default period is 21 (longer-term trend).
These moving averages smooth out price fluctuations to identify overall trends.
Detects Crossovers
Bullish crossover: The blue MA crosses above the red MA + displacement candle → Potential long signal.
Example of bullish cross with displacement:
Bearish crossover: The blue MA crosses below the red MA + displacement candle → Potential short signal.
Example of bearish cross with displacement:
Confirms Displacement (Strong Price Move)
A price displacement threshold is used (default: 1.1% of the previous candle size).
For a valid trade signal, a crossover must occur alongside a strong price movement.
Bullish Displacement Condition: Price increased by more than the threshold.
Bearish Displacement Condition: Price decreased by more than the threshold.
Visual Indicators on the Chart
Bars are colored green when there is a bullish displacement.
Bars are colored red when there is a bearish displacement.
These color changes help traders quickly identify potential trade setups.
How to Use the Indicator
Add the Script to Your Chart
Copy and paste the script into TradingView's Pine Script Editor.
Click "Add to Chart" to activate it.
Customize the Settings
Adjust the moving average periods to fit your trading strategy.
Modify the displacement threshold based on market volatility.
Change the bar colors for better visualization.
Look for Trade Signals
Long Trade (Buy Signal)
The blue MA crosses above the red MA (bullish crossover).
A green bar appears, confirming bullish displacement.
Short Trade (Sell Signal)
The blue MA crosses below the red MA (bearish crossover).
A red bar appears, confirming bearish displacement.
Use in Conjunction with Other Indicators
This indicator works best when combined with support & resistance levels, RSI, MACD, or volume analysis to improve trade accuracy.
Final Thoughts
The MA Cross with Displacement Indicator improves the reliability of moving average crossovers by requiring strong price movements to confirm a trade signal. This helps traders avoid false breakouts and weak trends, making it a powerful tool for identifying high-probability trades.
__________________________________________
Thanks for your support!
If you found this idea helpful or learned something new, drop a like 👍 and leave a comment—I’d love to hear your thoughts! 🚀
Make sure to follow me for more price action insights, free indicators, and trading strategies. Let’s grow and trade smarter together! 📈✨
Sniper TradingSniper Trader Indicator Overview
Sniper Trader is a comprehensive trading indicator designed to assist traders by providing valuable insights and alerting them to key market conditions. The indicator combines several technical analysis tools and provides customizable inputs for different strategies and needs.
Here’s a detailed breakdown of all the components and their functions in the Sniper Trader indicator:
1. MACD (Moving Average Convergence Divergence)
The MACD is a trend-following momentum indicator that helps determine the strength and direction of the current trend. It consists of two lines:
MACD Line (Blue): Calculated by subtracting the long-term EMA (Exponential Moving Average) from the short-term EMA.
Signal Line (Red): The EMA of the MACD line, typically set to 9 periods.
What does it do?
Buy Signal: When the MACD line crosses above the signal line, it generates a buy signal.
Sell Signal: When the MACD line crosses below the signal line, it generates a sell signal.
Zero Line Crossings: Alerts are triggered when the MACD line crosses above or below the zero line.
2. RSI (Relative Strength Index)
The RSI is a momentum oscillator used to identify overbought or oversold conditions in the market.
Overbought Level (Red): The level above which the market might be considered overbought, typically set to 70.
Oversold Level (Green): The level below which the market might be considered oversold, typically set to 30.
What does it do?
Overbought Signal: When the RSI crosses above the overbought level, it’s considered a signal that the asset may be overbought.
Oversold Signal: When the RSI crosses below the oversold level, it’s considered a signal that the asset may be oversold.
3. ATR (Average True Range)
The ATR is a volatility indicator that measures the degree of price movement over a specific period (14 bars in this case). It provides insights into how volatile the market is.
What does it do?
The ATR value is plotted on the chart and provides a reference for potential market volatility. It's used to detect flat zones, where the price may not be moving significantly, potentially indicating a lack of trends.
4. Support and Resistance Zones
The Support and Resistance Zones are drawn by identifying key swing highs and lows over a user-defined look-back period.
Support Zone (Green): Identifies areas where the price has previously bounced upwards.
Resistance Zone (Red): Identifies areas where the price has previously been rejected or reversed.
What does it do?
The indicator uses swing highs and lows to define support and resistance zones and highlights these areas on the chart. This helps traders identify potential price reversal points.
5. Alarm Time
The Alarm Time feature allows you to set a custom time for the indicator to trigger an alarm. The time is based on Eastern Time and can be adjusted directly in the inputs tab.
What does it do?
It triggers an alert at a user-defined time (for example, 4 PM Eastern Time), helping traders close positions or take specific actions at a set time.
6. Market Condition Display
The Market Condition Display shows whether the market is in a Bullish, Bearish, or Flat state based on the MACD line’s position relative to the signal line.
Bullish (Green): The market is in an uptrend.
Bearish (Red): The market is in a downtrend.
Flat (Yellow): The market is in a range or consolidation phase.
7. Table for Key Information
The indicator includes a customizable table that displays the current market condition (Bull, Bear, Flat). The table is placed at a user-defined location (top-left, top-right, bottom-left, bottom-right), and the appearance of the table can be adjusted for text size and color.
8. Background Highlighting
Bullish Reversal: When the MACD line crosses above the signal line, the background is shaded green to highlight the potential for a trend reversal to the upside.
Bearish Reversal: When the MACD line crosses below the signal line, the background is shaded red to highlight the potential for a trend reversal to the downside.
Flat Zone: A flat zone is identified when volatility is low (ATR is below the average), and the background is shaded orange to signal periods of low market movement.
Key Features:
Customizable Time Inputs: Adjust the alarm time based on your local time zone.
User-Friendly Table: Easily view market conditions and adjust display settings.
Comprehensive Alerts: Receive alerts for MACD crossovers, RSI overbought/oversold conditions, flat zones, and the custom alarm time.
Support and Resistance Zones: Drawn automatically based on historical price action.
Trend and Momentum Indicators: Utilize the MACD and RSI for identifying trends and market conditions.
How to Use Sniper Trader:
Set Your Custom Time: Adjust the alarm time to match your trading schedule.
Monitor Market Conditions: Check the table for real-time market condition updates.
Use MACD and RSI Signals: Watch for MACD crossovers and RSI overbought/oversold signals.
Watch for Key Zones: Pay attention to the support and resistance zones and background highlights to identify market turning points.
Set Alerts: Use the built-in alerts to notify you of buy/sell signals or when it’s time to take action at your custom alarm time.
Quantum Momentum FusionPurpose of the Indicator
"Quantum Momentum Fusion" aims to combine the strengths of RSI (Relative Strength Index) and Williams %R to create a hybrid momentum indicator tailored for volatile markets like crypto:
RSI: Measures the strength of price changes, great for understanding trend stability but can sometimes lag.
Williams %R: Assesses the position of the price relative to the highest and lowest levels over a period, offering faster responses but sensitive to noise.
Combination: By blending these two indicators with a weighted average (default 50%-50%), we achieve both speed and reliability.
Additionally, we use the indicator’s own SMA (Simple Moving Average) crossovers to filter out noise and generate more meaningful signals. The goal is to craft a simple yet effective tool, especially for short-term trading like scalping.
How Signals Are Generated
The indicator produces signals as follows:
Calculations:
RSI: Standard 14-period RSI based on closing prices.
Williams %R: Calculated over 14 periods using the highest high and lowest low, then normalized to a 0-100 scale.
Quantum Fusion: A weighted average of RSI and Williams %R (e.g., 50% RSI + 50% Williams %R).
Fusion SMA: 5-period Simple Moving Average of Quantum Fusion.
Signal Conditions:
Overbought Signal (Red Background):
Quantum Fusion crosses below Fusion SMA (indicating weakening momentum).
And Quantum Fusion is above 70 (in the overbought zone).
This is a sell signal.
Oversold Signal (Green Background):
Quantum Fusion crosses above Fusion SMA (indicating strengthening momentum).
And Quantum Fusion is below 30 (in the oversold zone).
This is a buy signal.
Filtering:
The background only changes color during crossovers, reducing “fake” signals.
The 70 and 30 thresholds ensure signals trigger only in extreme conditions.
On the chart:
Purple line: Quantum Fusion.
Yellow line: Fusion SMA.
Red background: Sell signal (overbought confirmation).
Green background: Buy signal (oversold confirmation).
Overall Assessment
This indicator can be a fast-reacting tool for scalping. However:
Volatility Warning: Sudden crypto pumps/dumps can disrupt signals.
Confirmation: Pair it with price action (candlestick patterns) or another indicator (e.g., volume) for validation.
Timeframe: Works best on 1-5 minute charts.
Suggested Settings for Long Timeframes
Here’s a practical configuration for, say, a 4-hour chart:
RSI Period: 20
Williams %R Period: 20
RSI Weight: 60%
Williams %R Weight: 40% (automatically calculated as 100 - RSI Weight)
SMA Period: 15
Overbought Level: 75
Oversold Level: 25
Long-Only For SPXThe "GOATED Long-Only" TradingView strategy, written in Pine Script v5, is designed for long-term momentum trading with a $50 initial capital. It identifies high-momentum stocks by calculating a composite momentum score across 3-month (63 days), 6-month (126 days), 9-month (189 days), and 12-month (252 days) periods, using the formula (current_price / past_price) - 1. The strategy filters stocks with annualized volatility below 0.5 (calculated as the standard deviation of daily returns, annualized by multiplying by the square root of 252 trading days) and requires momentum to exceed a customizable threshold (default 0.0). It enters long positions when momentum becomes positive and exits when it turns negative, using stop-loss (1%) and take-profit (50%) levels to manage risk. The strategy visualizes momentum and volatility on the chart, plotting entry/exit signals as green triangles (long entry) and red triangles (long exit) for backtesting and analysis.
Red & Green Zone ReversalOverview
The “Red & Green Zone Reversal” indicator is designed to visually highlight potential reversal zones on your chart by using a combination of Bollinger Bands and the Relative Strength Index (RSI).
It overlays on the chart and provides background color cues—red for oversold conditions and green for overbought conditions—along with corresponding alert triggers.
Key Components
Overlay: The indicator is set to overlay the chart, meaning its visual cues (colored backgrounds) are drawn directly on the price chart.
Bollinger Bands Calculation
Period: A 20-period simple moving average (SMA) is calculated from the closing prices.
Standard Deviation Multiplier: A multiplier of 2.0 is applied.
Bands Defined:
Basis: The 20-period SMA.
Deviation: Calculated as 2 times the standard deviation over the same period.
Upper Band: Basis plus the deviation.
Lower Band: Basis minus the deviation.
RSI Calculation
Period: The RSI is computed over a 14-period span using the closing prices.
Thresholds:
Oversold Threshold: 30 (used for the red zone condition).
Overbought Threshold: 70 (used for the green zone condition).
Zone Conditions
Red Zone (Oversold):
Criteria: The price is below the lower Bollinger Band and the RSI is below 30.
Purpose: Highlights a situation where the asset may be deeply oversold, signaling a potential reversal to the upside.
Green Zone (Overbought):
Criteria: The price is above the upper Bollinger Band and the RSI is above 70.
Purpose: Indicates that the asset may be overbought, potentially signaling a reversal to the downside.
Visual and Alert Components
Background Coloring:
Red Background: Applied when the red zone condition is met (using a semi-transparent red).
Green Background: Applied when the green zone condition is met (using a semi-transparent green).
Alerts:
Red Alert: An alert condition titled “Deep Oversold Alert” is triggered with the message “Deep Oversold Signal triggered!” when the red zone criteria are satisfied.
Green Alert: Similarly, an alert condition titled “Deep Overbought Alert” is triggered with the message “Deep Overbought Signal triggered!” when the green zone criteria are met.
Important Disclaimers
Not Financial Advice:
This indicator is provided for informational and analytical purposes only. It does not constitute trading advice or a recommendation to buy or sell any asset. Traders should use it as one of several tools in their analysis and should perform their own due diligence.
Risk Management:
Trading inherently involves risk. Past performance is not indicative of future results. Always implement appropriate risk management and use stop losses where necessary.
Summary
In summary, the “Red & Green Zone Reversal” indicator uses Bollinger Bands and RSI to detect extreme market conditions. It visually marks oversold (red) and overbought (green) conditions directly on the chart and offers alert conditions to help traders monitor these potential reversal points.
Enjoy!!
Grim SlashOverview:
The Touch Previous Candle Strategy is a simple yet effective trading approach designed for the 1-hour chart. It focuses on price action by placing trades when the current candle interacts with key levels from the previous candle. The strategy is fully automated and includes risk management with take profit and stop loss levels.
Entry Conditions:
Buy Signal: A buy order is triggered when the low of the current candle touches or drops below the previous candle's closing price.
Sell Signal: A position is closed when the high of the current candle reaches or exceeds the previous candle's highest price.
Risk Management:
Take Profit: The trade is exited automatically when the price increases by 15% from the entry point.
Stop Loss: A stop loss is set at 5% below the entry price to minimize risk.
Best Use Cases:
Works well in volatile markets where price frequently tests previous levels.
Suitable for traders who prefer price-action-based strategies over indicators.
Can be optimized for different assets or timeframes based on market behavior.
Multi-Asset & TF RSI
Multi-Asset & TF RSI
This indicator allows you to compare the Relative Strength Index (RSI) values of two different assets across multiple timeframes in a single pane. It’s ideal for traders who wish to monitor momentum across different markets or instruments simultaneously.
Key Features:
Primary Asset RSI:
The indicator automatically calculates the RSI for the chart’s asset. You can adjust the timeframe for this asset using a dropdown that offers standard TradingView timeframes, a "Chart" option (which syncs with your current chart timeframe), or a "Custom" option where you can enter any timeframe.
Optional Second Asset RSI:
Enable the “Display Second Asset” option to compare another asset’s RSI. Simply select the symbol (default is “DXY”) and choose its timeframe from an identical dropdown. When enabled, the second asset’s RSI is computed and plotted for easy comparison.
RSI Settings:
Customize the RSI length and choose the data source (e.g., close price) to suit your trading strategy.
Visual Aids:
Overbought (70) and oversold (30) levels are clearly marked, along with a midline at 50. These visual cues help you quickly assess market conditions.
Asset Information Table:
A dynamic table at the top of the pane displays the symbols being analysed – the chart’s asset as the “1st” asset and, if enabled, the second asset as the “2nd.”
How to Use:
Apply the Indicator:
Add the indicator to your chart. By default, it will calculate the RSI for the chart’s current asset using your chart’s timeframe.
Adjust Primary Asset Settings:
Use the “Main Asset Timeframe” dropdown to choose the timeframe for the RSI calculation on the chart asset. Select “Chart” to automatically match your current chart’s timeframe or choose a preset/custom timeframe.
Enable and Configure the Second Asset:
Toggle the “Display Second Asset” option to enable the second asset’s RSI. Select the asset symbol and its desired timeframe using the provided dropdown. The RSI for the second asset will be plotted if enabled.
Monitor the RSI Values:
Observe the plotted RSI lines along with the overbought/oversold levels. Use the table at the top-centre of the pane to verify which asset symbols are being displayed.
This versatile tool is designed to support multi-asset analysis and can be a valuable addition to your technical analysis toolkit. Enjoy enhanced RSI comparison across markets and timeframes!
Happy Trading!
ValueAtTime█ OVERVIEW
This library is a Pine Script® programming tool for accessing historical values in a time series using UNIX timestamps . Its data structure and functions index values by time, allowing scripts to retrieve past values based on absolute timestamps or relative time offsets instead of relying on bar index offsets.
█ CONCEPTS
UNIX timestamps
In Pine Script®, a UNIX timestamp is an integer representing the number of milliseconds elapsed since January 1, 1970, at 00:00:00 UTC (the UNIX Epoch ). The timestamp is a unique, absolute representation of a specific point in time. Unlike a calendar date and time, a UNIX timestamp's meaning does not change relative to any time zone .
This library's functions process series values and corresponding UNIX timestamps in pairs , offering a simplified way to identify values that occur at or near distinct points in time instead of on specific bars.
Storing and retrieving time-value pairs
This library's `Data` type defines the structure for collecting time and value information in pairs. Objects of the `Data` type contain the following two fields:
• `times` – An array of "int" UNIX timestamps for each recorded value.
• `values` – An array of "float" values for each saved timestamp.
Each index in both arrays refers to a specific time-value pair. For instance, the `times` and `values` elements at index 0 represent the first saved timestamp and corresponding value. The library functions that maintain `Data` objects queue up to one time-value pair per bar into the object's arrays, where the saved timestamp represents the bar's opening time .
Because the `times` array contains a distinct UNIX timestamp for each item in the `values` array, it serves as a custom mapping for retrieving saved values. All the library functions that return information from a `Data` object use this simple two-step process to identify a value based on time:
1. Perform a binary search on the `times` array to find the earliest saved timestamp closest to the specified time or offset and get the element's index.
2. Access the element from the `values` array at the retrieved index, returning the stored value corresponding to the found timestamp.
Value search methods
There are several techniques programmers can use to identify historical values from corresponding timestamps. This library's functions include three different search methods to locate and retrieve values based on absolute times or relative time offsets:
Timestamp search
Find the value with the earliest saved timestamp closest to a specified timestamp.
Millisecond offset search
Find the value with the earliest saved timestamp closest to a specified number of milliseconds behind the current bar's opening time. This search method provides a time-based alternative to retrieving historical values at specific bar offsets.
Period offset search
Locate the value with the earliest saved timestamp closest to a defined period offset behind the current bar's opening time. The function calculates the span of the offset based on a period string . The "string" must contain one of the following unit tokens:
• "D" for days
• "W" for weeks
• "M" for months
• "Y" for years
• "YTD" for year-to-date, meaning the time elapsed since the beginning of the bar's opening year in the exchange time zone.
The period string can include a multiplier prefix for all supported units except "YTD" (e.g., "2W" for two weeks).
Note that the precise span covered by the "M", "Y", and "YTD" units varies across time. The "1M" period can cover 28, 29, 30, or 31 days, depending on the bar's opening month and year in the exchange time zone. The "1Y" period covers 365 or 366 days, depending on leap years. The "YTD" period's span changes with each new bar, because it always measures the time from the start of the current bar's opening year.
█ CALCULATIONS AND USE
This library's functions offer a flexible, structured approach to retrieving historical values at or near specific timestamps, millisecond offsets, or period offsets for different analytical needs.
See below for explanations of the exported functions and how to use them.
Retrieving single values
The library includes three functions that retrieve a single stored value using timestamp, millisecond offset, or period offset search methods:
• `valueAtTime()` – Locates the saved value with the earliest timestamp closest to a specified timestamp.
• `valueAtTimeOffset()` – Finds the saved value with the earliest timestamp closest to the specified number of milliseconds behind the current bar's opening time.
• `valueAtPeriodOffset()` – Finds the saved value with the earliest timestamp closest to the period-based offset behind the current bar's opening time.
Each function has two overloads for advanced and simple use cases. The first overload searches for a value in a user-specified `Data` object created by the `collectData()` function (see below). It returns a tuple containing the found value and the corresponding timestamp.
The second overload maintains a `Data` object internally to store and retrieve values for a specified `source` series. This overload returns a tuple containing the historical `source` value, the corresponding timestamp, and the current bar's `source` value, making it helpful for comparing past and present values from requested contexts.
Retrieving multiple values
The library includes the following functions to retrieve values from multiple historical points in time, facilitating calculations and comparisons with values retrieved across several intervals:
• `getDataAtTimes()` – Locates a past `source` value for each item in a `timestamps` array. Each retrieved value's timestamp represents the earliest time closest to one of the specified timestamps.
• `getDataAtTimeOffsets()` – Finds a past `source` value for each item in a `timeOffsets` array. Each retrieved value's timestamp represents the earliest time closest to one of the specified millisecond offsets behind the current bar's opening time.
• `getDataAtPeriodOffsets()` – Finds a past value for each item in a `periods` array. Each retrieved value's timestamp represents the earliest time closest to one of the specified period offsets behind the current bar's opening time.
Each function returns a tuple with arrays containing the found `source` values and their corresponding timestamps. In addition, the tuple includes the current `source` value and the symbol's description, which also makes these functions helpful for multi-interval comparisons using data from requested contexts.
Processing period inputs
When writing scripts that retrieve historical values based on several user-specified period offsets, the most concise approach is to create a single text input that allows users to list each period, then process the "string" list into an array for use in the `getDataAtPeriodOffsets()` function.
This library includes a `getArrayFromString()` function to provide a simple way to process strings containing comma-separated lists of periods. The function splits the specified `str` by its commas and returns an array containing every non-empty item in the list with surrounding whitespaces removed. View the example code to see how we use this function to process the value of a text area input .
Calculating period offset times
Because the exact amount of time covered by a specified period offset can vary, it is often helpful to verify the resulting times when using the `valueAtPeriodOffset()` or `getDataAtPeriodOffsets()` functions to ensure the calculations work as intended for your use case.
The library's `periodToTimestamp()` function calculates an offset timestamp from a given period and reference time. With this function, programmers can verify the time offsets in a period-based data search and use the calculated offset times in additional operations.
For periods with "D" or "W" units, the function calculates the time offset based on the absolute number of milliseconds the period covers (e.g., `86400000` for "1D"). For periods with "M", "Y", or "YTD" units, the function calculates an offset time based on the reference time's calendar date in the exchange time zone.
Collecting data
All the `getDataAt*()` functions, and the second overloads of the `valueAt*()` functions, collect and maintain data internally, meaning scripts do not require a separate `Data` object when using them. However, the first overloads of the `valueAt*()` functions do not collect data, because they retrieve values from a user-specified `Data` object.
For cases where a script requires a separate `Data` object for use with these overloads or other custom routines, this library exports the `collectData()` function. This function queues each bar's `source` value and opening timestamp into a `Data` object and returns the object's ID.
This function is particularly useful when searching for values from a specific series more than once. For instance, instead of using multiple calls to the second overloads of `valueAt*()` functions with the same `source` argument, programmers can call `collectData()` to store each bar's `source` and opening timestamp, then use the returned `Data` object's ID in calls to the first `valueAt*()` overloads to reduce memory usage.
The `collectData()` function and all the functions that collect data internally include two optional parameters for limiting the saved time-value pairs to a sliding window: `timeOffsetLimit` and `timeframeLimit`. When either has a non-na argument, the function restricts the collected data to the maximum number of recent bars covered by the specified millisecond- and timeframe-based intervals.
NOTE : All calls to the functions that collect data for a `source` series can execute up to once per bar or realtime tick, because each stored value requires a unique corresponding timestamp. Therefore, scripts cannot call these functions iteratively within a loop . If a call to these functions executes more than once inside a loop's scope, it causes a runtime error.
█ EXAMPLE CODE
The example code at the end of the script demonstrates one possible use case for this library's functions. The code retrieves historical price data at user-specified period offsets, calculates price returns for each period from the retrieved data, and then populates a table with the results.
The example code's process is as follows:
1. Input a list of periods – The user specifies a comma-separated list of period strings in the script's "Period list" input (e.g., "1W, 1M, 3M, 1Y, YTD"). Each item in the input list represents a period offset from the latest bar's opening time.
2. Process the period list – The example calls `getArrayFromString()` on the first bar to split the input list by its commas and construct an array of period strings.
3. Request historical data – The code uses a call to `getDataAtPeriodOffsets()` as the `expression` argument in a request.security() call to retrieve the closing prices of "1D" bars for each period included in the processed `periods` array.
4. Display information in a table – On the latest bar, the code uses the retrieved data to calculate price returns over each specified period, then populates a two-row table with the results. The cells for each return percentage are color-coded based on the magnitude and direction of the price change. The cells also include tooltips showing the compared daily bar's opening date in the exchange time zone.
█ NOTES
• This library's architecture relies on a user-defined type (UDT) for its data storage format. UDTs are blueprints from which scripts create objects , i.e., composite structures with fields containing independent values or references of any supported type.
• The library functions search through a `Data` object's `times` array using the array.binary_search_leftmost() function, which is more efficient than looping through collected data to identify matching timestamps. Note that this built-in works only for arrays with elements sorted in ascending order .
• Each function that collects data from a `source` series updates the values and times stored in a local `Data` object's arrays. If a single call to these functions were to execute in a loop , it would store multiple values with an identical timestamp, which can cause erroneous search behavior. To prevent looped calls to these functions, the library uses the `checkCall()` helper function in their scopes. This function maintains a counter that increases by one each time it executes on a confirmed bar. If the count exceeds the total number of bars, indicating the call executes more than once in a loop, it raises a runtime error .
• Typically, when requesting higher-timeframe data with request.security() while using barmerge.lookahead_on as the `lookahead` argument, the `expression` argument should be offset with the history-referencing operator to prevent lookahead bias on historical bars. However, the call in this script's example code enables lookahead without offsetting the `expression` because the script displays results only on the last historical bar and all realtime bars, where there is no future data to leak into the past. This call ensures the displayed results use the latest data available from the context on realtime bars.
Look first. Then leap.
█ EXPORTED TYPES
Data
A structure for storing successive timestamps and corresponding values from a dataset.
Fields:
times (array) : An "int" array containing a UNIX timestamp for each value in the `values` array.
values (array) : A "float" array containing values corresponding to the timestamps in the `times` array.
█ EXPORTED FUNCTIONS
getArrayFromString(str)
Splits a "string" into an array of substrings using the comma (`,`) as the delimiter. The function trims surrounding whitespace characters from each substring, and it excludes empty substrings from the result.
Parameters:
str (series string) : The "string" to split into an array based on its commas.
Returns: (array) An array of trimmed substrings from the specified `str`.
periodToTimestamp(period, referenceTime)
Calculates a UNIX timestamp representing the point offset behind a reference time by the amount of time within the specified `period`.
Parameters:
period (series string) : The period string, which determines the time offset of the returned timestamp. The specified argument must contain a unit and an optional multiplier (e.g., "1Y", "3M", "2W", "YTD"). Supported units are:
- "Y" for years.
- "M" for months.
- "W" for weeks.
- "D" for days.
- "YTD" (Year-to-date) for the span from the start of the `referenceTime` value's year in the exchange time zone. An argument with this unit cannot contain a multiplier.
referenceTime (series int) : The millisecond UNIX timestamp from which to calculate the offset time.
Returns: (int) A millisecond UNIX timestamp representing the offset time point behind the `referenceTime`.
collectData(source, timeOffsetLimit, timeframeLimit)
Collects `source` and `time` data successively across bars. The function stores the information within a `Data` object for use in other exported functions/methods, such as `valueAtTimeOffset()` and `valueAtPeriodOffset()`. Any call to this function cannot execute more than once per bar or realtime tick.
Parameters:
source (series float) : The source series to collect. The function stores each value in the series with an associated timestamp representing its corresponding bar's opening time.
timeOffsetLimit (simple int) : Optional. A time offset (range) in milliseconds. If specified, the function limits the collected data to the maximum number of bars covered by the range, with a minimum of one bar. If the call includes a non-empty `timeframeLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
timeframeLimit (simple string) : Optional. A valid timeframe string. If specified and not empty, the function limits the collected data to the maximum number of bars covered by the timeframe, with a minimum of one bar. If the call includes a non-na `timeOffsetLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
Returns: (Data) A `Data` object containing collected `source` values and corresponding timestamps over the allowed time range.
method valueAtTime(data, timestamp)
(Overload 1 of 2) Retrieves value and time data from a `Data` object's fields at the index of the earliest timestamp closest to the specified `timestamp`. Callable as a method or a function.
Parameters:
data (series Data) : The `Data` object containing the collected time and value data.
timestamp (series int) : The millisecond UNIX timestamp to search. The function returns data for the earliest saved timestamp that is closest to the value.
Returns: ( ) A tuple containing the following data from the `Data` object:
- The stored value corresponding to the identified timestamp ("float").
- The earliest saved timestamp that is closest to the specified `timestamp` ("int").
valueAtTime(source, timestamp, timeOffsetLimit, timeframeLimit)
(Overload 2 of 2) Retrieves `source` and time information for the earliest bar whose opening timestamp is closest to the specified `timestamp`. Any call to this function cannot execute more than once per bar or realtime tick.
Parameters:
source (series float) : The source series to analyze. The function stores each value in the series with an associated timestamp representing its corresponding bar's opening time.
timestamp (series int) : The millisecond UNIX timestamp to search. The function returns data for the earliest bar whose timestamp is closest to the value.
timeOffsetLimit (simple int) : Optional. A time offset (range) in milliseconds. If specified, the function limits the collected data to the maximum number of bars covered by the range, with a minimum of one bar. If the call includes a non-empty `timeframeLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
timeframeLimit (simple string) : (simple string) Optional. A valid timeframe string. If specified and not empty, the function limits the collected data to the maximum number of bars covered by the timeframe, with a minimum of one bar. If the call includes a non-na `timeOffsetLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
Returns: ( ) A tuple containing the following data:
- The `source` value corresponding to the identified timestamp ("float").
- The earliest bar's timestamp that is closest to the specified `timestamp` ("int").
- The current bar's `source` value ("float").
method valueAtTimeOffset(data, timeOffset)
(Overload 1 of 2) Retrieves value and time data from a `Data` object's fields at the index of the earliest saved timestamp closest to `timeOffset` milliseconds behind the current bar's opening time. Callable as a method or a function.
Parameters:
data (series Data) : The `Data` object containing the collected time and value data.
timeOffset (series int) : The millisecond offset behind the bar's opening time. The function returns data for the earliest saved timestamp that is closest to the calculated offset time.
Returns: ( ) A tuple containing the following data from the `Data` object:
- The stored value corresponding to the identified timestamp ("float").
- The earliest saved timestamp that is closest to `timeOffset` milliseconds before the current bar's opening time ("int").
valueAtTimeOffset(source, timeOffset, timeOffsetLimit, timeframeLimit)
(Overload 2 of 2) Retrieves `source` and time information for the earliest bar whose opening timestamp is closest to `timeOffset` milliseconds behind the current bar's opening time. Any call to this function cannot execute more than once per bar or realtime tick.
Parameters:
source (series float) : The source series to analyze. The function stores each value in the series with an associated timestamp representing its corresponding bar's opening time.
timeOffset (series int) : The millisecond offset behind the bar's opening time. The function returns data for the earliest bar's timestamp that is closest to the calculated offset time.
timeOffsetLimit (simple int) : Optional. A time offset (range) in milliseconds. If specified, the function limits the collected data to the maximum number of bars covered by the range, with a minimum of one bar. If the call includes a non-empty `timeframeLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
timeframeLimit (simple string) : Optional. A valid timeframe string. If specified and not empty, the function limits the collected data to the maximum number of bars covered by the timeframe, with a minimum of one bar. If the call includes a non-na `timeOffsetLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
Returns: ( ) A tuple containing the following data:
- The `source` value corresponding to the identified timestamp ("float").
- The earliest bar's timestamp that is closest to `timeOffset` milliseconds before the current bar's opening time ("int").
- The current bar's `source` value ("float").
method valueAtPeriodOffset(data, period)
(Overload 1 of 2) Retrieves value and time data from a `Data` object's fields at the index of the earliest timestamp closest to a calculated offset behind the current bar's opening time. The calculated offset represents the amount of time covered by the specified `period`. Callable as a method or a function.
Parameters:
data (series Data) : The `Data` object containing the collected time and value data.
period (series string) : The period string, which determines the calculated time offset. The specified argument must contain a unit and an optional multiplier (e.g., "1Y", "3M", "2W", "YTD"). Supported units are:
- "Y" for years.
- "M" for months.
- "W" for weeks.
- "D" for days.
- "YTD" (Year-to-date) for the span from the start of the current bar's year in the exchange time zone. An argument with this unit cannot contain a multiplier.
Returns: ( ) A tuple containing the following data from the `Data` object:
- The stored value corresponding to the identified timestamp ("float").
- The earliest saved timestamp that is closest to the calculated offset behind the bar's opening time ("int").
valueAtPeriodOffset(source, period, timeOffsetLimit, timeframeLimit)
(Overload 2 of 2) Retrieves `source` and time information for the earliest bar whose opening timestamp is closest to a calculated offset behind the current bar's opening time. The calculated offset represents the amount of time covered by the specified `period`. Any call to this function cannot execute more than once per bar or realtime tick.
Parameters:
source (series float) : The source series to analyze. The function stores each value in the series with an associated timestamp representing its corresponding bar's opening time.
period (series string) : The period string, which determines the calculated time offset. The specified argument must contain a unit and an optional multiplier (e.g., "1Y", "3M", "2W", "YTD"). Supported units are:
- "Y" for years.
- "M" for months.
- "W" for weeks.
- "D" for days.
- "YTD" (Year-to-date) for the span from the start of the current bar's year in the exchange time zone. An argument with this unit cannot contain a multiplier.
timeOffsetLimit (simple int) : Optional. A time offset (range) in milliseconds. If specified, the function limits the collected data to the maximum number of bars covered by the range, with a minimum of one bar. If the call includes a non-empty `timeframeLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
timeframeLimit (simple string) : Optional. A valid timeframe string. If specified and not empty, the function limits the collected data to the maximum number of bars covered by the timeframe, with a minimum of one bar. If the call includes a non-na `timeOffsetLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
Returns: ( ) A tuple containing the following data:
- The `source` value corresponding to the identified timestamp ("float").
- The earliest bar's timestamp that is closest to the calculated offset behind the current bar's opening time ("int").
- The current bar's `source` value ("float").
getDataAtTimes(timestamps, source, timeOffsetLimit, timeframeLimit)
Retrieves `source` and time information for each bar whose opening timestamp is the earliest one closest to one of the UNIX timestamps specified in the `timestamps` array. Any call to this function cannot execute more than once per bar or realtime tick.
Parameters:
timestamps (array) : An array of "int" values representing UNIX timestamps. The function retrieves `source` and time data for each element in this array.
source (series float) : The source series to analyze. The function stores each value in the series with an associated timestamp representing its corresponding bar's opening time.
timeOffsetLimit (simple int) : Optional. A time offset (range) in milliseconds. If specified, the function limits the collected data to the maximum number of bars covered by the range, with a minimum of one bar. If the call includes a non-empty `timeframeLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
timeframeLimit (simple string) : Optional. A valid timeframe string. If specified and not empty, the function limits the collected data to the maximum number of bars covered by the timeframe, with a minimum of one bar. If the call includes a non-na `timeOffsetLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
Returns: ( ) A tuple of the following data:
- An array containing a `source` value for each identified timestamp (array).
- An array containing an identified timestamp for each item in the `timestamps` array (array).
- The current bar's `source` value ("float").
- The symbol's description from `syminfo.description` ("string").
getDataAtTimeOffsets(timeOffsets, source, timeOffsetLimit, timeframeLimit)
Retrieves `source` and time information for each bar whose opening timestamp is the earliest one closest to one of the time offsets specified in the `timeOffsets` array. Each offset in the array represents the absolute number of milliseconds behind the current bar's opening time. Any call to this function cannot execute more than once per bar or realtime tick.
Parameters:
timeOffsets (array) : An array of "int" values representing the millisecond time offsets used in the search. The function retrieves `source` and time data for each element in this array. For example, the array ` ` specifies that the function returns data for the timestamps closest to one day and one week behind the current bar's opening time.
source (float) : (series float) The source series to analyze. The function stores each value in the series with an associated timestamp representing its corresponding bar's opening time.
timeOffsetLimit (simple int) : Optional. A time offset (range) in milliseconds. If specified, the function limits the collected data to the maximum number of bars covered by the range, with a minimum of one bar. If the call includes a non-empty `timeframeLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
timeframeLimit (simple string) : Optional. A valid timeframe string. If specified and not empty, the function limits the collected data to the maximum number of bars covered by the timeframe, with a minimum of one bar. If the call includes a non-na `timeOffsetLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
Returns: ( ) A tuple of the following data:
- An array containing a `source` value for each identified timestamp (array).
- An array containing an identified timestamp for each offset specified in the `timeOffsets` array (array).
- The current bar's `source` value ("float").
- The symbol's description from `syminfo.description` ("string").
getDataAtPeriodOffsets(periods, source, timeOffsetLimit, timeframeLimit)
Retrieves `source` and time information for each bar whose opening timestamp is the earliest one closest to a calculated offset behind the current bar's opening time. Each calculated offset represents the amount of time covered by a period specified in the `periods` array. Any call to this function cannot execute more than once per bar or realtime tick.
Parameters:
periods (array) : An array of period strings, which determines the time offsets used in the search. The function retrieves `source` and time data for each element in this array. For example, the array ` ` specifies that the function returns data for the timestamps closest to one day, week, and month behind the current bar's opening time. Each "string" in the array must contain a unit and an optional multiplier. Supported units are:
- "Y" for years.
- "M" for months.
- "W" for weeks.
- "D" for days.
- "YTD" (Year-to-date) for the span from the start of the current bar's year in the exchange time zone. An argument with this unit cannot contain a multiplier.
source (float) : (series float) The source series to analyze. The function stores each value in the series with an associated timestamp representing its corresponding bar's opening time.
timeOffsetLimit (simple int) : Optional. A time offset (range) in milliseconds. If specified, the function limits the collected data to the maximum number of bars covered by the range, with a minimum of one bar. If the call includes a non-empty `timeframeLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
timeframeLimit (simple string) : Optional. A valid timeframe string. If specified and not empty, the function limits the collected data to the maximum number of bars covered by the timeframe, with a minimum of one bar. If the call includes a non-na `timeOffsetLimit` value, the function limits the data using the largest number of bars covered by the two ranges. The default is `na`.
Returns: ( ) A tuple of the following data:
- An array containing a `source` value for each identified timestamp (array).
- An array containing an identified timestamp for each period specified in the `periods` array (array).
- The current bar's `source` value ("float").
- The symbol's description from `syminfo.description` ("string").
Auto Levels Test RHAuto Levels Test RH is an indicator that automatically draws support and resistance levels based on local extremes and the ZigZag pattern. It helps traders identify key levels for entering and exiting trades. The indicator analyzes the last 100 bars and determines significant price zones.
Monthly Buy IndicatorIt shows us the the total balance when buying monthly, ploting the total invested amount and total current balance along the time.
Opening the Data Window, it displays the profit (%) and the number of trades.
The "Allow Fractional Purchase" flag can be used to check the the performance of the ticker, disregarding how much the monthly amount is set vs the price of the ticker.
The trades are considering buying the available amount on the 1st candle of each month, at the Open price. The "Total Balance" considers the close price of each candle.
Trend Trading IndicatorTrend Trading Indicator – Pine Script v5
Overview
The Trend Trading Indicator is designed to help traders identify market trends quickly and effectively. It highlights uptrends and downtrends using Exponential Moving Averages (EMAs) and provides clear buy and sell signals. The indicator is especially useful for detecting insider movements, marketing-driven price pumps, and potential death spirals in crypto and stock markets.
Key Features
✅ Fast-acting trend detection based on EMAs
✅ Clear buy & sell signals marked in blue (BUY) and red (SELL)
✅ Trend zones visually highlighted:
Green for bullish trends (uptrend)
Red for bearish trends (downtrend)
✅ Bold and visible labels for buy and sell signals
✅ Protects against insider selling & marketing hype cycles
✅ Alerts for crossover events
How It Works
Exponential Moving Averages (EMAs)
Short EMA (default: 50-period) represents fast market movement.
Long EMA (default: 100-period) represents slower trends.
When short EMA crosses above long EMA, it signals a buy opportunity.
When short EMA crosses below long EMA, it signals a sell opportunity.
Trend Zones
The area between the two EMAs is color-filled for better trend visualization.
Green Fill: Indicates a bullish trend where short EMA is above long EMA.
Red Fill: Indicates a bearish trend where short EMA is below long EMA.
Buy & Sell Labels
Buy Signal: Blue label “BUY” appears below the candle.
Sell Signal: Red label “SELL” appears above the candle.
Text is in black & bold for better visibility.
Alerts
Custom alerts notify traders when buy or sell conditions occur.
How to Use
Works best in crypto, forex, and stock markets.
Can be used in trend-following or breakout strategies.
Best suited for medium to long-term trades (adjust EMA settings for scalping).
This Trend Trading Indicator helps traders stay ahead of the market by visually identifying strong trends while reducing risks from insider manipulation and death spirals. 🚀
EMA Scoring Strategy## **📊 EMA Scoring Strategy for Trend Analysis**
This strategy is designed to **identify bullish trends** based on multiple **Exponential Moving Averages (EMAs)**. It assigns a **score** based on how the price and EMAs interact, and highlights strong bullish conditions when the score reaches **4 or above**.
---
## **🔹 Strategy Logic**
### 1️⃣ **Calculating EMAs**
- **EMA 21** → Short-term trend
- **EMA 50** → Mid-term trend
- **EMA 100** → Long-term trend
---
### 2️⃣ **Scoring System**
For each trading day, the strategy assigns **+1 or -1 points** based on the following conditions:
| Condition | Score |
|-----------|-------|
| If **Price > EMA 21** | +1 |
| If **Price > EMA 50** | +1 |
| If **Price > EMA 100** | +1 |
| If **EMA 21 > EMA 50** | +1 |
| If **EMA 50 > EMA 100** | +1 |
| If **EMA 21 > EMA 100** | +1 |
| If **Price < EMA 21** | -1 |
| If **Price < EMA 50** | -1 |
| If **Price < EMA 100** | -1 |
| If **EMA 21 < EMA 50** | -1 |
| If **EMA 50 < EMA 100** | -1 |
| If **EMA 21 < EMA 100** | -1 |
---
### 3️⃣ **Bullish Confirmation** (Score ≥ 4)
- The **score is calculated every day**.
- When the **score reaches 4 or above**, it confirms a strong **bullish trend**.
- A **green background** is applied to highlight such days.
- A **histogram** is plotted **only when the score is 4 or higher** to keep the chart clean.
- A **buy signal** is generated when the score **crosses above 4**.
---
## **🔹 Visualization & Alerts**
### ✅ **What You See on the Chart**
1. **EMA Lines (21, 50, 100)** 📈
2. **Green Background for Strong Bullish Days (Score ≥ 4)** ✅
3. **Histogram Showing Score (Only for 4 and above)** 📊
4. **Buy Signal When Score Crosses Above 4** 💰
### 🔔 **Alerts**
- **An alert is triggered** when the score crosses **above 4**, notifying the user about a bullish trend.
---
## **📌 How to Use This Strategy**
1. **Identify Strong Bullish Trends:** When the score is **4 or above**, it suggests that price momentum is strong.
2. **Enter Trades on Buy Signals:** When the score **crosses above 4**, it could be a good time to buy.
3. **Stay in the Trade While Score is 4+:** The green background confirms a **strong uptrend**.
4. **Exit When Score Drops Below 4:** This suggests weakening momentum.
---
## **🔹 Advantages of This Strategy**
✅ **Simple & Objective** - Uses clear rules for trend confirmation
✅ **Filters Out Noise** - Only highlights strong bullish conditions
✅ **Works on Any Market** - Can be applied to stocks, indices, crypto, etc.
✅ **Customizable** - You can tweak EMAs or score conditions as needed
---
## **🚀 Next Steps**
Would you like me to add **stop-loss conditions**, **sell signals**, or any **extra confirmations like RSI or volume**? 😃
Multi Asset & TF Stochastic
Multi Asset & TF Stochastic
This indicator allows you to compare the stochastic oscillator values of two different assets across multiple timeframes in a single pane. It’s designed for traders who want to analyse the momentum of one asset (by default, the chart’s asset) alongside a second asset of your choice (e.g., comparing EURUSD to the USD Index).
How It Works:
Main Asset:
The indicator automatically uses the chart’s asset for the primary stochastic calculation. You have the option to adjust the timeframe for this asset using a dropdown that includes TradingView’s standard timeframes, a "Chart" option (which automatically uses your chart’s timeframe), or a "Custom" option where you can type in any timeframe.
Second Asset:
You can enable the display of a second asset by toggling the “Display Second Asset” option. Choose the asset symbol (default is “DXY”) and select its timeframe from an identical dropdown. When enabled, the script calculates the stochastic oscillator for the second asset, allowing you to compare its momentum (%K and %D lines) with that of the main asset.
Stochastic Oscillator Settings:
Customize the %K length, the smoothing period for %K, and the smoothing period for %D. Both assets’ stochastic values are calculated using these parameters.
Visual Display:
The indicator plots the %K and %D lines for the main asset in prominent colours. If the second asset is enabled, its %K and %D lines are also plotted in different colours. Additionally, overbought (80) and oversold (20) levels are marked, with a midline at 50, making it easier to gauge market conditions at a glance.
%D line can be toggled off for a cleaner view if required:
Asset Information Table:
A table at the top-centre of the pane displays the active asset symbols—ensuring you always know which assets are being analysed.
How to Use:
Apply the Indicator:
Add the script to your chart. By default, it will use the chart’s current asset and timeframe for the primary stochastic oscillator.
Adjust the Main Asset Settings:
Use the “Main Asset Timeframe” dropdown to select a specific timeframe for the main asset or stick with the “Chart” option for automatic syncing with your current chart.
Enable and Configure the Second Asset (Optional):
Toggle on “Display Second Asset” if you wish to compare another asset. Select the desired symbol and adjust its timeframe using the provided dropdown. Choose “Custom” if you need a timeframe not listed by default.
Review the Plots and Table:
Observe the stochastic %K and %D lines for each asset. The overbought/oversold levels help indicate potential market turning points. Check the table at the top-centre to confirm the asset symbols being displayed.
This versatile tool is ideal for traders who rely on momentum analysis and need to quickly compare the stochastic signals of different markets or instruments. Enjoy seamless multi-asset analysis with complete control over your timeframe settings!
RV- Intrinsic Value AnalyzerWhy These Metrics Matter in IVA Pro (Intrinsic Value Analyzer)?
The IVA Pro consolidates key valuation, profitability, and efficiency metrics into a single, easy-to-read table. These indicators provide a comprehensive view of a company’s financial health, helping traders and investors make informed decisions based on growth potential, profitability, and valuation. The color-coded signals (green for strong, orange for moderate, and red for weak values) simplify fundamental analysis and enable quick comparisons across different stocks.
Key Fundamental Parameters in IVA Pro
Market Capitalization (Market Cap): Measures a company's total market value, helping assess size, stability, and growth potential.
Earnings Yield (TTM): Indicates how much profit a company generates relative to its stock price—useful for comparing against bonds and other assets.
Return on Capital Employed (ROCE): Shows how efficiently a company generates profits using its capital—a key profitability metric.
Return on Equity (ROE): Evaluates how well a company uses shareholder funds to generate earnings.
Price-to-Earnings Ratio (PE): Helps determine whether a stock is overvalued or undervalued based on earnings.
Price-to-Book Ratio (PB): Assesses if a stock is trading above or below its net asset value—useful for asset-heavy industries.
Price-to-Sales Ratio (PS): Helps evaluate revenue potential, particularly for growth-stage companies.
PEG Ratio: Enhances PE ratio by factoring in earnings growth—ideal for identifying undervalued growth stocks.
Forward PE Ratio: Provides a future-looking valuation based on projected earnings.
Forward PS Ratio: Helps evaluate future revenue potential and overall stock valuation.
6-Hour Forecast (15m Steps) with Arrowed Lines & 95% CI -BesharaExplanation
Timeframe Conversion:
The helper function converts the chart’s timeframe (e.g., "15", "1H", etc.) into minutes so that the script can determine how many bars correspond to a 15‑minute interval.
Regression & Forecasting:
The script calculates a linear regression over the specified number of bars, approximates the slope, and computes the standard deviation of the residuals for error estimation. Then, for each forecast step (every 15 minutes for 6 hours), it extrapolates the forecast, calculates the 95% confidence interval, and draws red line segments connecting forecast points.
Visualization:
Arrows: At each forecast point, an arrow (▲ for upward, ▼ for downward, or → for unchanged) is drawn to indicate direction.
Confidence Intervals: Dotted orange lines display the 95% confidence interval at each forecast point.
Final Label: A label at the final forecast point shows the predicted price and its confidence interval.
Historical Regression: The blue line represents the historical regression line.
This script is provided for educational purposes only and does not guarantee predictive accuracy. Always use multiple tools and proper risk management in trading.