FVG w/ Fibs [QuantVue]The "FVG w/ Fibs" indicator is a trading tool designed to identify and visualize Fair Value Gaps (FVGs) while overlaying two Fibonacci retracement levels.
• Bullish FVG: Occurs when the low of the current bar is higher than the high of two bars ago, and the previous close is higher than the high of two bars ago.
• Bearish FVG: Occurs when the high of the current bar is lower than the low of two bars ago, and the previous close is lower than the low of two bars ago.
The indicator filters these gaps based on user-defined criteria such as the minimum percentage size of the gap.
Once identified, these FVGs are highlighted on the chart using customizable boxes and the 50% and 61.8% (default settings) Fibonacci retracement levels are calculated and drawn based on the size of the identified FVG.
• Dynamically updates and extends the boxes as the price evolves.
• Alerts / visual changes for FVGs that get filled.
• User option for fills by Wicks or Close
• User-customizable settings for box colors, styles, and Fibonacci level appearances
Give this indicator a BOOST and COMMENT your thoughts!
We hope you enjoy.
Cheers!
Cerca negli script per "fair value gap"
FvgPanel█ OVERVIEW
This library provides functionalities for creating and managing a display panel within a Pine Script™ indicator. Its primary purpose is to offer a structured way to present Fair Value Gap (FVG) information, specifically the nearest bullish and bearish FVG levels across different timeframes (Current, MTF, HTF), directly on the chart. The library handles the table's structure, header initialization, and dynamic cell content updates.
█ CONCEPTS
The core of this library revolves around presenting summarized FVG data in a clear, tabular format. Key concepts include:
FVG Data Aggregation and Display
The panel is designed to show at-a-glance information about the closest active FVG mitigation levels. It doesn't calculate these FVGs itself but relies on the main script to provide this data. The panel is structured with columns for timeframes (TF), Bullish FVGs, and Bearish FVGs, and rows for "Current" (LTF), "MTF" (Medium Timeframe), and "HTF" (High Timeframe).
The `panelData` User-Defined Type (UDT)
To facilitate the transfer of information to be displayed, the library defines a UDT named `panelData`. This structure is central to the library's operation and is designed to hold all necessary values for populating the panel's data cells for each relevant FVG. Its fields include:
Price levels for the nearest bullish and bearish FVGs for LTF, MTF, and HTF (e.g., `nearestBullMitLvl`, `nearestMtfBearMitLvl`).
Boolean flags to indicate if these FVGs are classified as "Large Volume" (LV) (e.g., `isNearestBullLV`, `isNearestMtfBearLV`).
Color information for the background and text of each data cell, allowing for conditional styling based on the FVG's status or proximity (e.g., `ltfBullBgColor`, `mtfBearTextColor`).
The design of `panelData` allows the main script to prepare all display-related data and styling cues in one object, which is then passed to the `updatePanel` function for rendering. This separation of data preparation and display logic keeps the library focused on its presentation task.
Visual Cues and Formatting
Price Formatting: Price levels are formatted to match the instrument's minimum tick size using an internal `formatPrice` helper function, ensuring consistent and accurate display.
Large FVG Icon: If an FVG is marked as a "Large Volume" FVG in the `panelData` object, a user-specified icon (e.g., an emoji) is prepended to its price level in the panel, providing an immediate visual distinction.
Conditional Styling: The background and text colors for each FVG level displayed in the panel can be individually controlled via the `panelData` object, enabling the main script to implement custom styling rules (e.g., highlighting the overall nearest FVG across all timeframes).
Handling Missing Data: If no FVG data is available for a particular cell (i.e., the corresponding level in `panelData` is `na`), the panel displays "---" and uses a specified background color for "Not Available" cells.
█ CALCULATIONS AND USE
Using the `FvgPanel` typically involves a two-stage process: initialization and dynamic updates.
Step 1: Panel Creation
First, an instance of the panel table is created once, usually during the script's initial setup. This is done using the `createPanel` function.
Call `createPanel()` with parameters defining its position on the chart, border color, border width, header background color, header text color, and header text size.
This function initializes the table with three columns ("TF", "Bull FVG", "Bear FVG") and three data rows labeled "Current", "MTF", and "HTF", plus a header row.
Store the returned `table` object in a `var` variable to persist it across bars.
// Example:
var table infoPanel = na
if barstate.isfirst
infoPanel := panel.createPanel(
position.top_right,
color.gray,
1,
color.new(color.gray, 50),
color.white,
size.small
)
Step 2: Panel Updates
On each bar, or whenever the FVG data changes (typically on `barstate.islast` or `barstate.isrealtime` for efficiency), the panel's content needs to be refreshed. This is done using the `updatePanel` function.
Populate an instance of the `panelData` UDT with the latest FVG information. This includes setting the nearest bullish/bearish mitigation levels for LTF, MTF, and HTF, their LV status, and their desired background and text colors.
Call `updatePanel()`, passing the persistent `table` object (from Step 1), the populated `panelData` object, the icon string for LV FVGs, the default text color for FVG levels, the background color for "N/A" cells, and the general text size for the data cells.
The `updatePanel` function will then clear previous data and fill the table cells with the new values and styles provided in the `panelData` object.
// Example (inside a conditional block like 'if barstate.islast'):
var panelData fvgDisplayData = panelData.new()
// ... (logic to populate fvgDisplayData fields) ...
// fvgDisplayData.nearestBullMitLvl = ...
// fvgDisplayData.ltfBullBgColor = ...
// ... etc.
if not na(infoPanel)
panel.updatePanel(
infoPanel,
fvgDisplayData,
"🔥", // LV FVG Icon
color.white,
color.new(color.gray, 70), // NA Cell Color
size.small
)
This workflow ensures that the panel is drawn only once and its cells are efficiently updated as new data becomes available.
█ NOTES
Data Source: This library is solely responsible for the visual presentation of FVG data in a table. It does not perform any FVG detection or calculation. The calling script must compute or retrieve the FVG levels, LV status, and desired styling to populate the `panelData` object.
Styling Responsibility: While `updatePanel` applies colors passed via the `panelData` object, the logic for *determining* those colors (e.g., highlighting the closest FVG to the current price) resides in the calling script.
Performance: The library uses `table.cell()` to update individual cells, which is generally more efficient than deleting and recreating the table on each update. However, the frequency of `updatePanel` calls should be managed by the main script (e.g., using `barstate.islast` or `barstate.isrealtime`) to avoid excessive processing on historical bars.
`series float` Handling: The price level fields within the `panelData` UDT (e.g., `nearestBullMitLvl`) can accept `series float` values, as these are typically derived from price data. The internal `formatPrice` function correctly handles `series float` for display.
Dependencies: The `FvgPanel` itself is self-contained and does not import other user libraries. It uses standard Pine Script™ table and string functionalities.
█ EXPORTED TYPES
panelData
Represents the data structure for populating the FVG information panel.
Fields:
nearestBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point (bottom for bull) on the LTF.
isNearestBullLV (series bool) : True if the nearest bullish FVG on the LTF is a Large Volume FVG.
ltfBullBgColor (series color) : Background color for the LTF bullish FVG cell in the panel.
ltfBullTextColor (series color) : Text color for the LTF bullish FVG cell in the panel.
nearestBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point (top for bear) on the LTF.
isNearestBearLV (series bool) : True if the nearest bearish FVG on the LTF is a Large Volume FVG.
ltfBearBgColor (series color) : Background color for the LTF bearish FVG cell in the panel.
ltfBearTextColor (series color) : Text color for the LTF bearish FVG cell in the panel.
nearestMtfBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point on the MTF.
isNearestMtfBullLV (series bool) : True if the nearest bullish FVG on the MTF is a Large Volume FVG.
mtfBullBgColor (series color) : Background color for the MTF bullish FVG cell.
mtfBullTextColor (series color) : Text color for the MTF bullish FVG cell.
nearestMtfBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point on the MTF.
isNearestMtfBearLV (series bool) : True if the nearest bearish FVG on the MTF is a Large Volume FVG.
mtfBearBgColor (series color) : Background color for the MTF bearish FVG cell.
mtfBearTextColor (series color) : Text color for the MTF bearish FVG cell.
nearestHtfBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point on the HTF.
isNearestHtfBullLV (series bool) : True if the nearest bullish FVG on the HTF is a Large Volume FVG.
htfBullBgColor (series color) : Background color for the HTF bullish FVG cell.
htfBullTextColor (series color) : Text color for the HTF bullish FVG cell.
nearestHtfBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point on the HTF.
isNearestHtfBearLV (series bool) : True if the nearest bearish FVG on the HTF is a Large Volume FVG.
htfBearBgColor (series color) : Background color for the HTF bearish FVG cell.
htfBearTextColor (series color) : Text color for the HTF bearish FVG cell.
█ EXPORTED FUNCTIONS
createPanel(position, borderColor, borderWidth, headerBgColor, headerTextColor, headerTextSize)
Creates and initializes the FVG information panel (table). Sets up the header rows and timeframe labels.
Parameters:
position (simple string) : The position of the panel on the chart (e.g., position.top_right). Uses position.* constants.
borderColor (simple color) : The color of the panel's border.
borderWidth (simple int) : The width of the panel's border.
headerBgColor (simple color) : The background color for the header cells.
headerTextColor (simple color) : The text color for the header cells.
headerTextSize (simple string) : The text size for the header cells (e.g., size.small). Uses size.* constants.
Returns: The newly created table object representing the panel.
updatePanel(panelTable, data, lvIcon, defaultTextColor, naCellColor, textSize)
Updates the content of the FVG information panel with the latest FVG data.
Parameters:
panelTable (table) : The table object representing the panel to be updated.
data (panelData) : An object containing the FVG data to display.
lvIcon (simple string) : The icon (e.g., emoji) to display next to Large Volume FVGs.
defaultTextColor (simple color) : The default text color for FVG levels if not highlighted.
naCellColor (simple color) : The background color for cells where no FVG data is available ("---").
textSize (simple string) : The text size for the FVG level data (e.g., size.small).
Returns: _void
ICT Concepts: MML, Order Blocks, FVG, OTECore ICT Trading Concepts
These strategies are designed to identify high-probability trading opportunities by analyzing institutional order flow and market psychology.
1. Market Maker Liquidity (MML) / Liquidity Pools
Idea: Institutional traders ("market makers") place orders around key price levels where retail traders’ stop losses cluster (e.g., above swing highs or below swing lows).
Application: Look for "liquidity grabs" where price briefly spikes to these levels before reversing.
Example: If price breaks a recent high but reverses sharply, it may indicate a liquidity grab to trigger retail stops before a trend reversal.
2. Order Blocks (OB)
Idea: Institutional orders are often concentrated in specific price zones ("order blocks") where large buy/sell decisions occurred.
Application: Identify bullish order blocks (strong buying zones) or bearish order blocks (strong selling zones) on higher timeframes (e.g., 1H/4H charts).
Example: A bullish order block forms after a strong rally; price often retests this zone later as support.
3. Fair Value Gap (FVG)
Idea: A price imbalance occurs when candles gap without overlapping, creating an area of "unfair" price that the market often revisits.
Application: Trade the retracement to fill the FVG. A bullish FVG acts as support, and a bearish FVG acts as resistance.
Example: Three consecutive candles create a gap; price later returns to fill this gap, offering a entry point.
4. Time-Based Analysis (NY Session, London Kill Zones)
Idea: Institutional activity peaks during specific times (e.g., 7 AM – 11 AM New York time).
Application: Focus on trades during high-liquidity periods when banks and hedge funds are active.
Example: The "London Kill Zone" (2 AM – 5 AM EST) often sees volatility due to European market openings.
5. Optimal Trade Entry (OTE)
Idea: A retracement level (similar to Fibonacci retracement) where institutions re-enter trends after a pullback.
Application: Look for 62–79% retracements in a trend to align with institutional accumulation/distribution zones.
Example: In an uptrend, price retraces 70% before resuming upward—enter long here.
6. Stop Hunts
Idea: Institutions manipulate price to trigger retail stop losses before reversing direction.
Application: Avoid placing stops at obvious levels (e.g., above/below recent swings). Instead, use wider stops or wait for confirmation.
Dabel MS + FVGThis script is designed to assist traders by identifying market structures, imbalances, and potential trade opportunities using Break of Structure (BOS) and Market Structure Shifts (MSS). It visually highlights imbalances in price action, key pivots, and market structure changes, providing actionable information for making trading decisions.
Key features:
Imbalances Detection: Highlights bullish and bearish price gaps (Fair Value Gaps) using colored boxes. Users can choose the line style (solid, dashed, or dotted) for imbalance midlines.
Market Structure Analysis: Tracks pivot highs and lows to identify BOS and MSS in two separate market structures with adjustable pivot strengths.
Customizable Visualization: Allows users to choose line styles, colors, and display options for both imbalances and market structures.
Alerts: Alerts traders when BOS or MSS occur, helping to monitor the market effectively.
Trading Strategy
Imbalance Trading:
Imbalances (gaps) represent areas where supply or demand was left unfilled. These gaps often act as magnet zones where the price revisits to fill.
Bullish Imbalance: Look for buying opportunities when price enters a green imbalance zone.
Bearish Imbalance: Look for selling opportunities when price enters a red imbalance zone.
Use the midline of the imbalance box as a key reference point for potential reversals.
Break of Structure (BOS) and Market Structure Shift (MSS):
BOS: Indicates a continuation of the existing trend. For example:
Bullish BOS: Look for continuation in the uptrend after a high is broken.
Bearish BOS: Look for continuation in the downtrend after a low is broken.
MSS: Suggests a potential reversal in market structure. For example:
Bullish MSS: Indicates a possible shift from a bearish to bullish market.
Bearish MSS: Indicates a potential shift from a bullish to bearish market.
Multiple Market Structures:
This script provide two sets of market structures, allowing traders to compare short-term and long-term trends.
Adjust the pivot strength to suit your trading style (lower for intraday trading, higher for swing or positional trading).
Entry and Exit:
Entry: Look for entries near imbalances or after confirmed BOS/MSS in line with the overall trend.
Exit: Place stop-loss below/above recent pivots and take profit at nearby support/resistance or imbalance zones.
For New Traders
Focus on Basics: Understand what BOS and MSS mean and how they signal trend direction or reversals.
Use Alerts: Rely on the script's alert system to catch important moments without staring at charts all day.
Start Small: Test this strategy on a demo account before using it live. You can understand it more with practice.
Multi-Timeframe FVG [TFO]The goal of this indicator is to find Fair Value Gaps (FVGs) that overlap on multiple timeframes. FVGs are already meant to be “sensitive” areas where one might expect price to react from, therefore FVGs that overlap on multiple timeframes could provide even more confluence that there may be a reaction in said area (with proper context).
Mitigation Type allows users to select how FVGs should be mitigated, either by wick or by completely closing through the area.
The displacement option helps to filter out smaller FVGs by looking for areas where price ran rather quickly (causing displacement). This is done by comparing the candle that made the FVG to a fractional ATR value, so that one may fine-tune how much “larger” the candle range needs to be, relative to recent price action.
The timeframe alignment option allows users to select how many timeframes must be converging in order to draw FVGs. For instance, with all timeframes selected, a timeframe alignment value of 2 would require that there be overlapping FVGs on 2 or more timeframes. A value of 3 would require that there be overlapping FVGs on all 3 timeframes in order for them to be drawn.
Ayman Entry Signal – Ultimate PRO (Scalping Gold Settings)1. Overview
This indicator is a professional gold scalping tool built for TradingView using Pine Script v6.
It combines multiple price action and technical filters to generate high-probability Buy/Sell signals with built-in trade management features (TP1, TP2, SL, Break Even, Partial Close, Stats tracking).
It is optimized for XAUUSD but can be applied to other assets with proper setting adjustments.
2. Key Features
Multi-Condition Trade Signals – EMA trend, Break of Structure, Order Blocks, FVG, Liquidity Sweeps, Pin Bars, Higher Timeframe confirmation, Trend Cloud, SMA Cross, and ADX.
Full Trade Management – Auto-calculates lot size, SL, TP1, TP2, Break Even, Partial Close.
Dynamic Chart Drawing – Entry lines, SL/TP lines, trade boxes, and real-time PnL.
Statistics Panel – Tracks wins, losses, breakeven trades, and total PnL over selected dates.
Customizable Filters – All filters can be turned ON/OFF to match your strategy.
3. Main Inputs & Settings
Account Settings
Capital ($) – Total trading capital.
Risk Percentage (%) – Risk per trade.
TP to SL Ratio – Risk-to-reward ratio.
Value Per Point ($) – Value per pip/point for lot size calculation.
SL Buffer – Extra points added to SL to avoid stop hunts.
Take Profit Settings
TP1 % of Full Target – Fraction of TP1 compared to TP2.
Move SL to Entry after TP1? – Activates Break Even after TP1.
Break Even Buffer – Extra points when moving SL to BE.
Take Partial Close at TP1 – Option to close half at TP1.
Signal Filters
ATR Period – For SL/TP calculation buffer.
EMA Trend – Uses EMA 9/21 crossover for trend.
Break of Structure (BoS) – Requires structure break confirmation.
Order Block (OB) – Validates trades within OB zones.
Fair Value Gap (FVG) – Confirms trades inside FVGs.
Liquidity Sweep – Checks if liquidity zones are swept.
Pin Bar Confirmation – Uses candlestick patterns for extra confirmation.
Pin Bar Body Ratio – Controls strictness of Pin Bar filter.
Higher Timeframe Filters (HTF)
HTF EMA Confirmation – Confirms lower timeframe trades with higher timeframe trend.
HTF BoS – Confirms with higher timeframe structure break.
HTF Timeframe – Selects higher timeframe.
Advanced Filters
SuperTrend Filter – Confirms trades based on SuperTrend.
ADX Filter – Filters out low volatility periods.
SMA Cross Filter – Uses SMA 8/9 cross as filter.
Trend Cloud Filter – Uses EMA 50/200 as a cloud trend filter.
4. How It Works
Buy Signal Conditions
EMA 9 > EMA 21 (trend bullish)
Optional filters (BoS, OB, FVG, Liquidity Sweep, Pin Bar, HTF confirmations, ADX, SMA Cross, Trend Cloud) must pass if enabled.
When all active filters pass → Buy signal triggers.
Sell Signal Conditions
EMA 9 < EMA 21 (trend bearish)
Same filtering process but for bearish conditions.
When all active filters pass → Sell signal triggers.
5. Trade Execution & Management
When a signal triggers:
Lot size is auto-calculated based on risk % and SL distance.
SL is placed beyond recent swing high/low + ATR buffer.
TP1 and TP2 are calculated from the SL using the reward-to-risk ratio.
Break Even: If enabled, SL moves to entry price after TP1 is hit.
Partial Close: If enabled, half of the position closes at TP1.
Trade Exit: Full exit at TP2, SL hit, or partial close at TP1.
6. Chart Display
Entry Line – Shows entry price.
SL Line – Red dashed line at stop loss level.
TP1 Line – Lime dashed line for TP1.
TP2 Line – Green dashed line for TP2.
PnL Labels – Displays real-time profit/loss in $.
Trade Box – Visual area showing trade range.
Pin Bar Shapes – Optional, marks Pin Bars.
7. Statistics Panel
Stats Header – Shows “Stats”.
Total Trades
Wins
Losses
Breakeven Trades
Total PnL
Can be reset or filtered by date.
8. How to Use
Load the Indicator in TradingView.
Select Gold (XAUUSD) on your preferred scalping timeframe (1m, 5m, 15m).
Adjust settings:
Use default gold scalping settings for quick start.
Enable/disable filters according to your style.
Wait for a Buy/Sell alert.
Confirm visually that all desired conditions align.
Place trade with calculated lot size, SL, and TP levels shown on chart.
Let trade run – the indicator manages Break Even & Partial Close if enabled.
9. Recommended Timeframes
Scalping: 1m, 5m, 15m
Day Trading: 15m, 30m, 1H
Swing: 4H, Daily (adjust settings accordingly)
FVG (Nephew sam remake)Hello i am making my own FVG script inspired by Nephew Sam as his fvg code is not open source. My goal is to replicate his Script and then add in alerts and more functions. Thus, i spent few days trying to code. There is bugs such as lower time frame not showing higher time frame FVG.
This script automatically detects and visualizes Fair Value Gaps (FVGs) — imbalances between demand and supply — across multiple timeframes (15-minute, 1-hour, and 4-hour).
15m chart shows:
15m FVGs (green/red boxes)
1H FVGs (lime/maroon)
4H FVGs (faded green/red with borders) (Bugged For now i only see 1H appearing)
1H chart shows:
1H FVGs
4H FVGs
4H chart shows:
4H FVGs only
There is the function to auto close FVG when a future candle fully disrespected it.
You're welcome to:
🔧 Customize the appearance: adjust box colors, transparency, border style
🧪 Add alerts: e.g., when price enters or fills a gap
📅 Expand to Daily/Weekly: just copy the logic and plug in "D" or "W" as new layers
📈 Build confluence logic: combine this with order blocks, liquidity zones, or ICT concepts
🧠 Experiment with entry signals: e.g., candle confirmation on return to FVG
🚀 Improve performance: if you find a lighter way to track gaps, feel free to optimize!
SCE Price Action SuiteThis is an indicator designed to use past market data to mark key price action levels as well as provide a different kind of insight. There are 8 different features in the script that users can turn on and off. This description will go in depth on all 8 with chart examples.
#1 Absorption Zones
I defined Absorption Zones as follows.
//----------------------------------------------
//---------------Absorption---------------------
//----------------------------------------------
box absorptionBox = na
absorptionBar = ta.highest(bodySize, absorptionLkb)
bsab = ta.barssince(bool(ta.change(absorptionBar)))
if bsab == 0 and upBar and showAbsorption
absorptionBox := box.new(left = bar_index - 1, top = close, right = bar_index + az_strcuture, bottom = open, border_color = color.rgb(0, 80, 75), border_width = boxLineSize, bgcolor = color.rgb(0, 80, 75))
absorptionBox
else if bsab == 0 and downBar and showAbsorption
absorptionBox := box.new(left = bar_index - 1, top = close, right = bar_index + az_strcuture, bottom = open, border_color = color.rgb(105, 15, 15), border_width = boxLineSize, bgcolor = color.rgb(105, 15, 15))
absorptionBox
What this means is that absorption bars are defined as the bars with the largest bodies over a selected lookback period. Those large bodies represent areas where price may react. I was inspired by the concept of a Fair Value Gap for this concept. In that body price may enter to be a point of support or resistance, market participants get “absorbed” in the area so price can continue in whichever direction.
#2 Candle Wick Theory/Strategy
I defined Candle Wick Theory/Strategy as follows.
//----------------------------------------------
//---------------Candle Wick--------------------
//----------------------------------------------
highWick = upBar ? high - close : downBar ? high - open : na
lowWick = upBar ? open - low : downBar ? close - low : na
upWick = upBar ? close + highWick : downBar ? open + highWick : na
downWick = upBar ? open - lowWick : downBar ? close - lowWick : na
downDelivery = upBar and downBar and high > upWick and highWick > lowWick and totalSize > totalSize and barstate.isconfirmed and session.ismarket
upDelivery = downBar and upBar and low < downWick and highWick < lowWick and totalSize > totalSize and barstate.isconfirmed and session.ismarket
line lG = na
line lE = na
line lR = na
bodyMidpoint = math.abs(body) / 2
upWickMidpoint = math.abs(upWickSize) / 2
downWickkMidpoint = math.abs(downWickSize) / 2
if upDelivery and showCdTheory
cpE = chart.point.new(time, bar_index - 1, downWickkMidpoint)
cpE2 = chart.point.new(time, bar_index + bl, downWickkMidpoint)
cpG = chart.point.new(time, bar_index + bl, downWickkMidpoint * (1 + tp))
cpR = chart.point.new(time, bar_index + bl, downWickkMidpoint * (1 - sl))
cpG1 = chart.point.new(time, bar_index - 1, downWickkMidpoint * (1 + tp))
cpR1 = chart.point.new(time, bar_index - 1, downWickkMidpoint * (1 - sl))
lG := line.new(cpG1, cpG, xloc.bar_index, extend.none, color.green, line.style_solid, 1)
lE := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.white, line.style_solid, 1)
lR := line.new(cpR1, cpR, xloc.bar_index, extend.none, color.red, line.style_solid, 1)
lR
else if downDelivery and showCdTheory
cpE = chart.point.new(time, bar_index - 1, upWickMidpoint)
cpE2 = chart.point.new(time, bar_index + bl, upWickMidpoint)
cpG = chart.point.new(time, bar_index + bl, upWickMidpoint * (1 - tp))
cpR = chart.point.new(time, bar_index + bl, upWickMidpoint * (1 + sl))
cpG1 = chart.point.new(time, bar_index - 1, upWickMidpoint * (1 - tp))
cpR1 = chart.point.new(time, bar_index - 1, upWickMidpoint * (1 + sl))
lG := line.new(cpG1, cpG, xloc.bar_index, extend.none, color.green, line.style_solid, 1)
lE := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.white, line.style_solid, 1)
lR := line.new(cpR1, cpR, xloc.bar_index, extend.none, color.red, line.style_solid, 1)
lR
First I get the size of the wicks for the top and bottoms of the candles. This depends on if the bar is red or green. If the bar is green the wick is the high minus the close, if red the high minus the open, and so on. Next, the script defines the upper and lower bounds of the wicks for further comparison. If the candle is green, it's the open price minus the bottom wick. If the candle is red, it's the close price minus the bottom wick, and so on. Next we have the condition for when this strategy is present.
Down delivery:
Occurs when the previous candle is green, the current candle is red, and:
The high of the current candle is above the upper wick of the previous candle.
The size of the current candle's top wick is greater than its bottom wick.
The total size of the previous candle is greater than the total size of the current candle.
The current bar is confirmed (barstate.isconfirmed).
The session is during market hours (session.ismarket).
Up delivery:
Occurs when the previous candle is red, the current candle is green, and:
The low of the current candle is below the lower wick of the previous candle.
The size of the current candle's bottom wick is greater than its top wick.
The total size of the previous candle is greater than the total size of the current candle.
The current bar is confirmed.
The session is during market hours
Then risk is plotted from the percentage that users can input from an ideal entry spot.
#3 Candle Size Theory
I defined Candle Size Theory as follows.
//----------------------------------------------
//---------------Candle displacement------------
//----------------------------------------------
line lECD = na
notableDown = bodySize > bodySize * candle_size_sensitivity and downBar and session.ismarket and barstate.isconfirmed
notableUp = bodySize > bodySize * candle_size_sensitivity and upBar and session.ismarket and barstate.isconfirmed
if notableUp and showCdSizeTheory
cpE = chart.point.new(time, bar_index - 1, close)
cpE2 = chart.point.new(time, bar_index + bl_strcuture, close)
lECD := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.rgb(0, 80, 75), line.style_solid, 3)
lECD
else if notableDown and showCdSizeTheory
cpE = chart.point.new(time, bar_index - 1, close)
cpE2 = chart.point.new(time, bar_index + bl_strcuture, close)
lECD := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.rgb(105, 15, 15), line.style_solid, 3)
lECD
This plots candles that are “notable” or out of the ordinary. Candles that are larger than the last by a value users get to specify. These candles' highs or lows, if they are green or red, act as levels for support or resistance.
#4 Candle Structure Theory
I defined Candle Structure Theory as follows.
//----------------------------------------------
//---------------Structure----------------------
//----------------------------------------------
breakDownStructure = low < low and low < low and high > high and upBar and downBar and upBar and downBar and session.ismarket and barstate.isconfirmed
breakUpStructure = low > low and low > low and high < high and downBar and upBar and downBar and upBar and session.ismarket and barstate.isconfirmed
if breakUpStructure and showStructureTheory
cpE = chart.point.new(time, bar_index - 1, close)
cpE2 = chart.point.new(time, bar_index + bl_strcuture, close)
lE := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.teal, line.style_solid, 3)
lE
else if breakDownStructure and showStructureTheory
cpE = chart.point.new(time, bar_index - 1, open)
cpE2 = chart.point.new(time, bar_index + bl_strcuture, open)
lE := line.new(cpE, cpE2, xloc.bar_index, extend.none, color.red, line.style_solid, 3)
lE
It is a series of candles to create a notable event. 2 lower lows in a row, a lower high, then green bar, red bar, green bar is a structure for a breakdown. 2 higher lows in a row, a higher high, red bar, green bar, red bar for a break up.
#5 Candle Swing Structure Theory
I defined Candle Swing Structure Theory as follows.
//----------------------------------------------
//---------------Swing Structure----------------
//----------------------------------------------
line htb = na
line ltb = na
if totalSize * swing_struct_sense < totalSize and upBar and downBar and high > high and showSwingSturcture and session.ismarket and barstate.isconfirmed
cpS = chart.point.new(time, bar_index - 1, high)
cpE = chart.point.new(time, bar_index + bl_strcuture, high)
htb := line.new(cpS, cpE, xloc.bar_index, color = color.red, style = line.style_dashed)
htb
else if totalSize * swing_struct_sense < totalSize and downBar and upBar and low > low and showSwingSturcture and session.ismarket and barstate.isconfirmed
cpS = chart.point.new(time, bar_index - 1, low)
cpE = chart.point.new(time, bar_index + bl_strcuture, low)
ltb := line.new(cpS, cpE, xloc.bar_index, color = color.teal, style = line.style_dashed)
ltb
A bearish swing structure is defined as the last candle’s total size, times a scalar that the user can input, is less than the current candles. Like a size imbalance. The last bar must be green and this one red. The last high should also be less than this high. For a bullish swing structure the same size imbalance must be present, but we need a red bar then a green bar, and the last low higher than the current low.
#6 Fractal Boxes
I define the Fractal Boxes as follows
//----------------------------------------------
//---------------Fractal Boxes------------------
//----------------------------------------------
box b = na
int indexx = na
if bar_index % (n * 2) == 0 and session.ismarket and showBoxes
b := box.new(left = bar_index, top = topBox, right = bar_index + n, bottom = bottomBox, border_color = color.rgb(105, 15, 15), border_width = boxLineSize, bgcolor = na)
indexx := bar_index + 1
indexx
The idea of this strategy is that the market is fractal. It is considered impossible to be able to tell apart two different time frames from just the chart. So inside the chart there are many many breakouts and breakdowns happening as price bounces around. The boxes are there to give you the view from your timeframe if the market is in a range from a time frame that would be higher than it. Like if we are inside what a larger time frame candle’s range. If we break out or down from this, we might be able to trade it. Users can specify a lookback period and the box is that period’s, as an interval, high and low. I say as an interval because it is plotted every n * 2 bars. So we get a box, price moves, then a new box.
#7 Potential Move Width
I define the Potential Move Width as follows
//----------------------------------------------
//---------------Move width---------------------
//----------------------------------------------
velocity = V(n)
line lC = na
line l = na
line l2 = na
line l3 = na
line l4 = na
line l5 = na
line l6 = na
line l7 = na
line l8 = na
line lGFractal = na
line lRFractal = na
cp2 = chart.point.new(time, bar_index + n, close + velocity)
cp3 = chart.point.new(time, bar_index + n, close - velocity)
cp4 = chart.point.new(time, bar_index + n, close + velocity * 5)
cp5 = chart.point.new(time, bar_index + n, close - velocity * 5)
cp6 = chart.point.new(time, bar_index + n, close + velocity * 10)
cp7 = chart.point.new(time, bar_index + n, close - velocity * 10)
cp8 = chart.point.new(time, bar_index + n, close + velocity * 15)
cp9 = chart.point.new(time, bar_index + n, close - velocity * 15)
cpG = chart.point.new(time, bar_index + n, close + R)
cpR = chart.point.new(time, bar_index + n, close - R)
if ((bar_index + n) * 2 - bar_index) % n == 0 and session.ismarket and barstate.isconfirmed and showPredictionWidtn
cp = chart.point.new(time, bar_index, close)
cpG1 = chart.point.new(time, bar_index, close + R)
cpR1 = chart.point.new(time, bar_index, close - R)
l := line.new(cp, cp2, xloc.bar_index, extend.none, color.aqua, line.style_solid, 1)
l2 := line.new(cp, cp3, xloc.bar_index, extend.none, color.aqua, line.style_solid, 1)
l3 := line.new(cp, cp4, xloc.bar_index, extend.none, color.red, line.style_solid, 1)
l4 := line.new(cp, cp5, xloc.bar_index, extend.none, color.red, line.style_solid, 1)
l5 := line.new(cp, cp6, xloc.bar_index, extend.none, color.teal, line.style_solid, 1)
l6 := line.new(cp, cp7, xloc.bar_index, extend.none, color.teal, line.style_solid, 1)
l7 := line.new(cp, cp8, xloc.bar_index, extend.none, color.blue, line.style_solid, 1)
l8 := line.new(cp, cp9, xloc.bar_index, extend.none, color.blue, line.style_solid, 1)
l8
By using the past n bar’s velocity, or directional speed, every n * 2 bars. I can use it to scale the close value and get an estimate for how wide the next moves might be.
#8 Linear regression
//----------------------------------------------
//---------------Linear Regression--------------
//----------------------------------------------
lr = showLR ? ta.linreg(close, n, 0) : na
plot(lr, 'Linear Regression', color.blue)
I used TradingView’s built in linear regression to not reinvent the wheel. This is present to see past market strength of weakness from a different perspective.
User input
Users can control a lot about this script. For the strategy based plots you can enter what you want the risk to be in percentages. So the default 0.01 is 1%. You can also control how far forward the line goes.
Look back at where it is needed as well as line width for the Fractal Boxes are controllable. Also users can check on and off what they would like to see on the charts.
No indicator is 100% reliable, do not follow this one blindly. I encourage traders to make their own decisions and not trade solely based on technical indicators. I encourage constructive criticism in the comments below. Thank you.
SMC Structures and FVGThe SMC Structures and FVG indicator allows the user to easily identify trend continuations (Break Of Structure) or trend changes (CHange Of CHaracter) on any time frame. In addition, it display all FVG areas, whether they are bullish, bearish, or even mitigated.
Fair Value Gap :
The FVG process shows every bullish, bearish or even mitigated FVG liquidity area. When a FVG is fully mitigated it will directly be removed of the chart.
There is an history of FVG to show. By selecting specific number of FVG to show in the chart, the user can focus its analysis on lasts liquidity area.
Here's the rules for FVG color :
Green when it's a bullish FVG and has not been mitigated
Red when it's a bearish FVG and has not been mitigated
Gray when the bullish / bearish FVG has been mitigated
Removed when the FVG has been fully mitigated
Structures analysis:
The Structure process show BOS in grey lines and CHoCH in yellow lines. It shows to the user the lasts price action pattern.
The blue lines are the high value and the low value of the current structure.
Inversion GapsAn inverted fair value gap (FVG) occurs when candles start closing below a bullish FVG or above a bearish FVG and in this case, support FVGs become resistances and vice versa. This is a smart money concept introduced by ICT. While we a number of have indicators for FVGs, we don't have any for inversion FVGs. This indicator is just for that - it shows FVGs only after they're inverted.
The meat of it comes from being able to plot HTF inverted FVGs in LTF. In the above BTC chart, you can see M15 inverted FVGs plotted on M1 chart and you can see price respecting them. Mitigations can also be shown as lines (as you can see in the chart).
You can also setup alerts for formation and mitigation of such inversion FVGs.
DTC FX+DTC FX+
All in One Indicator for Forex Markets
A comprehensive FX session indicator designed to help traders identify and analyze different trading sessions throughout the day.
This indicator provides real-time detection of major FX trading sessions including New York, London, and Tokyo sessions. It displays session ranges, highs and lows, and includes volume analysis to help identify periods of increased market activity.
Key features include:
• Real-time FX Session Detection (NY, London, Tokyo)
• Live Daily Candle Overlay with OHLC tracking
• Volume Bars for Strong Volume Detection
• Session Trend Detection
• Dynamic Session Status Tables
• Daily Dividers and Session Box Visualization
• Custom Trading Rules Display
• Watermark System
• Moving Averages (EMA, WMA, SMA)
• Fair Value Gaps (FVG) Detection
• Support & Resistance Levels (CISD)
• Gap Violations Analysis
• Session-specific Volume Analysis
• Customizable Session Times and Colors
• Theme-aware Display Options
• Multiple Watermark Styles
• Session Range and Extremes Display
• Professional Session Dashboard
The session dashboard provides a clear overview of current market conditions, while customizable trading rules can be displayed directly on the chart. Session boxes and dividers help visualize different trading periods, making it easier to understand market structure across different time zones.
All session times, colors, and display options are fully customizable to match your trading preferences. The indicator works across multiple timeframes and includes theme-aware display options for both light and dark chart themes.
Whether you're a day trader looking for session-based opportunities or a swing trader analyzing market structure, this indicator provides the tools needed to better understand FX market dynamics across different trading sessions.
SMC Yardımcısı - TR (Optimize v2.1)BOS (Break of Structure)
Labels when price closes above/below a previous swing high/low.
Shows continuation of the current trend.
CHOCH (Change of Character)
Appears when trend direction shifts (from bullish to bearish or vice versa).
Marks possible market reversals.
FVG (Fair Value Gap)
Highlights price imbalance zones (3-candle gaps).
These are often areas where price later returns to “fill” liquidity.
OTE (Optimal Trade Entry, 62–79% retracement)
Uses the last swing high and swing low.
Draws the Fibonacci retracement zone (62–79%), considered a common institutional entry area.
BSL (Buy Side Liquidity – Equal Highs)
Detects equal highs and plots them as liquidity pools.
Shows where buy-side liquidity/stop hunts may occur.
SSL (Sell Side Liquidity – Equal Lows)
Detects equal lows and plots them.
Indicates sell-side liquidity levels.
Inducement / Liquidity Sweep
If price wicks above BSL or below SSL but closes back inside, a “sweep” label is shown.BOS (Break of Structure – Yapı Kırılımı)
Three-Step 9:30 Range Scalping# Three-Step 9:30 Range Scalping Strategy Rules
## Step 1: Mark the Levels (9:30 AM)
- Wait for the **first 5-minute candle** starting at 9:30 AM EST to close
- Mark the **HIGH** and **LOW** of this candle
- Switch to **1-minute chart** for trading
## Step 2: Find Your Entry (Trade for 1 hour only: 9:30-10:30 AM)
### BREAK Entry
- Need: **Fair Value Gap (FVG)** + **ANY** of the 3 FVG candles closes outside the range
- FVG = Gap between candle wicks (3-candle pattern)
### TRAP Entry
- Need: Break outside range → Retest back inside → Close back outside again
### REVERSAL Entry
- Need: Failed break in one direction → Opposite FVG back into the range
## Step 3: Trade Management
### Stop Loss:
- **Break/Trap**: Low/High of first candle that closed outside the range
- **Reversal**: Low/High of first candle in the FVG pattern
### Take Profit:
- **Always 2:1 risk-to-reward ratio**
- If you risk $100, you make $200
## Key Rules:
- ✅ **Body close** outside range (not just wicks)
- ✅ Trade on **1-minute chart** only
- ✅ Only trade **first hour** (9:30-10:30 AM EST)
- ✅ **Fixed 2:1** take profit every time
- ✅ One strategy, stay consistent
**That's it. No complicated indicators, no higher timeframe bias, no guesswork.**
MistaB SMC Navigation ToolkitMistaB SMC Navigation Toolkit
A complete Smart Money Concepts (SMC) toolkit designed for precision navigation of market structure, order flow, and premium/discount trading zones. Perfect for traders following ICT-style concepts and multi-timeframe confluence.
Features
✅ Order Blocks (OBs)
• Automatic bullish & bearish OB detection
• Optional displacement & high-volume filters
• Midline display for quick equilibrium view
• Auto-expiry and broken OB cleanup
✅ Fair Value Gaps (FVGs)
• Bullish & bearish gap detection
• HTF bias filtering for higher accuracy
• Compact boxes with labels
• Automatic removal when filled
✅ Market Structure (BoS / CHoCH)
• Fractal-based swing detection
• Break of Structure & Change of Character labeling
• Dynamic HTF bias dimming
✅ Premium / Discount Zones
• Auto-calculated mid-level
• Highlighted zones for optimal trade placement
✅ Higher Timeframe (HTF) Confirmation
• Configurable confirmation timeframe
• On-chart HTF status label (Bullish / Bearish / Not Required)
✅ Automatic Cleanup System
• Fast or delayed cleanup for expired/broken zones
• Dimmed colors for invalidated levels
How to Use
Set your preferred HTF in the settings.
Look for OB/FVGs aligned with HTF bias.
Enter in discount zones for longs or premium zones for shorts.
Confirm with BoS / CHoCH signals before entry.
Manage trades towards opposing liquidity zones or HTF levels.
Disclaimer
This indicator is for educational purposes only. It does not provide financial advice or guarantee future results. Always practice proper risk management and test thoroughly before live trading.
ICT SMC Custom — BOS/MSS + OB + FVGWant me to fill that box? Here’s a ready‑to‑paste description for your publish screen:
⸻
ICT SMC Custom — BOS/MSS + OB + FVG (Crypto‑friendly)
A clean Smart Money Concepts tool that marks Break of Structure (BOS), Market Structure Shift (MSS), Order Blocks (OB), and Fair Value Gaps (FVG) with bold, easy‑to‑see visuals. Built for crypto but works on any market and timeframe.
What it does
• BOS & MSS detection with optional body/wick logic
• Order Blocks: auto‑draws the last opposite candle before a BOS, keeps only the most recent N, and fades when mitigated
• FVGs: 3‑candle gaps with a minimum size filter and a cap on how many to keep
• HTF Swings (optional): plots higher‑timeframe pivot highs/lows for top‑down context
• Alerts for BOS/MSS and FVG formation
Inputs
• Swing pivot length (default 3): sensitivity for structure pivots
• Use candle bodies for breaks: close vs level (on) or wicks (off)
• Show BOS/MSS labels, Show FVG, Show Order Blocks
• Min FVG size (ticks) and Max boxes to keep for FVG/OB
• OB uses candle body: body range vs full wick range
• Show higher timeframe swings + HTF timeframe
• Bullish/Bearish colors
How it works
• BOS triggers when price breaks the last opposite swing.
• MSS flags when the break flips the prior bias.
• OB is the most recent opposite candle prior to BOS; it’s marked and later greyed out once price closes through it (mitigation).
• FVG is detected when candle 1’s high < candle 3’s low (bear) or candle 1’s low > candle 3’s high (bull).
Alerts included
• BOS Up / BOS Down
• MSS Up / MSS Down
• FVG Up / FVG Down
Tips
• Start on 15m/1h for crypto, pivot length 3–5.
• Turn Use candle bodies ON for stricter confirmations, OFF for more signals.
• If boxes look cluttered, lower “Max boxes to keep.”
Note: This is a visual/educational tool, not financial advice. Always confirm with your own plan and risk management.
AymaN Entry Signal – With HTF + Pin Bar + Multi TP + BE + V1Ayman Entry Signal – Indicator Description
Overview
Ayman Entry Signal – With HTF + Pin Bar + Multi TP + BE + Stats Panel (V1)
This is a professional-grade Pine Script indicator designed for scalping and intraday trading, with full trade management, multi-confirmation logic, and advanced visualization. The tool is ideal for traders focused on XAUUSD (Gold), Forex, and other volatile instruments who seek both precision entries and structured exits with dynamic risk control.
Main Features
Advanced Entry Logic:
- EMA fast/slow crossovers (configurable)
- Optional conditions: Break of Structure (BoS), Order Block (OB), Fair Value Gap (FVG), Liquidity sweeps, Pin Bars
- HTF confirmation using EMA or BoS
- Real-time entry condition display
Trade Management:
- Dynamic calculation of Entry, SL (with ATR buffer), TP1, TP2
- Supports Partial Close and Break Even logic after TP1
- Visual PnL label (dynamic and color-coded)
Statistics Panel:
- Shows total trades, win/loss/breakeven count, cumulative PnL
- Filter by custom date or session
- Fully customizable panel appearance
Trade Visualization:
- Trade box includes all trade levels (Entry, SL, TP1, TP2)
- Visual display of trade conditions and PnL result
- Option to keep previous trades on chart
Alert System:
- Alerts for Buy and Sell entries
- Compatible with webhook automation systems like MT5/MT4
Customization & Inputs
- Capital & risk per trade
- Value per pip/point
- SL buffer (ATR-based)
- Manual EMA override
- Enable/disable: EMA, BoS, OB, FVG, Liquidity, Pin Bars
- HTF: timeframe + confirmation logic
- Trade box/labels visibility
- Full color customization
- PnL label position: top, center, or bottom
Recommended Use
- Ideal for Gold scalping (XAUUSD), also effective for Forex
- Best on 1m–15m charts; use HTF confirmation from 15m–4H
- Pairs well with semi-automated systems using alerts and webhooks
Disclaimer
Note: This is a non-executing indicator. It does not place trades but provides visual and statistical guidance for professional manual or semi-automated trading.
NativeLenSA CISD w/1st 5m FVG5m CISD + FVG Indicator which works best on 5m TimeFrame, with the concept of 5m Liquidity sweeps of the previous highs/lows and the next candle closing below/above the opening price of candle that swept the highs/lows.
A line marking +CISD or -CISD will show as soon as the CISD is created, and a first 5m Fair Value Gap will also be displayed. This is advantageous for an extra confluence and re-entry.
The indicator also provides the trader with:
i. The flexibility of allowing to only show Bearish, Bullish or both Bearish and Bullish CISD + FVG,
ii. Showing only London Session, New York Session, or both London and New York Sessions' CISD & FVG,
iii. Option of hiding/showing 5m CISD+FVG on time frames greater than 5m,
iv. Adjustable:
(a) Look back bars (max=300),
(b) CISD line length,
(c) FVG line length,
v. Customizable Bearish and Bullish CISD line colors.
I hope you find value in this indicator, and convenient for time when trading, no CISD markups needed
🟡🔵🟢🔴Beginner's Assistant by carljchapman🟡🔵🟢🔴
Overview
This indicator dynamically marks highs and lows of the premarket (4:00am-9:30amEST) and opening range. It displays Fair Value Gaps, 9 and 21 period Exponential Moving Averages (EMA) and the Volume Weighted Average Price (VWAP). To really help beginners, it marks suggested entry points on the chart with green or red triangles, when a reasonable trend appears.
Features
Automatically draws blue lines for Premarket High and Low values
Dynamically marks the opening Range region
Visual entry signals for long and short opportunities
Primarily used for stocks/funds , but works with forex and crypto
Quick configuration settings to tailor details for your experience level
Mobile friendly mode
Supports alerts
How To Use
Open your chart, and select a 1 or 2 minute timeframe.
Watch for green triangles and red triangles, hinting at entries for long or short positions. Pay particular attention to the price action as it approaches the bounds of the opening range and the premarket levels. I suggest also using a MACD indicator for confirmation of the trend.
For scalping 0dte Options, switch frequently between the 1 ,2 and 5 minute or higher timeframes. Do this so you will not miss an entry opportunity or be unaware of the overall trend.
As a beginner, until you have refined your strategy and develop risk management, take profits as low as 10%. A small profit can quickly become a much larger loss. With 0dte options, time will devour your profits even when the price doesn’t budge.
What makes this indicator so beginner friendly?
Charts with too many lines and colors are are a nightmare for beginners! And empty charts do not tell the whole story. Simple checkboxes in the configuration settings let you turn on and off features to match your comfort level. As you become more familiar you might try turning off the suggested entries to see if you would have selected the same or better ones yourself. Just one example of how you will learn and verify your knowledge. You will quickly spot Opening Range Breakouts and more.
Why are the triangle pointers not simply above or below the bars?
As a beginner, I like to review charts to see how much the price changed, then estimate how much a contract would move based on its delta. A mouthful, I know. But what price does an arrow pointing up below a bar reflect? Would I have entered at the open or close, low or high? This indicator helps by putting the marker close to the price when indicated. It can even display the actual price on the bar. This is helpful for you to make fast calculations without a measuring tool.
I am an experienced trader. Can this help me make winning trades?
Sure. It can also help you make losing ones! Profit is not guaranteed with any indicator or strategy. This indicator is designed to assist you as you learn and while you trade. You won't see the words BUY or SELL. This is not a signal bot! It is merely a tool to assist you. You can learn a lot by spending time observing price movement using this indicator without ever making a single trade.
🟡🔵🟢🔴
Midnight 30min High/LowMidnight 30min High/Low — Overnight Liquidity Range Tracker
Capture the Overnight Session: A Strategic Level Identification Tool from Professional Trading Methodology
This indicator captures the high and low prices during the critical 30-minute midnight session (12:00-12:30 AM EST) and projects these levels forward as key support and resistance zones. These overnight ranges often contain significant liquidity and serve as crucial reference points for intraday price action, representing areas where institutional activity may have established important levels.
🔍 What This Script Does:
Identifies Critical Overnight Session Levels
- Automatically detects the 12:00-12:30 AM EST session window
- Captures the highest and lowest prices during this 30-minute period
- Projects these levels forward for multiple trading days
Creates Dynamic Support/Resistance Zones
- Extends midnight high/low levels as horizontal lines with customizable projection periods
- Fills the area between high and low to create a visual trading range
- Updates automatically each trading day with new overnight levels
Provides Clear Visual Reference Points
- Optional session start markers (●) highlight when the midnight session begins
- Color-coded lines distinguish between high and low levels
- Transparent fill area creates an easy-to-identify trading zone
Real-Time Level Tracking
- Updates levels in real-time during the active midnight session
- Maintains historical levels for reference and backtesting
- Compatible with data window for precise level values
⚙️ Customization Options:
Extend Days (1-30):** Control how many days forward the levels are projected (default: 5 days)
High Line Color:** Customize the midnight high line color (default: blue)
Low Line Color:** Customize the midnight low line color (default: orange)
Fill Color:** Adjust the transparency and color of the range area (default: light aqua, 80% transparency)
Show Session Markers:** Toggle yellow session start indicators on/off (default: enabled)
💡 How to Use:
Deploy on lower timeframes (1m-15m) for precise level identification and reaction monitoring**
Watch for key price interactions:
- Rejection at midnight high levels (potential resistance)
- Bounce from midnight low levels (potential support)
- Range-bound trading between the high and low levels
Combine with liquidity concepts:
- Monitor for stop hunts above/below these levels
- Look for false breakouts that snap back into the range
- Use as confluence with other ICT concepts like FVGs and Order Blocks
Strategic Applications:
- Range trading between midnight levels
- Breakout confirmation when price closes decisively outside the range
- Support/resistance validation for entry and exit planning
🔗 Combine With These Tools for Complete Market Structure Analysis:
✅ First FVG — Opening Range Fair Value Gap Detector.
✅ ICT Turtle Soup (Liquidity Reversal)— Spot stop hunts and false breakout scenarios
✅ ICT Macro Zones (Grey Box Version)- It tracks real-time highs and lows for each Silver Bullet session
✅ ICT SMC Liquidity Grabs and OBs- Liquidity Grabs, Order Block Zones, and Fibonacci OTE Levels, allowing traders to identify institutional entry models with clean, rule-based visual signals.
Together, these tools create a comprehensive Smart Money Concepts (SMC) framework — helping traders identify, anticipate, and capitalize on institutional-level price movements with precision and confidence during critical overnight sessions.
cd_cisd_market_CxHi Traders,
Overview:
Many traders follow market structure to identify the market direction and seek trade opportunities in line with the trend.
However, markings derived from user-defined inputs can create different structures, depending on personal choices. For instance, choosing a pivot distance of 3 instead of 2 alters the structure, even though the chart remains the same. Ideally, the structure should remain consistent.
"Change in State Delivery" ( CISD ) is a widely accepted concept among traders and is considered a significant indicator of market direction based on the gain/loss of CISD levels.
In this indicator, CISD is selected as the primary criterion for marking market structure, eliminating the influence of user-dependent variations.
Here is a summary of the key logic and rules applied:
• When the price forms a new high/low, that level is only considered a pivot if a CISD has occurred.
• A bullish CISD is always followed by a bearish CISD, and vice versa.
• Pivot points form the internal structure.
• The internal structure is used to interpret the swing structure.
• Probabilities are derived from internal structure patterns.
________________________________________
Details:
How is CISD determined?
As is commonly known:
• When price makes a new high, the opening level of the first candle in the consecutive bullish candle sequence is marked.
• When price makes a new low, the opening of the first candle in the consecutive bearish sequence is marked.
• If there’s only one candle in the sequence, its opening level is used.
In a bullish market, losing a bearish CISD level (i.e., a close below it) or in a bearish market, gaining a bullish CISD level (i.e., a close above it) is interpreted as a potential shift in buyer-seller dominance and a possible market reversal.
________________________________________
How are internal (pivot) levels determined?
• When price closes below a bearish CISD level, the highest candle's high becomes a pivot high (PH).
• When price closes above a bullish CISD level, the lowest candle's low becomes a pivot low (PL).
• If the new PH is above the previous PH, it’s labeled as HH (Higher High); otherwise, LH (Lower High).
• If the new PL is below the previous PL, it’s labeled as LL (Lower Low); otherwise, HL (Higher Low).
________________________________________
Internal Market Structure:
• A series of HHs indicates a bullish internal structure.
• A series of LLs indicates a bearish internal structure.
________________________________________
Swing (Main) Market Structure:
Using internal pivots and previous swing levels, the main market structure is derived.
• A new swing high (SH) requires the price to move above the previous SH.
• A new swing low (SL) requires the price to move below the previous SL.
________________________________________
Probability Calculation:
Pivot levels forming the internal structure are coded as five-element sequences.
There are 64 possible combinations of such sequences made from consecutive PH and PL values.
Each pattern’s frequency from its starting candle is tracked.
To make it more understandable:
For example, after the four-sequence “HH, LL, LH,HL”, either HH or LH might follow.
The table shows the statistical likelihood of both possible outcomes for the most recent four-element sequence on the chart.
________________________________________
How reliable is it?
To assess reliability, results are calculated from the beginning using:
Success Rate (Suc. Rt) = Number of Correct Predictions / Total Predictions
This value is added to the table for reference.
It’s important to note that no statistical outcome guarantees certainty—every result offers a different interpretation. What truly matters is to avoid getting stopped out 😊.
________________________________________
Menu Options:
Show/hide preferences and color selections can be customized via the indicator menu.
________________________________________
What’s Coming in Future Versions?
Features such as FVG (Fair Value Gaps) between swing levels, volume imbalances, order blocks / mitigation blocks, Fibonacci levels, and relevant trade suggestions will be added.
________________________________________
This is a BETA version that I believe will help simplify your market reading. I’d be happy to hear your feedback and suggestions.
Cheerful Trading!
FVG Trailing Stop [LuxAlgo]The FVG Trailing Stop indicator tracks unmitigated Fair Value Gaps (FVG) data to produce a Trailing Stop indicator able to determine if the market is uptrending or downtrending easily.
🔶 USAGE
The FVG Trailing Stop is intended to identify trend directions through its position relative to the closing price:
Bullish: Price is located above the Trailing Stop, indicating that all Bearish FVGs have been mitigated and the trend is anticipated to continue upwards.
Bearish State: Price is located below the Trailing Stop, indicating that all Bullish FVGs have been mitigated and the trend is anticipated to continue downwards.
The Trailing Stop originates from two extremities obtained from the average of respective unmitigated FVGs. The specific directional average is also displayed as a more transparent secondary line, however, the trailing stop is derived from this value and a new trend will not be detected until the opposite directional average is crossed.
Price reaching the Trailing Stop is caused by retracements and can lead to the following scenarios:
Outcome 1: The directional average is crossed next, indicating a new trend direction.
Outcome 2: The directional average is held as support or resistance, leading to a new impulse and a continuation of the trend.
🔹 Reset on Cross
While price crossing the Trailing Stop should be considered as a sign of an upcoming trend change; it is possible for the price to still evolve outside it.
As a solution, we have included the "Reset on Cross" feature, which (as the name suggests) hides and resets the Trailing Stop each time it is crossed, leading to a "Neutral" state.
This opens the opportunity for the Trailing Stop to be displayed again once the price moves again in the direction of the pre-established trend. A trader might use this to accumulate positions within a specific trend.
🔶 DETAILS
The script uses a typical identification method for FVGs. Once identified, the script collects the point of the FVG farthest from the current price when formed.
For Upwards FVGs this is the bottom of the FVG.
For Downwards FVGs this is the top of the FVG.
The data is managed only to use the last input lookback of FVGs. If an FVG is mitigated, it frees up a spot in the memory for a new FVG, however, if the lookback is full, the oldest will be deleted.
From there, it uses a "trailing" logic only to move the Trailing Stop in one direction until the trailing stop resets or the direction flips.
The extremities used to calculate the Trailing Stop are created from 2 calculation steps, the first step involves taking the raw average of the FVG mitigation levels, and the second step applies a simple moving average (SMA) smoothing of the precedent-obtained averages.
🔶 SETTINGS
Unmitigated FVG Lookback: Sets the maximum number of Unmitigated FVGs that the script will use.
Smoothing Length: Sets the smoothing length for the Trailing Stop to reduce erratic results.
Reset on Cross: When enabled, hide and reset the Trailing Stop until the price starts moving in the pre-established trend direction again.
UT Bot + Cooldown + Visual FVGSynopsis – UT Bot + Cooldown + Visual FVG
This TradingView script combines:
✅ UT Bot Reversal Signals
Based on ATR and volatility logic
BUY when trend flips from bearish to bullish
SELL when trend flips from bullish to bearish
✅ Cooldown Filter
Limits signals to 1 per X bars (default 30)
Prevents overtrading during choppy price action
✅ Optional FVG Markers (Fair Value Gaps)
Visually shows bullish or bearish imbalances (3-bar gaps)
Does not affect signal generation — only for confluence
🔍 Ideal for traders who want clean, time-filtered signals with visual price-action context. Suitable for futures, crypto, or forex on intraday charts.
US30 Smart Money 5M/4H Strategy🧠 How It Works
✅ 1. 4H Trend Bias Detection
Uses the 4-hour chart (internally) to determine if the market is in an uptrend or downtrend.
Background turns green for bullish trend, red for bearish trend.
This helps filter trades — only take longs during uptrend, shorts during downtrend.
✅ 2. Liquidity Sweeps (Stop Hunts) on 5M
Highlights candles that break previous highs/lows and then reverse (typical of institutional stop raids).
Draws a shaded red box above sweep-high candles and green box under sweep-lows.
These indicate key reversal zones.
✅ 3. Order Block Zones
Detects bullish/bearish engulfing patterns after liquidity sweeps.
Draws a supply or demand zone box extending forward.
These zones show where institutions likely placed large orders.
✅ 4. FVG Midpoint from 30-Min Chart
Detects Fair Value Gaps (imbalances) on the 30-minute chart.
Plots a line at the midpoint of the gap (EQ level), which is often revisited for entries or rejections.
✅ 5. Buy/Sell Signals (Non-Repainting)
Buy = 4H uptrend + 5M liquidity sweep low + bullish engulfing candle.
Sell = 4H downtrend + 5M liquidity sweep high + bearish engulfing.
Prints green “BUY” or red “SELL” label on the chart — these do not repaint.
📈 How to Use It
Wait for trend bias — only take trades in the direction of the 4H trend.
Watch for liquidity sweep boxes — these hint a stop hunt just occurred.
Look for a signal label (BUY/SELL) — confirms entry criteria.
Use FVG EQ lines & Order Block zones as confluence or targets.
Take trades after NY open (9:30 AM EST) for best momentum.