XAUUSD 1H – FVG Buy/Sell Signals XAUUSD 1H – Fair Value Gap (FVG) Buy/Sell Signals (No Boxes)
What it is:
A clean, signal-only indicator for Gold on the 1-hour chart. It detects 3-bar Fair Value Gaps, waits for a deep retest, then confirms with strong candle structure + trend + ADX before printing a BUY/SELL arrow. No rectangles or clutter—just selective, high-quality signals.
Why it works:
Instead of chasing breakouts, the script hunts for imbalances (FVGs) where price often returns to “fair value.” It only fires when:
price revisits the gap by a configurable depth,
the candle closes beyond the far edge with a small buffer,
the candle body is ≥ ATR × K (confirms intent),
the broader trend (EMA-50/EMA-200) agrees, and
ADX (Wilder, manual) shows sufficient strength.
Key features
✅ Signal-only: arrows/labels—no boxes on chart.
✅ Deep retest logic (percentage of zone), not just a touch.
✅ Strong close filter (edge + buffer) + ATR body filter.
✅ Trend filter (EMA-50 vs EMA-200) to keep trades with the regime.
✅ ADX strength to avoid chop.
✅ One signal per zone (optional “delete on use”).
✅ Alerts for both BUY and SELL.
✅ Built for Pine v6, non-repainting logic on bar close.
Inputs you can tune
Min FVG size (pts) – ignore tiny gaps.
Retest depth (%) – how deep price must come back into the gap.
Close buffer (pts) – extra confirmation beyond zone edge.
Min body ≥ ATR× – candle strength requirement.
Min ADX – trend strength threshold.
Expire after X bars – keep zones fresh.
Delete zone after signal – true = one-shot signals.
How I use it
Apply to XAUUSD 1H.
Keep default filters for selective signals.
For more setups, lower Min FVG size or ADX and reduce retest depth; for stricter signals, do the opposite.
Combine with S/R or session timing (London/NY) for added confluence.
Notes
Signals are generated on bar close.
Designed for clarity and discipline—fewer, cleaner arrows over constant noise.
Works on other symbols/timeframes, but tuned for Gold 1H.
Tags: #XAUUSD #Gold #FVG #SmartMoney #1H #TrendFollowing #ADX #ATR #PineV6 #TradingView
Cari dalam skrip untuk "gaps"
Rube Goldberg Top/Bottom Finder [theUltimator5]This is what I call the Rube Goldberg Top and Bottom Finder. It is an overly complex method of plotting a simple buy or sell label on a chart.
I utilize several standard TA techniques along with several of my own to try and locate ideal Buy/Sell conditions. I came up with the name because there are way too many conditional variables to come up with a single buy or sell condition, when most standard indicators use simple crossovers or levels.
There are two unique triggers that are calculated using completely independent techniques. If both triggers turn true within a small timeframe between each other, the buy/sell trigger turns true and plots a "buy" or "sell" label on the chart.
This indicator was designed to be fully functioning out of the box and can be customized only if the user wishes to. It is effective on all timeframes, but longer timeframes (daily +) may require signal length adjustment for best results.
imgur.com
The signals used in the leading trigger are as follows:
(1)RSI
The user can select among any of the following moving averages (base is EMA) (#3) , and have an RSI generated at a user defined length (base is 14). (#4)
SMA, EMA, DEMA, TEMA, WMA, VWMA, SMMA, HMA, LSMA, ALMA
The user can select whether or not the RSI is filtered with the following options:
None, Kalman, Double EMA, ALMA
The filter conditions are hard coded to minimize the amount of selections that the user is required to make to reduce the user interface complexity.
The user can define overbought (base 70) and oversold (base 30) conditions. (#2)
When the RSI crosses above or below the threshold values, the plot will turn red. This creates condition 1 of the leading trigger.
(2) ADX and DI
This portion of the indicator is a derivative of my ADX Divergence and Gap Monitor indicator.
This technique looks at the ADX value as well as for spikes in either +DI or -DI for large divergences. When the ADX reaches a certain threshold and also outpaces a preset ADX moving average, this creates condition 2 of the leading trigger.
There is an additional built-in functionality in this portion of the indicator that looks for gaps. It triggers when the ADX is below a certain threshold value and either the +DI or -DI spike above a certain threshold value, indicating a sudden gap in price after a period of low volatility.
The user can set whether or nor to show when a gap appears on the chart or as a label on the plot below the chart (disabled by default) . If the user chooses to overlay gaps on the chart, it creates a horizontal fill showing the starting point of the gap. The theory here is that the price will return at some point in the near future to the starting point of the gap.
imgur.com
(3) DI based Multi-Symbol reference and divergence
Part of the script computes both the +DI (positive directional index) and -DI (negative directional index) for the currently selected chart symbol and three reference symbols.
The averaged directional move of the reference symbols are compared to the current ticker on your chart and if the divergence exceeds a certain threshold, then the third condition of the trigger is met.
The components that are referenced are based on what stock/chart you are looking at. The script automatically detects if you are looking at a crypto, and uses a user selectable toggle between Large Cap or Small Cap. (#1) The threshold levels are determined by the asset type and market cap.
The leading trigger highlights under several conditions:
1) All (3) portions of the trigger result in true simultaneously
OR
2) Any of triggers 2 or 3 reach a certain threshold that indicates extreme market/price divergence as well as trigger 1 being overbought or oversold.
AND
3) If the trigger didn't highlight
For the lagging part of the trigger:
The lagging trigger is used as a confirmation after the leading trigger to indicate a possible optimized entry/exit point. It can also be used by itself, as well as the leading indicator.
The lagging indicator utilizes the parabolic Stop And Reverse (SAR). It utilizes the RSI length that is defined in portion 1 of the leading trigger as well as the overbought and oversold thresholds. I have found excellent results in catching reversals because it catches rate-of-change events rather than price reversals alone.
imgur.com
When both the leading triggers FOLLOWED BY the lagging trigger result in true within a user defined timeframe, then the buy or sell trigger results in true, plotting a label on the chart.
All portions of the leading and lagging indicators can be toggled on or off, but most of them are toggled off by default in order to reduce noise on the plot.
imgur.com
The leading, lagging, and buy/sell triggers each have built-in alerts that can be toggled on or off in the alert menu.
I have an optional built-in toggle to show green or red dots on the RSI line using two separate RSI lengths that are amplified and plot based on RSI divergence and strength. This can be used as a visual confirmation (or rejection) against the chart overlay plots.
imgur.com
This indicator is not a strategy, so there are no built-in exits or stop losses.
Intrabar BoxPlotThe Intrabar BoxPlot publication highlights an uncommon technique by displaying statistical intrabar Lower Timeframe (LTF) values on the chart.
🔶 USAGE
🔹 Middle 50% Boxes
By showing the middle 50% intrabar values through a box, we can more easily see where the intrabar activity is mainly situated.
The middle 50% intrabar values are referred to from here on as Interquartile range (IQR).
In this example, the successive IQRs form a channel where the price eventually breaks out.
Disproportionately distributed values can give insights which can be used to find potential support/resistance areas.
IQR gaps can give valuable information as well. Potentially, the price can return to these gaps.
Seeing the IQR areas against regular candles gives an alternative image of the underlying price movements.
🔹 Highest volume Price level
The script displays the price level with the highest volume situated, dependable on the user's source setting. Setting the source at 'close' will only display intrabar close values; the same goes for high, low, ...
As seen in the above example, the volume levels can aid in finding support/resistance.
🔹 Median
The location of the median off all intrabar values is displayed as a coloured dot: green when the close price is higher than the opening price and red if otherwise. The median can give valuable insights into price movements.
🔹 Outliers
Medium (white dots) and extreme (white X) outliers, in combination with the IQR box, can help identify potential areas of interest.
🔹 Volume Delta
When there is a discrepancy between the delta volume and direction of the candle, this will be displayed as follows:
Green candle: when the sum of the volume of red intrabars is higher than the sum of the volume of green intrabars, the candle will be coloured orange.
Red candle: when the sum of the volume of green intrabars is higher than the sum of the volume of red intrabars, the candle will be coloured blue.
🔹 Highlight Boxplot only
Probably the easiest way to display boxplot only is by changing the Bar's style to Bars .
🔶 DETAILS
All intrabar values (Lower TimeFrame - LTF) are sorted and evaluated. Values can be close , high , low , ... by selecting this in Settings ( source ).
The middle 50% of all values are displayed as a box; this contains the values between percentile 25 (p25) and percentile 75 (p75). The value of percentile rank 75 means 75% of all values are lower. The value of percentile rank 25 means 25% of all values are lower, or 75% is higher.
The difference between p75 and p25 is also known as Interquartile range (IQR)
IQR is used to check for outliers.
Wiki: Boxplot , Interquartile range
Extreme high: maximum value, higher than p75 + IQR*3
Max outlier high: maximum value, higher than p75 + IQR*1.5 but lower than p75 + IQR*3
Max: maximum value, lower than p75 + IQR*1.5
Min: minimum value, higher than p25 - IQR*1.5
Min outlier low: minimum value, lower than p25 - IQR*1.5 but higher than p25 - IQR*3
Extreme low: minimum value, lower than p25 - IQR*3
Max and min must not be interpreted with the current candle high/low.
🔹 Example: Length of chart-puppets
The following example can make it easier to digest. Forty "chart-puppets" are sorted by their length.
The p25 value is 97
The p50 value is 120
The p75 value is 149
75% of all "chart-puppets" are smaller than p75, and 25% is larger than p75.
50% of all "chart-puppets" are smaller than p50, and 50% is larger than p50 (= median).
25% of all "chart-puppets" are smaller than p25, and 75% is larger than p25.
IQR = 149 - 97 = 52
Extreme outlier limit max: p75 + IQR*3 = 149 + 52*3 = 305
Mild outlier limit max: p75 + IQR*1.5 = 149 + 52*1.5 = 227
Mild outlier limit min: p25 - IQR*1.5 = 97 - 52*1.5 = 19
Extreme outlier limit min: p25 - IQR*3 = 97 - 52*3 = -59
In this example there are no outliers to be found, all values are located between p25 - IQR*1.5 (19) and p75 + IQR*1.5. (227)
🔹 Source settings
Note that results are dependable on the chosen source (settings). When, for example, close is chosen as the source, only intrabar close prices are included. This means a low or high can stretch further then the min or max.
Here we can see different results with different source settings
🔹 LTF settings
When 'Auto' is enabled (Settings, LTF), the LTF will be the nearest possible x times smaller TF than the current TF. When 'Premium' is disabled, the minimum TF will always be 1 minute to ensure TradingView plans lower than Premium don't get an error.
Examples with current Daily TF (when Premium is enabled):
500 : 3 minute LTF
1500 (default): 1 minute LTF
5000: 30 seconds LTF (1 minute if Premium is disabled)
🔶 SETTINGS
Source: Set source at close, high, low,...
🔹 LTF
LTF: LTF setting
Auto + multiple: Adjusts the initial set LTF
Premium: Enable when your TradingView plan is Premium or higher
🔹 Intrabar Delta : Colors, dependable on different circumstances.
Up: Price goes up, with more bullish than bearish intrabar volume.
Up-: Price goes up, with more bearish than bullish intrabar volume.
Down: Price goes down, with more bearish than bullish intrabar volume.
Down+: Price goes down, with more bullish than bearish intrabar volume.
🔹 Table
Show table: Show details at the top right corner
Show TF: Show LTF at the bottom right corner
Text color/table size
See DETAILS for more information
HTF Candles Overlay [Trendoscope®]🎲 HTF Candles Overlay is a simple indicator where you can overlay higher timeframe candles on current timeframe chart.
Most of the code is encapsulated in the library HTFCandlesLib . After publishing the library as open source, many people requested to convert that into an indicator. Based on this, we decided to publish this small code for the use of community.
🎯 Usage
The indicator is simple, it helps users visualise higher timeframe candles. We majorly use this for debugging or validating our implementations based on higher timeframe. Instead of switching back and forth to different timeframes, it helps us visualise higher timeframe candles on the same chart when we are validating the implementation that involves higher timeframe calculations.
🎯 Components
The indicator provides two types of displays
Candles - overlay candles built through lines and labels
Plot - close price of higher timeframe plotted on chart
🎯 Candles
The behaviour of the candles are similar to that of hollow candles. The color of the body and the border+wick demonstrates the movement of the candle.
Body color is lime if the HTF close is higher than HTF open. Body color is orange if the HTF close is lower than the HTF open.
Wick and border color is lime if HTF close price is higher than previous HTF close price. And they are orange if HTF close price is lower than the previous HTF close price
In most cases body color will be same as the wick color. In case of stocks and indices, it may happen that the open price is too far away from previous close price due to gaps. This can lead to close price being relatively in different direction when compared to open and previous close.
Wicks are not at the centre of the candle. Instead wicks are drawn on the current chart timeframe position where the current timeframe has reached the highest or lowest point within the given HTF candle
Candles also list OHLC price of HTF candle along with HTF bar index and the range of LTF bar index that the candle spawns
Here are some pictorial representations that can help understand better.
Here are the examples of candles with gaps where body and wick/border are in different directions (colours)
🎯 Indicator Settings
Simple settings allow users to select the timeframe, whether to display candles and plots and their specific colors.
🎯 Possible inconsistencies
The overlay can show inconsistent data in certain situations. Here are some of the scenarios where the indicator may not show consistent display of the data.
When the HTF data from request.security does not match that of combined LTF data . In such cases, HTF candles may not form inline with the current timeframe candles. This happens when there is a data issue of different OHLC data available in tradingview.
When using weekly candle as either chart timeframe or higher timeframe - end of week may not coincide with end of month or other timeframes. This can cause some inconsistencies in the visuals of the indicator.
When open and close time of either LTF or HTF falls under different day due to time zone used. - time is always the time on which the candle close. So, when we use time zone that causes the exchange day to open and close on different days, that can cause some inconsistencies in the candles being drawn.
Implied Fair Value Gap (IFVG) ICT [TradingFinder] Hidden FVG OTE🔵 Introduction
The Implied Fair Value Gap (IFVG) is distinctive due to its unique three-candlestick formation, which differentiates it from conventional Fair Value Gaps.
Implied fair value represents an estimated worth of an asset—often a business or its goodwill—based on the price likely to be received in a structured transaction between market participants at a specific point in time.
In the ever-evolving world of technical analysis, pinpointing price reversal points and market anomalies can significantly enhance trading strategies and decision-making for traders and investors. Among the advanced concepts gaining traction in this field is the Implied Fair Value Gap (IFVG), introduced by the renowned analyst Inner Circle Trader (ICT).
This tool has proven to be an effective method for identifying hidden supply and demand zones in financial markets, offering a unique edge to traders looking for high-probability setups.
Unlike traditional gaps that are visible on price charts, IFVG is a hidden gap that doesn’t appear explicitly on the chart and thus requires specialized technical analysis tools for accurate identification.
This hidden gap can signal potential price reversals and offers traders insight into high-liquidity areas where price is likely to react. This article will guide you through using the ICT Implied Fair Value Gap Indicator effectively, covering its settings, usage strategies, and key features to help you make informed decisions in the market.
🟣 Bullish Implied FVG
🟣 Bearish Implied FVG
🔵 How to Use
The IFVG indicator is designed to assist traders in recognizing hidden support and resistance zones by identifying Bullish and Bearish IFVG patterns. With this tool, traders can make better-informed decisions about suitable entry and exit points for their trades based on these patterns.
🟣 Bullish Implied Fair Value Gap
This pattern occurs in an uptrend when a large bullish candlestick forms, with the wicks of the previous and following candles overlapping the body of the central candlestick.
This overlap creates a demand zone or a hidden support level, which can act as an ideal entry point for buy trades. Often, when the price returns to this area, it is likely to resume its upward trend, presenting a profitable buying opportunity.
🟣 Bearish Implied Fair Value Gap
This pattern is similar but forms in downtrends. Here, a large bearish candlestick appears on the chart, with the wicks of adjacent candles overlapping its body. This overlap defines a supply zone or a hidden resistance level and serves as a signal for potential sell trades.
When the price returns to this zone, it often continues its downward trend, providing an optimal point for entering sell trades.
The IFVG indicator also includes various filters that traders can use to refine their analysis based on market conditions. These filters, including Very Aggressive, Aggressive, Defensive, and Very Defensive, allow users to customize the IFVG zones' width, offering flexibility according to the trader’s risk tolerance and trading style.
🟣 Example Trading Scenarios
Suppose you’re in a strong uptrend and the IFVG indicator identifies a Bullish IFVG zone. In this scenario, you could consider entering a buy trade when the price retraces to this zone, expecting the uptrend to resume. Conversely, in a downtrend, a Bearish IFVG zone can signal a favorable entry point for short trades when the price revisits this area.
🔵 Settings
Implied Block Validity Period: This parameter specifies the validity period of each identified block, taking into account the number of bars that have passed since its formation. Proper adjustment of this period helps traders focus only on relevant zones, increasing the accuracy of the analysis.
Mitigation Level OB : This option defines the mitigation level for supply and demand blocks (Order Blocks), with settings including Proximal, 50% OB, and Distal.
Depending on the selected level, the indicator will focus on closer, mid-range, or farther points for block identification, allowing traders to adjust for the level of precision required.
Implied Filter : Activating this filter allows traders to apply conditions based on the width of the IFVG zones. With options like Very Aggressive and Very Defensive, traders can control the width of IFVG zones to suit their risk management strategy—whether they prefer high-risk setups or low-risk setups.
Display and Color Settings : This section enables users to customize the appearance of the IFVG zones on their charts. Traders can set different colors for Bullish and Bearish zones, allowing for easier distinction and improved visualization.
Alert Settings : One of the standout features of the IFVG indicator is the alert system. By setting up alerts, users can be notified whenever the price approaches a demand or supply zone.
Alerts can be customized to trigger Once Per Bar (one alert per bar) or Per Bar Close (alert at the close of each bar), ensuring that traders stay updated on critical price movements without needing to monitor the chart continuously.
🔵 Conclusion
The ICT Implied Fair Value Gap (IFVG) indicator is a powerful and sophisticated tool in technical analysis, allowing professional traders to identify hidden supply and demand zones and use them as entry and exit points for buy and sell trades.
This indicator’s automatic detection of IFVG zones helps traders uncover hidden trading opportunities that can enhance their analysis.
While the IFVG indicator offers numerous advantages, it is important to use it in conjunction with other technical analysis tools and sound risk management practices.
IFVG alone does not guarantee profitability in trading; it works best when combined with other indicators such as volume analysis and trend-following indicators for a comprehensive trading strategy.
BINANCE-BYBIT Cross Chart: Spot-Perpetual CorrelationName: "Binance-Bybit Cross Chart: Spot-Perpetual Correlation"
Category: Scalping, Trend Analysis
Timeframe: 1M, 5M, 30M, 1D (depending on the specific technique)
Technical analysis: This indicator facilitates a comparison between the price movements shown on the Binance spot chart and the Bybit perpetual chart, with the aim of discerning the correlation between the two charts and identifying the dominant market trends. It automatically generates the corresponding chart based on the ticker selected in the primary chart. When a Binance pair is selected in the main chart, the indicator replicates the Bybit perpetual chart for the same pair and timeframe, and vice versa, selecting the Bybit perpetual chart as the primary chart generates the Binance spot chart.
Suggested use: You can utilize this tool to conduct altcoin trading on Binance or Bybit, facilitating the comparison of price actions and real-time monitoring of trigger point sensitivity across both exchanges. We recommend prioritizing the Binance Spot chart in the main panel due to its typically longer historical data availability compared to Bybit.
The primary objective is to efficiently and automatically manage the following three aspects:
- Data history analysis for higher timeframes, leveraging the extensive historical data of the Binance spot market. Variations in indicators such as slow moving averages may arise due to differences in historical data between exchanges.
- Assessment of coin liquidity on both exchanges by observing candlestick consistency on smaller timeframes or the absence of gaps. In the crypto market, clean charts devoid of gaps indicate dominance and offer enhanced reliability.
- Identification of precise trigger point levels, including daily, previous day, or previous week highs and lows, which serve as sensitive areas for breakout or reversal operations.
All-Time High (ATH) and All-Time Low (ATL) levels may vary significantly across exchanges due to disparities in historical data series.
This tool empowers traders to make informed decisions by leveraging historical data, liquidity insights, and precise trigger point identification across Binance Spot and Bybit Perpetual market.
Configuration:
EMA length:
- EMA 1: Default 5, user configurable
- EMA 2: Default 10, user configurable
- EMA 3: Default 60, user configurable
- EMA 4: Default 223, user configurable
- Additional Average: Optional display of an additional average, such as a 20-period average.
Chart Elements:
- Session separator: Indicates the beginning of the current session (in blue)
- Background: Indicates an uptrend (60 > 223) with a green background and a downtrend (60 < 223) with a red background.
Instruments:
- EMA Daily: Shows daily averages on an intraday timeframe.
- EMA levels 1h - 30m: Shows the levels of the 1g-30m EMAs.
- EMA Levels Highest TF: Provides the option to select additional EMA levels from the major timeframes, customizable via the drop-down menu.
- "Hammer Detector: Marks hammers with a green triangle and inverted hammers with a red triangle on the chart
- "Azzeramento" signal on TF > 30m: Indicates a small candlestick on the EMA after a dump.
- "No Fomo" signal on TF < 30m: Indicates a hyperextended movement.
Trigger Points:
- Today's highs and lows: Shows the opening price of the day's candlestick, along with the day's highs and lows (high in purple, low in red, open in green).
- Yesterday's highs and lows: Displays the opening price of the daily candlestick, along with the previous day's highs and lows (high in yellow, low in red).
You can customize the colors in "Settings" > "Style".
It is best used with the Scalping The Bull indicator on the main panel.
Credits:
@tumiza999: for tests and suggestions.
Thanks for your attention, happy to support the TradingView community.
Market Structure & Liquidity: CHoCHs+Nested Pivots+FVGs+Sweeps//Purpose:
This indicator combines several tools to help traders track and interpret price action/market structure; It can be divided into 4 parts;
1. CHoCHs, 2. Nested Pivot highs & lows, 3. Grade sweeps, 4. FVGs.
This gives the trader a toolkit for determining market structure and shifts in market structure to help determine a bull or bear bias, whether it be short-term, med-term or long-term.
This indicator also helps traders in determining liquidity targets: wether they be voids/gaps (FVGS) or old highs/lows+ typical sweep distances.
Finally, the incorporation of HTF CHoCH levels printing on your LTF chart helps keep the bigger picture in mind and tells traders at a glance if they're above of below Custom HTF CHoCH up or CHoCH down (these HTF CHoCHs can be anything from Hourly up to Monthly).
//Nomenclature:
CHoCH = Change of Character
STH/STL = short-term high or low
MTH/MTL = medium-term high or low
LTH/LTL = long-term high or low
FVG = Fair value gap
CE = consequent encroachement (the midline of a FVG)
~~~ The Four components of this indicator ~~~
1. CHoCHs:
•Best demonstrated in the below charts. This was a method taught to me by @Icecold_crypto. Once a 3 bar fractal pivot gets broken, we count backwards the consecutive higher lows or lower highs, then identify the CHoCH as the opposite end of the candle which ended the consecutive backwards count. This CHoCH (UP or DOWN) then becomes a level to watch, if price passes through it in earnest a trader would consider shifting their bias as market structure is deemed to have shifted.
•HTF CHoCHs: Option to print Higher time frame chochs (default on) of user input HTF. This prints only the last UP choch and only the last DOWN choch from the input HTF. Solid line by default so as to distinguish from local/chart-time CHoCHs. Can be any Higher timeframe you like.
•Show on table: toggle on show table(above/below) option to show in table cells (top right): is price above the latest HTF UP choch, or is price below HTF DOWN choch (or is it sat between the two, in a state of 'uncertainty').
•Most recent CHoCHs which have not been met by price will extend 10 bars into the future.
• USER INPUTS: overall setting: SHOW CHOCHS | Set bars lookback number to limit historical Chochs. Set Live CHoCHs number to control the number of active recent chochs unmet by price. Toggle shrink chochs once hit to declutter chart and minimize old chochs to their origin bars. Set Multi-timeframe color override : to make Color choices auto-set to your preference color for each of 1m, 5m, 15m, H, 4H, D, W, M (where up and down are same color, but 'up' icon for up chochs and down icon for down chochs remain printing as normal)
2. Nested Pivot Highs & Lows; aka 'Pivot Highs & Lows (ST/MT/LT)'
•Based on a seperate, longer lookback/lookforward pivot calculation. Identifies Pivot highs and lows with a 'spikeyness' filter (filtering out weak/rounded/unimpressive Pivot highs/lows)
•by 'nested' I mean that the pivot highs are graded based on whether a pivot high sits between two lower pivot highs or vice versa.
--for example: STH = normal pivot. MTH is pivot high with a lower STH on either side. LTH is a pivot high with a lower MTH on either side. Same applies to pivot lows (STL/MTL/LTL)
•This is a useful way to measure the significance of a high or low. Both in terms of how much it might be typically swept by (see later) and what it would imply for HTF bias were we to break through it in earnest (more than just a sweep).
• USER INPUTS: overall setting: show pivot highs & lows | Bars lookback (historical pivots to show) | Pivots: lookback/lookforward length (determines the scale of your pivot highs/lows) | toggle on/off Apply 'Spikeyness' filter (filters out smooth/unimpressive pivot highs/lows). Set Spikeyness index (determines the strength of this filter if turned on) | Individually toggle on each of STH, MTH, LTH, STL, MTL, LTL along with their label text type , and size . Toggle on/off line for each of these Pivot highs/lows. | Set label spacer (atr multiples above / below) | set line style and line width
3. Grade Sweeps:
•These are directly related to the nested pivots described above. Most assets will have a typical sweep distance. I've added some of my expected sweeps for various assets in the indicator tooltips.
--i.e. Eur/Usd 10-20-30 pips is a typical 'grade' sweep. S&P HKEX:5 - HKEX:10 is a typical grade sweep.
•Each of the ST/MT/LT pivot highs and lows have optional user defined grade sweep boxes which paint above until filled (or user option for historical filled boxes to remain).
•Numbers entered into sweep input boxes are auto converted into appropriate units (i.e. pips for FX, $ or 'handles' for indices, $ for Crypto. Very low $ units can be input for low unit value crypto altcoins.
• USER INPUTS: overall setting: Show sweep boxes | individually select colors of each of STH, MTH, LTH, STL, MTL, LTL sweep boxes. | Set Grade sweep ($/pips) number for each of ST, MT, LT. This auto converts between pips and $ (i.e. FX vs Indices/Crypto). Can be a float as small or large as you like ($0.000001 to HKEX:1000 ). | Set box text position (horizontal & vertical) and size , and color . | Set Box width (bars) (for non extended/ non-auto-terminating at price boxes). | toggle on/off Extend boxes/lines right . | Toggle on/off Shrink Grade sweeps on fill (they will disappear in realtime when filled/passed through)
4. FVGs:
•Fair Value gaps. Represent 'naked' candle bodies where the wicks to either side do not meet, forming a 'gap' of sorts which has a tendency to fill, or at least to fill to midline (CE).
•These are ICT concepts. 'UP' FVGS are known as BISIs (Buyside imbalance, sellside inefficiency); 'DOWN' FVGs are known as SIBIs (Sellside imbalance, buyside inefficiency).
• USER INPUTS: overall setting: show FVGs | Bars lookback (history). | Choose to display: 'UP' FVGs (BISI) and/or 'DOWN FVGs (SIBI) . Choose to display the midline: CE , the color and the line style . Choose threshold: use CE (as opposed to Full Fill) |toggle on/off Shrink FVG on fill (CE hit or Full fill) (declutter chart/see backtesting history)
////••Alerts (general notes & cautionary notes)::
•Alerts are optional for most of the levels printed by this indicator. Set them via the three dots on indicator status line.
•Due to dynamic repainting of levels, alerts should be used with caution. Best use these alerts either for Higher time frame levels, or when closely monitoring price.
--E.g. You may set an alert for down-fill of the latest FVG below; but price will keep marching up; form a newer/higher FVG, and the alert will trigger on THAT FVG being down-filled (not the original)
•Available Alerts:
-FVG(BISI) cross above threshold(CE or full-fill; user choice). Same with FVG(SIBI).
-HTF last CHoCH down, cross below | HTF last CHoCH up, cross above.
-last CHoCH down, cross below | last CHoCH up, cross above.
-LTH cross above, MTH cross above, STH cross above | LTL cross below, MTL cross below, STL cross below.
////••Formatting (general)::
•all table text color is set from the 'Pivot highs & Lows (ST, MT, LT)' section (for those of you who prefer black backgrounds).
•User choice of Line-style, line color, line width. Same with Boxes. Icon choice for chochs. Char or label text choices for ST/MT/LT pivot highs & lows.
////••User Inputs (general):
•Each of the 4 components of this indicator can be easily toggled on/off independently.
•Quite a lot of options and toggle boxes, as described in full above. Please take your time and read through all the tooltips (hover over '!' icon) to get an idea of formatting options.
•Several Lookback periods defined in bars to control how much history is shown for each of the 4 components of this indicator.
•'Shrink on fill' settings on FVGs and CHoCHs: Basically a way to declutter chart; toggle on/off depending on if you're backtesting or reading live price action.
•Table Display: applies to ST/MT/LT pivot highs and to HTF CHoCHs; Toggle table on or off (in part or in full)
////••Credits:
•Credit to ICT (Inner Circle Trader) for some of the concepts used in this indicator (FVGS & CEs; Grade sweeps).
•Credit to @Icecold_crypto for the specific and novel concept of identifying CHoCHs in a simple, objective and effective manner (as demonstrated in the 1st chart below).
CHoCH demo page 1: shifting tweak; arrow diagrams to demonstrate how CHoCHs are defined:
CHoCH demo page 2: Simplified view; short lookback history; few CHoCHs, demo of 'latest' choch being extended into the future by 10 bars:
USAGE: Bitcoin Hourly using HTF daily CHoCHs:
USAGE-2: Cotton Futures (CT1!) 2hr. Painting a rather bullish picture. Above HTF UP CHoCH, Local CHoCHs show bullish order flow, Nice targets above (MTH/LTH + grade sweeps):
Full Demo; 5min chart; CHoCHs, Short term pivot highs/lows, grade sweeps, FVGs:
Full Demo, Eur/Usd 15m: STH, MTH, LTH grade sweeps, CHoCHs, Usage for finding bias (part A):
Full Demo, Eur/Usd 15m: STH, MTH, LTH grade sweeps, CHoCHs, Usage for finding bias, 3hrs later (part B):
Realtime Vs Backtesting(A): btc/usd 15m; FVGs and CHoCHs: shrink on fill, once filled they repaint discreetly on their origin bar only. Realtime (Shrink on fill, declutter chart):
Realtime Vs Backtesting(B): btc/usd 15m; FVGs and CHoCHs: DON'T shrink on fill; they extend to the point where price crosses them, and fix/paint there. Backtesting (seeing historical behaviour):
Weekly Opening GAPThis indicator will plot the weekly opening gap on the chart. The gap will be carried forward until it is closed or the max line count is reached. Additionally the 1/4 levels inside the gap are plotted on the chart as weekly gaps can be large.
The weekly opening gap levels can act as targets and rejection points.
Optionally the script can also carry forward the top and bottom lines of the weekly opening gap for up to the 10 prior gaps. These lines are not removed when the gap is closed.
Time of Day - Volatility Report█ OVERVIEW
The indicator analyses the volatility and reports statistics by the time of day.
█ CONCEPTS
Around the world and at various times, different market participants get involved in the markets. How does this affect the market?
Knowing this gets you better prepared and improves your trading. Here are some ideas to explore:
When is the market busy and quiet?
What time is it the most volatile?
Which pairs in your watchlist are moving while you are actively trading?
Should you adjust your trading time? Should you change your trading pairs?
When does your strategy perform the best?
What entry times do your winners have in common? What about the exit times of your losers?
Is it worth keeping your trade open overnight?
Bitcoin (UTC+0)
Gold (UTC+0)
Tesla, Inc. (UTC+0)
█ FEATURES
Selectable time zones
Display the statistics in your geographical time zone (or other market participants), the exchange time zone, or UTC+0.
Configurable outputs
Output the report statistics as mean or median.
█ HOW TO USE
Plot the indicator and visit the 1H timeframe.
█ NOTES
Gaps
The indicator includes the volatility from gaps.
Calculation
The statistics are not reported from absolute prices (does not favor trending markets) nor percentage prices (does not depict the different periods of volatility that markets can go through). Instead, the script uses the prices relative to the average range of previous days (daily ATR).
Extended trading session
The script analyses extended hours when activated on the chart.
Daylight Saving Time (DST)
The exchange time or geographical time zone selected may observe Daylight Saving Time. For example, NASDAQ:TSLA always opens at 9:30 AM New York time but may see different opening times in another part of the globe (New York time corresponds to UTC-4 and UTC-5 during the year).
Liquidity Hunter - FattyTradesThis indicator is used to automatically identify and plot two forms of liquidity that will be targeted by market makers.
The first form of liquidity is based on multi-time fame highs and lows. It plots 1H, 4H, D, W, & M liquidity on an intraday chart to make it easier to identify. I believe hat liquidity is what drives the market and the most common form of this liquidity can be identified through higher time frame highs and lows. You can use whatever method you prefer to determine which liquidity pool will be targeted. When the liquidity is purged, it will be shown as dotted lines. This should not be used as traditional support/resistance, but rather as targets for the market.
The second form of liquidity is in the form of imbalances or fair value gaps. You can select a higher time frame to be plotted along with the current time frame you're viewing to identify imbalances that will likely be targeted intraday. We know that higher time frame fair value gaps work equally well as targets for market makers. When a higher time frame FVG is broken into, it can also act as a very powerful form of support and resistance. By default, when a fair value gap has been mitigated it will be removed from the chart, however this can be disabled.
Between these two forms of market maker liquidity targets on the chart, it will be easier to formulate a thesis intraday to determine where the market will move. It can help minimize the amount of switching between higher time frames that needs to be done, allowing you to identify targets while trading on your favorite intraday time frame for optimal risk/reward.
In the near future, I will build in alerting mechanism to alert when liquidity on higher time frames as been purged/mitigated.
True Accumulation/Distribution (TG fork)An accumulation/distribution indicator that works better against gaps and with trend coloring.
Accumulation/Distribution was developed by Marc Chaikin to provide insight into strength of a trend by measuring flow of buy and sell volume .
The fact that A/D only factors current period's range for calculating the volume multiplier causes problem with price gaps. They are ignored or even misinterpreted.
True Accumulation/Distribution solves the problem by using True Range instead of only relying on current period's high and low.
Most of the time, True A/D reverts to producing the same values as the original A/D. The difference between True A/D and original A/D can be better seen when a gap has occurred, True A/D has handles it better than Accumulation/Distribution which a bearish close in period's range cause it to misinterpret the strong buy pressure as sell volume
The Moving Average Cloud is simply the filling between the moving average and the True A/D. This feature was inspired by D7R ACC/DIST closed-source indicator, kudos to D7R for making such neat visual indicators (but unfortunately all closed source!).
This indicator was made to extend the original work by adding MTF support and a moving average cloud and coloring.
If you like this indicator, please show the original author RezzaHmt some love:
OHLC Volatility Estimators by @Xel_arjonaDISCLAIMER:
The Following indicator/code IS NOT intended to be a formal investment advice or recommendation by the author, nor should be construed as such. Users will be fully responsible by their use regarding their own trading vehicles/assets.
The embedded code and ideas within this work are FREELY AND PUBLICLY available on the Web for NON LUCRATIVE ACTIVITIES and must remain as is by Creative-Commons as TradingView's regulations. Any use, copy or re-use of this code should mention it's origin as it's authorship.
WARNING NOTICE!
THE INCLUDED FUNCTION MUST BE CONSIDERED AS DEBUGING CODE The models included in the function have been taken from openly sources on the web so they could have some errors as in the calculation scheme and/or in it's programatic scheme. Debugging are welcome.
WHAT'S THIS?
Here's a full collection of candle based (compressed tick) Volatility Estimators given as a function, openly available for free, it can print IMPLIED VOLATILITY by an external symbol ticker like INDEX:VIX.
Models included in the volatility calculation function:
CLOSE TO CLOSE: This is the classic estimator by rule, sometimes referred as HISTORICAL VOLATILITY and is the must common, accepted and widely used out there. Is based on traditional Standard Deviation method derived from the logarithm return of current close from yesterday's.
ELASTIC WEIGHTED MOVING AVERAGE: This estimator has been used by RiskMetriks®. It's calculation is based on an ElasticWeightedMovingAverage Standard Deviation method derived from the logarithm return of current close from yesterday's. It can be viewed or named as an EXPONENTIAL HISTORICAL VOLATILITY model.
PARKINSON'S: The Parkinson number, or High Low Range Volatility, developed by the physicist, Michael Parkinson, in 1980 aims to estimate the Volatility of returns for a random walk using the high and low in any particular period. IVolatility.com calculates daily Parkinson values. Prices are observed on a fixed time interval. n=10, 20, 30, 60, 90, 120, 150, 180 days.
ROGERS-SATCHELL: The Rogers-Satchell function is a volatility estimator that outperforms other estimators when the underlying follows a Geometric Brownian Motion (GBM) with a drift (historical data mean returns different from zero). As a result, it provides a better volatility estimation when the underlying is trending. However, this Rogers-Satchell estimator does not account for jumps in price (Gaps). It assumes no opening jump. The function uses the open, close, high, and low price series in its calculation and it has only one parameter, which is the period to use to estimate the volatility.
YANG-ZHANG: Yang and Zhang were the first to derive an historical volatility estimator that has a minimum estimation error, is independent of the drift, and independent of opening gaps. This estimator is maximally 14 times more efficient than the close-to-close estimator.
LOGARITHMIC GARMAN-KLASS: The former is a pinescript transcript of the model defined as in iVolatility . The metric used is a combination of the overnight, high/low and open/close range. Such a volatility metric is a more efficient measure of the degree of volatility during a given day. This metric is always positive.
Fractal Resonance ComponentLazyBear's WaveTrend port has been praised for highlighting trend reversals with precision and punctuality (minimal lag). But strong "3rd Wave" trends can "embed" or saturate any oscillator flashing several premature crosses while stuck overbought/oversold. This happens when the trend stretches over a longer timescale than the oscillator's averaging window or filter time constant. Our solution: simultaneously monitor many oscillator timescales. Watch for fresh crossovers in "dominant" timescales alternating most smoothly between the overbought (red shade) and oversold (green shade) range.
Fractal Resonance Component facilitates simultaneous viewing of eight timescales that are power of 2 multiples of the chart timescale. Each timescale shows lead line, lag line, lead-lag difference, and crossover marks. Add 4 to 8 copies to your chart for a good multi-fractal read. Format * the "Timescale Multiplier" attribute of each row to be twice that of the row above for a sequence like 1, 2, 4, 8, 16, 32, 64, 128...
Fractal Resonance Component shifts its timescales along with your choice of main chart timescale:
1 minute chart: 1 minute through 128 minute (~2 hour) oscillators.
1 hour chart: 1 hour through 128 hour (~2 week) oscillators.
Daily chart: 1 day through 128 day (~4 month) oscillators.
Crossovers in different oscillator ranges tend to have different meanings:
Minor (< 75%) crossovers: small green/red dot
usually noise
Overbought/Sold crossovers (shaded 75 to 100%): black outlined dot (o)
reliable reversal indicators (when they appear alone)
Extreme Overbought (> 100%) crossovers: black outlined plus (+).
Can be a major reversal in fast markets, but usually portend the end of Elliot 3rd waves with just a small corrective (4th wave) retrace before the larger impulsive (5-wave) sequence resumes in original direction.
The final 5th-wave terminus should appear later as a lone non-extreme (black outlined circle) crossover on a slower timescale coincident with weaker (non-extreme) dot crosses on this timescale.
Careful examination of historical charts leads to many useful observations such as:
Dominant crossovers punctuating true reversals are usually in the green/red shaded ranges with black outlined dots (o) rather than minor or Extreme (+) ranges.
Due to market's fractal nature, two well-separated timescales like 1 minute and 1 hour can show dominant crosses simultaneously in opposite directions, e.g. the 1 minute showing a very short term high and the 1 hour a medium term low nearby.
Staying Nimble
Watch out for embedding on your supposedly dominant timescale -- a second cross while stuck in the overbought/oversold region suggests a stronger, longer trend than expected. Drop your eyes to a slower timescale below for the real dominant whose crossover will validate main trend reversal.
Embedding can often be predicted even at the first cross mark by checking whether the green lead line of the next slower timescale (one row below) has already hit the Overbought or especially the Extreme Overbought range but isn't close to rolling over. Fractal Resonance Bar (to be published) uses this principle to mark embedded timescales with white stripes, warning of a powerful trend wave on longer timescales you shouldn't fight until the white stripes subside.
Overnight gaps surge all timescales in ways that obscure the dominant timescale, so for shorter than daily charts, these methods work best on Futures contracts that only suffer weekend gaps.
ETH to RTH Gap DetectorETH to RTH Gap Detector
What It Does
This indicator identifies and tracks custom-defined gaps that form between Extended Trading Hours (ETH) and Regular Trading Hours (RTH). Unlike traditional gap definitions, this indicator uses a specialized approach - defining up gaps as the space between previous session close high to current session initial balance low, and down gaps as the space from previous session close low to current session initial balance high. Each detected gap is monitored until it's touched by price.
Key Features
Detects custom-defined ETH-RTH gaps based on previous session close and current session initial balance
Automatically identifies both up gaps and down gaps
Visualizes gaps with color-coded boxes that extend until touched
Tracks when gaps are filled (when price touches the gap area)
Offers multiple display options for filled gaps (color change, border only, pattern, or delete)
Provides comprehensive statistics including total gaps, up/down ratio, and touched gap percentage
Includes customizable alert system for real-time gap filling notifications
Features toggle options for dashboard visibility and weekend sessions
Uses time-based box coordinates to avoid common TradingView drawing limitations
How To Use It
Configure Session Times : Set your preferred RTH hours and timezone (default 9:30-16:00 America/New York)
Set Initial Balance Period : Adjust the initial balance period (default 30 minutes) for gap detection sensitivity
Monitor Gap Formation : The indicator automatically detects gaps between the previous session close and current session IB
Watch For Gap Fills : Gaps change appearance or disappear when price touches them, based on your selected style
Check Statistics : View the dashboard to see total gaps, directional distribution, and touched percentage
Set Alerts : Enable alerts to receive notifications when gaps are filled
Settings Guide
RTH Settings : Configure the start/end times and timezone for Regular Trading Hours
Initial Balance Period : Controls how many minutes after market open to calculate the initial balance (1-240 minutes)
Display Settings : Toggle gap boxes, extension behavior, and dashboard visibility
Filled Box Style : Choose how filled gaps appear - Filled (color change), Border Only, Pattern, or Delete
Color Settings : Customize colors for up gaps, down gaps, and filled gaps
Alert Settings : Control when and how alerts are triggered for gap fills
Weekend Session Toggle : Option to include or exclude weekend trading sessions
Technical Details
The indicator uses time-based coordinates (xloc.bar_time) to prevent "bar index too far" errors
Gap boxes are intelligently limited to avoid TradingView's 500-bar drawing limitation
Box creation and fill detection use proper range intersection logic for accuracy
Session detection is handled using TradingView's session string format for reliability
Initial balance detection is precisely calculated based on time difference
Statistics calculations exclude zero-division scenarios for stability
This indicator works best on futures markets with extended and regular trading hours, especially indices (ES, NQ, RTY) and commodities. Performs well on timeframes from 1-minute to 1-hour.
What Makes It Different
Most gap indicators focus on traditional open-to-previous-close gaps, but this tool offers a specialized definition more relevant to ETH/RTH transitions. By using the initial balance period to define gap edges, it captures meaningful price discrepancies that often provide trading opportunities. The indicator combines sophisticated gap detection logic with clean visualization and comprehensive tracking statistics. The customizable fill styles and integrated alert system make it practical for both chart analysis and active trading scenarios.
[TehThomas] - ICT Inversion Fair value Gap (IFVG) The Inversion Fair Value Gap (IFVG) indicator is a powerful tool designed for traders who utilize ICT (Inner Circle Trader) strategies. It focuses on identifying and displaying Inversion Fair Value Gaps, which are critical zones that emerge when traditional Fair Value Gaps (FVGs) are invalidated by price action. These gaps represent key areas where price often reacts, making them essential for identifying potential reversals, trend continuations, and liquidity zones.
What Are Inversion Fair Value Gaps?
Inversion Fair Value Gaps occur when price revisits a traditional FVG and breaks through it, effectively flipping its role in the market. For example:
A bullish FVG that is invalidated becomes a bearish zone, often acting as resistance.
A bearish FVG that is invalidated transforms into a bullish zone, serving as support.
These gaps are significant because they often align with institutional trading activity. They highlight areas where large orders have been executed or where liquidity has been targeted. Understanding these gaps provides traders with a deeper insight into market structure and helps them anticipate future price movements with greater accuracy.
Why This Strategy Works
The IFVG concept is rooted in ICT principles, which emphasize liquidity dynamics, market inefficiencies, and institutional order flow. Traditional FVGs represent imbalances in price action caused by gaps between candles. When these gaps are invalidated, they become inversion zones that can act as magnets for price. These zones frequently serve as high-probability areas for price reversals or trend continuations.
This strategy works because it aligns with how institutional traders operate. Inversion gaps often mark areas of interest for "smart money," making them reliable indicators of potential market turning points. By focusing on these zones, traders can align their strategies with institutional behavior and improve their overall trading edge.
How the Indicator Works
This indicator simplifies the process of identifying and tracking IFVGs by automating their detection and visualization on the chart. It scans the chart in real-time to identify bullish and bearish FVGs that meet user-defined thresholds for inversion. Once identified, these gaps are dynamically displayed on the chart with distinct colors for bullish and bearish zones.
The indicator also tracks whether these gaps are mitigated or broken by price action. When an IFVG is broken, it extends the zone for a user-defined number of bars to visualize its potential role as a new support or resistance level. Additionally, alerts can be enabled to notify traders when new IFVGs form or when existing ones are broken, ensuring timely decision-making in fast-moving markets.
Key Features
Automatic Detection: The indicator automatically identifies bullish and bearish IFVGs based on user-defined thresholds.
Dynamic Visualization: It displays IFVGs directly on the chart with customizable colors for easy differentiation.
Real-Time Updates: The status of each IFVG is updated dynamically based on price action.
Zone Extensions: Broken IFVGs are extended to visualize their potential as support or resistance levels.
Alerts: Notifications can be set up to alert traders when key events occur, such as the formation or breaking of an IFVG.
These features make the tool highly efficient and reduce the need for manual analysis, allowing traders to focus on execution rather than tedious chart work.
Benefits of Using This Indicator
The IFVG indicator offers several advantages that make it an indispensable tool for ICT traders. By automating the detection of inversion gaps, it saves time and reduces errors in analysis. The clearly defined zones improve risk management by providing precise entry points, stop-loss levels, and profit targets based on market structure.
This tool is also highly versatile and adapts seamlessly across different timeframes. Whether you’re scalping lower timeframes or swing trading higher ones, it provides actionable insights tailored to your trading style. Furthermore, by aligning your strategy with institutional logic, you gain a significant edge in anticipating market movements.
Practical Applications
This indicator can be used across various trading styles:
Scalping: Identify quick reversal points on lower timeframes using real-time alerts.
Day Trading: Use inversion gaps as key levels for intraday support/resistance or trend continuation setups.
Swing Trading: Analyse higher timeframes to identify major inversion zones that could act as critical turning points in larger trends.
By integrating this tool into your trading routine, you can streamline your analysis process and focus on executing high-probability setups.
Conclusion
The Inversion Fair Value Gap (IFVG) indicator is more than just a technical analysis tool—it’s a strategic ally for traders looking to refine their edge in the markets. By automating the detection and tracking of inversion gaps based on ICT principles, it simplifies complex market analysis while maintaining accuracy and depth. Whether you’re new to ICT strategies or an experienced trader seeking greater precision, this indicator will elevate your trading game by aligning your approach with institutional behavior.
If you’re serious about improving your trading results while saving time and effort, this tool is an essential addition to your toolkit. It provides clarity in chaotic markets, enhances precision in trade execution, and ensures you never miss critical opportunities in your trading journey.
__________________________________________
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! 📈
Bitcoin Block Height (Total Blocks)Bitcoin Block Height by RagingRocketBull 2020
Version 1.0
Differences between versions are listed below:
ver 1.0: compare QUANDL Difficulty vs Blockchain Difficulty sources, get total error estimate
ver 2.0: compare QUANDL Hash Rate vs Blockchain Hash Rate sources, get total error estimate
ver 3.0: Total Blocks estimate using different methods
--------------------------------
This indicator estimates Bitcoin Block Height (Total Blocks) using Difficulty and Hash Rate in the most accurate way possible, since
QUANDL doesn't provide a direct source for Bitcoin Block Height (neither QUANDL:BCHAIN, nor QUANDL:BITCOINWATCH/MINING).
Bitcoin Block Height can be used in other calculations, for instance, to estimate the next date of Bitcoin Halving.
Using this indicator I demonstrate:
- that QUANDL data is not accurate and differ from Blockchain source data (industry standard), but still can be used in calculations
- how to plot a series of data points from an external csv source and compare it with another source
- how to accurately estimate Bitcoin Block Height
Features:
- compare QUANDL Difficulty source (EOD, D1) with external Blockchain Difficulty csv source (EOD, D1, embedded)
- show/hide Quandl/Blockchain Difficulty curves
- show/hide Blockchain Difficulty candles
- show/hide differences (aqua vertical lines)
- show/hide time gaps (green vertical lines)
- count source differences within data range only or for the whole history
- multiply both sources by alpha to match before comparing
- floor/round both matched sources when comparing
- Blockchain Difficulty offset to align sequences, bars > 0
- count time gaps and missing bars (as result of time gaps)
WARNING:
- This indicator hits the max 1000 vars limit, adding more plots/vars/data points is not possible
- Both QUANDL/Blockchain provide daily EOD data and must be plotted on a daily D1 chart otherwise results will be incorrect
- current chart must not have any time gaps inside the range (time gaps outside the range don't affect the calculation). Time gaps check is provided.
Otherwise hardcoded Blockchain series will be shifted forward on gaps and the whole sequence become truncated at the end => data comparison/total blocks estimate will be incorrect
Examples of valid charts that can run this indicator: COINBASE:BTCUSD,D1 (has 8 time gaps, 34 missing bars outside the range), QUANDL:BCHAIN/DIFF,D1 (has no gaps)
Usage:
- Description of output plot values from left to right:
- c_shifted - 4x blockchain plotcandles ohlc, green/black (default na)
- diff - QUANDL Difficulty
- c_shifted - Blockchain Difficulty with offset
- QUANDL Difficulty multiplied by alpha and rounded
- Blockchain Difficulty multiplied by alpha and rounded
- is_different, bool - cur bar's source values are different (1) or not (0)
- count, number of differences
- bars, total number of bars/data points in the range
- QUANDL daily blocks
- Blockchain daily blocks
- QUANDL total blocks
- Blockchain total blocks
- total_error - difference between total_blocks estimated using both sources as of cur bar, blocks
- number_of_gaps - number of time gaps on a chart
- missing_bars - number of missing bars as result of time gaps on a chart
- Color coding:
- Blue - QUANDL data
- Red - Blockchain data
- Black - Is Different
- Aqua - number of differences
- Green - number of time gaps
- by default the indicator will show lots of vertical aqua lines, 138 differences, 928 bars, total error -370 blocks
- to compare the best match of the 2 sources shift Blockchain source 1 bar into the future by setting Blockchain Difficulty offset = 1, leave alpha = 0.01 =>
this results in no vertical aqua lines, 0 differences, total_error = 0 blocks
if you move the mouse inside the range some bars will show total_error = 1 blocks => total_error <= 1 blocks
- now uncheck Round Difficulty Values flag => some filled aqua areas, 218 differences.
- now set alpha = 1 (use raw source values) instead of 0.01 => lots of filled aqua areas, 871 differences.
although there are many differences this still doesn't affect the total_blocks estimate provided Difficulty offset = 1
Methodology:
To estimate Bitcoin Block Height we need 3 steps, each step has its own version:
- Step 1: Compare QUANDL Difficulty vs Blockchain Difficulty sources and estimate error based on differences
- Step 2: Compare QUANDL Hash Rate vs Blockchain Hash Rate sources and estimate error based on differences
- Step 3: Estimate Bitcoin Block Height (Total Blocks) using different methods in the most accurate way possible
QUANDL doesn't provide block time data, but we can calculate it using the Hash Rate approximation formula:
estimated Hash rate/sec H = 2^32 * D / T, where D - Difficulty, T - block time, sec
1. block time (T) can be derived from the formula, since we already know Difficulty (D) and Hash Rate (H) from QUANDL
2. using block time (T) we can estimate daily blocks as daily time / block time
3. block height (total blocks) = cumulative sum of daily blocks of all bars on the chart (that's why having no gaps is important)
Notes:
- This code uses Pinescript v3 compatibility framework
- hash rate is in THash/s, although QUANDL falsely states in description GHash/s! THash = 1000 GHash
- you can't read files, can only embed/hardcode raw data in script
- both QUANDL and Blockchain sources have no gaps
- QUANDL and Blockchain series are different in the following ways:
- all QUANDL data is already shifted 1 bar into the future, i.e. prev day's value is shown as cur day's value => Blockchain data must be shifted 1 bar forward to match
- all QUANDL diff data > 1 bn (10^12) are truncated and have last 1-2 digits as zeros, unlike Blockchain data => must multiply both values by 0.01 and floor/round the results
- QUANDL sometimes rounds, other times truncates those 1-2 last zero digits to get the 3rd last digit => must use both floor/round
- you can only shift sequences forward into the future (right), not back into the past (left) using positive offset => only Blockchain source can be shifted
- since total_blocks is already a cumulative sum of all prev values on each bar, total_error must be simple delta, can't be also int(cum()) or incremental
- all Blockchain values and total_error are na outside the range - move you mouse cursor on the last bar/inside the range to see them
TLDR, ver 1.0 Conclusion:
QUANDL/Blockchain Difficulty source differences don't affect total blocks estimate, total error <= 1 block with avg 150 blocks/day is negligible
Both QUANDL/Blockchain Difficulty sources are equally valid and can be used in calculations. QUANDL is a relatively good stand in for Blockchain industry standard data.
Links:
QUANDL difficulty source: www.quandl.com
QUANDL hash rate source: www.quandl.com
Blockchain difficulty source (export data as csv): www.blockchain.com
FVG [TakingProphets]🧠 Purpose
This indicator is built for traders applying Inner Circle Trader (ICT) methodology. It detects and manages Fair Value Gaps (FVGs) — price imbalances that often act as future reaction zones. It also highlights New Day Opening Gaps (NDOGs) and New Week Opening Gaps (NWOGs) that frequently play a role in early-session price behavior.
📚 What is a Fair Value Gap?
A Fair Value Gap forms when price moves rapidly, skipping over a portion of the chart between three candles — typically between the high of the first candle and the low of the third. These zones are considered inefficient, meaning institutions may return to them later to:
-Rebalance unfilled orders
-Enter or scale into positions
-Engineer liquidity with minimal slippage
In ICT methodology, FVGs are seen as both entry zones and targets, depending on market structure and context.
⚙️ How It Works
-This script automatically identifies and manages valid FVGs using the following logic:
-Bullish FVGs: When the low of the current candle is above the high from two candles ago
-Bearish FVGs: When the high of the current candle is below the body of two candles ago
-Minimum Gap Filter: Gaps must be larger than 0.05% of price
-Combine Consecutive Gaps (optional): Merges adjacent gaps of the same type
-Consequent Encroachment Line (optional): Plots the midpoint of each gap
-NDOG/NWOG Tracking: Labels gaps created during the 5–6 PM session transition
-Automatic Invalidation: Gaps are removed once price closes beyond their boundary
🎯 Practical Use
-Use unmitigated FVGs as potential entry points or targets
-Monitor NDOG and NWOG for context around daily or weekly opens
-Apply the midpoint (encroachment) line for precise execution decisions
-Let the script handle cleanup — only active, relevant zones remain visible
🎨 Customization
-Control colors for bullish, bearish, and opening gaps
-Toggle FVG borders and midpoint lines
-Enable or disable combining of consecutive gaps
-Fully automated zone management, no manual intervention required
✅ Summary
This tool offers a clear, rules-based approach to identifying price inefficiencies rooted in ICT methodology. Whether used for intraday or swing trading, it helps traders stay focused on valid, active Fair Value Gaps while filtering out noise and maintaining chart clarity.
Indecisive and Explosive CandlesThe Explosive & Base Candle with Gaps Identifier is an indicator designed to enhance your market analysis by identifying critical candle types and gaps in price action. This tool aids traders in pinpointing zones of significant buyer-seller interaction and potential institutional activity, providing valuable insights for strategic trading decisions.
Main Features:
Base Candle Identification: This feature detects Base candles, also known as indecisive candles, within the price action. A Base candle is characterized by a body (the difference between the close and open prices) that is less than or equal to 50% of its total range (the difference between the high and low prices). These candles mark zones where buyers and sellers are evenly matched, highlighting areas of potential support and resistance.
Explosive Candle Identification: The indicator identifies Explosive candles, which are indicative of strong market moves often driven by institutional activity. An Explosive candle is defined by a body that is greater than 70% of its total range. Recognizing these candles helps traders spot significant momentum and potential breakout points.
Supply and Demand Zone Identification: Both Base and Explosive candles are essential for identifying supply and demand zones within the price action. These zones are crucial for traders to place their trades based on the likelihood of price reversals or continuations.
Gap Detection: The indicator also detects gaps, defined as the difference between the close price of one candle and the open price of the next. Gaps are significant because prices often return to these levels to "fill the gap," providing opportunities for traders to predict price movements and place strategic trades.
Visual Markings and Alerts: The indicator visually marks Base and Explosive candles as well as gaps directly on the chart, making them easily identifiable at a glance. Traders can also set customizable alerts to notify them when these key candle types and gaps appear, ensuring they never miss an important trading opportunity.
Customizable Settings: Tailor the indicator’s settings to match your trading style and preferences. Adjust the criteria for Base and Explosive candles, as well as how gaps are detected and displayed, to suit your specific analysis needs.
How to Use:
Add the Indicator: Apply the Explosive & Base Candle with Gaps Identifier to your TradingView chart.
Analyze Identified Zones: Observe the marked Base and Explosive candles and gaps to identify key areas of support, resistance, and potential price reversals or continuations.
Set Alerts: Customize and set alerts for the detection of Base candles, Explosive candles, and gaps to stay informed of critical market movements in real-time.
Integrate with Your Strategy: Use the insights provided by the indicator to enhance your existing trading strategy, improving your entry and exit points based on the identified supply and demand zones.
The Explosive & Base Candle with Gaps Identifier is an invaluable tool for traders aiming to refine their market analysis and make more informed trading decisions. By identifying critical areas of price action, this indicator supports traders in navigating the complexities of the financial markets with greater precision and confidence.
CME Gap Detector [CryptoSea]The CME Gap Indicator , is a tool designed to identify and visualize potential price gaps in the cryptocurrency market, particularly focusing on gaps that occur during the weekend trading sessions. By highlighting these gaps, traders can gain insights into potential market movements and anticipate price behavior.
Key Features
Gap Identification: The indicator identifies gaps in price between the Friday close and the subsequent opening price on Monday. It plots these gaps on the chart, allowing traders to easily visualize and analyze their significance.
Weekend Price Comparison: It compares the closing price on Friday with the opening price on Monday to determine whether a gap exists and its magnitude.
Customizable Visualization: Traders have the option to customize the visualization of the gaps, including the color scheme for better clarity and visibility on the chart.
Neutral Candle Color Option: Users can choose to display neutral candle colors, enhancing the readability of the chart and reducing visual clutter.
How it Works
Data Fetching and Calculation: The indicator fetches the daily close price and calculates whether a gap exists between the Friday close and the subsequent Monday opening price.
Plotting: It plots the current price and the previous Friday's close on the chart, making it easy for traders to compare and analyze.
Gradient Fill: The indicator incorporates a gradient fill feature to visually represent the magnitude of the gap, providing additional insights into market sentiment.
Weekend Line Logic: It includes logic to identify Sunday bars and mark them on the chart, aiding traders in distinguishing weekend trading sessions.
Application
Gap Trading Strategy: Traders can use the identified gaps as potential entry or exit points in their trading strategies, considering the tendency of price to fill gaps over time.
Market Sentiment Analysis: Analyzing the presence and size of weekend gaps can provide valuable insights into market sentiment and participant behavior.
Risk Management: Understanding the existence and significance of gaps can help traders manage their risk exposure and make informed decisions.
The CME Gap indicator offers traders a valuable tool for analyzing weekend price gaps in the cryptocurrency market, empowering them to make informed trading decisions and capitalize on market opportunities.
Imbalance Detector [LuxAlgo]This indicator detects and highlights market imbalances alongside a dashboard returning information about their frequency of occurrence and their fill percentage. Imbalances included in this script are Fair Value Gaps (FVG), Opening Gaps (OG) and Volume Imbalances (VI).
Alerts are available for the occurrences of all market imbalances.
Settings
Imbalances
Each imbalance has the same settings layout:
Imbalance: Enable/disable the detection of the specific imbalance.
Min Width: If enabled, requires the imbalance area width to be greater than the specified value. This minimum width can be expressed in points, percentages or ATR multiples.
Extend: Extend imbalances by a specified number of bars.
Dashboard
Show Dashboard: Enable/disable the dashboard on the chart.
Dashboard Location: Location of the dashboard on the chart.
Dashboard Size: Size of the dashboard.
Usage
Market imbalances are part of the many concepts available to price action traders and highlight areas where there is a disparity between supply and demand.
It is common to see price come back to these areas and traders often use them as supports and resistances but also as targets.
Details
The script can detect three distinct types of imbalances described below.
Fair Value Gaps
Fair Value Gaps (FVG) are three candle formations characterized by a gap between the wicks of the non-adjacent candles in the formation.
A bullish FVG is characterized by a gap between the current price low and the 2 bars anterior price high, and a bearish FVG is characterized by a gap between the current price high and the 2 bars anterior price low.
Opening Gaps
Opening Gaps (OG) are imbalances characterized by non-existent activity within a specific price range.
A bullish OG occurs when the current price low is greater than the previous high, a bearish OG occurs when price high is lower than the previous price low.
Opening Gaps primarily occur in closing markets, as such they are less common in the cryptocurrency market.
Most of the time an Opening Gap will also be accompanied by a Fair Value Gap, in order to avoid clutter the indicator will not detect Fair Value Gaps if Opening Gaps are enabled and if an Opening Gap has been detected
Volume Imbalances
Volume Imbalances (VI) are characterized by a price discontinuity between the opening price and previous close, but unlike Opening Gaps we do not see nonexistent activity within a certain price range.
A bullish VI occur when both the opening and closing prices are superior to the previous closing price, with the current price low overlapping the previous price high. A bearish VI occur when both the opening and closing prices are inferior to the previous closing price, with the current price high overlapping the previous price low.
Because Volume Imbalances can occur excessively on markets with frequent gaps, we make use of an additional condition for filtering out less significant imbalances. Bullish VI's will require the previous price high to be lower than the opening price, while bullish VI's will require the previous price low to be higher than the opening price.
Request█ OVERVIEW
This library is a tool for Pine Script™ programmers that consolidates access to a wide range of lesser-known data feeds available on TradingView, including metrics from the FRED database, FINRA short sale volume, open interest, and COT data. The functions in this library simplify requests for these data feeds, making them easier to retrieve and use in custom scripts.
█ CONCEPTS
Federal Reserve Economic Data (FRED)
FRED (Federal Reserve Economic Data) is a comprehensive online database curated by the Federal Reserve Bank of St. Louis. It provides free access to extensive economic and financial data from U.S. and international sources. FRED includes numerous economic indicators such as GDP, inflation, employment, and interest rates. Additionally, it provides financial market data, regional statistics, and international metrics such as exchange rates and trade balances.
Sourced from reputable organizations, including U.S. government agencies, international institutions, and other public and private entities, FRED enables users to analyze over 825,000 time series, download their data in various formats, and integrate their information into analytical tools and programming workflows.
On TradingView, FRED data is available from ticker identifiers with the "FRED:" prefix. Users can search for FRED symbols in the "Symbol Search" window, and Pine scripts can retrieve data for these symbols via `request.*()` function calls.
FINRA Short Sale Volume
FINRA (the Financial Industry Regulatory Authority) is a non-governmental organization that supervises and regulates U.S. broker-dealers and securities professionals. Its primary aim is to protect investors and ensure integrity and transparency in financial markets.
FINRA's Short Sale Volume data provides detailed information about daily short-selling activity across U.S. equity markets. This data tracks the volume of short sales reported to FINRA's trade reporting facilities (TRFs), including shares sold on FINRA-regulated Alternative Trading Systems (ATSs) and over-the-counter (OTC) markets, offering transparent access to short-selling information not typically available from exchanges. This data helps market participants, researchers, and regulators monitor trends in short-selling and gain insights into bearish sentiment, hedging strategies, and potential market manipulation. Investors often use this data alongside other metrics to assess stock performance, liquidity, and overall trading activity.
It is important to note that FINRA's Short Sale Volume data does not consolidate short sale information from public exchanges and excludes trading activity that is not publicly disseminated.
TradingView provides ticker identifiers for requesting Short Sale Volume data with the format "FINRA:_SHORT_VOLUME", where "" is a supported U.S. equities symbol (e.g., "AAPL").
Open Interest (OI)
Open interest is a cornerstone indicator of market activity and sentiment in derivatives markets such as options or futures. In contrast to volume, which measures the number of contracts opened or closed within a period, OI measures the number of outstanding contracts that are not yet settled. This distinction makes OI a more robust indicator of how money flows through derivatives, offering meaningful insights into liquidity, market interest, and trends. Many traders and investors analyze OI alongside volume and price action to gain an enhanced perspective on market dynamics and reinforce trading decisions.
TradingView offers many ticker identifiers for requesting OI data with the format "_OI", where "" represents a derivative instrument's ticker ID (e.g., "COMEX:GC1!").
Commitment of Traders (COT)
Commitment of Traders data provides an informative weekly breakdown of the aggregate positions held by various market participants, including commercial hedgers, non-commercial speculators, and small traders, in the U.S. derivative markets. Tallied and managed by the Commodity Futures Trading Commission (CFTC) , these reports provide traders and analysts with detailed insight into an asset's open interest and help them assess the actions of various market players. COT data is valuable for gaining a deeper understanding of market dynamics, sentiment, trends, and liquidity, which helps traders develop informed trading strategies.
TradingView has numerous ticker identifiers that provide access to time series containing data for various COT metrics. To learn about COT ticker IDs and how they work, see our LibraryCOT publication.
█ USING THE LIBRARY
Common function characteristics
• This library's functions construct ticker IDs with valid formats based on their specified parameters, then use them as the `symbol` argument in request.security() to retrieve data from the specified context.
• Most of these functions automatically select the timeframe of a data request because the data feeds are not available for all timeframes.
• All the functions have two overloads. The first overload of each function uses values with the "simple" qualifier to define the requested context, meaning the context does not change after the first script execution. The second accepts "series" values, meaning it can request data from different contexts across executions.
• The `gaps` parameter in most of these functions specifies whether the returned data is `na` when a new value is unavailable for request. By default, its value is `false`, meaning the call returns the last retrieved data when no new data is available.
• The `repaint` parameter in applicable functions determines whether the request can fetch the latest unconfirmed values from a higher timeframe on realtime bars, which might repaint after the script restarts. If `false`, the function only returns confirmed higher-timeframe values to avoid repainting. The default value is `true`.
`fred()`
The `fred()` function retrieves the most recent value of a specified series from the Federal Reserve Economic Data (FRED) database. With this function, programmers can easily fetch macroeconomic indicators, such as GDP and unemployment rates, and use them directly in their scripts.
How it works
The function's `fredCode` parameter accepts a "string" representing the unique identifier of a specific FRED series. Examples include "GDP" for the "Gross Domestic Product" series and "UNRATE" for the "Unemployment Rate" series. Over 825,000 codes are available. To access codes for available series, search the FRED website .
The function adds the "FRED:" prefix to the specified `fredCode` to construct a valid FRED ticker ID (e.g., "FRED:GDP"), which it uses in request.security() to retrieve the series data.
Example Usage
This line of code requests the latest value from the Gross Domestic Product series and assigns the returned value to a `gdpValue` variable:
float gdpValue = fred("GDP")
`finraShortSaleVolume()`
The `finraShortSaleVolume()` function retrieves EOD data from a FINRA Short Sale Volume series. Programmers can call this function to retrieve short-selling information for equities listed on supported exchanges, namely NASDAQ, NYSE, and NYSE ARCA.
How it works
The `symbol` parameter determines which symbol's short sale volume information is retrieved by the function. If the value is na , the function requests short sale volume data for the chart's symbol. The argument can be the name of the symbol from a supported exchange (e.g., "AAPL") or a ticker ID with an exchange prefix ("NASDAQ:AAPL"). If the `symbol` contains an exchange prefix, it must be one of the following: "NASDAQ", "NYSE", "AMEX", or "BATS".
The function constructs a ticker ID in the format "FINRA:ticker_SHORT_VOLUME", where "ticker" is the symbol name without the exchange prefix (e.g., "AAPL"). It then uses the ticker ID in request.security() to retrieve the available data.
Example Usage
This line of code retrieves short sale volume for the chart's symbol and assigns the result to a `shortVolume` variable:
float shortVolume = finraShortSaleVolume(syminfo.tickerid)
This example requests short sale volume for the "NASDAQ:AAPL" symbol, irrespective of the current chart:
float shortVolume = finraShortSaleVolume("NASDAQ:AAPL")
`openInterestFutures()` and `openInterestCrypto()`
The `openInterestFutures()` function retrieves EOD open interest (OI) data for futures contracts. The `openInterestCrypto()` function provides more granular OI data for cryptocurrency contracts.
How they work
The `openInterestFutures()` function retrieves EOD closing OI information. Its design is focused primarily on retrieving OI data for futures, as only EOD OI data is available for these instruments. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe.
The `openInterestCrypto()` function retrieves opening, high, low, and closing OI data for a cryptocurrency contract on a specified timeframe. Unlike `openInterest()`, this function can also retrieve granular data from intraday timeframes.
Both functions contain a `symbol` parameter that determines the symbol for which the calls request OI data. The functions construct a valid OI ticker ID from the chosen symbol by appending "_OI" to the end (e.g., "CME:ES1!_OI").
The `openInterestFutures()` function requests and returns a two-element tuple containing the futures instrument's EOD closing OI and a "bool" condition indicating whether OI is rising.
The `openInterestCrypto()` function requests and returns a five-element tuple containing the cryptocurrency contract's opening, high, low, and closing OI, and a "bool" condition indicating whether OI is rising.
Example usage
This code line calls `openInterest()` to retrieve EOD OI and the OI rising condition for a futures symbol on the chart, assigning the values to two variables in a tuple:
= openInterestFutures(syminfo.tickerid)
This line retrieves the EOD OI data for "CME:ES1!", irrespective of the current chart's symbol:
= openInterestFutures("CME:ES1!")
This example uses `openInterestCrypto()` to retrieve OHLC OI data and the OI rising condition for a cryptocurrency contract on the chart, sampled at the chart's timeframe. It assigns the returned values to five variables in a tuple:
= openInterestCrypto(syminfo.tickerid, timeframe.period)
This call retrieves OI OHLC and rising information for "BINANCE:BTCUSDT.P" on the "1D" timeframe:
= openInterestCrypto("BINANCE:BTCUSDT.P", "1D")
`commitmentOfTraders()`
The `commitmentOfTraders()` function retrieves data from the Commitment of Traders (COT) reports published by the Commodity Futures Trading Commission (CFTC). This function significantly simplifies the COT request process, making it easier for programmers to access and utilize the available data.
How It Works
This function's parameters determine different parts of a valid ticker ID for retrieving COT data, offering a streamlined alternative to constructing complex COT ticker IDs manually. The `metricName`, `metricDirection`, and `includeOptions` parameters are required. They specify the name of the reported metric, the direction, and whether it includes information from options contracts.
The function also includes several optional parameters. The `CFTCCode` parameter allows programmers to request data for a specific report code. If unspecified, the function requests data based on the chart symbol's root prefix, base currency, or quoted currency, depending on the `mode` argument. The call can specify the report type ("Legacy", "Disaggregated", or "Financial") and metric type ("All", "Old", or "Other") with the `typeCOT` and `metricType` parameters.
Explore the CFTC website to find valid report codes for specific assets. To find detailed information about the metrics included in the reports and their meanings, see the CFTC's Explanatory Notes .
View the function's documentation below for detailed explanations of its parameters. For in-depth information about COT ticker IDs and more advanced functionality, refer to our previously published COT library .
Available metrics
Different COT report types provide different metrics . The tables below list all available metrics for each type and their applicable directions:
+------------------------------+------------------------+
| Legacy (COT) Metric Names | Directions |
+------------------------------+------------------------+
| Open Interest | No direction |
| Noncommercial Positions | Long, Short, Spreading |
| Commercial Positions | Long, Short |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No direction |
| Traders Noncommercial | Long, Short, Spreading |
| Traders Commercial | Long, Short |
| Traders Total Reportable | Long, Short |
| Concentration Gross LT 4 TDR | Long, Short |
| Concentration Gross LT 8 TDR | Long, Short |
| Concentration Net LT 4 TDR | Long, Short |
| Concentration Net LT 8 TDR | Long, Short |
+------------------------------+------------------------+
+-----------------------------------+------------------------+
| Disaggregated (COT2) Metric Names | Directions |
+-----------------------------------+------------------------+
| Open Interest | No Direction |
| Producer Merchant Positions | Long, Short |
| Swap Positions | Long, Short, Spreading |
| Managed Money Positions | Long, Short, Spreading |
| Other Reportable Positions | Long, Short, Spreading |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No Direction |
| Traders Producer Merchant | Long, Short |
| Traders Swap | Long, Short, Spreading |
| Traders Managed Money | Long, Short, Spreading |
| Traders Other Reportable | Long, Short, Spreading |
| Traders Total Reportable | Long, Short |
| Concentration Gross LE 4 TDR | Long, Short |
| Concentration Gross LE 8 TDR | Long, Short |
| Concentration Net LE 4 TDR | Long, Short |
| Concentration Net LE 8 TDR | Long, Short |
+-----------------------------------+------------------------+
+-------------------------------+------------------------+
| Financial (COT3) Metric Names | Directions |
+-------------------------------+------------------------+
| Open Interest | No Direction |
| Dealer Positions | Long, Short, Spreading |
| Asset Manager Positions | Long, Short, Spreading |
| Leveraged Funds Positions | Long, Short, Spreading |
| Other Reportable Positions | Long, Short, Spreading |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No Direction |
| Traders Dealer | Long, Short, Spreading |
| Traders Asset Manager | Long, Short, Spreading |
| Traders Leveraged Funds | Long, Short, Spreading |
| Traders Other Reportable | Long, Short, Spreading |
| Traders Total Reportable | Long, Short |
| Concentration Gross LE 4 TDR | Long, Short |
| Concentration Gross LE 8 TDR | Long, Short |
| Concentration Net LE 4 TDR | Long, Short |
| Concentration Net LE 8 TDR | Long, Short |
+-------------------------------+------------------------+
Example usage
This code line retrieves "Noncommercial Positions (Long)" data, without options information, from the "Legacy" report for the chart symbol's root, base currency, or quote currency:
float nonCommercialLong = commitmentOfTraders("Noncommercial Positions", "Long", false)
This example retrieves "Managed Money Positions (Short)" data, with options included, from the "Disaggregated" report:
float disaggregatedData = commitmentOfTraders("Managed Money Positions", "Short", true, "", "Disaggregated")
█ NOTES
• This library uses dynamic requests , allowing dynamic ("series") arguments for the parameters defining the context (ticker ID, timeframe, etc.) of a `request.*()` function call. With this feature, a single `request.*()` call instance can flexibly retrieve data from different feeds across historical executions. Additionally, scripts can use such calls in the local scopes of loops, conditional structures, and even exported library functions, as demonstrated in this script. All scripts coded in Pine Script™ v6 have dynamic requests enabled by default. To learn more about the behaviors and limitations of this feature, see the Dynamic requests section of the Pine Script™ User Manual.
• The library's example code offers a simple demonstration of the exported functions. The script retrieves available data using the function specified by the "Series type" input. The code requests a FRED series or COT (Legacy), FINRA Short Sale Volume, or Open Interest series for the chart's symbol with specific parameters, then plots the retrieved data as a step-line with diamond markers.
Look first. Then leap.
█ EXPORTED FUNCTIONS
This library exports the following functions:
fred(fredCode, gaps)
Requests a value from a specified Federal Reserve Economic Data (FRED) series. FRED is a comprehensive source that hosts numerous U.S. economic datasets. To explore available FRED datasets and codes, search for specific categories or keywords at fred.stlouisfed.org Calls to this function count toward a script's `request.*()` call limit.
Parameters:
fredCode (series string) : The unique identifier of the FRED series. The function uses the value to create a valid ticker ID for retrieving FRED data in the format `"FRED:fredCode"`. For example, `"GDP"` refers to the "Gross Domestic Product" series ("FRED:GDP"), and `"GFDEBTN"` refers to the "Federal Debt: Total Public Debt" series ("FRED:GFDEBTN").
gaps (simple bool) : Optional. If `true`, the function returns a non-na value only when a new value is available from the requested context. If `false`, the function returns the latest retrieved value when new data is unavailable. The default is `false`.
Returns: (float) The value from the requested FRED series.
finraShortSaleVolume(symbol, gaps, repaint)
Requests FINRA daily short sale volume data for a specified symbol from one of the following exchanges: NASDAQ, NYSE, NYSE ARCA. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request short sale volume data. If the specified value contains an exchange prefix, it must be one of the following: "NASDAQ", "NYSE", "AMEX", "BATS".
gaps (simple bool) : Optional. If `true`, the function returns a non-na value only when a new value is available from the requested context. If `false`, the function returns the latest retrieved value when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the chart's timeframe is intraday, the value requested on realtime bars may change its time offset after the script restarts its executions. If `false`, the function returns the last confirmed period's values to avoid repainting. The default is `true`.
Returns: (float) The short sale volume for the specified symbol or the chart's symbol.
openInterestFutures(symbol, gaps, repaint)
Requests EOD open interest (OI) and OI rising information for a valid futures symbol. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request open interest data.
gaps (simple bool) : Optional. If `true`, the function returns non-na values only when new values are available from the requested context. If `false`, the function returns the latest retrieved values when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the chart's timeframe is intraday, the value requested on realtime bars may change its time offset after the script restarts its executions. If `false`, the function returns the last confirmed period's values to avoid repainting. The default is `true`.
Returns: ( ) A tuple containing the following values:
- The closing OI value for the symbol.
- `true` if the closing OI is above the previous period's value, `false` otherwise.
openInterestCrypto(symbol, timeframe, gaps, repaint)
Requests opening, high, low, and closing open interest (OI) data and OI rising information for a valid cryptocurrency contract on a specified timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request open interest data.
timeframe (series string) : The timeframe of the data request. If the timeframe is lower than the chart's timeframe, it causes a runtime error.
gaps (simple bool) : Optional. If `true`, the function returns non-na values only when new values are available from the requested context. If `false`, the function returns the latest retrieved values when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the `timeframe` represents a higher timeframe, the function returns unconfirmed values from the timeframe on realtime bars, which repaint when the script restarts its executions. If `false`, it returns only confirmed higher-timeframe values to avoid repainting. The default is `true`.
Returns: ( ) A tuple containing the following values:
- The opening, high, low, and closing OI values for the symbol, respectively.
- `true` if the closing OI is above the previous period's value, `false` otherwise.
commitmentOfTraders(metricName, metricDirection, includeOptions, CFTCCode, typeCOT, mode, metricType)
Requests Commitment of Traders (COT) data with specified parameters. This function provides a simplified way to access CFTC COT data available on TradingView. Calls to this function count toward a script's `request.*()` call limit. For more advanced tools and detailed information about COT data, see TradingView's LibraryCOT library.
Parameters:
metricName (series string) : One of the valid metric names listed in the library's documentation and source code.
metricDirection (series string) : Metric direction. Possible values are: "Long", "Short", "Spreading", and "No direction". Consult the library's documentation or code to see which direction values apply to the specified metric.
includeOptions (series bool) : If `true`, the COT symbol includes options information. Otherwise, it does not.
CFTCCode (series string) : Optional. The CFTC code for the asset. For example, wheat futures (root "ZW") have the code "001602". If one is not specified, the function will attempt to get a valid code for the chart symbol's root, base currency, or main currency.
typeCOT (series string) : Optional. The type of report to request. Possible values are: "Legacy", "Disaggregated", "Financial". The default is "Legacy".
mode (series string) : Optional. Specifies the information the function extracts from a symbol. Possible modes are:
- "Root": The function extracts the futures symbol's root prefix information (e.g., "ES" for "ESH2020").
- "Base currency": The function extracts the first currency from a currency pair (e.g., "EUR" for "EURUSD").
- "Currency": The function extracts the currency of the symbol's quoted values (e.g., "JPY" for "TSE:9984" or "USDJPY").
- "Auto": The function tries the first three modes (Root -> Base currency -> Currency) until it finds a match.
The default is "Auto". If the specified mode is not available for the symbol, it causes a runtime error.
metricType (series string) : Optional. The metric type. Possible values are: "All", "Old", "Other". The default is "All".
Returns: (float) The specified Commitment of Traders data series. If no data is available, it causes a runtime error.
Fair Value Gap [UkutaLabs]█ OVERVIEW
Fair Value Gaps are price jumps caused by the imbalance buying and selling pressures in trading and are most commonly used amongst price action traders. Fair Value Gaps are formed via a three-candle sequence in which a large candle’s neighbouring candles’ upper and lower wicks do not fully overlap the large candle.
The Fair Value Gaps Indicator also supports Multi Time Frame Plotting, allowing you to plot the Fair Value Gaps from higher time frames onto lower time frame charts.
The Fair Value Gaps Indicator is a powerful trading toolkit that provides users with more information than they would typically have available to them by allowing them to configure several charts worth of information onto one single chart.
█ USAGE
The script automatically identifies imbalances between buying and selling pressure in the market in real time, offering traders valuable insight into current market sentiment. These gaps are considered to be levels where the supply and demand of a commodity are imbalanced, and the price tends to return to fill these gaps (But are not guaranteed to).
The Fair Value Gaps Indicator also allows gaps from higher time frames to be drawn on lower time frame charts, providing traders with more information than they would typically have access to to further simplify the decision making process.
█ SETTINGS
Configuration
• Show Labels: Determines whether labels that identify which time frame a FVG is calculated from.
• Max FVG Display: Determines the limit to the number of FVGs that can be drawn from all time frames. Set this value to 0 to remove this limit.
Current Time Frame
• Display: Determines whether or not FVGs from the current time frame will be drawn on the chart.
• Bullish Color: Determines the color of Bullish FVGs calculated from the current time frame.
• Bearish Color: Determines the color of Bearish FVGs calculated from the current time frame.
5 Minute (Higher Time Frame)
• Display: Determines whether or not FVGs from the 5 minute time frame will be drawn on the chart.
• Bullish Color: Determines the color of Bullish FVGs calculated from the 5 minute time frame.
• Bearish Color: Determines the color of Bearish FVGs calculated from the 5 minute time frame.
15 Minute (Higher Time Frame)
• Display: Determines whether or not FVGs from the 15 minute time frame will be drawn on the chart.
• Bullish Color: Determines the color of Bullish FVGs calculated from the 15 minute time frame.
• Bearish Color: Determines the color of Bearish FVGs calculated from the 15 minute time frame.
30 Minute (Higher Time Frame)
• Display: Determines whether or not FVGs from the 30 minute time frame will be drawn on the chart.
• Bullish Color: Determines the color of Bullish FVGs calculated from the 30 minute time frame.
• Bearish Color: Determines the color of Bearish FVGs calculated from the 30 minute time frame.
60 Minute (Higher Time Frame)
• Display: Determines whether or not FVGs from the 60 minute time frame will be drawn on the chart.
• Bullish Color: Determines the color of Bullish FVGs calculated from the 60 minute time frame.
• Bearish Color: Determines the color of Bearish FVGs calculated from the 60 minute time frame.
240 Minute (Higher Time Frame)
• Display: Determines whether or not FVGs from the 240 minute time frame will be drawn on the chart.
• Bullish Color: Determines the color of Bullish FVGs calculated from the 240 minute time frame.
• Bearish Color: Determines the color of Bearish FVGs calculated from the 240 minute time frame.
Daily (Higher Time Frame)
• Display: Determines whether or not FVGs from the daily time frame will be drawn on the chart.
• Bullish Color: Determines the color of Bullish FVGs calculated from the daily time frame.
• Bearish Color: Determines the color of Bearish FVGs calculated from the daily time frame.
FVG Breakaway/3rd Candle (Arjo) [MK]Simple script to identify FVGs (Fair Value Gaps) on the current chart timeframe. The script differs from other FVG indicators on the Tradingview platform by using Arjos 3rd candle rule to identify which gaps are 'Breakway Gaps' and which Gaps are likely to be returned to.
NOTE: As with all 'trading rules' this theory is not 100% accurate.
default settings:
Breakaway Gaps = YELLOW
Gaps that price may return to = GREEN
Mitigated Gaps = 100% TRANSPARENT
What is a FVG:
A FVG is a price area defined by a 3 candle pattern. For a bullish FVG, the low of the 3rd candle must be higher than the high of the 1st candle. This then leaves an area that is drawn as in the example below:
A bearish FVG is defined by the high of the 3rd candle being lower than the low of the 1st candle, as shown in the example below:
FVGs can act like magnets where price will either retrace to or reach for, therefore they can be used as entry points and also for take profit target levels.
If for example, a trader would like to use an FVG for an entry, it would be useful to know which FVGs are more likely for price to re-enter and which FVG will be left un-touched. FVGs that are likely to be left un-touched by price are called 'Breakaway Gaps'.
How do we define a 'Breakaway Gap':
First we identify FVGs using the rules stated above, then we look to see where the 3rd candle closed in relation to the 2nd candle. For a bullish 'Breakaway Gap' we want to see the 3rd candle close above the high of the 2nd candle. An example of a bullish Breakaway Gap is shown in the example below:
A bearish 'Breakaway Gap' is defined by the close of the 3rd candle being lower than the low of the 2nd candle. An example is shown below:
How do we define an FVG that price may return to:
Any gap that does not meet the above rules for a 'Breakway Gap' is therefore considered an FVG that price may return to. So for a bullish FVG that price may return to we would look to see if the close of the 3rd candle is above the high of the 2nd candle. If it is not above the high of the 2nd candle then it more likely that price will retrace into the FVG before continuing higher. An example is shown below:
A bearish gap that price may return to is defined by the close of the 3rd candle not being lower than the low of the 2nd candle. An example is shown below:
The indicator is based on the teachings of 'Arjo'. Note: breakaway gaps will only remain 'breakaway' until a liquidity level is reached. Breakaways therefore do not remain 'breakaway' forever. Users of the indicators must fully comprehend this theory before using the indicator with live markets.
Users of the script should be fully aware of this concept and also have conducted thorough backtesting using a large data set before using this indicator with live accounts.