15 min Trailstop15m High/Low Liquidity Lines (1m) — Indicator Description
15m High/Low Liquidity Lines (1m) is a precision liquidity-mapping tool designed for intraday traders who understand the importance of higher-timeframe liquidity levels while executing on the 1-minute chart.
This indicator automatically detects confirmed 15-minute swing highs and swing lows using pivot logic. When a new 15m high or low forms:
✔ Liquidity Line Generation
A horizontal line is drawn exactly at the price level of the pivot.
The line is anchored to the exact 1-minute candle that produced the 15m high/low, ensuring perfect visual alignment.
The line extends only up to the current bar — not across the whole chart.
Optional text labels (“15m High”, “15m Low”) can be shown at the start of each line.
✔ Auto-Cleanup (Smart Liquidity Sweep Detection)
If price trades through the level, the corresponding line and label are:
Instantly deleted
Marking the level as taken/swept
Allowing the chart to stay clean and focused on active liquidity only
This mimics institutional liquidity logic: once the high or low is violated, the target is considered filled and removed.
✔ Alerts
The indicator includes built-in alerts that fire when:
A new 15m high is confirmed
A new 15m low is confirmed
This allows the trader to react immediately when fresh liquidity levels appear.
✔ Customization Options
You can fully tailor the visual representation:
Turn highs and/or lows on or off
Choose line style (solid, dashed, dotted)
Customize line color and thickness
Customize the label style, size, and transparency
Who Is This For?
This indicator is ideal for:
ICT-style traders
Liquidity-based scalpers
1-minute ES/NQ traders
Anyone who uses HTF liquidity levels to frame trades on the LTF
It provides a clean, automated method to track active 15-minute liquidity levels directly on the 1-minute chart with zero clutter and perfect alignment.
Cycles
Stage 2 Pullback Swing indicatorThis scanner is built for swing traders who want high-probability pullbacks inside strong, established uptrends. It targets names in a confirmed Stage 2 bull phase (Weinstein model) that have pulled back 10–30% from a recent swing high on light selling volume, while still respecting fast EMAs.
Goal: find powerful uptrending stocks during controlled dips before the next leg higher.
What it looks for
Strong prior uptrend: price above the 50 and 200 SMAs, momentum positive over multiple timeframes
Confirmed Stage 2: price above a rising 30-week MA on the weekly chart
Pullback depth: 10–30% off recent swing highs—not too shallow, not broken
Pullback quality: range contained, no panic selling, trend structure intact
EMA behavior: price near EMA10 or EMA20 at signal time
Volume contraction: sellers fading throughout the pullback
Bullish shift: green candle back in trend direction
Why this matters
This setup hints at institutions defending positions during a temporary dip. Strong stocks pull back cleanly with declining volume, then resume the primary trend. This script alerts you when those conditions align.
Best way to use
Filter a strong universe before applying—quality tickers only
Pair with clear trade plans: risk defined by prior swing low or ATR
Trigger alerts instead of hunting charts manually
Intended for
Swing traders who want momentum continuation setups
Traders who prefer entering on controlled retracements
Anyone tired of chasing extended breakouts
BEGGALKey Features and Concepts
1. Order Block (OB) Identification (Pivots)
The core of the indicator relies on Pivot Point detection (ta.pivothigh/ta.pivotlow) over a specified Pivot Length (e.g., 5 bars).
Bullish OB (Demand Zone): Identified at a valid low pivot point, with the zone boundary defined between the pivot low (low ) and the open/close average (hl2 ) of the pivot bar.
Bearish OB (Supply Zone): Identified at a valid high pivot point, with the zone boundary defined between the pivot high (high ) and the open/close average (hl2 ) of the pivot bar.
2. Advanced Strength Filters (Momentum & Volume)
The indicator applies strict filters to ensure only powerful, high-quality zones are drawn:
Momentum (ATR) Filter: Checks if the candle that created the OB has a range (high - low) greater than the Average True Range (ATR) multiplied by the Momentum Threshold. This filters for impulsive, strong candles.
Volume Imbalance Filter (SMC Confirmation): If enabled, it requires the volume of the OB-creating candle to be higher than the volume of candles surrounding it (checked over the Volume Imbalance Lookback period). This confirms institutional activity in the zone creation.
Structure Break Filter (BOS/CHoCH): If enabled, the OB is only considered valid if it is created after a Break of Structure (BOS) or Change of Character (CHoCH). This validates the zone according to market structure rules (e.g., a Bearish OB must be preceded by a break of a significant swing low).
3. Dynamic Zone Management
Zone Narrowing (enable_narrowing): This feature dynamically adjusts the boundaries of an Order Block after it has been touched. If a candle wick tests the zone without fully mitigating it, the zone boundary is moved inward to the point where the test occurred, narrowing the zone and making it a more precise entry point (Dynamic OB concept).
Mitigation/Removal: Once price action (either the candle's wick or close, based on the Mitigation Method setting) breaches the outermost boundary of the zone, the Order Block is considered mitigated (broken) and is removed from the chart to clear clutter.
4. Risk Categorization
The indicator tracks and draws up to a user-defined number of OBs (Bullish/Bearish OB Count). These are categorized by their index:
Index 0 (Closest): Categorized as High Risk Zone.
Index 1: Categorized as Medium Risk Zone.
Index 2 and beyond: Categorized as Low Risk Zone. The user can toggle the visibility for each of these risk categories.
5. Integrated Risk/Reward (RR) Setup
For the High Risk Zone (Index 0), once the zone is touched, the indicator displays a complete trade setup:
Entry: Assumed at the Average Price of the Order Block.
Stop Loss (SL): Placed at the protective boundary of the OB (the top for a Sell Zone, the bottom for a Buy Zone). The risk area is colored with the RR Risk Zone Background.
Take Profit (TP): Calculated based on the user-defined Risk/Reward Ratio (e.g., 2.0 for 1:2 RR). The reward area is colored with the RR Reward Zone Background.
The RR boxes and price labels (TP/SL) are drawn with a configurable RR Box Width (Bars).
6. Alerts
The indicator includes built-in Pine Script alerts that trigger when the price enters an unmitigated zone, notifying the user of the Risk Level (High, Medium, or Low), the zone's boundaries, and the price.
Fortunato Lead-Lag Multi-Asset (POC) v5_fix2//@version=6
indicator("Fortunato Lead-Lag Multi-Asset (POC) v5_fix2", shorttitle="FLL Multi POC v5_fix2", overlay=false, max_lines_count=200, max_labels_count=200)
// ========== USER CONFIG ==========
res = input.timeframe("1", "Resolution for analysis (ex: 1, 5, 3)")
corr_length = input.int(60, "Rolling window (bars) for correlation", minval=10, maxval=500)
max_lag = input.int(5, "Max lag to test (bars)", minval=1, maxval=20)
corr_threshold = input.float(0.60, "Correlation threshold (abs)", step=0.01)
min_lag_for_signal = input.int(1, "Min lag to consider (bars)", minval=0)
plot_lag_as_columns = input.bool(true, "Plot lag as columns")
// --- symbols (change to the exact tickers your feed uses) ---
sym_ndx = input.symbol("NASDAQ:NDX", "NDX (leader candidate) - change if needed")
sym_spx = input.symbol("SPX:SPX", "SPX (follower candidate) - change if needed")
// Optional add-ons
sym_vix = input.symbol("CBOE:VIX", "VIX (volatility index) - optional")
sym_dxy = input.symbol("ICEUS:DXY", "DXY (Dollar Index) - optional")
sym_xau = input.symbol("OANDA:XAUUSD","Gold (XAU/USD) - optional")
sym_oil = input.symbol("NYMEX:CL1!", "Crude Oil (continuous) - optional")
sym_btc = input.symbol("BINANCE:BTCUSDT","Bitcoin (BTC) - optional")
// ========== DATA FETCH (selected resolution) ==========
ndx = request.security(sym_ndx, res, close)
spx = request.security(sym_spx, res, close)
vix = request.security(sym_vix, res, close)
dxy = request.security(sym_dxy, res, close)
xau = request.security(sym_xau, res, close)
oil = request.security(sym_oil, res, close)
btc = request.security(sym_btc, res, close)
// ========== HELPERS ==========
has_history(len) => bar_index >= len
// rolling Pearson correlation implemented with ta.cum differences (replaces ta.sum)
rolling_corr(a, b, n) =>
if not has_history(n)
na
else
// compute rolling sums via cumulative sums
// sum_ab = sum_{k=0..n-1} a *b
float cum_ab = ta.cum(a * b)
float cum_ab_lag = cum_ab
float sum_ab = cum_ab - cum_ab_lag
float cum_a = ta.cum(a)
float cum_a_lag = cum_a
float sum_a = cum_a - cum_a_lag
float cum_b = ta.cum(b)
float cum_b_lag = cum_b
float sum_b = cum_b - cum_b_lag
float cum_a2 = ta.cum(a * a)
float cum_a2_lag = cum_a2
float sum_a2 = cum_a2 - cum_a2_lag
float cum_b2 = ta.cum(b * b)
float cum_b2_lag = cum_b2
float sum_b2 = cum_b2 - cum_b2_lag
float nn = n * 1.0
float num = sum_ab - (sum_a * sum_b) / nn
float den_part_a = sum_a2 - (sum_a * sum_a) / nn
float den_part_b = sum_b2 - (sum_b * sum_b) / nn
float den = den_part_a * den_part_b
if den <= 0.0
na
else
num / math.sqrt(den)
// ========== COMPUTE CORRELATIONS FOR ALL LAGS (USING rolling_corr) ==========
var float corr_dir1 = array.new_float()
var float corr_dir2 = array.new_float()
// ensure arrays sized correctly each bar
if array.size(corr_dir1) != (max_lag + 1)
array.clear(corr_dir1)
for i = 0 to max_lag
array.push(corr_dir1, na)
if array.size(corr_dir2) != (max_lag + 1)
array.clear(corr_dir2)
for i = 0 to max_lag
array.push(corr_dir2, na)
// fill arrays with correlation values (call rolling_corr every bar for consistency)
for i = 0 to max_lag
float val1 = na
if has_history(corr_length + i) and not na(ndx) and not na(spx)
// ndx aligned with spx shifted by +i (ndx leads spx by i)
val1 := rolling_corr(ndx, spx , corr_length)
array.set(corr_dir1, i, val1)
float val2 = na
if i > 0 and has_history(corr_length + i) and not na(ndx) and not na(spx)
// spx leads ndx by i
val2 := rolling_corr(ndx , spx, corr_length)
array.set(corr_dir2, i, val2)
// ========== FIND BEST ABSOLUTE CORRELATION AND DIRECTION ==========
float best_corr = na
int best_lag = 0
int best_dir = 0 // 1 = ndx -> spx, -1 = spx -> ndx
// scan dir1 (i = 0..max_lag)
for i = 0 to max_lag
float c = array.get(corr_dir1, i)
if not na(c)
if na(best_corr) or math.abs(c) > math.abs(best_corr)
best_corr := c
best_lag := i
best_dir := 1
// scan dir2 (i = 1..max_lag)
for i = 1 to max_lag
float c = array.get(corr_dir2, i)
if not na(c)
if na(best_corr) or math.abs(c) > math.abs(best_corr)
best_corr := c
best_lag := i
best_dir := -1
// ========== MULTI-ASSET LIGHT CONFIRMATION (explicit calls with rolling_corr) ==========
float sum_corr = 0.0
int count_corr = 0
// VIX
float local_best_vix = na
if not na(vix)
for j = 0 to max_lag
if has_history(corr_length + j)
float cc = rolling_corr(ndx, vix , corr_length)
if not na(cc)
if na(local_best_vix) or math.abs(cc) > math.abs(local_best_vix)
local_best_vix := cc
if not na(local_best_vix)
sum_corr := sum_corr + local_best_vix
count_corr := count_corr + 1
// DXY
float local_best_dxy = na
if not na(dxy)
for j = 0 to max_lag
if has_history(corr_length + j)
float cc = rolling_corr(ndx, dxy , corr_length)
if not na(cc)
if na(local_best_dxy) or math.abs(cc) > math.abs(local_best_dxy)
local_best_dxy := cc
if not na(local_best_dxy)
sum_corr := sum_corr + local_best_dxy
count_corr := count_corr + 1
// XAU
float local_best_xau = na
if not na(xau)
for j = 0 to max_lag
if has_history(corr_length + j)
float cc = rolling_corr(ndx, xau , corr_length)
if not na(cc)
if na(local_best_xau) or math.abs(cc) > math.abs(local_best_xau)
local_best_xau := cc
if not na(local_best_xau)
sum_corr := sum_corr + local_best_xau
count_corr := count_corr + 1
// OIL
float local_best_oil = na
if not na(oil)
for j = 0 to max_lag
if has_history(corr_length + j)
float cc = rolling_corr(ndx, oil , corr_length)
if not na(cc)
if na(local_best_oil) or math.abs(cc) > math.abs(local_best_oil)
local_best_oil := cc
if not na(local_best_oil)
sum_corr := sum_corr + local_best_oil
count_corr := count_corr + 1
// BTC
float local_best_btc = na
if not na(btc)
for j = 0 to max_lag
if has_history(corr_length + j)
float cc = rolling_corr(ndx, btc , corr_length)
if not na(cc)
if na(local_best_btc) or math.abs(cc) > math.abs(local_best_btc)
local_best_btc := cc
if not na(local_best_btc)
sum_corr := sum_corr + local_best_btc
count_corr := count_corr + 1
float confirm_avg = na
if count_corr > 0
confirm_avg := sum_corr / count_corr
// ========== SIGNAL LOGIC ==========
bool lead_detected = false
string lead_direction_text = "NoLeader"
if not na(best_corr) and math.abs(best_corr) >= corr_threshold and best_lag >= min_lag_for_signal
lead_detected := true
lead_direction_text := best_dir == 1 ? "NDX -> SPX" : (best_dir == -1 ? "SPX -> NDX" : "NoLeader")
// ========== PLOTS (GLOBAL) ==========
plot_best_corr = best_corr
plot_best_lag = (lead_detected ? best_lag : na)
plot_confirm_avg = confirm_avg
plot(plot_best_corr, title="Best Corr (signed)", linewidth=2)
hline(0, "zero", linestyle=hline.style_dashed)
hline(corr_threshold, "threshold +", linestyle=hline.style_solid)
hline(-corr_threshold, "threshold -", linestyle=hline.style_solid)
plot(plot_lag_as_columns ? plot_best_lag : na, title="Best Lag (bars)", style=plot.style_columns, linewidth=2)
plot(not na(plot_confirm_avg) ? plot_confirm_avg : na, title="Multi-asset confirm (avg)", linewidth=1, style=plot.style_line)
// ========== LABEL MANAGEMENT ==========
var label lbl = na
if lead_detected and barstate.isconfirmed
if not na(lbl)
label.delete(lbl)
lbl := label.new(bar_index, plot_best_corr, text="Lead: " + lead_direction_text + " lag:" + str.tostring(best_lag) + " corr:" + str.tostring(best_corr, "#.##"),
style=label.style_label_left, color=color.new(color.green, 75), textcolor=color.white, size=size.small)
// ========== ALERTS ==========
alertcondition(lead_detected and best_dir == 1, title="NDX leads SPX detected", message="NDX leads SPX — lag: {{plot_1}} corr: {{plot_0}}")
alertcondition(lead_detected and best_dir == -1, title="SPX leads NDX detected", message="SPX leads NDX — lag: {{plot_1}} corr: {{plot_0}}")
// ========== INFORMATION TABLE ==========
var table t = table.new(position.top_right, 1, 5, border_width=1)
if barstate.islast
table.cell(t, 0, 0, "Resolution: " + res)
table.cell(t, 0, 1, "Best corr: " + (na(best_corr) ? "na" : str.tostring(best_corr, "#.##")))
table.cell(t, 0, 2, "Best lag: " + (na(best_lag) ? "na" : str.tostring(best_lag)))
table.cell(t, 0, 3, "Direction: " + lead_direction_text)
table.cell(t, 0, 4, "Confirm avg: " + (na(confirm_avg) ? "na" : str.tostring(confirm_avg, "#.##")))
Premarket Break 5m (Close Above/Below Prem High/Low)//@version=5
indicator("Premarket Break 5m (Close Above/Below Prem High/Low)", overlay = true)
// === SETTINGS ===
premarketSession = input.session("0400-0930", "Premarket Session (ET)")
regularSession = input.session("0930-1600", "Regular Session (ET)")
// === HELPERS ===
isNewDay = ta.change(time("D")) != 0
// Track premarket high/low each day
var float pmHigh = na
var float pmLow = na
// Reset at the start of each new day
if isNewDay
pmHigh := na
pmLow := na
// Are we inside premarket session?
inPremarket = not na(time(timeframe.period, premarketSession, "America/New_York"))
// Update premarket high/low during premarket
if inPremarket
pmHigh := na(pmHigh) ? high : math.max(pmHigh, high)
pmLow := na(pmLow) ? low : math.min(pmLow, low)
// Are we inside regular session?
inRegular = not na(time(timeframe.period, regularSession, "America/New_York"))
// === SIGNALS: 5m close above/below premarket high/low ===
// Require previous close to be on the other side to avoid spam
bullBreak = inRegular and not na(pmHigh) and close > pmHigh and close <= pmHigh
bearBreak = inRegular and not na(pmLow) and close < pmLow and close >= pmLow
// === PLOTS ===
plot(pmHigh, title = "Premarket High", color = color.new(color.green, 0), linewidth = 2)
plot(pmLow, title = "Premarket Low", color = color.new(color.red, 0), linewidth = 2)
plotshape(bullBreak, title = "Close Above Prem High", style = shape.labelup,
text = "Close > PM High", location = location.belowbar, size = size.tiny)
plotshape(bearBreak, title = "Close Below Prem Low", style = shape.labeldown,
text = "Close < PM Low", location = location.abovebar, size = size.tiny)
// === ALERTS ===
// These fire once per bar close when the condition is true
if bullBreak
alert("5m candle CLOSED above Premarket High.", alert.freq_once_per_bar_close)
if bearBreak
alert("5m candle CLOSED below Premarket Low.", alert.freq_once_per_bar_close)
WaveTrend with MFI and Auto/Manual HTFWaveTrend with MFI and Auto/Manual HTF
WaveTrend with MFI and Auto/Manual HTF
WaveTrend with MFI and Auto/Manual HTF
WaveTrend with MFI and Auto/Manual HTF
Macro Timing Window Signal ⏱️ Macro Timing Window Signal – Check/X Indicator
This indicator displays a green check mark ✔️ or red X ✖️ in the top-right corner of the chart based on a repeating macro time cycle that divides every hour into active and inactive windows.
How it works:
• ✔️ Green Check (Active Macro Window):
Appears from xx:45 → xx:15 of the next hour (30-minute macro window).
• ✖️ Red X (Inactive Macro Window):
Appears from xx:16 → xx:44 (mid-hour cooldown window).
• Optional flash signal at the exact macro flip points (xx:45, xx:00, xx:15) to highlight transitions.
• Supports sound alerts so you never miss the start or end of a macro window.
This tool is designed for traders who incorporate macro-driven time cycles, liquidity sessions, or algorithmic delivery windows into their strategy.
The display is fixed on-screen, clean, and unobtrusive, ensuring instant recognition of the current macro state without cluttering the chart.
BTC - FRIC: Friction & Realized Intensity CompositeTitle: BTC - FRIC: Friction & Realized Intensity Composite
Data: IntoTheBlock
Overview & Philosophy
FRIC (Friction & Realized Intensity Composite) is a specialized on-chain oscillator designed to visualize the "psychological battlegrounds" of the Bitcoin network.
Most indicators focus on Price or Momentum. FRIC focuses on Cost Basis. It operates on the thesis that the market experiences maximum "Friction" when the price revisits the cost basis of a large number of holders. These are the zones where investors are emotionally triggered to react—either to exit "at breakeven" after a loss (creating resistance) or to defend their entry (creating support).
This indicator answers two questions simultaneously:
Intensity: Is the market hitting a Wall (High Friction) or a Vacuum (Low Friction)?
Valuation: Is this happening at a market bottom or a top?
The "Alpha" (Wall vs. Vacuum)
Why we visualize both extremes: This indicator filters out the "Noise" (the middle range) to show you only the statistically significant anomalies.
1. The "Wall" (Positive Z-Score Bars)
What it is : A statistically high number of addresses are at breakeven.
The Implication : Expect a grind. Price action often slows down or reverses here because "Bag Holders" are selling into strength to get out flat, or new buyers are establishing a floor.
2. The "Vacuum" (Negative Z-Score Bars)
What it is : A statistically low number of addresses are at breakeven.
The Implication : Expect acceleration. The price is moving through a zone where very few people have a cost basis. With no natural "breakeven supply" to block the path, price often enters Price Discovery or Free Fall.
Methodology
The indicator constructs a composite view using two premium metrics from IntoTheBlock:
1. The "Activity" (Friction Z-Score): We utilize the Breakeven Addresses Percentage. This measures the % of all addresses where the current price equals the average cost basis.
- Normalization: We apply a rolling Z-Score (Standard Deviation) to this data.
- The Filter: We hide the "Noise" (e.g., Z-Scores between -2.0 and +2.0) to isolate only the events where market structure is truly stretched.
2. The "Context" (Valuation Heatmap): We utilize the MVRV Ratio to color-code the friction.
Deep Value (< 1.0): Price is below the average "Fair Value" of the network.
Overheated (> 3.0): Price is significantly extended above the "Fair Value."
Credit: The MVRV Ratio was originally conceptualized by Murad Mahmudov and David Puell. It remains one of the gold standards for detecting Bitcoin's fair value deviations.
How to Read the Indicator
The chart is visualized as a Noise-Filtered Heatmap.
1. The Bars (Intensity)
Bars Above Zero: High Friction (Congestion). The market is fighting through a supply wall.
Bars Below Zero: Low Friction (Vacuum). The market is accelerating through thin air.
Gray/Ghosted: Noise. Routine market activity; no significant signal.
2. The Colors (Valuation Context) The color tells you why the friction is happening:
🟦 Deep Blue (The "Capitulation Buy"):
Signal: High Friction + Low MVRV.
Meaning : Investors are panic-selling at breakeven/loss, but the asset is fundamentally undervalued. Historically, these are high-conviction cycle bottoms.
🟥 Dark Red (The "FOMO Sell"):
Signal: High Friction + High MVRV.
Meaning : Investors are churning at high valuations. Smart money is often distributing to late retail arrivers. Historically marks cycle tops.
🟨 Yellow/Orange (The "Trend Battle"):
Signal: High Friction + Neutral MVRV.
Meaning : The market is contesting a level within a trend (e.g., a mid-cycle correction).
Visual Guide & Features
10-Zone Heatmap: A granular color gradient that shifts from Dark Blue (Deep Value) → Sky Blue → Grey (Neutral) → Orange → Dark Red (Top).
Noise Filter
A unique feature that "ghosts out" insignificant data, leaving only the statistically relevant signals visible.
Data Check Monitor
A diagnostic table in the bottom-right corner that confirms the live connection to IntoTheBlock data streams and displays the current regime in real-time.
Settings
Lookback Period (Default: 90): The rolling window used for the Z-Score calculation. Shortening this (e.g., to 30) makes the indicator more sensitive to local volatility; lengthening it (e.g., to 365) aligns it with macro cycles.
Noise Threshold (Default: 2.0): The strictness of the filter. Only friction events exceeding this Z-Score will be highlighted in full color.
Show Status Table : Toggles the on-screen dashboard.
Disclaimer
This script is for research and educational purposes only. It relies on third-party on-chain data which may be subject to latency or revision. Past performance of on-chain metrics does not guarantee future price action.
Tags
bitcoin, btc, on-chain, mvrv, intotheblock, friction, z-score, fundamental, valuation, cycle
Ellipse Price Action Indicator v3Successful Trade Setup Using Ellipse Price Action Indicator (EPAI) 🔥
With the help of the Ellipse Price Action Indicator, this bearish trade setup played out perfectly.
EPAI generated a Sell Signal with a red arrow.
According to the EPAI method:
🔹 If price makes a new high on the next candle — add one more unit.
🔹 Every time a new high forms, add one more unit per candle.
🔹 Exit all units at the Moving Average (MA) — this is the core risk-controlled exit rule.
This is why EPAI consistently provides successful trade setups when followed with discipline.
⚠ Important Notice — Last Chance!
The Ellipse Price Action Indicator (EPAI) will soon become PRIVATE.
Access will be restricted only to Premium Members.
✅ First 25 subscribers can use this indicator absolutely FREE.
After that, it will not be available publicly.
Zero Lag EMA_BhavatThis is a test script for zelma. This is intended to cut down the lag from traditional ema indicators.
YSD RSIYSD RSI
This indicator is an enhanced version of the traditional Relative Strength Index (RSI), designed to provide deeper insight into market momentum and trend quality. While the classic RSI focuses primarily on the ratio of recent gains to losses, this strengthened variant incorporates additional layers of analysis to capture subtler shifts in price behavior. By applying refined smoothing techniques, integrating volatility awareness, and emphasizing the consistency of directional movement, the indicator aims to reduce noise and highlight more reliable momentum signals. As a result, it not only identifies overbought and oversold conditions with greater precision but also reacts more intelligently to changing market environments. Traders can use this improved RSI to detect early trend reversals, filter out false signals, and gain a more comprehensive understanding of underlying price dynamics compared to the standard RSI.
Multi-TF Quarter & Session Candle Indicator-aamirlang [Beta]Key Features:
Quarter Identification: It detects 90-minute HTF candles on 5-minute charts and labels them as Q1, Q2, Q3, Q4 for clear session tracking.
Session Identification (Asia, London, NY, PM): Identifies sessions on 15-minute and 60-minute charts and labels them automatically. So that you can visually see whats happening on Higher TimeFrame.
CISD Detection: Highlights Critical Swing Directions to pinpoint potential market reversals.
Sweep Detection: Automatically draws sweeps to indicate price levels tested or broken.
Multi-Timeframe Support: Works seamlessly on 1m, 5m, 15m, 60m, Daily, Weekly, and Monthly charts.
How It Works:
If you do not see higher TF Candles please enable them from the Menu.
Detects and prints HTF candle and automatically detects Quarters and Sessions.
Automatically maps 5m to 90m (Quarter of a Session) HTF and labels Q1/Q2/Q3/Q4 to each candle so that you can visually see how a session is going on and what to expect in comming sessions.
Automatically detects a Session and labels sessions Asia/London/NY/PM.
When working in Higher TF other that 4H, It prints Daily candles by labeling them.
Other timeframes show normal candle time or standard D/W/M formatting.
CISD module identifies critical swing directions.
Sweeps are drawn automatically to highlight tested levels.
By using this Indicator:
Quickly identify session and quarter candles without manual calculations.
Detect intraday swing directions and potential reversal zones.
Visualize volatility for better risk management.
Perfect for intraday, swing, and long-term analysis.
Credits:
Credit to: @traderdaye for Quarterly theory.
and to all the beautiful people on Tradingview who contributed.
Note:
This is free and version so it may contain error or bugs please leave a comment for any bugs, suggestions and queries.
Enjoy Trading.
window//@version=5
indicator("Smart Money Time Windows (GMT+3:30)", overlay=true)
// ✅ Window 1 — 08:30 to 09:05 Tehran Time
w1 = time(timeframe.period, "0830-0905", "Asia/Tehran")
// ✅ Window 2 — 13:50 to 14:40 Tehran Time
w2 = time(timeframe.period, "1350-1440", "Asia/Tehran")
// ✅ Window 3 — 17:15 to 18:00 Tehran Time
w3 = time(timeframe.period, "1715-1800", "Asia/Tehran")
bgcolor(not na(w1) ? color.new(color.blue, 85) : na)
bgcolor(not na(w2) ? color.new(color.orange, 85) : na)
bgcolor(not na(w3) ? color.new(color.purple, 85) : na)
FlowTrinity — Crypto Dominance Rotation IndexFlowTrinity — Crypto Dominance Rotation Index
(Tracks BTC / Stablecoin / Altcoin dominance flows with standardized oscillators)
⚪ Overview
FlowTrinity decomposes total crypto market structure into three capital-flow regimes — BTC dominance, Stablecoin dominance, and Altcoin dominance — each normalized into oscillator form. Additionally, a fourth histogram tracks Total Market Cap expansion/contraction relative to BTC+Stable capital, revealing underlying rotation pressure not visible in raw dominance charts.
Each component is standardized through SMA/STD normalization, producing smoothed 0–100 style oscillations that highlight overbought/oversold rotation extremes, risk-on/risk-off transitions, and capital cycle inflection zones.
⚪ Flow Components
Stablecoin Dominance Oscillator —White line
Measures the combined USDT + USDC share of market dominance.
High values indicate increased hedging behavior or sidelined capital.
Low values coincide with renewed risk appetite and capital deployment into crypto assets.
Altcoin Dominance Oscillator — Orange Line
Tracks the share of liquidity rotating into altcoins (Total – BTC – Stable).
Rising values indicate broad market expansion and speculative activity.
Falling values reflect flight-to-safety or concentration back into majors.
BTC Dominance Oscillator — Purple line(off by default
Normalized BTC dominance revealing transitions between Bitcoin-led markets and altcoin-led cycles. Useful for identifying BTC absorption phases vs. altcoins dispersion regimes.
Total–BTC–Stable MarketCap Difference Histogram — histogram
A normalized histogram of total market cap change minus BTC+Stable market cap change.
• Positive → altcoin segment expanding
• Negative → capital retreating into BTC or stables
Acts as a structural layer confirming or contradicting dominance-based signals.
Normalization Logic
All flows use SMA + standard deviation scaling (lookback 7 / smoothing 7), enabling consistent comparison across unrelated dominance and market-cap metrics.
⚪ Use Cases
• Identify shifts between BTC-led and alt-led markets
• Detect early signs of liquidity rotation
• If Stablecoin OSC is oversold, liquidity may soon rotate to BTC or Altcoins, signaling potential price moves.
• If Stablecoin OSC is overbought and Altcoin OSC is oversold, it can indicate an early buying opportunity in Altcoins.
• Watching these oscillator positions helps spot early market rotations and plan entries or exits.
snapshot
Disclaimer
This indicator is for educational and informational purposes only and does not constitute financial advice or investment guidance. Cryptocurrency trading involves significant risk; you are solely responsible for your trading decisions, based on your financial objectives and risk tolerance. The author assumes no liability for any losses arising from the use of this tool.
Time-Candle Sync — The Book of TIME by Nancy_PelosiTime-Candle Sync is a precision time-alignment framework designed to synchronize candle opens, closes, and session transitions across multiple timeframes and custom trading windows.
Built to work hand-in-hand with Nancy Pelosi’s Book of Time, this tool visualizes how market structure responds to time itself — not indicators, not signals, but when price is allowed to move.
By mapping higher-timeframe boundaries and user-defined time segments directly onto lower-timeframe candles, Time-Candle Sync helps traders identify:
True session transitions
Time-based inflection points
Candle alignment across multiple timeframes
Periods of increased probability and structural change
Custom Time Control
The script supports fully customizable time windows, allowing users to define specific market sessions, macro periods, or personal trading windows. All dividers are anchored to the selected chart timezone to ensure accurate alignment regardless of asset or exchange.
Designed for Time-Aware Trading
This indicator does not generate buy or sell signals. Instead, it provides structural context so traders can:
Align executions with time-based events
Avoid trading during low-probability periods
Confirm when candles are synchronized across timeframes
Intended Use
Time-Candle Sync is best used alongside:
Session-based trading
Market structure concepts
Time-driven frameworks such as The Book of Time
Time controls price access.
Candles reveal when that access is granted.
Credit Spread RegimeThe Credit Market as Economic Barometer
Credit spreads are among the most reliable leading indicators of economic stress. When corporations borrow money by issuing bonds, investors demand a premium above the risk-free Treasury rate to compensate for the possibility of default. This premium, known as the credit spread, fluctuates based on perceptions of economic health, corporate profitability, and systemic risk.
The relationship between credit spreads and economic activity has been studied extensively. Two papers form the foundation of this indicator. Pierre Collin-Dufresne, Robert Goldstein, and Spencer Martin published their influential 2001 paper in the Journal of Finance, documenting that credit spread changes are driven by factors beyond firm-specific credit quality. They found that a substantial portion of spread variation is explained by market-wide factors, suggesting credit spreads contain information about aggregate economic conditions.
Simon Gilchrist and Egon Zakrajsek extended this research in their 2012 American Economic Review paper, introducing the concept of the Excess Bond Premium. They demonstrated that the component of credit spreads not explained by default risk alone is a powerful predictor of future economic activity. Elevated excess spreads precede recessions with remarkable consistency.
What Credit Spreads Reveal
Credit spreads measure the difference in yield between corporate bonds and Treasury securities of similar maturity. High yield bonds, also called junk bonds, carry ratings below investment grade and offer higher yields to compensate for greater default risk. Investment grade bonds have lower yields because the probability of default is smaller.
The spread between high yield and investment grade bonds is particularly informative. When this spread widens, investors are demanding significantly more compensation for taking on credit risk. This typically indicates deteriorating economic expectations, tighter financial conditions, or increasing risk aversion. When the spread narrows, investors are comfortable accepting lower premiums, signaling confidence in corporate health.
The Gilchrist-Zakrajsek research showed that credit spreads contain two distinct components. The first is the expected default component, which reflects the probability-weighted cost of potential defaults based on corporate fundamentals. The second is the excess bond premium, which captures additional compensation demanded beyond expected defaults. This excess premium rises when investor risk appetite declines and financial conditions tighten.
The Implementation Approach
This indicator uses actual option-adjusted spread data from the Federal Reserve Economic Database (FRED), available directly in TradingView. The ICE BofA indices represent the industry standard for measuring corporate bond spreads.
The primary data sources are FRED:BAMLH0A0HYM2, the ICE BofA US High Yield Index Option-Adjusted Spread, and FRED:BAMLC0A0CM, the ICE BofA US Corporate Index Option-Adjusted Spread for investment grade bonds. These indices measure the spread of corporate bonds over Treasury securities of similar duration, expressed in basis points.
Option-adjusted spreads account for embedded options in corporate bonds, providing a cleaner measure of credit risk than simple yield spreads. The methodology developed by ICE BofA is widely used by institutional investors and central banks for monitoring credit conditions.
The indicator offers two modes. The HY-IG excess spread mode calculates the difference between high yield and investment grade spreads, isolating the pure compensation for below-investment-grade credit risk. This measure is less affected by broad interest rate movements. The HY-only mode tracks the absolute high yield spread, capturing both credit risk and the overall level of risk premiums in the market.
Interpreting the Regimes
Credit conditions are classified into four regimes based on Z-scores calculated from the spread proxy.
The Stress regime occurs when spreads reach extreme levels, typically above a Z-score of 2.0. At this point, credit markets are pricing in significant default risk and economic deterioration. Historically, stress regimes have coincided with recessions, financial crises, and major market dislocations. The 2008 financial crisis, the 2011 European debt crisis, the 2016 commodity collapse, and the 2020 pandemic all triggered credit stress regimes.
The Elevated regime, between Z-scores of 1.0 and 2.0, indicates above-normal risk premiums. Credit conditions are tightening. This often occurs in the build-up to stress events or during periods of uncertainty. Risk management should be heightened, and exposure to credit-sensitive assets may be reduced.
The Normal regime covers Z-scores between -1.0 and 1.0. This represents typical credit conditions where spreads fluctuate around historical averages. Standard investment approaches are appropriate.
The Low regime occurs when spreads are compressed below a Z-score of -1.0. Investors are accepting below-average compensation for credit risk. This can indicate complacency, strong economic confidence, or excessive risk-taking. While often associated with favorable conditions, extremely tight spreads sometimes precede sudden reversals.
Credit Cycle Dynamics
Beyond static regime classification, the indicator tracks the direction and acceleration of spread movements. This reveals where credit markets stand in the credit cycle.
The Deteriorating phase occurs when spreads are elevated and continuing to widen. Credit conditions are actively worsening. This phase often precedes or coincides with economic downturns.
The Recovering phase occurs when spreads are elevated but beginning to narrow. The worst may be over. Credit conditions are improving from stressed levels. This phase often accompanies the early stages of economic recovery.
The Tightening phase occurs when spreads are low and continuing to compress. Credit conditions are very favorable and improving further. This typically occurs during strong economic expansions but may signal building complacency.
The Loosening phase occurs when spreads are low but beginning to widen from compressed levels. The extremely favorable conditions may be normalizing. This can be an early warning of changing sentiment.
Relationship to Economic Activity
The predictive power of credit spreads for economic activity is well-documented. Gilchrist and Zakrajsek found that the excess bond premium predicts GDP growth, industrial production, and unemployment rates over horizons of one to four quarters.
When credit spreads spike, the cost of corporate borrowing increases. Companies may delay or cancel investment projects. Reduced investment leads to slower growth and eventually higher unemployment. The transmission mechanism runs from financial conditions to real economic activity.
Conversely, tight credit spreads lower borrowing costs and encourage investment. Easy credit conditions support economic expansion. However, excessively tight spreads may encourage over-leveraging, planting seeds for future stress.
Practical Application
For equity investors, credit spreads provide context for market risk. Equities and credit often move together because both reflect corporate health. Rising credit spreads typically accompany falling stock prices. Extremely wide spreads historically have coincided with equity market bottoms, though timing the reversal remains challenging.
For fixed income investors, spread regimes guide sector allocation decisions. During stress regimes, flight to quality favors Treasuries over corporates. During low regimes, spread compression may offer limited additional return for credit risk, suggesting caution on high yield.
For macro traders, credit spreads complement other indicators of financial conditions. Credit stress often leads equity volatility, providing an early warning signal. Cross-asset strategies may use credit regime as a filter for position sizing.
Limitations and Considerations
FRED data updates with a lag, typically one business day for the ICE BofA indices. For intraday trading decisions, more current proxies may be necessary. The data is most reliable on daily timeframes.
Credit spreads can remain at extreme levels for extended periods. Mean reversion signals indicate elevated probability of normalization but do not guarantee timing. The 2008 crisis saw spreads remain elevated for many months before normalizing.
The indicator is calibrated for US credit markets. Application to other regions would require different data sources such as European or Asian credit indices. The relationship between spreads and subsequent economic activity may vary across market cycles and structural regimes.
References
Collin-Dufresne, P., Goldstein, R.S., and Martin, J.S. (2001). The Determinants of Credit Spread Changes. Journal of Finance, 56(6), 2177-2207.
Gilchrist, S., and Zakrajsek, E. (2012). Credit Spreads and Business Cycle Fluctuations. American Economic Review, 102(4), 1692-1720.
Krishnamurthy, A., and Muir, T. (2017). How Credit Cycles across a Financial Crisis. Working Paper, Stanford University.
5-Bar BreakoutThis indicator shows if the price is breaking out above the high or the low of the previous 5 bars
Renko Scalp ScannerThis scanner is optimized for short term bursts for Renko.
DESCRIPTION: This indicator scans the 7 major forex pairs (EURUSD, GBPUSD, USDJPY, USDCHF, AUDUSD, USDCAD, NZDUSD) on 1-pip Renko charts. It ranks them from BEST (#1, top row) to WORST (#7, bottom row) based on a predictive score (0-100) that combines LIVE momentum (current run length, whipsaws, brick timing) + 24-HOUR HISTORICAL consistency (clean long runs, stability).
Higher score = longer, cleaner, more predictable runs ahead (backtested 74% hit rate for 5+ brick continuations).
HOW TO USE THE TABLE:
1. Add to a 1-second Renko chart (Traditional, Box Size: 0.0001 for non-JPY; 0.01 for JPY pairs).
2. RANK: Position 1–7 (green highlight on #1 = switch to this pair NOW).
3. PAIR: Symbol + direction arrow (↑=buy bias, ↓=sell bias).
4. SCORE: 0–100 total (≥85=monster run; ≥75=strong; ≥60=decent; <60=avoid).
5. RUN │ HIST% │ SEC: Current live run length │ % of 24h runs that were clean 8+ bricks │ Live avg seconds per brick (ideal 5–12s).
6. Trade the #1 pair in the arrow direction until whipsaw or score drops <75. Set alerts for score ≥83.
Backtested on 1-year data: Catches 84% of 10+ brick runners. Refreshes every second.
Santo Graal Confirmacao de TendenciaHow to Apply on the Chart
Ideal Timeframes: 4h or Daily
📈 Long Entry (Buy)
A Buy signal appears.
The green line starts forming below the price.
Stop-loss: placed just below the green line.
📉 Short Entry (Sell)
A Sell signal appears.
The red line starts forming above the price.
Stop-loss: placed just above the red line.
Z-Pulse by YCGH CapitalZ-Pulse - Smart Divergence & Momentum Pulse Indicator
RevertX Z-Pulse, developed by YCGH Capital, is a precision market-timing tool designed to identify high-probability reversal zones using a unique volatility-normalized oscillator.
This script highlights bullish and bearish divergences directly on the chart—turning complex momentum behavior into simple, actionable signals.
🔍 What the Indicator Does
RevertX Z-Pulse analyzes price momentum by transforming it into a Z-Score pulse, allowing you to detect when price makes a new extreme but momentum does not follow—classic divergence behavior.
The indicator:
✓ Detects Bullish Divergence
Price makes a lower low
Indicator makes a higher low
→ Suggesting weakening downside momentum and a potential reversal.
✓ Detects Bearish Divergence
Price makes a higher high
Indicator makes a lower high
→ Signaling loss of bullish strength and possible trend reversal.
✨ Why RevertX Z-Pulse Stands Out
Clean divergence visualization
No repainting
Volatility-normalized momentum readings
Works on all timeframes
Especially effective on 4H, 1H, and daily chart structures
猛の掟・初動スクリーナー_完成版//@version=5
indicator("猛の掟・初動スクリーナー_完成版", overlay=true)
// =============================
// 入力パラメータ
// =============================
emaLenShort = input.int(5, "短期EMA", minval=1)
emaLenMid = input.int(13, "中期EMA", minval=1)
emaLenLong = input.int(26, "長期EMA", minval=1)
macdFastLen = input.int(12, "MACD Fast", minval=1)
macdSlowLen = input.int(26, "MACD Slow", minval=1)
macdSignalLen = input.int(9, "MACD Signal", minval=1)
macdZeroTh = input.float(0.2, "MACDゼロライン近辺とみなす許容値", step=0.05)
volMaLen = input.int(5, "出来高平均日数", minval=1)
volMinRatio = input.float(1.3, "出来高倍率(初動判定しきい値)", step=0.1)
volStrongRatio = input.float(1.5, "出来高倍率(本物/三点シグナル用)", step=0.1)
highLookback = input.int(60, "直近高値の参照本数", minval=10)
pullbackMin = input.float(5.0, "押し目最小 ", step=0.5)
pullbackMax = input.float(15.0, "押し目最大 ", step=0.5)
breakLookback = input.int(15, "レジブレ後とみなす本数", minval=1)
wickBodyMult = input.float(2.0, "ピンバー:下ヒゲが実体の何倍以上か", step=0.5)
// ★ シグナル表示 ON/OFF
showMou = input.bool(true, "猛シグナルを表示")
showKaku = input.bool(true, "確シグナルを表示")
// =============================
// 基本指標計算
// =============================
emaShort = ta.ema(close, emaLenShort)
emaMid = ta.ema(close, emaLenMid)
emaLong = ta.ema(close, emaLenLong)
= ta.macd(close, macdFastLen, macdSlowLen, macdSignalLen)
volMa = ta.sma(volume, volMaLen)
volRatio = volMa > 0 ? volume / volMa : 0.0
recentHigh = ta.highest(high, highLookback)
prevHigh = ta.highest(high , highLookback)
pullbackPct = recentHigh > 0 ? (recentHigh - close) / recentHigh * 100.0 : 0.0
// ローソク足
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
// =============================
// A:トレンド条件
// =============================
emaUp = emaShort > emaShort and emaMid > emaMid and emaLong > emaLong
goldenOrder = emaShort > emaMid and emaMid > emaLong
aboveEma2 = close > emaLong and close > emaLong
trendOK = emaUp and goldenOrder and aboveEma2
// =============================
// B:MACD条件
// =============================
macdGC = ta.crossover(macdLine, macdSignal)
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdUp = macdLine > macdLine
macdOK = macdGC and macdNearZero and macdUp
// =============================
// C:出来高条件
// =============================
volInitOK = volRatio >= volMinRatio // 8条件用
volStrongOK = volRatio >= volStrongRatio // 三点シグナル用
volumeOK = volInitOK
// =============================
// D:ローソク足パターン
// =============================
isBullPinbar = lowerWick > wickBodyMult * body and lowerWick > upperWick and close >= open
isBullEngulf = close > open and open < close and close > open
isBigBullCross = close > emaShort and close > emaMid and open < emaShort and open < emaMid and close > open
candleOK = isBullPinbar or isBullEngulf or isBigBullCross
// =============================
// E:価格帯(押し目&レジブレ)
// =============================
pullbackOK = pullbackPct >= pullbackMin and pullbackPct <= pullbackMax
isBreakout = close > prevHigh and close <= prevHigh
barsSinceBreak = ta.barssince(isBreakout)
afterBreakZone = barsSinceBreak >= 0 and barsSinceBreak <= breakLookback
afterBreakPullbackOK = afterBreakZone and pullbackOK and close > emaShort
priceOK = pullbackOK and afterBreakPullbackOK
// =============================
// 8条件の統合
// =============================
allRulesOK = trendOK and macdOK and volumeOK and candleOK and priceOK
// =============================
// 最終三点シグナル
// =============================
longLowerWick = lowerWick > wickBodyMult * body and lowerWick > upperWick
macdGCAboveZero = ta.crossover(macdLine, macdSignal) and macdLine > 0
volumeSpike = volStrongOK
finalThreeSignal = longLowerWick and macdGCAboveZero and volumeSpike
buyConfirmed = allRulesOK and finalThreeSignal
// =============================
// 描画
// =============================
plot(emaShort, color=color.new(color.yellow, 0), title="EMA 短期(5)")
plot(emaMid, color=color.new(color.orange, 0), title="EMA 中期(13)")
plot(emaLong, color=color.new(color.blue, 0), title="EMA 長期(26)")
// シグナル表示(ON/OFF付き)
plotshape(showMou and allRulesOK, title="猛の掟 8条件クリア候補", location=location.belowbar, color=color.new(color.lime, 0), text="猛")
plotshape(showKaku and buyConfirmed, title="猛の掟 最終三点シグナル確定", location=location.belowbar, color=color.new(color.yellow, 0), text="確")
// =============================
// アラート条件
// =============================
alertcondition(allRulesOK, title="猛の掟 8条件クリア候補", message="猛の掟 8条件クリア候補シグナル発生")
alertcondition(buyConfirmed, title="猛の掟 最終三点シグナル確定", message="猛の掟 最終三点シグナル=買い確定")






















