Premarket, Previous Day, Current Day high/lowHighs and lows for premarket, previous day, and current day
Chỉ báo và chiến lược
NeuraLine v1Neuraline is a daily market-regime indicator designed to help traders stay aligned with the dominant trend while avoiding noise, false flips, and emotional overtrading.
Instead of reacting to every small move, Neuraline focuses on structural trend confirmation, combining trend strength, regime persistence, and higher-timeframe context into one clean visual layer.
1. Anti-Flip Trend Logic
Neuraline uses a buffered EMA regime system with built-in hysteresis.
This means the indicator does not flip trend on every minor crossover, but only when price confirms a meaningful shift.
Result: fewer false signals, more stability.
2. Market Strength Filter (ADX)
Trend changes are only validated when market strength confirms the move.
This prevents signals during low-volatility, choppy conditions where most indicators fail.
3. Clear Market Regime: Bullish or Bearish
Neuraline always operates in one of two states:
• Bullish regime
• Bearish regime
No confusion. No over-analysis.
Every signal is contextualized within the current regime.
4. Higher-Timeframe Structure via 50 / 200 Moving Averages
The integrated 50 & 200 day moving averages provide long-term market context:
• MA lines automatically adapt their color based on bullish or bearish alignment
• A subtle ribbon highlights the structural zone between them
This makes it instantly clear whether price action is occurring within a healthy trend or against macro structure.
5. Minimal, Emotion-Free Signals
Buy and sell signals are only triggered on confirmed regime transitions, not on every fluctuation. Signals are displayed as clean, non-intrusive icons directly on the chart — no clutter, no noise.
6. Designed for Daily & Swing Traders
Neuraline is optimized for:
• Daily charts
• Swing trading
• Position management
• Market bias confirmation
It is not a scalping tool.
It is a decision-filter.
PDI / MMXM Execution OverlayCreates FVG's on lower time frames automatically. Helps with charting live.
NY 8:00 8:15 Candle High & LowThis indicator plots the high and low of the New York 8:00–8:15 AM (EST) 15-minute candle and extends those levels horizontally for the rest of the trading day
The levels are **anchored to the 15-minute timeframe
Designed for **session-based trading, liquidity sweeps, ICT-style models, and NY Open strategies.
Lines automatically reset each trading day at the NY open window.
Clean, lightweight, and non-repainting.
This script is ideal for traders who want consistent, reliable session levels without recalculation or timeframe distortion.
Custom versions available
If you’d like:
- Different sessions (London, Asia, custom hours)
- Multiple session ranges
- Labels, alerts, or strategy logic
- A full strategy version with entries, SL/TP, and risk rules
Feel free to reach out — happy to build custom tools to fit your trading model.
Trade Assistant by thedatalayers.comThe Trade Assistant by DataLayers.com is designed to bridge the gap between futures-based trade ideas and their precise execution on CFD instruments.
Many traders identify high-quality setups on futures markets but execute their trades on CFDs due to broker access, margin efficiency, or position sizing flexibility.
This tool ensures that the price levels, risk parameters, and position sizing from the futures contract are translated accurately to the selected CFD.
The indicator supports inverted instruments and differing quote conventions.
For example, it can accurately convert trades from a futures contract such as USD/CAD Future to an inverted CFD like CAD/USD, even when price scales and quotation formats differ.
Users can define custom scaling factors to ensure correct price mapping across instruments with different decimal structures or broker-specific pricing models.
Multi-TF EMA Alignment - Safe 3/4 Above EMA50 + ATR Pullbackthis script only triggers when your context, Validation, and entry time frames EMA's align for long positions
Killshotcopy// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
//@version=5
indicator("Killshot", overlay=true, format = format.price, max_labels_count=500, max_lines_count=500)
max_bars_back(time, 5000)
////////////////////////////////////////////////////////////////////////////
///// /////
///// Input Block /////
///// /////
////////////////////////////////////////////////////////////////////////////
// Color inputs for EMAs
short_color = input.color(defval=color.blue, title="Fast EMA Color", group="EMA Settings")
medium_color = input.color(defval=color.orange, title="Slow EMA Color", group="EMA Settings")
long_color = input.color(defval=color.red, title="Long EMA Color", group="EMA Settings")
// EMA period inputs
fastEMA = input.int(defval=20, title="Fast EMA", group="EMA Settings")
slowEMA = input.int(defval=50, title="Slow EMA", group="EMA Settings")
longEMA = input.int(defval=238, title="Long EMA", group="EMA Settings")
//Support & Resistance
showSR = input.bool(title="Display Support and Resistance", defval=true, group="S&R; Settings")
atrMovement = input.float(title="ATR Movement Required", defval=1.0, step=0.5, tooltip="Minimum ATR distance price must move to consider a pivot zone to be 'major'")
lookback = input.int(title="High/Low Lookback", defval=25, step=5, tooltip="Lookback period for detecting swing highs/lows")
maxZoneSize = input.float(title="Max Zone Size (Compared to ATR)", defval=2.5, step=0.5, tooltip="If a zone is larger than the current ATR multiplied by this, it is considered too large and ignored")
newStructureReset = input.int(title="Zone Update Count Before Reset", defval=25, step=5, tooltip="The script draws two zones until they're violated - if the first zone is updated this many times, the second zone is reset")
drawPreviousStructure = input.bool(title="Draw Previous Structure", defval=true, tooltip="This turns on/off drawing 'support-turned-resistance' and 'resistance-turned-support'")
displayStars = input.bool(title="Display Stars", defval=true, group="Star Settings")
////////////////////////////////////////////////////////////////////////////
///// /////
///// EMA Cross Plot Block /////
///// /////
////////////////////////////////////////////////////////////////////////////
short = ta.ema(close, fastEMA)
medium = ta.ema(close, slowEMA)
long = ta.ema(close, longEMA)
plot(short, color=short_color, linewidth=1)
plot(medium, color=medium_color, linewidth=1)
plot(long, color=long_color, linewidth=1)
//Show the directional arrows
plotshape(ta.cross(short,medium) and short>medium ? short : na, style=shape.triangleup, color=color.blue, size=size.small, location=location.belowbar)
plotshape(ta.cross(short,medium) and shortmedium ? bullColor : bearColor
plot(series=low, style=plot.style_columns, color=c_ma)
////////////////////////////////////////////////////////////////////////////
///// /////
///// Support & Resistance Code Block /////
///// /////
////////////////////////////////////////////////////////////////////////////
// Get current ATR value
atr = ta.atr(14)
// Get highest body and lowest body for the current candle
highestBody = open > close ? open : close
lowestBody = open > close ? close : open
// Set up our persistent S&R; variables (1 = the wick and 2 = the body)
var res1 = 0.0
var res2 = 0.0
var sup1 = 0.0
var sup2 = 0.0
var lookForNewResistance = true
var lookForNewSupport = true
// Set up our *previous* support & resistance variables (for drawing support-turned-resistance etc)
var previousRes1 = 0.0
var previousRes2 = 0.0
var previousSup1 = 0.0
var previousSup2 = 0.0
// Set up our ATR variables (for identifying significant declines/rallies to validate S&R; zones)
var atrSaved = 0.0
var potentialR1 = 0.0
var potentialR2 = 0.0
var potentialS1 = 0.0
var potentialS2 = 0.0
// Detect fractal swing highs for resistance
// We're looking for this pattern: .|.
if high == ta.highest(high, lookback) and high < high and lookForNewResistance
r1 = high
r2 = highestBody > highestBody ? highestBody : highestBody > highestBody ? highestBody : highestBody
if (r1 - r2) / atr <= maxZoneSize
lookForNewResistance := false
potentialR1 := r1
potentialR2 := r2
atrSaved := atr
// Detect fractal swing lows for support
// We're looking for this pattern: *|*
if low == ta.lowest(low, lookback) and low > low and lookForNewSupport
s1 = low
s2 = lowestBody < lowestBody ? lowestBody : lowestBody < lowestBody ? lowestBody : lowestBody
if (s2 - s1) / atr <= maxZoneSize
lookForNewSupport := false
potentialS1 := s1
potentialS2 := s2
atrSaved := atr
// Check if potential resistance zone has already been violated. If it has, reset our potential R1 & R2
if close > potentialR1 and barstate.isconfirmed
potentialR1 := na
potentialR2 := na
// Check if potential support zone has already been violated. If it has, reset our potential S1 & S2
if close < potentialS1 and barstate.isconfirmed
potentialS1 := na
potentialS2 := na
// Check if we've had a significant decline since detecting swing high
if potentialR1 - low >= (atrSaved * atrMovement)
previousRes1 := na(previousRes1) ? potentialR1 : previousRes1 // Store previous resistance if we're not already drawing it
previousRes2 := na(previousRes2) ? potentialR2 : previousRes2
res1 := potentialR1
res2 := potentialR2
potentialR1 := na
potentialR2 := na
// Check if we've had a significant rally since detecting swing low
if high - potentialS1 >= (atrSaved * atrMovement)
previousSup1 := na(previousSup1) ? potentialS1 : previousSup1 // Store previous support if we're not already drawing it
previousSup2 := na(previousSup2) ? potentialS2 : previousSup2
sup1 := potentialS1
sup2 := potentialS2
potentialS1 := na
potentialS2 := na
// Declare support & resistance update counters
// This is used for forcing a zone reset if a zone is not violated within a reasonable period of time
var supCount = 0
var resCount = 0
// If the previous resistance high has been violated then begin searching for a new resistance zone
if close >= res1 and barstate.isconfirmed
lookForNewResistance := true
lookForNewSupport := true
resCount := resCount + 1
// If the previous support low has been violated then begin searching for a new support zone
if close <= sup1 and barstate.isconfirmed
lookForNewSupport := true
lookForNewResistance := true
supCount := supCount + 1
// If our current resistance zone has been violated, store its values to draw new *potential* support zone
// The idea being that once a major resistance zone is violated it often becomes future support
// But we only save previous S&R; if we don't already have one saved (or our zone update count exceeds newStructureReset)
if (close > res1 and na(previousRes1) and barstate.isconfirmed) or previousRes1 == 0.0 or supCount >= newStructureReset
previousRes1 := res1
previousRes2 := res2
supCount := 0
// If our current support zone has been violated, store its values to draw new *potential* resistance zone
// The idea being that once a major support zone is violated it often becomes future resistance
// But we only save previous S&R; if we don't already have one saved (or our zone update count exceeds newStructureReset)
if (close < sup1 and na(previousSup1) and barstate.isconfirmed) or previousSup1 == 0.0 or resCount >= newStructureReset
previousSup1 := sup1
previousSup2 := sup2
resCount := 0
// If our resistance-turned-support zone has been violated, reset our saved resistance variables
if close < previousRes2 and barstate.isconfirmed
previousRes1 := na
previousRes2 := na
// If our support-turned-resistance zone has been violated, reset our saved support variables
if close > previousSup2 and barstate.isconfirmed
previousSup1 := na
previousSup2 := na
// Draw our current resistance zone
r1 = plot(res1 == res1 ? res1 : na, color=close >= res1 ? color.green : color.red, style=plot.style_linebr, title="R1")
r2 = plot(res1 == res1 ? res2 : na, color=close >= res1 ? color.green : color.red, style=plot.style_linebr, title="R2")
fill(r1, r2, color=close > res1 ? color.green : color.new(color.red, 50), title="Resistance Zone")
// Draw our current support zone
s1 = plot(sup1 == sup1 ? sup1 : na, color=close < sup1 ? color.red : color.green, style=plot.style_linebr, title="S1")
s2 = plot(sup1 == sup1 ? sup2 : na, color=close < sup1 ? color.red : color.green, style=plot.style_linebr, title="S2")
fill(s1, s2, color=close < sup1 ? color.red : color.new(color.green, 50), title="Support Zone")
// Draw our previous support zone (turned potential resistance)
ps1 = plot(previousSup1 == previousSup1 and previousSup1 != sup1 and drawPreviousStructure ? previousSup1 : na, color=color.red, style=plot.style_linebr, title="PS1")
ps2 = plot(previousSup1 == previousSup1 and previousSup1 != sup1 and drawPreviousStructure ? previousSup2 : na, color=color.red, style=plot.style_linebr, title="PS2")
fill(ps1, ps2, color=color.new(color.red, 10), title="Previous Support Zone")
// Draw our previous resistance zone (turned potential support)
pr1 = plot(previousRes1 == previousRes1 and previousRes1 != res1 and drawPreviousStructure ? previousRes1 : na, color=color.green, style=plot.style_linebr, title="PR1")
pr2 = plot(previousRes1 == previousRes1 and previousRes1 != res1 and drawPreviousStructure ? previousRes2 : na, color=color.green, style=plot.style_linebr, title="PR2")
fill(pr1, pr2, color=color.new(color.green, 10), title="Previous Resistance Zone")
////////////////////////////////////////////////////////////////////////////
///// /////
///// STARS Code Block /////
///// /////
////////////////////////////////////////////////////////////////////////////
//calculation variables. Hardcoded for now.
Depth1 = 5
Depth2 = 13
Depth3 = 34
Deviation1 = 1
Deviation2 = 8
Deviation3 = 13
Backstep1 = 3
Backstep2 = 5
Backstep3 = 8
// STAR Color settings - MEDIUM NOW BLUE
color1 = input(title = "Small Stars Color", defval = color.yellow)
color2 = color1
color3 = input(title = "Medium Stars Color", defval = color.aqua)
color4 = color3
color5 = input(title = "Large Sell Stars Color", defval = color.red)
color6 = input(title = "Large Buy Stars Color", defval = color.lime)
repaint = true
// CHATGPT FIX #1: Add useStar parameter
zigzag(Depth0, Deviation0, Backstep0, color0, color00, size0, useStar) =>
var last_h = 1
last_h += 1
var last_l = 1
last_l += 1
var lw = 1
var hg = 1
lw += 1
hg += 1
p_lw = -ta.lowestbars(Depth0)
p_hg = -ta.highestbars(Depth0)
lowing = lw == p_lw or low - low > Deviation0 * syminfo.mintick
highing = hg == p_hg or high - high > Deviation0 * syminfo.mintick
lh = ta.barssince(not highing )
ll = ta.barssince(not lowing )
down = ta.barssince(not(lh > ll)) >= Backstep0
lower = low > low
higher = high < high
if lw != p_lw and (not down or lower)
lw := p_lw < hg ? p_lw : 0
lw
if hg != p_hg and (down or higher)
hg := p_hg < lw ? p_hg : 0
hg
label point = na
x1 = down ? lw : hg
y1 = down ? low -3 : high
if down == down
if repaint
label.delete(point )
down
if down != down
if down
last_h := hg
last_h
else
last_l := lw
last_l
if not repaint
nx = down ? last_h : last_l
point := label.new(bar_index-nx, down ? high : low -6, text = "🟡", style=down?label.style_label_down:label.style_label_up)
down
if repaint
// FINAL FIX: Use red/green circle emojis for Depth3, yellow circles for Depth1/2
txt = useStar ? (down ? "🟢" : "🔴") : "🟡"
point := label.new(bar_index - x1, y1, txt, style=label.style_none, size=size0, textcolor=down ? color00 : color0, xloc=xloc.bar_index, yloc=yloc.price, force_overlay=true)
if displayStars
// CHATGPT FIX #3: Pass false for Depth1/2, true for Depth3
zigzag(Depth1, Deviation1, Backstep1, color1, color2, size.normal, false)
zigzag(Depth2, Deviation2, Backstep2, color3, color4, size.large, false)
zigzag(Depth3, Deviation3, Backstep3, color5, color6, size.huge, true)
////////////////////////////////////////////////////////////////////////////
///// /////
///// Trigger Alerts /////
///// /////
////////////////////////////////////////////////////////////////////////////
// Code Alerts
alert_message = ""
if ta.cross(short,medium) and short>medium
alert_message := "EMA Cross Buy alert for " + syminfo.description + " price: " + str.tostring(math.round(open, 2))
alert(alert_message, freq=alert.freq_once_per_bar)
if ta.cross(short,medium) and short
Index Construction Tool🙏🏻 The most natural mathematical way to construct an index || portfolio, based on contraharmonic mean || contraharmonic weighting. If you currently traded assets do not satisfy you, why not make your own ones?
Contraharmonic mean is literally a weighted mean where each value is weighted by itself.
...
Now let me explain to you why contraharmonic weighting is really so fundamental in two ways: observation how the industry (prolly unknowably) converged to this method, and the real mathematical explanation why things are this way.
How it works in the industry.
In indexes like TVC:SPX or TVC:DJI the individual components (stocks) are weighted by market capitalization. This market cap is made of two components: number of shares outstanding and the actual price of the stock. While the number of shares holds the same over really long periods of time and changes rarely by corporate actions , the prices change all the time, so market cap is in fact almost purely based on prices itself. So when they weight index legs by market cap, it really means they weight it by stock prices. That’s the observation: even tho I never dem saying they do contraharmonic weighting, that’s what happens in reality.
Natural explanation
Now the main part: how the universe works. If you build a logical sequence of how information ‘gradually’ combines, you have this:
Suppose you have the one last datapoint of each of 4 different assets;
The next logical step is to combine these datapoints somehow in pairs. Pairs are created only as ratios , this reveals relationships between components, this is the only step where these fundamental operations are meaningful, they lose meaning with 3+ components. This way we will have 16 pairs: 4 of them would be 1s, 6 real ratios, and 6 more inverted ratios of these;
Then the next logical step is to combine all the pairs (not the initial single assets) all together. Naturally this is done via matrices, by constructing a 4x4 design matrix where each cell will be one of these 16 pairs. That matrix will have ones in the main diagonal (because these would be smth like ES/ES, NQ/NQ etc). Other cells will be actual ratios, like ES/NQ, RTY/YM etc;
Then the native way to compress and summarize all this structure is to do eigendecomposition . The only eigenvector that would be meaningful in this case is the principal eigenvector, and its loadings would be what we were hunting for. We can multiply each asset datapoint by corresponding loading, sum them up and have one single index value, what we were aiming for;
Now the main catch: turns out using these principal eigenvector loadings mathematically is Exactly the same as simply calculating contraharmonic weights of those 4 initial assets. We’re done here.
For the sceptics, no other way of constructing the design matrix other than with ratios would result in another type of a defined mean. Filling that design matrix with ratios Is the only way to obtain a meaningful defined mean, that would also work with negative numbers. I’m skipping a couple of details there tbh, but they don’t really matter (we don’t need log-space, and anyways the idea holds even then). But the core idea is this: only contraharmonic mean emerges there, no other mean ever does.
Finally, how to use the thing:
Good news we don't use contraharmonic mean itself because we need an internals of it: actual weights of components that make this contraharmonic mean, (so we can follow it with our position sizes). This actually allows us to also use these weights but not for addition, but for subtraction. So, the script has 2 modes (examples would follow):
Addition: the main one, allows you to make indexes, portfolios, baskets, groups, whatever you call it. The script will simply sum the weighted legs;
Subtraction: allows you to make spreads, residual spreads etc. Important: the script will subtract all the symbols From the first one. So if the first we have 3 symbols: YM, ES, RTY, the script will do YM - ES - RTY, weights would be applied to each.
At the top tight corner of the script you will see a lil table with symbols and corresponding weights you wanna trade: these are ‘already’ adjusted for point value of each leg, you don’t need to do anything, only scale them all together to meet your risk profile.
Symbols have to be added the way the default ones are added, one line : one symbol.
Pls explore the script’s Style setting:
You can pick a visualization method you like ! including overlays on the main chart pane !
Script also outputs inferred volume delta, inferred volume and inferred tick count calculated with the same method. You can use them in further calculations.
...
Examples of how you can use it
^^ Purple dotted line: overlay from ICT script, turned on in Style settings, the contraharmonic mean itself calculated from the same assets that are on the chart: CME_MINI:RTY1! , CME_MINI:ES1! , CME_MINI:NQ1! , CBOT_MINI:YM1!
^^ precious metals residual spread ( COMEX:GC1! COMEX:SI1! NYMEX:PL1! )
^^ CBOT:ZC1! vs CBOT:ZW1! grain spread
^^ BDI (Bid Dope Index), constructed from: NYSE:MO , NYSE:TPB , NYSE:DGX , NASDAQ:JAZZ , NYSE:IIPR , NASDAQ:CRON , OTC:CURLF , OTC:TCNNF
^^ NYMEX:CL1! & ICEEUR:BRN1! basket
^^ resulting index price, inferred volume delta, inferred volume and inferred tick count of CME_MINI:NQ1! vs CME_MINI:ES1! spread
...
Synthetic assets is the whole new Universe you can jump into and never look back, if this is your way
...
∞
Seasonality Scanner by thedatalayers.comThe Seasonality Scanner automatically detects seasonal patterns by scanning a user-defined number of past years (e.g., the last 10 years).
Based on this historical window, the indicator identifies the strongest seasonal tendency for the currently selected date range.
The scanner evaluates all valid seasonal windows using two filters:
• Hit Rate - the percentage of profitable years
• Average Return - the highest mean performance across the analyzed period
The best-scoring seasonal setup is displayed directly on the chart, including the exact start and end dates of the identified pattern for the chosen time range.
Users can define the period they want to analyze, and the indicator will automatically determine which seasonal window performed best over the selected history.
Recommended Settings (Standard Use)
For optimal and consistent results, the following settings are recommended:
• Search Window: 20-30
• Minimum Length: 5
• Time Period: from 2015 onward
• US Election Cycle: All Years
These settings provide a balanced and reliable baseline to detect meaningful seasonal tendencies across markets.
This indicator helps traders understand when recurring seasonal patterns typically occur and how they may align with ongoing market conditions.
This indicator is intended to be used exclusively on the daily timeframe, as all calculations are based on daily candles.
Using it on lower timeframes may result in inaccurate or misleading seasonal readings.
DZDZ – Pivot Demand Zones + Trend Filter + Breadth Override + SL is a structured accumulation indicator built to identify high-probability demand areas after valid pullbacks.
The script creates **Demand Zones (DZ)** by pairing **pivot troughs (local lows)** with later **pivot peaks (local highs)**, requiring a minimum **ATR (Average True Range)** gap to confirm real price displacement. Zones are drawn only when market structure confirms strength through a **trend filter** (a required number of higher highs over a recent window) or a **breadth override**, which activates after unusually large expansion candles measured as a percentage move from the prior close.
In addition to pivots, the script detects **coiling price action**—tight trading ranges contained within an ATR band—and treats these as alternative demand bases.
Entries require price to penetrate a defined depth into the zone, preventing shallow reactions. After the first valid entry, a **DCA (Dollar-Cost Averaging)** system adds buys every 10 bars while trend or breadth conditions persist. A **ratcheting SL (Stop-Loss)** tightens upward only, using demand structure or ATR when zones are unavailable.
The focus is disciplined, volatility-aware accumulation aligned with structure.
Seasonality Calculation Tool by thedatalayers.comThe Seasonality Calculation Tool is designed to analyze and evaluate the strength of any seasonal pattern detected by the Seasonality Indicator.
While the Seasonality Indicator displays the historical seasonal curve, this tool goes one step further by examining how reliable and consistent that curve truly is.
The tool checks whether a seasonal pattern is strong, distorted by a few outlier years, or statistically meaningful. It calculates the average return within the selected seasonal window and highlights how accurate or robust the pattern has been over the evaluated period.
To support manual confirmation and deeper analysis, the tool also visualizes the seasonal windows directly on the chart. This allows traders to review past occurrences and backtest the pattern themselves to validate the quality of the signal.
The Seasonality Calculation Tool is an ideal complement to the main Seasonality Indicator, helping traders identify high-quality, data-driven seasonal tendencies and avoid misleading or weak seasonal patterns.
This script is intended to be used exclusively on the daily timeframe, as all calculations rely on daily candle data.
The settings are intuitive and easy to adjust, allowing users to quickly evaluate any seasonal window displayed by the Seasonality Indicator.
X-trend Volume Anomaly 📊 X-TREND Volume Anomaly: Advanced VSA Analysis
Effective market analysis requires understanding the relationship between Price Action and Volume. X-Trend Volume Anomaly is a technical instrument that simplifies Volume Spread Analysis (VSA) into a clear, visual system. It allows traders to instantly decode the footprint of "Smart Money" by analyzing the correlation between Relative Volume (RVOL) and Candle Range.
The algorithm automatically classifies market behavior into three distinct states:
1. 🟢🔴 Impulse (Trend Validation)
Logic: High Relative Volume + High Price Range.
Interpretation: Represents genuine market intent. Institutional aggregators are aggressively pushing price. This confirms the validity of a breakout or trend continuation.
2. 🟠 Absorption / Churn (Reversal Warning)
Logic: Ultra-High Relative Volume + Low Price Range (Doji, Pin-bar).
Interpretation: The critical signal. This indicates a major divergence between Effort (Volume) and Result (Price Movement). Large players are absorbing liquidity via limit orders, halting the trend. This is often a precursor to an immediate reversal. (See the Orange candle in the chart examples).
3. 👻 Ghost Mode (Noise Reduction)
Logic: Candles with low/insignificant volume are rendered in a transparent gray scale.
Utility: Eliminates visual noise, allowing the trader to focus exclusively on significant liquidity events and institutional activity.
⚙️ SYSTEM SYNERGY
While this indicator provides robust standalone volume analysis, it is engineered to function as the Volume Confirmation Layer within the X-Trend Ecosystem. For a complete institutional trading setup, we recommend pairing this tool with:
X-Trend Reversal (PRO): For precise, non-repainting entry signals.
X-Trend Liquidation Heatmap: For identifying high-probability price targets.
Seasonality by thedatalayers.comThe Seasonality Indicator calculates the average historical performance of the currently selected asset by analyzing a user-defined number of past years (e.g., the last 10 years).
The number of years included in the calculation can be adjusted directly in the settings panel.
Based on this historical window, the indicator creates an average seasonal curve, which represents how the market typically behaved during each part of the year.
This averaged curve acts as a forecast for the upcoming months, highlighting periods where the market has shown a consistent tendency in the past.
Traders can use this seasonal projection to identify times of higher statistical likelihood for upward or downward movement.
The indicator works especially well when combined with the Seasonality Analysis Tool, which helps identify specific historical windows and strengthens overall seasonal decision-making.
This indicator must be used exclusively on the daily timeframe, as all calculations are based on daily candle data.
Other timeframes will not display accurate seasonal structures.
The Seasonality Indicator provides a clear, data-driven view of recurring annual patterns and allows traders to better understand when historical tendencies may influence future price action.
Trading Asset Comparison Oscillator by thedatalayers.comThe Trading Asset Comparison Oscillator compares the currently opened asset with a user-selected reference symbol to identify periods of relative overvaluation and undervaluation.
The concept is based on the idea that markets constantly seek fair value. When an asset becomes mispriced relative to a meaningful benchmark, it often moves back toward equilibrium.
This indicator measures that relationship and transforms it into an easy-to-read oscillator:
• Green Zone (Undervalued) - The selected asset is undervalued compared to the reference symbol.
This reflects potential upward pressure as markets tend to correct undervaluation over time.
• Red Zone (Overvalued) - The asset is overvalued relative to the reference symbol.
This may indicate a higher likelihood of downward movement as price seeks rebalancing.
Users can set any reference instrument they consider relevant-commodities, indices, currency pairs, or other assets. The oscillator quantifies the valuation difference based on a configurable cycle length.
The recommended setting is Cycle = 10, which provides a balanced and responsive signal
structure.
Since this indicator relies on broader valuation dynamics, it is designed to be used exclusively on the daily timeframe. Lower timeframes may not reflect true fundamental value relationships.
The Asset Comparison Oscillator helps traders identify when an asset appears cheap or expensive relative to another, offering an additional layer of fundamental context to support directional trading decisions.
COT Index by thedatalayers.comThe COT Index transforms the weekly COT net positions of Commercial traders into a normalized mathematical model.
Instead of displaying raw net positioning, the COT Index processes the data through a cyclical normalization algorithm (commonly using a 26-week or alternatively a 52-week cycle).
This makes it easier to identify bullish or bearish extremes in Commercial activity.
The index is plotted as a color-coded line:
• Green Zone - Commercials are mathematically classified as bullish.
Historically, bullish Commercial positioning often aligns with upward market pressure.
• Red Zone - Commercials are mathematically classified as bearish.
This typically corresponds with increased downward pressure in the underlying market.
• Neutral Zone - Neither bull nor bear dominance; positioning is mid-range.
Since COT data is published only once per week and the COT Index is built on cyclical multi-week analysis, the indicator is intended to be used exclusively on the weekly timeframe.
Using lower timeframes will not reflect the structure of the data accurately.
The selected cycle length (typically 26 weeks, optionally 52 weeks) determines how net positions are compared and normalized, and can influence how quickly extreme zones appear.
The COT Index provides an objective way to interpret Commercial trader sentiment and to identify potential directional bias in the market.
COT Net Positions by thedatalayers.comCOT Net Positions by thedatalayers.com visualizes the net positioning of different trader groups based on the weekly Commitments of Traders (COT) reports published by the CFTC every Friday.
The indicator processes the raw COT data by calculating Long positions minus Short positions for each trader category. This results in the net position of every group per report.
The script then plots these net positions continuously over time, based on every available COT release. This creates a clear and easy-to-read visualization of how different market participants are positioned.
The indicator displays the three primary COT categories:
• Commercials
• Non-Commercials
• Non-Reportables
By observing how these trader groups shift their positioning, traders can better understand market sentiment and identify potential directional biases or changes in underlying market pressure.
This tool is designed to help traders incorporate positioning data into their analysis and to better interpret how institutional and speculative flows evolve over time.
This indicator is intended to be used exclusively on the weekly timeframe.
COT data is published once per week by the CFTC and therefore only updates weekly.
Using this script on lower timeframes may result in misleading visualization or irregular spacing between data points.
For correct interpretation, please apply it on 1W charts only.
ICT Immediate RebalanceThe ICT Concept, whereby as soon as it is created, the price makes a strong movement in its favor, requires two "Wicks" to coincide at the same level or for there to be an overlap of no more than 2 Pips, a function that this Indicator fulfills to detect them.
HTF High/Low/Open RangesHTF High/Low/Open Ranges is an indicator designed to visualize higher-timeframe (HTF) ranges on lower-timeframe charts.
It automatically groups candles by the selected timeframe (15m, 1H, 4H, Daily, Weekly) and plots:
the High level of the range,
the Low level of the range,
the Open level of the range,
vertical lines marking the start of each new HTF period.
Тime offset support (useful for New York / London sessions).
How to use
Use HTF High / Low as key liquidity and price reaction levels.
HTF Open often acts as an intraday equilibrium level.
Vertical lines help visually track transitions between trading periods.
MP SESSIONS, DST, OTTMP SESSIONS, DST, OTT – What this indicator does
This script is a multi-session market timing tool that:
Draws full trading sessions on the chart (Asia, Sydney, Tokyo, Shanghai, Europe, London, New York, NYSE)
Automatically adjusts for Daylight Saving Time (DST) for Sydney, London, and New York
Shows a live info table with session times, DST status, and whether each session is currently open or closed
Adds optional custom “OTT” vertical lines at user-defined intraday times (for your own models, killzones, or time blocks)
Main Features (high level)
1. Market mode & time zone handling
Market Mode:
Forex
Stock
User Custom (you type your own session ranges)
TFlab suggestion (predefined “optimized” session times)
Time Zone Mode:
UTC
Session Local Time (local exchange time: Sydney, Tokyo, London, New York etc.)
Your Time Zone (converts to the user-selected TZ, e.g. UTC-4:00)
Handles separate time zones for:
Asia, Sydney, Tokyo, Shanghai, Europe, London, New York, NYSE
Has logic to recalculate session start/end depending on DST and the chosen mode.
2. Daylight Saving Time (DST) engine
The function DST_Detector:
Calculates when DST starts and ends for:
Australia/Sydney
Europe/London
America/New_York
Detects the correct Sunday (2nd, 4th, etc.) for start/end using day-of-week and week counts.
Returns 'Active' or 'Inactive' for each region.
These values are then used to shift the sessions (e.g. New York 13:00–21:00 vs 12:00–20:00 in UTC).
The script can also draw vertical lines on the chart when DST starts/ends and label them:
“Sydney DST Started / Ended”
“London DST Started / Ended”
“New York DST Started / Ended”
3. Session timing & sessions on the chart
The function Market_TimeZone_Calculator:
Based on Market Mode + Time Zone Mode + DST state, it returns:
Time ranges for: Sydney, Tokyo, Shanghai, Asia (combined), Europe, London, New York, NYSE
These ranges are in "HHMM-HHMM" format.
Then the script:
Converts these to time() conditions using the proper time zone
Creates boolean series like On_sesAsia, On_sesEurope, On_sesNewYork, etc., which are 1 when the session is open and 0 when closed.
4. Session high/low boxes & labels
The function LowHighSessionDetector:
Tracks high and low of each session while it’s active.
When a new session starts:
Resets and starts recording the session high/low.
While session is active:
Updates High with the max of current bar high and previous session high.
Updates Low with the min of current bar low and previous session low.
When the session is "on":
Draws a box from session low to high (box.new) and extends it to the right as long as the session continues.
Places a label with session name (Asia, London, New York, etc.) near the high:
Style depends on the session (down/right/left).
You have visibility toggles per session:
Asia Session, Sydney Session, Tokyo Session, Shanghai Session, Europe Session, London Session, New York Session, NYSE (for TFlab mode).
So you visually see:
A shaded box for each session
The full H/L range for that session
A text label with the session name.
5. Info table
The indicator builds a table in a corner of the chart showing:
Header:
“FOREX Session”, “Stock Market Trading Hours”, “User Custom Session”, or “TFlab suggestion” depending on mode.
Columns:
Session name (Asia, Sydney, Tokyo, Shanghai, Europe, London, New York, NYSE)
DST status for that region (“Active 🌞 / Inactive 🍂 / Not Observed”)
Session start time
Session end time
Current status (“Open / Closed”, with green/red background)
The function SplitFunction:
Parses the "HHMM-HHMM" strings for each session.
Converts them into:
Either raw times (if viewing in UTC/session local)
Or converted times in Your Time Zone using timestamp and hour/ minute with YourTZ.
Returns formatted Start and End strings like 9:30, 13:00, etc.
So the table is effectively a live session schedule that:
Auto-adjusts to DST
Can show times in your own time zone
Shows which session is open right now.
6. OTT vertical lines (custom intraday markers)
At the bottom, there is an OTT section which lets you draw up to three sets of vertical lines at specific times:
Each OTT block has:
Enable toggle (Enable OTT 1/2/3)
Start hour & minute
End hour & minute
Color
Global OTT settings:
Line style: Solid / Dashed / Dotted
Line width
Toggle: “Show OTT Labels?”
Logic:
is_ott_time() checks if current bar’s hour and minute match the OTT input time.
draw_ott():
When the bar time matches, draws a vertical line through the candle from low to high (extend.both).
Optionally adds a label above the bar, like "OTT1 Start", "OTT1 End", etc.
Use cases:
Marking open/close of your trading session
Defining killzones, news times, or custom model windows
Visual anchors for your intraday routine (NY open, 10 AM candle, etc.)
MASTER ENGINE v6
MASTER ENGINE v6 is a multi-timeframe decision engine that shows direction, alignment quality, risk conditions, and a realistic target zone — without forcing trades.
What it actually does (short version)
Finds the dominant direction using multiple timeframes
Weights higher timeframes more heavily so noise can’t override structure
Grades trade quality (A–D) so you know when conditions are strong or marginal
Checks timing alignment so you’re not trading against momentum
Flags stretched or reversal-risk conditions early and clearly
Shows a conservative ATR-based target zone, scaled by trade quality
Everything is filtered through risk first, not opportunity first.
How to read it (at a glance)
DIR / ALIGNMENT → market bias and confidence
GRADE → trade quality, not probability
PLUS1 / NOW → timing agreement
TRADE → ON, CAREFUL, or stand aside
WHY → the single most important reason
TARGET ZONE → potential distance, not a promise
What it is not
❌ Not an entry signal
❌ Not a take-profit system
❌ Not predictive
❌ Not automated
In short
MASTER ENGINE v6 acts like a calm, experienced trader sitting next to you, saying:
“Direction is clear.”
“Timing is okay… but be careful.”
“Market’s stretched — don’t force it.”
“This is a reasonable zone, not a guaranteed target.”
You still make the final decision.
Dragon Smart Detector [Sentiment & Flow HUD]Dragon Smart Detector is a professional-grade contextual analysis tool designed to answer the most critical questions in trading: "Is the market driven by Fear or Greed?", "Is Smart Money stepping in?", and "Is the current breakout genuine?".
Instead of lagging indicators or simple buy/sell arrows, this tool provides a Head-Up Display (HUD) that analyzes the internal dynamics of price and volume in real-time.
1. 🧠 How It Works (The Core Logic)
This indicator combines technicals and fundamentals into four distinct metrics:
A. Market Sentiment (The Mood)
Quantifies crowd psychology using a hybrid algorithm of RSI (14) and Bollinger Bands.
EXTREME FOMO 🔥 (Red): Price is overextended beyond the upper band with high RSI. Indicates the crowd is euphoric. Risk Level: High.
EXTREME FEAR 😱 (Cyan): Price is panicking below the lower band with low RSI. Often marks a potential reversal bottom (Capitulation).
GREED / ANXIETY: Intermediate states of the market.
B. Volume Winner & Flow (The Battle)
Since accurate "Order Flow" data is not universal across all feeds, this script uses Price Spread Analysis to estimate aggressive pressure.
BULLS: Close price is near the High of the candle $\rightarrow$ Accumulation/Buying Pressure.
BEARS: Close price is near the Low of the candle $\rightarrow$ Distribution/Selling Pressure.
Flow Display: Shows the estimated percentage of Buying vs. Selling volume for the current session.
C. Volume Strength (RVOL)
Relative Volume compares the current volume against the 20-period simple moving average.
1.0x: Average volume.
> 2.0x (Orange): Volume is double the average. Significant activity.
> 3.0x (Pink/Magenta): Institutional Activity. Massive volume spike indicating Smart Money participation.
D. Float Rotation (The "Dragon" Metric)
Calculates what percentage of the company's available shares have been traded today.
Smart Data Fetch: The script automatically attempts to load FLOAT_SHARES. If unavailable (common with ETFs or some Indices), it intelligently switches to TOTAL_SHARES as a backup.
Why it matters: High rotation (e.g., > 2%) accompanied by a price increase suggests a massive changing of hands, often validating a strong breakout.
2. 🎯 How to Trade (Strategy Guide)
Scenario 1: The "Dragon Breakout" (Momentum)
Condition: Price is breaking a key resistance level.
Check HUD:
WINNER: Must be BULLS.
VOL STRENGTH: Should be > 1.5x (Orange) or > 3.0x (Pink).
ROTATION: High rotation confirms the breakout is supported by fresh demand.
Action: Enter the trade with confidence.
Scenario 2: The "Capitulation Buy" (Reversal)
Condition: Price is dropping sharply.
Check HUD:
SENTIMENT: Must show EXTREME FEAR 😱 (Cyan).
WINNER: Wait for the "Winner" status to flip from BEARS to BULLS (indicating a wick/rejection of lows).
Action: Look for long entries or reversal patterns.
Scenario 3: The "FOMO Trap" (Risk Management)
Condition: Price is rallying, but you are late to the party.
Check HUD:
SENTIMENT: Shows EXTREME FOMO 🔥.
FLOW: Shows BEARS winning (selling into strength/wicks).
Action: Do NOT buy. Tighten stop-losses or take partial profits.
3. ⚙️ Settings & Features
Smart Backup Data: Automatically handles N/A data for NASDAQ/NYSE tickers (like TSLA, NVDA) by switching data sources.
Manual Float: Allows you to manually input share count (in Millions) for penny stocks or local markets where data is missing.
Minimalist Mode: Hides Fundamental rows (Float/Rotation) if you only want to see Sentiment and Flow.
Visuals: Modern Neon/Borderless interface designed for dark mode charts.
Disclaimer
This indicator is for educational and informational purposes only. "Volume Flow" and "Winner" are estimates based on Price Action logic, not Level 2 data. Fundamental data relies on TradingView's financial database. Past performance does not guarantee future results.
Tip: Add this to your favorites ⭐️ and boost 🚀 if you find it useful in your daily trading!
Rejection Block DetectorRejection Block Detector
Rejection Block Detector is an indicator designed to automatically identify Rejection Blocks (SRB / LRB) — price levels where the market shows clear rejection and potential reaction.
The indicator detects:
Short Rejection Blocks (SRB) — bearish rejection zones
Long Rejection Blocks (LRB) — bullish rejection zones
Detection logic
Blocks are formed using a two-candle pattern, with precision controlled by the Tolerance parameter.
After a candidate block is detected, a Strength filter is applied, requiring the block’s key extremum to remain unbroken for a specified number of subsequent candles.
Higher Strength values result in:
fewer blocks
higher-quality, more significant levels
reduced market noise
Visualization and lifecycle
Each block is plotted as a horizontal line at its key level.
A block remains active until:
price reaches its key level
or its lifetime expires (Rejection blocks lifetime candles count)
Inactive blocks can either be:
hidden or displayed with reduced opacity using Show non actual rejection blocks
Alerts
The indicator provides alerts for:
Short Rejection Block formation
Long Rejection Block formation
First price touch of a Short Rejection Block
First price touch of a Long Rejection Block
These alerts allow traders to react to important price levels in real time without monitoring the chart continuously.
Use case
This indicator is well suited for traders who focus on:
price action
Smart Money Concepts
reaction and liquidity-based levels
The indicator does not repaint and does not generate trade signals — it highlights structural reaction levels to support informed decision-making.
Ingenuity Crazy Strategy BasicThis indicator is a powerful tool, but results depend on using the correct settings.
To avoid guessing and wasting time, all optimized settings, updates, and live examples are shared inside our Discord.
👉 Join the Discord to get:
• The exact settings we use
• Market-specific presets
• Live trade breakdowns
• Ongoing updates and support
⚠️ Do not use default settings.
📌 Discord access is required for best performance.






















