Day of WeekDay of Week is an indicator that runs in a separate panel and colors the panel background according to the day of the week.
Main Features
Colors the background of the lower panel based on the day of the week
Includes all days, from Monday to Sunday
Customizable colors
Time Offset Correction
TradingView calculates the day of the week using the exchange’s timezone, which can cause visual inconsistencies on certain symbols.
To address this, the indicator includes a configurable time offset that allows the user to synchronize the calculated day with the day displayed on the chart.
By simply adjusting the Time Offset (hours) parameter, the background will align correctly with the visible chart calendar.
Indicators and strategies
SHAP-Aligned BUY Signal (Daily, Edge-Triggered)Based on the XGBoost + SHAP interpretation report, I'll explain which indicators to monitor for buying NVO. However, I must emphasize that this model performed poorly (47.5% accuracy) and should NOT be used for actual trading! That said, here's what the model learned (for educational purposes):
📊 Top Indicators to Monitor for BUY Signals
1. Days_Since_Low (Most Important - 1.264)
Direction: BULLISH ↑
Interpretation: Higher values → UP prediction
What to monitor: Track how many days since the stock hit its recent low
Buy signal: When the stock has been recovering for an extended period (e.g., 100+ days from low)
Why it matters: The model learned that stocks in long-term recovery tend to continue rising
2. SMA_50 (50-day Moving Average) (0.413)
Direction: BULLISH ↑
Interpretation: Higher absolute SMA_50 values → UP prediction
What to monitor: The 50-day simple moving average price level
Buy signal: When SMA_50 is at higher levels (e.g., above $80-90)
Why it matters: Higher moving averages indicate stronger long-term trends
3. SMA_200 (200-day Moving Average) (0.274)
Direction: BULLISH ↑
Interpretation: Higher SMA_200 → UP prediction
What to monitor: The 200-day simple moving average
Buy signal: When SMA_200 is trending upward and at elevated levels
Why it matters: Long-term trend indicator; golden cross (SMA_50 > SMA_200) is traditionally bullish
4. BB_Width (Bollinger Band Width) (0.199)
Direction: BULLISH ↑
Interpretation: WIDER Bollinger Bands → UP prediction
What to monitor: The distance between upper and lower Bollinger Bands
Buy signal: When BB_Width is expanding (increasing volatility often precedes trend moves)
Why it matters: Widening bands can signal the start of a new trend
5. Price_SMA_50_Ratio (0.158)
Direction: BULLISH ↑
Interpretation: When price is ABOVE the 50-day MA → UP prediction
What to monitor: Current price ÷ SMA_50
Buy signal: When ratio > 1.0 (price is above the 50-day average)
Why it matters: Price above moving averages indicates uptrend
6. Momentum_21D (21-day Momentum) (0.152)
Direction: BULLISH ↑
Interpretation: Positive 21-day momentum → UP prediction
What to monitor: 21-day rate of change
Buy signal: When momentum is positive and increasing
Why it matters: Positive momentum suggests continuation
7. Stoch_K (Stochastic Oscillator) (0.142)
Direction: BULLISH ↑
Interpretation: Higher Stochastic K → UP prediction
What to monitor: Stochastic oscillator (0-100 scale)
Buy signal: When Stoch_K is rising from oversold (<20) or in mid-range (40-60)
Why it matters: Measures momentum and overbought/oversold conditions
Price Crossing 144 EMA Alert (No Visuals)Price Crossing 144 EMA Alert (No VisuPrice Crossing 144 EMA Alert (No Visuals)Price Crossing 144 EMA Alert (No Visuals)Price Crossing 144 EMA Alert (No Visuals)Price Crossing 144 EMA Alert (No Visuals)als)
Monthly Hotness RSI (Auto-Calibrated)Indicator of the previous months volatility/vol compared to averages over the last 3-5 years. helps show trend and if the market is 'hot'. indicator is good for showing favourable market conditions.
Relative Strength Index_YJ//@version=5
indicator(title="MACD_YJ", shorttitle="MACD_YJ",format=format.price, precision=2)
source = close
useCurrentRes = input.bool(true, title="Use Current Chart Resolution?")
resCustom = input.timeframe("60", title="Use Different Timeframe? Uncheck Box Above")
smd = input.bool(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input.bool(false, title="Show Dots When MacD Crosses Signal Line?")
sh = input.bool(true, title="Show Histogram?")
macd_colorChange = input.bool(true, title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input.bool(true, title="MacD Histogram 4 Colors?")
// === Divergence inputs ===
grpDiv = "Divergence"
calculateDivergence = input.bool(true, title="Calculate Divergence", group=grpDiv, tooltip="피벗 기반 정/역배 다이버전스 탐지 및 알람 사용")
lookbackRight = input.int(5, "Lookback Right", group=grpDiv, minval=1)
lookbackLeft = input.int(5, "Lookback Left", group=grpDiv, minval=1)
rangeUpper = input.int(60, "Bars Range Upper", group=grpDiv, minval=1)
rangeLower = input.int(5, "Bars Range Lower", group=grpDiv, minval=1)
bullColor = input.color(color.new(#4CAF50, 0), "Bull Color", group=grpDiv)
bearColor = input.color(color.new(#F23645, 0), "Bear Color", group=grpDiv)
textColor = color.white
noneColor = color.new(color.white, 100)
res = useCurrentRes ? timeframe.period : resCustom
fastLength = input.int(12, minval=1)
slowLength = input.int(26, minval=1)
signalLength= input.int(9, minval=1)
fastMA = ta.ema(source, fastLength)
slowMA = ta.ema(source, slowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
hist = macd - signal
outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)
// 가격도 같은 res로
hi_res = request.security(syminfo.tickerid, res, high)
lo_res = request.security(syminfo.tickerid, res, low)
// ── Histogram 색
histA_IsUp = outHist > outHist and outHist > 0
histA_IsDown = outHist < outHist and outHist > 0
histB_IsDown = outHist < outHist and outHist <= 0
histB_IsUp = outHist > outHist and outHist <= 0
macd_IsAbove = outMacD >= outSignal
plot_color = hist_colorChange ? (histA_IsUp ? color.new(#00FF00, 0) :
histA_IsDown ? color.new(#006900, 0) :
histB_IsDown ? color.new(#FF0000, 0) :
histB_IsUp ? color.new(#670000, 0) : color.yellow) : color.gray
macd_color = macd_colorChange ? color.new(#00ffff, 0) : color.new(#00ffff, 0)
signal_color = color.rgb(240, 232, 166)
circleYPosition = outSignal
// 골든/데드 크로스 (경고 해결: 먼저 계산)
isBullCross = ta.crossover(outMacD, outSignal)
isBearCross = ta.crossunder(outMacD, outSignal)
cross_color = isBullCross ? color.new(#00FF00, 0) : isBearCross ? color.new(#FF0000, 0) : na
// ── 플롯
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=plot.style_histogram, linewidth=5)
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=1)
plot(smd and outSignal? outSignal: na, title="Signal Line", color=signal_color, style=plot.style_line, linewidth=1)
plot(sd and (isBullCross or isBearCross) ? circleYPosition : na,
title="Cross", style=plot.style_circles, linewidth=3, color=cross_color)
hline(0, "0 Line", linestyle=hline.style_dotted, color=color.white)
// =====================
// Divergence (정배/역배) - 피벗 비교
// =====================
_inRange(cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
plFound = false
phFound = false
bullCond = false
bearCond = false
macdLBR = outMacD
if calculateDivergence
// 정배: 가격 LL, MACD HL
plFound := not na(ta.pivotlow(outMacD, lookbackLeft, lookbackRight))
macdHL = macdLBR > ta.valuewhen(plFound, macdLBR, 1) and _inRange(plFound )
lowLBR = lo_res
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and macdHL and plFound
// 역배: 가격 HH, MACD LH
phFound := not na(ta.pivothigh(outMacD, lookbackLeft, lookbackRight))
macdLH = macdLBR < ta.valuewhen(phFound, macdLBR, 1) and _inRange(phFound )
highLBR = hi_res
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and macdLH and phFound
// 시각화 (editable 파라미터 삭제)
plot(plFound ? macdLBR : na, offset=-lookbackRight, title="Regular Bullish (MACD)",
linewidth=2, color=(bullCond ? bullColor : noneColor), display=display.pane)
plotshape(bullCond ? macdLBR : na, offset=-lookbackRight, title="Bullish Label",
text=" Bull ", style=shape.labelup, location=location.absolute, color=bullColor, textcolor=textColor, display=display.pane)
plot(phFound ? macdLBR : na, offset=-lookbackRight, title="Regular Bearish (MACD)",
linewidth=2, color=(bearCond ? bearColor : noneColor), display=display.pane)
plotshape(bearCond ? macdLBR : na, offset=-lookbackRight, title="Bearish Label",
text=" Bear ", style=shape.labeldown, location=location.absolute, color=bearColor, textcolor=textColor, display=display.pane)
// 알람
alertcondition(bullCond, title="MACD Regular Bullish Divergence",
message="MACD 정배 다이버전스 발견: 현재 봉에서 lookbackRight 만큼 좌측.")
alertcondition(bearCond, title="MACD Regular Bearish Divergence",
message="MACD 역배 다이버전스 발견: 현재 봉에서 lookbackRight 만큼 좌측.")
50% level of Daily RangeThe 50% or midpoint between the current days highest and lowest points be used to divide the premium and discount of the days range. Price often reacts at this point and it can be used as a target for reversal trades. This indicator plots the level as it moves through out each day so is useful for backtesting as well as determining whether the current price is in premium or discount.
Trend Quality Score (Options-Friendly)Trend Quality Score for options entry that signals with background coloring for good movement or chop, to avoid theta burn. Toggle for conservative, balanced or aggressive with triggers.
Kinetic RSI [Vel + Accel] + AlertsThe Problem with Standard RSI
Most traders use the Relative Strength Index (RSI) to see if a market is "Overbought" (above 70) or "Oversold" (below 30). The problem? A strong trend can stay overbought for days, burning short sellers, or an asset can stay oversold while price continues to crash. Standard RSI tells you where the price is, but it doesn't tell you how hard it is moving.
The Solution: Kinetic RSI
This script reimagines RSI by applying basic physics concepts: Velocity and Acceleration.
Instead of asking "Is RSI below 30?", this indicator asks: "Is RSI below 35 AND did it just make a violent, high-speed turn upwards?"
It filters out lazy, drifting price action and only signals when momentum is accelerating in a new direction.
How It Works (The Math)
Velocity: We calculate the speed of the RSI change (Current RSI - Previous RSI).
Acceleration: We calculate if that speed is increasing (Current Velocity - Previous Velocity).
The Trigger: A signal is only generated if the RSI is in an extreme zone (<35 or >65) AND it has high Velocity AND positive Acceleration.
How to Trade It
1. The "Kick" Signals (Background Highlights)
🟢 Green Background (Bullish Kick): The RSI was low, but buyers stepped in aggressively. The momentum is not just positive; it is accelerating upward. This is often a "V-Bottom" catch.
🔴 Red Background (Bearish Kick): The RSI was high, but sellers slammed the price down. Momentum is accelerating downward.
2. The Line Color
Lime Line: Velocity is positive (Momentum is rising).
Fuchsia Line: Velocity is negative (Momentum is falling).
Usage: If the background flashes Green (Buy Signal), but the line turns back to Fuchsia (Red) a few bars later, the move has failed—exit the trade.
Settings & Alerts
RSI Length: Standard 14 (Adjustable).
Velocity Threshold: Controls sensitivity.
Lower (e.g., 2-3): More signals, catches smaller reversals.
Higher (e.g., 5+): Fewer signals, catches only massive "shocks" to the price.
Alerts Included: You can set alerts for "Bullish Kick," "Bearish Kick," or "Any Kick" to get notified of volatility spikes.
Best Practices
Wait for the Close: This indicator measures the closing velocity. Always wait for the bar to close to confirm the background color signal.
Trend Filtering: This works best as a "Reversal" indicator. If the market is in a super-strong uptrend, ignore the Bearish (Red) signals and only take the Bullish (Green) dips.
MP SESSIONS, DST, OTTHere’s a clear description you can use for this script (for yourself or as a TradingView “Indicator Description”):
---
### MP SESSIONS, DST, OTT – What this indicator does
This script is a **multi-session market timing tool** that:
1. **Draws full trading sessions on the chart** (Asia, Sydney, Tokyo, Shanghai, Europe, London, New York, NYSE)
2. **Automatically adjusts for Daylight Saving Time (DST)** for Sydney, London, and New York
3. **Shows a live info table** with session times, DST status, and whether each session is currently open or closed
4. **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:
1. Session name (Asia, Sydney, Tokyo, Shanghai, Europe, London, New York, NYSE)
2. DST status for that region (“Active 🌞 / Inactive 🍂 / Not Observed”)
3. Session **start time**
4. Session **end time**
5. 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.)
---
### TL;DR
This indicator is a **session toolkit + DST engine + time markers**:
* **Visually paints the main global sessions** with boxes and labels.
* **Handles DST automatically** for Sydney, London, New York.
* **Shows a live table** with session times, DST status, and open/closed status in your time zone.
* **Adds up to three configurable vertical time markers (OTT)** for custom session windows or key times.
If you want, I can also write a **short version** (2–3 sentences) for the TradingView “Description” field.
Premarket, Previous Day, Current Day high/lowHighs and lows for premarket, previous day, and current day
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.
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
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
...
∞
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.
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.
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.
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.)
MTF FVG 3-candleMTF FVG 3-candle is an indicator that detects Fair Value Gaps using a 3-candle pattern on the timeframe selected in the settings. It projects FVG zones onto lower timeframes, tracks the first touch and full fill of each zone, and provides alerts.
HAR Volatility ATR (Multi-Asset) - Andreus VillalobosIndicator based on the HAR (Hyper-Realized Volatility) model.
Combines daily, weekly, and monthly ATRs to project:
– Most probable price range (90%)
– Most probable take profit (60%)
Does not generate entry signals.
Designed for use in conjunction with:
market structure, liquidity, and price action.
Works on Forex, Indices, Gold, and Cryptocurrencies.
Trading Value RSI (NQ Tuned)The Trading Value RSI (NQ Tuned) is an indicator that applies the RSI calculation to trading value, defined as volume × close, rather than just price. It is specifically tuned for Nasdaq 100 futures (NQ), with a default RSI length of 24, overbought level at 75, and oversold level at 25 to filter out false signals from high volatility. The indicator visually colors the RSI line based on overbought (red), oversold (green), or neutral (blue) conditions. A horizontal midline at 50 helps identify potential trend direction changes or confirm ongoing momentum. This tool allows traders to monitor capital flow intensity, giving insight into when strong buying or selling pressure may drive short-term market moves.
Reversal Strength with Momentum Ratings on 4hr charts Here's a quick breakdown of what you'll see on your chart and how to actually use the indicator!
Reversal Labels:
↑ = Bullish reversal (price reversing upward)
↓ = Bearish reversal (price reversing downward)
STRONG (bright green/red) = High-confidence reversal (score > 65)
weak (faded green/red) = Low-confidence reversal (score ≤ 65)
Number on label = Reversal strength score (0-100)
Momentum Table (Top Right):
Overall Score (0-100) = Total momentum strength
Green (80+) = Very strong momentum
Yellow (40-60) = Moderate momentum
Orange/Red (<40) = Weak/stalling momentum
Individual Momentum Scores (each worth 0-20 points):
Volume = How much trading activity vs average
Price ROC = How fast price is moving (rate of change)
MA Spacing = How spread out the moving averages are (trend strength)
ADX = Directional movement indicator (trend conviction)
RSI Mom. = How far RSI is from neutral 50 (momentum extreme)
Status Indicators:
🔥 STRONG = Momentum > 70 (strong move happening)
📈 BUILDING = Momentum 50-70 (gaining strength)
⚠️ WEAK = Momentum 30-50 (losing steam)
💤 STALLING = Momentum < 30 (very weak/choppy)
Background Tint:
Light green background = Strong momentum (>70)
Light red background = Very weak momentum (<30)
The key is: look for STRONG reversal labels when momentum is building/strong for the best trade setups! Also this is mainly for the 4hr time frame.
HAR Volatility ATR v1.0 (Andreus Villalobos)
Indicator based on the HAR (Hyper-Realized Volatility) model.
Combines daily, weekly, and monthly ATRs to project:
– Most probable price range (90%)
– Most probable take profit (60%)
Does not generate entry signals.
Designed for use in conjunction with:
market structure, liquidity, and price action.
Works on Forex, Indices, Gold, and Cryptocurrencies.






















