THE Bucknut test PARI (SPY)📌 THE Bucknut Test PARI – Market Momentum & Volatility Gauge
🔹 Description
THE Bucknut Test PARI Indicator is a momentum and volatility-based market gauge designed to provide clear, actionable insights on price movement. This indicator calculates a Price Action Relative Index (PARI) score to help traders evaluate risk and potential market reversals.
It utilizes exponential moving average (EMA)-based momentum, standard deviation volatility, and SPY correlation to generate a PARI score between 1-100. The score is then categorized into risk zones, helping traders identify when conditions are favorable for entries or caution is needed.
Ideal for intraday traders, options traders (including SPX 0DTE), and swing traders looking to gauge volatility-driven market shifts.
🔥 Features & Functionality
✅ Momentum Calculation via EMA Filtering – Ensures smooth, responsive signals.
✅ Volatility-Based Adjustments – Uses standard deviation-based volatility scaling.
✅ SPY Correlation Filtering – Helps align momentum signals with market sentiment.
✅ User-Defined Timeframe Settings – Adjusts dynamically based on selected time intervals.
✅ Customizable Risk Thresholds – Allows traders to define high-risk, neutral, and low-risk zones.
✅ Non-Repainting Algorithm – Ensures reliable, static signals without revision.
⚙️ Settings & Adjustments
Setting Default Value Description
Time Frame Mode "5m-15m" Choose between 1m-3m, 5m-15m, or 1H-Daily. Affects smoothing values.
Scaling Factor 10 Adjusts PARI score sensitivity. Higher values amplify movement.
Background Color Black Custom background for the indicator panel.
Background Transparency 85 Controls indicator panel opacity (0 = solid, 100 = invisible).
High-Risk Threshold 80 Above this level, market is in overbought/high-risk conditions.
Low-Risk Threshold 20 Below this level, market is oversold/low-risk for potential reversals.
Neutral Level 50 Middle ground where price action is balanced.
📈 How to Use THE Bucknut Test PARI
🔴 Above 80 (High-Risk Zone)
Market may be overheated, strong momentum may fade or reverse soon.
Caution with calls; potential put opportunities.
🟢 Below 20 (Low-Risk Zone)
Market is oversold, potential reversal or bounce incoming.
Consider long entries or avoiding shorts.
⚪ Between 20-80 (Neutral Zone)
Market is in equilibrium; follow primary trend direction.
No extreme risk, trend-following strategies preferred.
🔍 Example Use Cases
✔ Intraday Traders → Gauge market strength on short-term charts (1m-15m).
✔ SPX 0DTE Options Traders → Time high-confidence call/put setups.
✔ Swing Traders → Identify periods of excessive momentum or exhaustion.
Cari dalam skrip untuk "zone"
[GrandAlgo] Liquidity Pivot Cloud - LPCLiquidity Pivot Cloud (LPC) is a visualization tool that extends all pivot levels to the right, creating a structured liquidity map across the chart. Instead of treating pivot points as static levels, LPC transforms them into a dynamic cloud, highlighting key areas where price has historically reacted.
Key Features:
Extended Pivot Levels – Automatically stretches all pivot highs and lows, forming a continuous liquidity zone.
Clear Structure – Provides an organized view of price action, making it easy to identify reaction zones.
Dynamic Liquidity Map – Helps traders spot potential liquidity sweeps and areas of price absorption.
How to Use:
Identify Liquidity Zones – Areas with multiple overlapping pivots signal strong liquidity pools.
Look for Reactions – Price often consolidates, wicks, or reverses around extended pivot clouds.
Combine with Confluence – Use alongside Fair Value Gaps, Institutional Price Blocks, or Market Structure shifts for higher probability setups.
LPC aligns with smart money concepts by revealing key liquidity areas where stop hunts, liquidity grabs, and institutional activity are likely to occur. It helps traders see where price is likely to be drawn before a major move, making it a valuable tool for those trading liquidity-based strategies.
Machine Learning + IchimokuIchimoku Cloud + Machine Learning Levels is an advanced indicator that merges a classic trend tool with machine-learned supply & demand zones. Combining the two can help traders identify trends and key price zones with greater confidence when both signals align!
How it Works
The Ichimoku Cloud component identifies the trend direction and momentum at a glance – it shows support/resistance areas via its cloud (Kumo) and signals potential trend changes when the Tenkan-sen and Kijun-sen lines cross. Meanwhile, the Machine Learning module analyzes historical price data to project potential support and resistance levels (displayed as horizontal lines) that the algorithm deems significant. By combining these, the script offers a two-layer confirmation: Ichimoku outlines the broader trend and equilibrium, while the ML levels pinpoint specific price levels where the price may react. For example, if price is above the Ichimoku Cloud (uptrend) and also near an ML-predicted support, the confluence of these signals strengthens the case for a bounce.
How to Use
Apply the indicator to a chart like any other TradingView script. It works on multiple asset classes (see supported list below). Once added:
Ichimoku Lines
Tenkan-sen (Blue): Short-term average reflecting recent highs/lows.
Kijun-sen (Red): Medium-term baseline for support/resistance.
Senkou Span A (Green) & Senkou Span B (Orange) form the “Cloud” (Kumo). Price above the Cloud often signals a bullish environment; price below it can signal a bearish environment.
Chikou Span (Purple): Plots current closing price shifted back, helping gauge momentum vs. past price.
ML-Predicted Support/Resistance Lines (Green/Red Horizontal Lines)
Green Horizontal Lines – Potential support zones.
Red Horizontal Lines – Potential resistance zones.
These dynamically adjust based on the specific asset and are updated as new historical data becomes available.
Password (for Advanced Features)
In the indicator’s Settings, there is an input field labeled “Password.” The password corresponds to the ticker(s) listed below.
Stocks
TSLA, NVDA, AAPL, AMZN, PLTR, AMD, META, MSFT, MSTR, GOOG, GME, COIN, NFLX, BABA, UBER, HOOD, NKE
Cryptocurrencies
ETH, BTC, SOL, BNB, XRP, ADA, DOT, DOGE, LTC, JUP, LINK, INJ, FET, SAND, HBAR, TRX, SHIB, UNI
(If you attach the indicator to any unlisted ticker, you will only see the Ichimoku Cloud.)
Why It’s Unique
This script is a fresh take on market analysis – it’s original in fusing Ichimoku’s visual trend mapping with machine learning. The Ichimoku framework provides time-proven trend insight, and the ML levels add forward-looking context specific to each asset. By uniting them, the indicator aims to filter out false signals and highlight high-probability zones. No repainting occurs: Ichimoku values are based on closed data, and ML levels are computed from historical patterns (they do not retroactively change).
Ichimoku Cloud + Machine Learning Levels offers an informative blend of old and new analysis techniques. It clearly shows where price is relative to trend (via Ichimoku) and where it might react in the future (via ML levels). Use it to gain a richer view of the market’s behavior. I hope this indicator provides valuable insights for your trading decisions. Happy trading!
Dual Keltner ChannelsDual Keltner Channels (DKC) Indicator 📊
🔹 About This Indicator
This indicator is an enhanced version of the original Keltner Channel available in TradingView. The Keltner Channel was initially designed as a volatility-based envelope around a moving average, helping traders identify trends, breakouts, and potential reversal zones.
💡 Original Creator: The Keltner Channel concept is based on the work of Chester W. Keltner and was later implemented in various trading platforms, including TradingView’s built-in Keltner Channel indicator.
This script builds upon the TradingView version of the Keltner Channel, adding:
✅ Dual Keltner Bands (Inner & Outer) for better trend and volatility analysis.
✅ Customizable Moving Averages (EMA/SMA) for flexibility.
✅ Multiple Band Calculation Methods (ATR, True Range, Range) for improved accuracy.
✅ Shaded Zones Between the Bands for enhanced visual clarity.
⚡ Credit: This indicator is an enhancement of the original Keltner Channel Indicator in TradingView. All improvements and modifications are made to provide deeper market insights while maintaining the core principles of the original Keltner concept.
🔹 Overview
The Dual Keltner Channels (DKC) indicator overlays two Keltner Channels on the price chart, helping traders spot trends, breakouts, and reversals with greater precision.
Inner Keltner Band (Multiplier 1): Captures normal price movements.
Outer Keltner Band (Multiplier 2): Highlights extreme price movements and potential breakouts.
🔹 Features & Inputs
📌 Main Inputs:
Keltner Channel Length: Defines the lookback period for the moving average calculation.
Source Price: Selects the price type (close, open, high, low) to calculate the bands.
Exponential Moving Average (EMA) Option: Choose between Exponential (EMA) or Simple (SMA) as the basis for calculations.
Bands Style: Selects how the volatility is measured:
Average True Range (ATR) (default)
True Range (TR)
Range (High - Low)
ATR Length: Determines the length of ATR calculations.
Enable Multiplier 1 & 2: Toggle to display/hide inner (multiplier 1) and outer (multiplier 2) bands.
📌 Keltner Channels Calculation:
Moving Average (MA): Uses either EMA or SMA for the midline.
Volatility Band Calculation:
Upper Band 1 (Inner Band): MA + (Multiplier 1 × Volatility Measure)
Lower Band 1 (Inner Band): MA - (Multiplier 1 × Volatility Measure)
Upper Band 2 (Outer Band): MA + (Multiplier 2 × Volatility Measure)
Lower Band 2 (Outer Band): MA - (Multiplier 2 × Volatility Measure)
📌 Visuals & Plotting:
Inner Bands (Multiplier 1): Blue upper & lower lines.
Outer Bands (Multiplier 2): Darker blue upper & lower lines.
Basis Line: White moving average.
Shaded Areas:
Between Upper 1 & Upper 2 (Light Brown Area): Identifies the upper Keltner region.
Between Lower 1 & Lower 2 (Light Brown Area): Identifies the lower Keltner region.
🔹 How to Use the Dual Keltner Channels Indicator
✅ 1. Trend Identification
Price above the upper outer band (Multiplier 2): Strong uptrend – potential continuation.
Price below the lower outer band (Multiplier 2): Strong downtrend – potential continuation.
Price within the inner bands (Multiplier 1): Sideways market – possible consolidation.
✅ 2. Breakout Trading
Break above outer upper band: Indicates a bullish breakout – consider long trades.
Break below outer lower band: Indicates a bearish breakdown – consider short trades.
✅ 3. Overbought & Oversold Conditions
Price touching/exceeding outer bands (Multiplier 2): Potential reversal zones.
Reversal confirmation: Look for candlestick patterns (e.g., Doji, Engulfing) or divergence signals.
✅ 4. Pullback & Entry Zones
Price bouncing from inner bands (Multiplier 1): Good re-entry point in trend direction.
Inner band as support/resistance: Helps in setting stop-loss and profit targets.
🔹 Effective Trading Strategies Using DKC
📌 1. Trend Following Strategy (Using Moving Average & Bands)
✅ Look for price staying above/below the basis line (MA) within the outer bands.
✅ Use pullbacks to the inner bands as re-entry points for trend continuation.
✅ Confirm trend strength with momentum indicators like RSI, MACD.
📌 2. Breakout Trading Strategy
✅ Identify a tight consolidation phase within the inner Keltner bands.
✅ Wait for a strong breakout beyond the outer bands.
✅ Enter long/short trades based on breakout direction.
✅ Place stop-loss at the previous inner band to manage risk.
📌 3. Reversal Strategy (Mean Reversion)
✅ When price extends beyond the outer band (Multiplier 2), look for reversal signals (candlestick patterns, RSI divergence).
✅ Enter counter-trend trades with tight stop-loss beyond the band.
✅ Target the moving average (basis line) as take-profit.
🔹 Final Thoughts 💡
The Dual Keltner Channels (DKC) is a powerful upgrade to the standard Keltner Channel, providing:
✅ Greater clarity on trend strength
✅ More precise breakout & reversal signals
✅ Better visual insights for dynamic market conditions
📌 Best Used With: RSI, MACD, Volume Profile, Price Action Signals.
📌 Works on: Stocks, Forex, Crypto, Commodities, Indices.
Weighted SD Bands | QuantEdgeBIntroducing Weighted SD Bands by QuantEdgeB
Overview
The Weighted SD Bands is a valuation and mean-reversion analysis tool that dynamically adjusts to price movements, helping traders identify potential overbought and oversold conditions. Built on a Weighted Moving Average (WMA), this indicator plots Standard Deviation (SD) bands around price action, highlighting extremes and potential reversal zones.
_____
Key Features
✅ Adaptive Valuation Model – Uses weighted price action to determine key valuation zones.
✅ Mean Reversion Analysis – Identifies extended deviations from fair value to spot reversal opportunities.
✅ Multi-Tier SD Bands – Provides multiple deviation levels to assess varying degrees of price stretch.
✅ Dynamic Color Coding – Highlights areas of extreme overvaluation or undervaluation.
✅ Reversal Signals – Generates Buy/Sell signals when price crosses the outer bands.
_____
How It Works
- A Weighted Moving Average (WMA) serves as the baseline (fair value).
- Standard Deviation Bands expand dynamically based on historical volatility.
- Extreme levels (±2 SD) signal potential trend exhaustion/reversal.
- Buy signals appear when price crosses below the lower 2 SD band.
- Sell signals appear when price crosses above the upper 2 SD band.
_____
Visual Representation
🔹 Gradient-filled bands help visualize price stretching beyond typical fluctuations.
🔹 Triangular markers indicate potential reversal points at extreme SD levels.
🔹 Background highlights mark high-risk valuation zones.
_____
Settings & Customization
- Lookback Length (WMA): Adjust the moving average period to control sensitivity. (default: 20)
- Source : Select the base source for the calculation. (default: close)
- SD Length: Modify the standard deviation period to fine-tune band width. (default: 30)
- Color Mode: Choose from multiple visualization themes.
_____
Who Should Use It?
📌 Mean-Reversion Traders – Spot high-probability reversal zones.
📌 Valuation-Based Investors – Identify fair value and extended price levels.
📌 Trend-Following Traders – Use SD bands to manage risk and spot potential pullbacks.
_____
Conclusion
The Weighted SD Bands indicator is a powerful tool for valuation and mean-reversion trading, providing dynamic fair value zones, extreme-level signals, and customizable SD bands to refine market timing. Whether you're trading pullbacks, rebalancing positions, or spotting reversals, this model helps you stay ahead of market inefficiencies.
🔹 Disclaimer: This tool is for educational purposes only and is not financial advice. Always conduct your own research before making investing decisions
Hidden Order BlockThe Crystal Order Block Indicator is designed to help traders identify institutional order blocks with precision and reliability. By analyzing price action and volume behavior, this tool highlights high-probability zones where smart money has likely placed orders.
🔹 Key Features:
✅ Automated Order Block Detection – Identifies valid bullish & bearish order blocks based on price structure and volume dynamics.
✅ Unmitigated Order Block Filtering – Highlights fresh order blocks that haven’t been tapped, helping traders find high-probability trade setups.
✅ Smart Money Concepts (SMC) & ICT-Based Logic – Uses institutional trading principles to refine entry and exit points.
✅ Multi-Timeframe Compatibility – Works effectively on all timeframes, making it suitable for scalping, intraday, and swing trading.
✅ Customizable Alerts – Stay notified when a new order block forms, ensuring you never miss an opportunity.
✅ Risk Management Enhancement – Helps traders set precise stop-loss and take-profit levels based on institutional trading zones.
📌 How It Works:
The indicator scans price movements and detects areas where significant buying or selling pressure occurred, forming institutional order blocks. It then checks for mitigated vs. unmitigated order blocks, ensuring only the most relevant zones are displayed.
✔️ Bullish Order Blocks: Marked when a strong buying zone is detected, often acting as support.
✔️ Bearish Order Blocks: Identified in areas of strong selling pressure, often acting as resistance.
The indicator is optimized for Smart Money trading strategies, making it a valuable tool for traders who follow ICT, SMC, and VSA concepts.
🎯 How to Use It Effectively:
🔹 Entry Strategy: Wait for price to retest a fresh order block and confirm entry with additional confluences (e.g., volume spikes, price action signals).
🔹 Exit Strategy: Use order blocks as take-profit targets or stop-loss levels, improving risk-reward ratios.
🔹 Timeframe Recommendation: Best results on M30 and higher, but can be used on lower timeframes with additional confirmations.
🚀 What’s New in the Updated Version?
🔹 More Accurate Order Block Detection – Improved filtering for better precision.
🔹 Mitigation Tracking – Helps traders focus on fresh order blocks for higher success rates.
🔹 Better Visualization – Enhanced clarity for quick decision-making.
This indicator is a must-have for traders who want to trade like institutions and refine their trading strategy using smart money concepts.
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").
Killzone Highlights with Volume [odnac]
Description:
This indicator seamlessly integrates volume analysis with kill zone highlights across different market sessions.
The indicator dynamically displays trading volume and visually emphasizes key trading sessions in various time zones, including Asia, Europe, and New York (both AM and PM sessions).
Users have the flexibility to customize the colors of bullish and bearish volume bars, as well as the transparency and color of the kill zone highlights, allowing for tailored visual analysis of trading periods.
Features:
Bullish and Bearish Volume Colors:
Displays the volume of trades with user-defined colors for bullish (up) and bearish (down) candles.
Killzone Highlights:
Highlights the kill zones for Asia, Europe, New York AM, and New York PM sessions with user-defined colors and transparency.
Customization Options:
Allows users to adjust the colors, transparency, and time settings for each kill zone.
Weekend Handling:
Option to hide kill zone highlights during weekends.
Timeframe Limitation:
Users can set the maximum timeframe for which the kill zone highlights will be displayed.
Usage:
This indicator is designed for traders who want to gain insights into market activity during key trading sessions.
By combining volume data with visually distinct kill zone highlights, it helps traders make informed decisions based on the most active trading periods.
Ideal for intraday traders looking to leverage session-based strategies for more effective trading decisions.
Fibonacci Volume Profiles [AlgoAlpha]Unlock a deeper understanding of price action with the Fibonacci Volume Profiles indicator by AlgoAlpha! This powerful tool blends Fibonacci retracement levels with customizable volume profiles, helping traders identify high-probability areas of support, resistance, and accumulation. Designed for both continuous dynamic levels and custom time periods, this indicator is a must-have for traders seeking confluence in market structure analysis.
🔑 Key Features
📈 Dual Mode Selection : Choose between Continuous Fibonacci levels, which adapt dynamically to pivots, or a Custom Period mode, where you set your own start and end points.
📊 Integrated Volume Profile : Visualize volume distributions at key Fibonacci retracement levels, revealing areas of strong buying/selling interest.
🎨 Customizable Colors & Transparency : Adjust Fibonacci level colors, fill zones, and profile transparency for a visually clear experience.
🔍 Profile Resolution & Scaling : Control the number of price levels and width of the volume profile for detailed market insights.
🛠 Extendable Levels : Optionally extend Fibonacci levels to the right of the chart for better visualization of future price interaction.
📌 How to Use
Add the Indicator: Click on the star icon to add it to your favorites and apply it to your TradingView chart.
Analyze The Market: Observe how price interacts with Fibonacci levels alongside the volume profile to confirm support/resistance zones. Switch between custom range or continuous mode to align the tool with your trading style.
⚙️ How It Works
The indicator calculates pivot highs/lows dynamically (or uses user-defined time periods) to plot Fibonacci retracement levels. It then builds a volume profile by analyzing historical volume data, grouping it into price bins to highlight volume-heavy zones. The Point of Control (PoC) is identified as the level with the highest traded volume, acting as a key price magnet. The color-coded Fibonacci levels help traders spot retracement zones, while the volume profile confirms strength or weakness in those areas.
AllDay Session TimesIndicator: Custom Session Times
This indicator is designed to assist traders by visualizing specific trading session times on the TradingView platform. It highlights two important trading sessions: the Day Session and the Evening Session, providing a visual aid that helps traders navigate the markets with greater accuracy.
Day Session Time Range:
Starts: 10:55 UTC+2
Ends: 13:30 UTC+2
Evening Session Time Range:
Starts: 16:55 UTC+2
Ends: 18:30 UTC+2
How It Works:
Colors and Backgrounds: This indicator uses background colors to differentiate the sessions. The green background appears during the Day Session, while the blue background indicates the Evening Session.
Lines: Session time ranges are also marked with clear lines on the chart, making it easier to identify the specific session periods.
Time Zone: The time zone is set to UTC+2 (Europe/Helsinki), but it can easily be adjusted to match your local time zone.
Why Use This Indicator?
This indicator is especially useful for traders who focus on specific market sessions. For example:
The Day Session might be when the market is more active, and trends are clearer.
The Evening Session could be a good time to observe market adjustments based on the events of the day and find potential trading opportunities.
By visualizing these specific time frames, the indicator helps reduce distractions and enables a more focused approach to trading.
Use Cases:
This indicator is ideal for:
Day traders and swing traders who want to focus on certain market sessions.
Technical analysts who prefer to visualize market behavior within specific time frames.
Strategy optimization and a more precise assessment of market conditions.
Features:
Visual session markers that help traders focus on key trading periods.
Easy customization of time zone and session time ranges.
Background colors and lines that improve chart readability and session tracking.
Made By AllDayEsa
Donchian Cloud-V1The Donchian Cloud-V1 is a technical analysis indicator inspired by the Ichimoku Cloud, but with a twist. It utilizes two Donchian Channel midline calculations to create a cloud-like price zone. This indicator aims to help traders identify potential areas of support and resistance, and also suggests that trades should be avoided when prices are within the cloud.
How it Works?
The Donchian Cloud-V1 calculates two Donchian Channel midlines:
Fast Donchian Channel: This midline is based on a shorter period, making it more responsive to price changes.
Slow Donchian Channel: This midline is based on a longer period, providing a smoother and more stable cloud formation.
The upper and lower bands of the traditional Donchian Channels are discarded, and the midlines become the cloud's upper and lower boundaries.
Interpretation
Price Above the Cloud: A price move above the cloud can be interpreted as a bullish signal, suggesting potential upward momentum.
Price Below the Cloud: A price move below the cloud can be interpreted as a bearish signal, suggesting potential downward momentum.
Price Within the Cloud: The indicator advises against taking any trades when the price is within the cloud itself, as the market may be unclear or ranging.
Benefits of Using the Donchian Cloud-V1
Visually Appealing: The cloud can provide a clear and concise view of potential support and resistance zones.
Customizable: The lengths of the fast and slow Donchian Channels can be adjusted to suit your trading style and preferred timeframe.
Complements Other Indicators: The Donchian Cloud-V1 can be used in conjunction with other technical indicators to strengthen trade signals.
Limitations to Consider
Lagging Indicator: Like many technical indicators, the Donchian Cloud-V1 is based on past price data and may not always perfectly predict future price movements.
False Signals: The cloud can generate false signals, especially in volatile markets.
Not a Standalone Strategy: The Donchian Cloud-V1 should ideally be used alongside other trading strategies and risk management techniques.
The Donchian Cloud-V1 is a valuable tool for traders who want to identify potential support and resistance zones and avoid making trades during periods of market uncertainty. Remember, it's important to backtest and paper trade any indicator before using it with real capital.
Daily Close Levels with ATR and Custom OffsetsDescription:
This Pine Script visualizes daily close levels, calculates key price zones based on custom offsets and ATR (Average True Range), and is an essential tool for traders analyzing support and resistance zones.
Features
Close Value Line: Displays the daily close value as a line on the chart.
ATR Values: Shows the ATR value in both price and tick format.
Custom Offsets:
Calculates positive and negative price levels based on a user-defined tick offset.
Supports multipliers for extended zones (e.g., 2x offset).
Labels:
Displays the close value and ATR on the chart.
Annotates calculated price levels directly on the corresponding lines.
Time Control: Calculates levels at a user-defined hour (e.g., 20:00).
Customizable Parameters:
Close Time (Hour): Choose the specific hour for analyzing the close price.
Custom Line Offset: Define the price offset in ticks.
ATR Length: Adjust the ATR calculation length.
Timezone Offset: Supports time adjustments for different time zones.
Enable/Disable Labels and Values: Toggle the display of labels and values on the chart.
Comprehensive Trading Toolkit [BigBeluga]Trading Toolkit is a comprehensive indicator inspired by the trading strategies of the renowned crypto influencer Michaël van de Poppe . This tool combines RSI divergences, correction zones, and advanced support/resistance levels to provide traders with a robust framework for analyzing market movements.
🔵 Key Features:
RSI Divergences on Chart:
Automatically identifies and plots RSI divergences (bullish and bearish) directly on the main price chart.
Green lines indicate bullish divergences, suggesting potential upward reversals.
Red lines indicate bearish divergences, signaling possible downward movements.
Correction Boxes:
Traders typically define a correction as a drop in value of 10% or more. This drop can happen over a few hours or a few days. Also, it can last for less than 24 hours or many months.
This indicator visualizes corrections with blue shaded boxes, triggered by a percentage decline defined in the settings.
The boxes highlight sharp price drops, helping traders identify significant market movements quickly.
Advanced Support and Resistance Levels:
Dynamically detects key support and resistance levels based on price pivots.
When the price is above a level, it plots a green shaded area from the cross point, marking support.
When the price drops below a level, it plots a red shaded area, highlighting resistance.
Dashed lines indicate weaker levels, while solid lines represent stronger, more reliable levels.
🔵 Usage:
Identify Divergences: Use plotted RSI divergences to detect potential market reversals and align them with price action.
Analyze Correction Zones: Utilize correction boxes to evaluate significant price declines and find potential buying opportunities during these corrections.
Leverage Support and Resistance Levels: Confirm breakouts, reversals, or consolidation zones with the color-coded areas.
Enhance Risk Management: Combine divergences and correction zones to set informed stop-loss or take-profit levels.
Trading Toolkit empowers traders with actionable insights into market trends, corrections, and support/resistance dynamics, making it an invaluable tool for crypto and forex markets.
HPDR Bands IndicatorThe HPDR Bands indicator is a customizable tool designed to help traders visualize dynamic price action zones. By combining historical price ranges with adaptive bands, this script provides clear insights into potential support, resistance, and midline levels. The indicator is well-suited for all trading styles, including trend-following and range-bound strategies.
Features:
Dynamic Price Bands: Calculates price zones based on historical highs and lows, blending long-term and short-term price data for responsive adaptation to current market conditions.
Probability Enhancements: Includes a probability plot derived from the relative position of the closing price within the range, adjusted for volatility to highlight potential price movement scenarios.
Fibonacci-Like Levels: Highlights key levels (100%, 95%, 88%, 78%, 61%, 50%, and 38%) for intuitive visualization of price zones, aiding in identifying high-probability trading opportunities.
Midline Visualization: Displays a midline that serves as a reference for price mean reversion or breakout analysis.
How to Use:
Trending Markets: Use the adaptive upper and lower bands to gauge potential breakout or retracement zones.
Range-Bound Markets: Identify support and resistance levels within the defined price range.
Volatility Analysis: Observe the probability plot and its sensitivity to volatility for informed decision-making.
Important Notes:
This script is not intended as investment advice. It is a tool to assist with market analysis and should be used alongside proper risk management and other trading tools.
The script is provided as-is and without warranty. Users are encouraged to backtest and validate its suitability for their specific trading needs.
Happy Trading!
If you find this script helpful, consider sharing your feedback or suggestions for improvement. Collaboration strengthens the TradingView community, and your input is always appreciated!
Fibonacci Extensions and Retracements for Selected TimeframesPurpose of the Script
This script plots Fibonacci levels (retracements and extensions) based on the high and low points of the previous day, previous week, or previous month. It is a trading aid to help identify potential support and resistance zones. These zones are often used by traders to determine entry or exit points for trades.
How It Works
Select Timeframe
The trader can choose whether to calculate Fibonacci levels based on the high and low points of the previous day, previous week, or previous month.
This is selected using the timeframe_input input.
Examples:
"D" for the previous day
"W" for the previous week
"M" for the previous month
Calculate Price Range
The script calculates the price range using the high and low of the selected timeframe:
Formula: price_range = High - Low
Draw Fibonacci Levels
Retracements: Within the price range, Fibonacci levels such as 12%, 23%, 38%, 50%, 61%, 78%, and 88% are calculated. These help identify potential support or resistance zones.
Extensions: Beyond the price range, Fibonacci extensions such as 127%, 161%, 200%, 224%, and 241% are plotted to indicate potential breakout targets.
Visualization
The script plots lines and labels for each level.
These lines extend to the right, providing real-time guidance during trading.
Colors and line styles can be customized to match personal preferences.
How to Use as a Trading Aid
Use Fibonacci Retracements:
Use retracements (e.g., 38%, 50%, 61%) to identify potential support or resistance zones.
Example: If the price dropped sharply the previous day, the retracement levels could act as support during a rebound.
Use Fibonacci Extensions:
Extensions help identify price targets when the price breaks above or below the high or low of the previous day, week, or month.
Example: After a breakout above the previous week’s high, the 127% or 161% level could serve as a target.
Adjust Timeframe:
Choose the timeframe that suits your strategy:
Intraday traders can use the previous day’s high and low.
Swing traders might prefer the previous week.
Long-term traders could work with the previous month.
Example
A trader selects the weekly timeframe (W) to analyze the high and low of the previous week:
The script calculates the price range based on the high and low of the previous week.
Fibonacci retracements (e.g., 50% and 61%) are drawn to identify potential support zones.
Fibonacci extensions (e.g., 127% and 161%) help define price targets for a potential breakout above or below the range.
Real-Time HTF Volume Footprint [BigBeluga]Real-time HTF Volume Footprint Profile is designed to provide a comprehensive view of higher timeframe volume profiles on your current chart. It overlays critical volume information from larger timeframes (like daily, weekly, or monthly) onto lower timeframe charts, helping you spot significant levels where volume is concentrated, acting as potential support or resistance.
🔵 Key Features:
HTF High and Low Zones: The indicator highlights the high and low of the chosen higher timeframe with clear zones, marking them with boxes. These zones help you see the broader market structure at a glance.
Volume Profile within HTF Range: Each higher timeframe range displays a volume profile, showing the distribution of volume at each price level. The most-traded price is highlighted in blue, known as the Point of Control (POC), indicating the price level with the highest activity.
Dynamic POC Option: Activate Dynamic POC to observe how the Point of Control shifts over time, giving insight into changing market interests and potential price direction.
Timeframe Flexibility: Select from daily, weekly, and monthly ranges (and more) to overlay their footprint profiles on your lower timeframe chart. This helps you tailor the indicator to the trading horizon that suits your strategy.
Info Table: Table shows a traders which timeframe is selected with last high and low of the selected timeframe
Visual Clarity with Custom Colors: The indicator uses subtle fills and distinct colors to ensure volume profile data integrates seamlessly into your chart without overwhelming other indicators or price data.
🔵 When to Use:
The HTF Volume Footprint Profile is essential for traders who want to bridge the gap between high-timeframe and intraday analysis. By visualizing HTF volume distribution on lower timeframes, this tool helps you:
Spot potential liquidity zones where price might react.
Identify support and resistance levels within HTF ranges.
Monitor PoC shifts that indicate changes in market behavior.
Track how current price aligns with significant volume clusters, providing a clear edge for volume-based strategies.
This indicator empowers traders to analyze lower timeframes with the context of higher timeframe volume profiles, providing a solid basis for identifying critical support and resistance levels shaped by large volume clusters. Whether you’re looking to spot liquidity zones or align your trades with broader market trends, HTF Volume Footprint Profile equips you with a strategic view.
Order BlockOverview:
The Order Block Indicator is designed to help traders identify key bullish and bearish order blocks on their charts. Order blocks are significant price zones where institutional activity may have occurred, often leading to strong reversals or continuations. This indicator visually highlights these blocks and provides alerts for potential trade opportunities.
Key Features
Bullish Order Blocks (Yellow):
Identifies bullish structures where price signals a potential upward movement.
Highlighted in bright yellow to stand out on your chart.
Bearish Order Blocks (Pink):
Detects bearish structures where price suggests a possible downward movement.
Highlighted in pink for easy identification.
Alerts for Order Blocks:
Sends a notification whenever a bullish or bearish order block is detected.
Keeps you informed of key market zones even when you’re away from the screen.
How It Works
Bullish Order Block Criteria
The last candle (close ) is bullish (close > open).
The second last candle (close ) is bearish (close < open).
The bullish candle’s close is above the high of the bearish candle.
The bearish candle’s close is above the low of the third last candle.
The bearish candle’s low is below the low of the third last candle.
The current candle’s low is above the bearish candle’s high.
These conditions combine to identify strong bullish zones.
Bearish Order Block Criteria
The last candle (close ) is bearish (close < open).
The second last candle (close ) is bullish (close > open).
The bearish candle’s close is below the low of the bullish candle.
The third last candle’s high is above the bullish candle’s close.
The bullish candle’s high is above the high of the third last candle.
The current candle’s high is below the bullish candle’s low.
This logic highlights potential bearish zones.
How to Use It
Add the Indicator to Your Chart:
Use it on any timeframe to spot bullish or bearish order blocks.
Visual Assistance:
Yellow bars indicate bullish order blocks.
Pink bars represent bearish order blocks.
Set Alerts:
Configure alerts to notify you when a bullish or bearish order block appears.
Customization
Colors: Easily change the colors for bullish and bearish order blocks.
Alerts: Adjust alert messages to suit your trading preferences.
Disclaimer:
This indicator is a technical analysis tool and should be used alongside other strategies and market analysis. It does not guarantee profits and carries trading risks. Always trade responsibly.
GP - SRSI ChannelGP - SRSI Channel Indicator
The GP - SRSI Channel is a channel indicator derived from the Stochastic RSI (SRSI) oscillator. It combines SRSI data from multiple timeframes to analyze minimum, maximum, and closing values, forming a channel based on these calculations. The goal is to identify overbought and oversold zones with color coding and highlight potential trading opportunities by indicating trend reversal points.
How It Works
SRSI Calculation: The indicator calculates the Stochastic RSI values using open, high, low, and close prices from the selected timeframes.
Channel Creation: Minimum and maximum values derived from these calculations are combined across multiple timeframes. The midpoint is calculated as the average of these values.
Color Coding: Zones within the channel are color-coded with a gradient from red to green based on the ratios. Green zones typically indicate selling opportunities, while red zones suggest buying opportunities.
Visual Elements:
The channel boundaries (min/max) are displayed as lines.
Overbought/oversold regions (95-100 and 0-5) are highlighted with shaded areas.
Additional explanatory labels are placed on key levels to guide users.
How to Use
Trading Strategy: This indicator can be used for both trend following and identifying reversal points. Selling opportunities can be evaluated when the channel reaches the upper green zone, while buying opportunities can be considered in the lower red zone.
Timeframe Selection: Users can analyze multiple timeframes simultaneously to gain a broader perspective.
Customization: RSI and Stochastic RSI parameters are adjustable, allowing users to tailor the indicator to their trading strategies.
Important Note
This indicator is for informational purposes only and should not be used as a sole basis for trading decisions. Please validate the results of the indicator with your own analysis.
Moving Average Simple Tool [OmegaTools]This TradingView script is a versatile Moving Average Tool that offers users multiple moving average types and a customizable overbought and oversold (OB/OS) sensitivity feature. It is designed to assist in identifying potential price trends, reversals, and momentum by using different average calculations and providing visual indicators for deviation levels. Below is a detailed breakdown of the settings, functionality, and visual elements within the Moving Average Simple Tool.
Indicator Overview
Indicator Name: Moving Average Simple Tool
Short Title: MA Tool
Purpose: Provides a choice of six moving average types with configurable sensitivity, which helps traders identify trend direction, potential reversal zones, and overbought or oversold conditions.
Input Parameters
Source (src): This option allows the user to select the data source for the moving average calculation. By default, it is set to close, but users can choose other options like open, high, low, or any custom price data.
Length (lnt): Defines the period length for the moving average. By default, it is set to 21 periods, allowing users to adjust the moving average sensitivity to either shorter or longer periods.
Average Type (mode): This input defines the moving average calculation type. Six types of averages are available:
SMA (Simple Moving Average)
EMA (Exponential Moving Average)
WMA (Weighted Moving Average)
VWMA (Volume-Weighted Moving Average)
RMA (Rolling Moving Average)
Middle Line: Calculates the average between the highest and lowest price over the period specified in Length. This is useful for a mid-range line rather than a traditional moving average.
Sensitivity (sens): This parameter controls the sensitivity of the overbought and oversold levels. The sensitivity value can range from 1 to 40, where a lower value represents a higher sensitivity and a higher value allows for smoother OB/OS zones.
Color Settings:
OS (Oversold Color, upc): The color applied to deviation areas that fall below the oversold threshold.
OB (Overbought Color, dnc): The color applied to deviation areas that exceed the overbought threshold.
Middle Line Color (midc): A gradient color that visually blends between overbought and oversold colors for smoother visual transitions.
Calculation Components
Moving Average Calculation (mu): Based on the chosen Average Type, this calculation derives the moving average or middle line value for the selected source and length.
Deviation (dev): The deviation of the source value from the moving average is calculated. This is useful to determine whether the current price is significantly above or below the average, signaling potential buying or selling opportunities.
Overbought (ob) and Oversold (os) Levels: These levels are calculated using a linear percentile interpolation based on the deviation, length, and sensitivity inputs. The higher the sensitivity, the narrower the overbought and oversold zones, allowing users to capture more frequent signals.
Visual Elements
Moving Average Line (mu): This line represents the moving average based on the selected calculation method and is plotted with a dynamic color based on deviation thresholds. When the deviation crosses into overbought or oversold zones, it shifts to the corresponding OB/OS colors, providing a visual indication of potential trend reversals.
Deviation Plot (dev): This plot visualizes the deviation values as a column plot, with colors matching the overbought, oversold, or neutral states. This helps users to quickly assess whether the price is trending or reverting back to its mean.
Overbought (ob) and Oversold (os) Levels: These levels are plotted as fixed lines, helping users identify when the deviation crosses into overbought or oversold zones.
Zero-Lag MA Trend Levels [ChartPrime] The Zero-Lag MA Trend Levels indicator combines a Zero-Lag Moving Average (ZLMA) with a standard Exponential Moving Average (EMA) to provide a dynamic view of the market trend. This indicator uses a color-changing cloud to represent shifts in trend momentum and plots key levels when trend reversals are detected. The addition of trend level boxes helps identify significant price zones where market shifts occur, with retest signals aiding in spotting potential continuation or reversal points.
⯁ KEY FEATURES & HOW TO USE
⯌ Zero-Lag Moving Average (ZLMA) with EMA Cloud :
The indicator employs a Zero-Lag Moving Average (ZLMA) alongside a standard EMA.
series float emaValue = ta.ema(close, length) // EMA of the closing price
series float correction = close + (close - emaValue) // Correction factor for zero-lag calculation
series float zlma = ta.ema(correction, length) // Zero-Lag Moving Average (ZLMA)
The cloud between these averages changes color depending on the trend direction. During a downtrend, if the ZLMA begins to increase, the cloud partially turns green, signaling potential strength. Conversely, during an uptrend, if the ZLMA decreases, the cloud partially turns to the downtrend color (blue by default), indicating potential weakness.
Use : Traders can monitor the cloud's color shifts for early signs of changing momentum. A fully colored cloud aligning with the current trend indicates a strong directional move, while mixed colors suggest a potential trend change.
⯌ Trend Shift and Level Boxes :
Each time a crossover between the EMA and the ZLMA occurs, indicating a trend shift, the indicator plots a box around the price level where the shift occurred. This box remains on the chart to mark the price zone of the trend change.
Use : The boxes provide clear visual markers of where market sentiment shifted. These levels can act as support and resistance zones. Traders can use these boxes to identify potential entry or exit points when the market retests these key levels.
⯌ Retest Detection with Labels :
If the price action crosses a previously plotted trend level box, the indicator marks this event with triangle labels. An upward triangle (▲) appears when the price retests the top of a box during a bullish crossover, and a downward triangle (▼) appears when the price retests the bottom of a box during a bearish crossunder.
Use : These labels help traders identify potential continuation or reversal points at critical price levels, offering additional confirmation for trading decisions.
⯌ Dynamic Color-Coding :
The color of the ZLMA and the EMA is adjusted according to their current trend direction, with the ZLMA adopting green for upward trends and blue for downward trends. This visual representation makes it easier to quickly gauge the market's momentum at a glance.
Use : Traders can use the color-coding to quickly assess the strength and direction of the current trend, allowing for more informed decision-making.
⯁ USER INPUTS
Length : Sets the period for both the ZLMA and EMA calculations.
Trend Levels : Toggle to display the trend level boxes on the chart.
Colors (+ / -) : Define the colors for bullish and bearish trends.
⯁ CONCLUSION
The Zero-Lag MA Trend Levels - ChartPrime indicator offers a nuanced approach to trend detection by combining the ZLMA with a traditional EMA. Its dynamic cloud color changes, trend level boxes, and retest labels make it a versatile tool for traders seeking to identify trend shifts and key price zones effectively. By incorporating elements of support and resistance along with trend momentum, this indicator provides a comprehensive view of market dynamics for both trend-following and counter-trend trading strategies.
Decline and Rise Detective [CHE]Decline and Rise Detective
TradingView Indicator (Best Timeframe: 1H or Higher)
1. Introduction
The "Decline and Rise Detective " is a TradingView indicator designed to identify the hours within a trading day that experience the largest price declines and rises. This indicator provides a visual representation of this data, offering traders valuable insights into the most frequent hours for significant price movements. It is most effective when used with a timeframe of 1 hour or greater.
2. Key Features of the Indicator
2.1. Display Options
Display Option: Users can choose between two display options:
Label: Displays the information as a text label directly on the chart.
Table: Displays the information in a table format in the top right corner of the chart.
2.2. Time Zone Settings
Time Zone: The indicator allows the user to manually set the time zone or use the exchange's time zone.
Time Zone Offset: Adjust the time zone via a UTC offset.
2.3. Day Change Detection
The indicator automatically detects the change between trading days to ensure data is correctly assigned.
3. Analysis of Price Declines and Rises
3.1. Calculation of Largest Declines and Rises
The indicator compares the high and low of each hour to determine the largest decline and rise within a trading day.
3.2. Frequency Counting
For each hour of the day, the number of times the largest declines and rises occur is counted to identify the hours with the most significant price movements.
3.3. Data Sorting
The hours are sorted by the number of occurrences of declines and rises to highlight the most frequent hours. This sorting was implemented using the MA Sorter function, inspired by Duyck's Array Sorter. Special thanks to Duyck for providing the Array Sorter on TradingView, which greatly influenced this feature
4. Interpretation and Trading Applications
4.1. Identifying High Volatility Periods
The hours identified by the indicator as having the most frequent and significant price movements are typically periods of high volatility. These periods are crucial for traders who seek to capitalize on market fluctuations.
4.2. Determining Optimal Trade Entries
Long Trades: The hours with the most significant price rises can be used to identify optimal times to enter long positions.
Short Trades: Conversely, the hours with the most significant price declines can indicate good opportunities for short trades.
4.3. Display of Top 5 Hours
The indicator shows the five hours with the most declines and rises.
Depending on the selected display option, this information is shown either as a text label or as a table in the chart.
4.4. Background Color
The background color of the chart changes at day change to clearly mark it.
5. Application of the Indicator
5.1. Trading Use
Traders can use the indicator to identify time windows with high volatility and adjust their trading strategies accordingly. This allows for more informed decisions on when to go long or short, depending on the market conditions during those hours.
5.2. Customization Options
Various input options allow the user to customize the indicator to fit personal needs and trading hours.
6. Summary
The "Decline and Rise Detective " indicator is a powerful tool for analyzing hourly price movements in the markets. By providing detailed information on the most frequent hours for significant price declines and rises, this indicator offers valuable insights into periods of high volatility. Traders can use this data to make more informed decisions on entering long or short trades. It is particularly effective when used with timeframes of 1 hour or greater.
Best regards and happy trading
Chervolino
Fair Value Gap & Gap Profile [BigBeluga]This indicator is designed to help traders identify and utilize fair value gaps on price charts and analyze volume at these points. These gaps, formed by significant price movements, can act as key support and resistance levels. The indicator enhances trading strategies by visually representing these gaps, making it easier for traders to spot potential entry and exit points.
⦿ What Is A Fair Value Gap?
Before diving into the practical use of the Fair Value Gap in trading, it's crucial to have a clear understanding of what it is and how to identify it on your charts. The Fair Value Gap, or FVG , is a widely utilized tool among price action traders to detect market inefficiencies or imbalances. Sometimes you will even see them labeled as inefficiencies by other traders. These imbalances arise when buying or selling pressure is significant, resulting in a large upward or downward move, leaving behind an imbalance in the market.
The idea behind FVGs is that the market will eventually come back to these inefficiencies in the market before continuing in the same direction as the initial impulsive move. FVGs are important since traders can achieve an edge in the market. Price action traders can also use these imbalances as entry or exit points in the market.
By visually representing gaps and their profile, the Fair Value Gap (FVG) & Gap Profile indicator provides a historical overview of gaps within a specified lookback period, showing the distribution and density of gaps across different price levels. This insight helps traders identify zones where the price tends to move more fluidly, often encountering less resistance. High points on the Gap Profile indicate areas where gaps have occurred frequently in the past, which could serve as potential breakout or breakdown zones.
⦿ Key Features:
● Gap Detection and Visualization:
- Identifies Bullish and Bearish Gaps: Highlights gaps where the price moved significantly up or down along with a volume. Intensivity of color show strength of FVG by volume
- Filter for Significant Gaps: Allows users to filter out insignificant gaps, ensuring only relevant gaps are displayed.
● Customizable Display Options:
- Shows Filled Gaps: Option to display gaps that have been filled, aiding in the analysis of historical price movements.
- Displays Filled Gap Levels: Highlights the levels of filled gaps.
● Gap Profile:
Gap Profile Insight: The Gap Profile feature shows the distribution of gaps over a specified lookback period. High points on the FVG Profile indicate areas with a significant number of gaps in the past. These high points are signs of low resistance for price movement. Consequently, at these points, the price tends to move more easily without encountering strong resistance. Traders can use this information to identify potential breakout or breakdown zones where price action is likely to be more fluid.
● Grab Liquidity Detection:
- Collect liquidity Signals: Plots markers on the chart where price interacts with gap levels, providing potential trade signals based on liquidity.
⦿ How Traders Can Use This Indicator:
- Plan Trades: Use gaps as potential entry and exit points, based on whether the price is approaching, filling, or moving away from a gap.
- Analyze Market Trends: Understand historical price movements by analyzing filled gaps and their impact on current price action.
- Analyze Gap Profile: Identify zones where the price tends to move more fluidly, often encountering less resistance. High points on the Gap Profile indicate areas where gaps have occurred frequently in the past, which could serve as potential breakout or breakdown zones.
- Price imbalance: market will eventually come back to these inefficiencies and fill them. inefficiencies or imbalances in the market usually act as a magnet for price.
By incorporating the Fair Value Gap & Gap Profile indicator into their trading strategy, traders can gain a clearer understanding of market dynamics and make more informed trading decisions.
Dynamic Support, Resistance & Fibo by RezaDynamic Support, Resistance & Fibonacci Levels by Reza
This Pine Script indicator dynamically calculates and plots significant support and resistance levels, along with key Fibonacci retracement levels, based on recent price action. It provides traders with essential tools to identify crucial levels on the chart that may influence future price movements.
Key Features:
Dynamic Support and Resistance Lines:
The script identifies recent swing highs and swing lows within a customizable lookback period to determine dynamic support and resistance levels.
These levels are plotted as horizontal lines (blue for support, red for resistance) and are updated in real-time to reflect changes in the price structure.
Labels next to each line display the exact price level of the support and resistance, making it easy to identify them at a glance.
Fibonacci Retracement Levels:
The script calculates and plots Fibonacci retracement levels (23.6%, 38.2%, 50.0%, 55.9%, 61.8%, 66.7%, and 78.6%) between the identified support and resistance levels.
These Fibonacci levels are plotted as dotted lines, with customizable colors and labels for clarity.
The Fibonacci levels provide traders with potential retracement and extension levels, which are commonly used to predict price reversals, pullbacks, and continuation zones.
Customization:
Users can adjust the lookback period for swing high and swing low calculations to suit different trading styles and market conditions.
The script allows traders to enable or disable Fibonacci levels and choose whether or not to remove the background color of the labels for cleaner chart visuals.
Line width, highlight colors, and label colors are fully customizable for better integration with various chart styles and themes.
Real-Time Dashboard:
The indicator includes a real-time dashboard that calculates and displays the next potential target based on current market conditions, including potential retracement or continuation targets.
The dashboard dynamically updates based on trend direction and Fibonacci zones, giving traders valuable insights into potential price objectives.
How to Use:
This indicator is suitable for multiple timeframes, helping traders identify key levels in real-time as the market evolves.
By providing support and resistance zones along with Fibonacci retracement levels, this script offers a powerful combination of technical analysis tools for both novice and experienced traders.
The dynamic calculations help traders spot potential areas for entering or exiting trades, placing stop-loss levels, and identifying profit-taking zones.
Ideal for:
Traders who want to use support and resistance levels for trade planning.
Fibonacci enthusiasts looking for automated level plotting.
Anyone seeking to identify key price levels in real-time across different timeframes.
Script Author:
Reza – Bringing you dynamic, real-time support, resistance, and Fibonacci level plotting for more effective trading decisions.