Peak Support/Resistance Lines v1//@version=6
indicator("Peak Support/Resistance Lines", shorttitle="Peak S/R", overlay=true, max_lines_count=500)
// Input parameters
lookback = input.int(5, title="Lookback Period", minval=1, maxval=50)
show_resistance = input.bool(true, title="Show Resistance Lines")
show_support = input.bool(true, title="Show Support Lines")
resistance_color = input.color(color.red, title="Resistance Color")
support_color = input.color(color.green, title="Support Color")
// Function to check if current bar is a peak
is_peak() =>
ta.pivothigh(high, lookback, lookback)
// Function to check if current bar is a valley
is_valley() =>
ta.pivotlow(low, lookback, lookback)
// Main logic
if barstate.isconfirmed
// Check for resistance peaks
if show_resistance
peak_price = is_peak()
if not na(peak_price)
line.new(x1=bar_index - lookback, y1=peak_price, x2=bar_index + 50, y2=peak_price, color=resistance_color, width=1)
// Check for support valleys
if show_support
valley_price = is_valley()
if not na(valley_price)
line.new(x1=bar_index - lookback, y1=valley_price, x2=bar_index + 50, y2=valley_price, color=support_color, width=1)
指标和策略
Previous Day Close (PDC)pdc price just watch how it reacts it will say if bearish or bullish on day or can get a good entry took a while to make who likes it
Hedge Pressure Index (HPI)Hedge Pressure Index (HPI)
Overview
The Hedge Pressure Index (HPI) is a flow-aware indicator that fuses daily options Open Interest (OI) with intraday put/call volume to estimate the directional hedging pressure of market makers and dealers. It helps traders visualize whether options flow is creating mechanical buy/sell pressure in IWM, and when that pressure may be shifting.
What HPI Shows
Daily OI Baseline (white line): Net OI carried forward intraday (Put OI − λ × Call OI). Updated once daily before the open.
Intraday Flow (teal line): Net put minus λ × call volume in real time. Smoothed to show underlying flow.
Spread Histogram (gray): Divergence between intraday flow and daily OI.
HPI Proxy Histogram (blue): Intraday hedge-pressure intensity. Strong extremes indicate heavy one-sided dealer hedging.
Trading Signals
Crossover:
When intraday Volume line crosses above OI, it suggests bullish hedge pressure.
When Volume line crosses below OI, it suggests bearish hedge pressure.
Z-Score Extremes:
HPI ≥ +1.5 → strong mechanical bid.
HPI ≤ −1.5 → strong mechanical offer.
Alerts: Built in for both crossovers and extreme readings.
How to Use HPI
1. Confirmation Tool (recommended for most traders):
Trade your usual price/technical setups.
Use HPI as a confirmation: only take trades that align with the hedge pressure direction.
2. Flow Bias (advanced):
Use HPI direction intraday as a standalone bias.
Fade signals when the histogram mean-reverts or crosses zero.
Best practice: Focus on the open and first 2 hours where hedging flows are most active. Combine with ATR/time-based stops.
Inputs
Demo Mode: If no OI/volume feed is set, the script uses chart volume for layout.
λ (Call Weight): Adjusts how much call volume offsets put volume (default = 1.0).
Smoothing Length: Smooths intraday flow line.
Z-Score Lookback: Sets lookback window for HPI extremes.
Custom Symbols:
Daily Net OI (pre-open OI difference).
Intraday Put Volume.
Intraday Call Volume.
Setup Instructions
Add the indicator to an IWM chart.
In Inputs, either keep Demo Mode ON (for layout) or enter your vendor’s Daily Net OI / Put Volume / Call Volume symbols.
Set alerts for crossovers and strong HPI readings to catch flow shifts in real time.
Optionally tune λ and smoothing to match your feed’s scale.
Notes
This is a proxy for dealer hedge pressure. For highest accuracy, replace the proxy histogram with gamma-weighted flow by strike/DTE when your data feed supports it.
Demo mode is for visualization only; live use requires a valid OI and volume feed.
Disclaimer
This script is for educational and research purposes only. It is not financial advice. Options and derivatives carry significant risk. Always test in a demo environment before using live capital.
Jasons Bullish Reversal DetectorThis bullish reversal detector is designed to spot higher-quality turning points instead of shallow bounces. At its core, it looks for candles closing above the 20-period SMA, a MACD bullish crossover, and RSI strength above 50. On top of that, it layers in “depth” filters: price must reclaim and retest a long-term baseline (like the 200-period VWMA), momentum should confirm with RSI and +DI leading, short-term EMAs need to slope upward, and conditions like overheated ATR or strong downside ADX will block false signals. When all of these align, the script flags a depth-confirmed bullish reversal, aiming to highlight spots where structure, momentum, and volatility all support a sustainable shift upward.
Volume Relativo - Candle Color - CriptoBraboAssinala pela cor do candle o volume relativo. Parametros customizáveis
AL-SAT (Dönüş Odaklı: EMA+RSI+MACD)AL-SAT (Reversal Focused: EMA+RSI+MACD) combines three indicators to catch trend reversals.
- EMA50/200 crossovers define the main trend.
- RSI (14) confirms oversold/overbought reversals.
- MACD crossovers confirm momentum shifts.
Signals are generated at crossover points and remain valid until the opposite signal appears.
Best used on 1D or 4H timeframes. Works well for spotting early trend reversals, but may produce noise in sideways markets.
Market Movement Indicator (MMI) The indicator fuses trend‑following (Supertrend) and momentum (EMA hierarchy) filters to give a clear, binary‑plus‑neutral signal that can be used for entry/exit decisions, position sizing, or as a filter for other strategies. Watch the video at youtu.be
MTL One-Stop PRO Here’s the English version you can paste into the script description or a Telegram post.
---
# MTL One-Stop PRO v6
**EMAs • PDH/PDL • PWH/PWL • PMH/PML • RSI/ADX/OBV/ATR • Readiness**
## What it draws on the chart
* **EMA bands (21/50/200)** on price + a **21–50 ribbon** — quick read of impulse/pullback and location vs. the moving averages.
* **Prior period levels:**
* **PDH/PDL** (previous day high/low) — *blue*.
* **PWH/PWL** (previous week high/low) — *orange dashed*.
* **PMH/PML** (previous month high/low) — *purple dashed*.
Labels are printed on the right margin to keep the chart clean.
* **“Readiness” panel** (bottom-right): summary metrics and quick long/short readiness scores.
## Readiness panel — fields & meaning
* **TF / Trend**
* `Trend 1 (21>50>200)` — bullish EMA stack.
* `Trend −1 (21<50<200)` — bearish EMA stack.
* `Trend = mix` — mixed/sideways structure.
* **RSI** (calculated on the selected TF) — momentum gauge. Rule of thumb: >50 bullish, <50 bearish.
* **ADX** — trend strength. Practical zone **20–25+**.
* **ATR %** — volatility as % of price (= ATR(14)/Close·100). Helps classify regime: low/normal/high.
* **OBV ↑/↓** — accumulation/distribution direction (arrow from the OBV slope/smoothing).
* **Near PDH? / Near PDL?** — proximity flags to key extremes (within a user-set threshold; handy for breakout/fakeout/retest scenarios).
* **LongScore / ShortScore (0–5)** — quick “readiness” rating:
* +1 for trend aligned with the scenario (EMA stack).
* +1 for RSI in favor.
* +1 for ADX in the working zone.
* +1 for OBV in favor.
* +1 for price positioning (for longs — closer to **PDL/PWL** pullback or **PDH/PWH** breakout; for shorts — the opposite).
Sum → priority: **4–5/5** aggressive, **2–3/5** only with a pattern, **0–1/5** skip.
## How to read & use (fits the “Top-setup 1D/3D/1W” flow)
## Settings (main groups)
* **EMAs (on price):** lengths/visibility 21/50/200, enable the 21–50 “ribbon”.
* **Levels:** toggles for **PDH/PDL**, **PWH/PWL**, **PMH/PML**.
* **Oscillators (calc TF):** choose the timeframe used to compute **RSI/ADX/OBV/ATR** (e.g., compute on **D** while analyzing 1H/3H).
* **Readiness:** proximity threshold to levels (in ATR fractions), working-zone bounds for ADX/RSI.
## Pro tips
* **Colors map to period:** purple = month, orange = week, blue = day.
* Watch **level clusters** (e.g., PWH≈PMH): frequent reversal/fakeout zones.
* **ATR %** guides tactics: in low vol, breakouts underperform; in higher vol, retests and fakeouts improve.
## Important
The indicator **does not generate auto-signals** or replace risk management. It structures levels/context and speeds up the workflow of your checklist (SMC/liquidity/EMA/ATR/RSI/ADX/OBV) in the 1D/3D/1W pipeline.
---
Want a mini “recommended thresholds” card (RSI/ADX/ATR%) per TF and a 60-second “how to build a trade” tutorial for the description?
Directional Strength IndicatorThe DSI fuses momentum (RSI), price acceleration (ROC), and volume strength across three hierarchical timeframes. When all three metrics align upward (or downward) it signals a strong directional move; otherwise it flags a lack of clear direction, useful as a filter or trigger in trading strategies. Watch the video at youtu.be
Intraday Equal Peaks Levels (final)//@version=6
indicator("Intraday Equal Peaks Levels (final)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
leftBars = input.int(5, "Bars Left", minval=1)
rightBars = input.int(5, "Bars Right", minval=1)
marketType = input.string("Crypto", "Market Type", options= )
cryptoThresh = input.float(1.0, "Crypto Threshold %", minval=0.0, maxval=3.0, step=0.1)
stockThreshC = input.int(1, "Stocks Threshold (cents)", minval=0) // 1 -> 0.01 price units
showPanel = input.bool(true, "Show Equal Peaks Panel (top-right)")
// ===== DAY CHANGE =====
isNewDay = time("D") != time("D") // true on first bar of new calendar day
// ===== PIVOT DETECTION =====
pHigh = ta.pivothigh(high, leftBars, rightBars)
pLow = ta.pivotlow(low, leftBars, rightBars)
// ===== THRESHOLD CHECK =====
f_within_threshold(oldLevel, newLevel) =>
if marketType == "Stocks"
threshPrice = stockThreshC * 0.01
math.abs(newLevel - oldLevel) <= threshPrice
else
pct = oldLevel != 0 ? math.abs((newLevel - oldLevel) / oldLevel * 100.0) : 0.0
pct <= cryptoThresh
// ===== STORAGE =====
var array arrLines = array.new_line()
var array arrPrices = array.new_float()
var array arrColors = array.new_color()
var array arrTypes = array.new_int() // 1 = resistance, -1 = support
// helper to clear (delete graphical objects then clear arrays)
f_clear_all() =>
for i = array.size(arrLines) - 1 to 0
ln = array.get(arrLines, i)
if not na(ln)
line.delete(ln)
array.clear(arrLines)
array.clear(arrPrices)
array.clear(arrColors)
array.clear(arrTypes)
// reset on new calendar day
if isNewDay
f_clear_all()
// ===== ADD PEAK (grouping logic) =====
f_add_peak(level, isRes) =>
grouped = false
targetType = isRes ? 1 : -1
// scan existing lines; only group with same type
for i = 0 to array.size(arrPrices) - 1
if array.get(arrTypes, i) == targetType
oldLvl = array.get(arrPrices, i)
if f_within_threshold(oldLvl, level)
grouped := true
// mark the existing line as yellow (if not already)
if array.get(arrColors, i) != color.yellow
array.set(arrColors, i, color.yellow)
lnobj = array.get(arrLines, i)
line.set_color(lnobj, color.yellow)
break
// if not grouped -> create new line from this pivot
if not grouped
startBar = bar_index - rightBars
lncol = isRes ? color.red : color.green
ln = line.new(x1 = startBar, y1 = level, x2 = bar_index, y2 = level, xloc = xloc.bar_index, extend = extend.right, color = lncol, width = 2)
array.push(arrLines, ln)
array.push(arrPrices, level)
array.push(arrColors, lncol)
array.push(arrTypes, targetType)
// ===== DELETE LINES WHEN BROKEN (close beyond) =====
for i = array.size(arrPrices) - 1 to 0
lvl = array.get(arrPrices, i)
typ = array.get(arrTypes, i)
ln = array.get(arrLines, i)
// For resistance (1): delete when close > lvl
if typ == 1 and close > lvl
line.delete(ln)
array.remove(arrLines, i)
array.remove(arrPrices, i)
array.remove(arrColors, i)
array.remove(arrTypes, i)
// For support (-1): delete when close < lvl
else if typ == -1 and close < lvl
line.delete(ln)
array.remove(arrLines, i)
array.remove(arrPrices, i)
array.remove(arrColors, i)
array.remove(arrTypes, i)
// ===== HANDLE NEW PIVOTS =====
if not na(pHigh)
f_add_peak(pHigh, true)
if not na(pLow)
f_add_peak(pLow, false)
// ===== INFO PANEL (top-right) =====
var table t = table.new(position.top_right, 1, 2, border_width = 1)
if showPanel and barstate.islast
yellow_count = 0
yellow_prices = array.new_string()
for i = 0 to array.size(arrPrices) - 1
if array.get(arrColors, i) == color.yellow
yellow_count += 1
lvl = array.get(arrPrices, i)
s = str.tostring(lvl, format.mintick)
array.push(yellow_prices, s)
priceTxt = "None"
if array.size(yellow_prices) > 0
joined = ""
for j = 0 to array.size(yellow_prices) - 1
part = array.get(yellow_prices, j)
joined := j == 0 ? part : joined + ", " + part
priceTxt := joined
table.cell(t, 0, 0, "Equal peaks: " + str.tostring(yellow_count), text_halign = text.align_left, text_size = size.small, bgcolor = color.new(color.black, 0), text_color = color.white)
table.cell(t, 0, 1, "Equal peaks price: " + priceTxt, text_halign = text.align_left, text_size = size.small, bgcolor = color.new(color.black, 0), text_color = color.white)
else
table.clear(t, 0, 0)
EMA & BarCountNothing. EMA & Bar Count
Nothing. EMA & Bar Count
Nothing. EMA & Bar Count
Nothing. EMA & Bar Count
Nothing. EMA & Bar Count
Thanks .
Today's Unbroken Support/Resistance grok 1 //@version=6
indicator("Today's Unbroken Support/Resistance", shorttitle="Today S/R", overlay=true, max_lines_count=500)
// Input parameters
lookback = input.int(5, title="Lookback Period", minval=1, maxval=50)
show_resistance = input.bool(true, title="Show Resistance Lines")
show_support = input.bool(true, title="Show Support Lines")
resistance_color = input.color(color.red, title="Resistance Color")
support_color = input.color(color.green, title="Support Color")
line_width = input.int(2, title="Line Width", minval=1, maxval=4)
// Get current date for today's filter
current_date = dayofmonth(time)
current_month = month(time)
// Variables to track lines and their status
var line resistance_lines = array.new()
var line support_lines = array.new()
var float resistance_levels = array.new()
var float support_levels = array.new()
var int resistance_dates = array.new()
var int support_dates = array.new()
// Function to check if current bar is a peak
is_peak() =>
ta.pivothigh(high, lookback, lookback)
// Function to check if current bar is a valley
is_valley() =>
ta.pivotlow(low, lookback, lookback)
// Function to check if a resistance level is broken
is_resistance_broken(level) =>
close > level
// Function to check if a support level is broken
is_support_broken(level) =>
close < level
// Function to remove broken lines
remove_broken_levels() =>
// Check resistance levels
if array.size(resistance_levels) > 0
for i = array.size(resistance_levels) - 1 to 0
level = array.get(resistance_levels, i)
if is_resistance_broken(level)
// Remove broken resistance
line_to_delete = array.get(resistance_lines, i)
line.delete(line_to_delete)
array.remove(resistance_lines, i)
array.remove(resistance_levels, i)
array.remove(resistance_dates, i)
// Check support levels
if array.size(support_levels) > 0
for i = array.size(support_levels) - 1 to 0
level = array.get(support_levels, i)
if is_support_broken(level)
// Remove broken support
line_to_delete = array.get(support_lines, i)
line.delete(line_to_delete)
array.remove(support_lines, i)
array.remove(support_levels, i)
array.remove(support_dates, i)
// Function to remove previous days' lines
remove_old_levels() =>
// Remove old resistance levels
if array.size(resistance_levels) > 0
for i = array.size(resistance_levels) - 1 to 0
line_date = array.get(resistance_dates, i)
if line_date != current_date
// Remove old resistance
line_to_delete = array.get(resistance_lines, i)
line.delete(line_to_delete)
array.remove(resistance_lines, i)
array.remove(resistance_levels, i)
array.remove(resistance_dates, i)
// Remove old support levels
if array.size(support_levels) > 0
for i = array.size(support_levels) - 1 to 0
line_date = array.get(support_dates, i)
if line_date != current_date
// Remove old support
line_to_delete = array.get(support_lines, i)
line.delete(line_to_delete)
array.remove(support_lines, i)
array.remove(support_levels, i)
array.remove(support_dates, i)
// Main logic
remove_old_levels()
remove_broken_levels()
// Check for new resistance peaks
if show_resistance
peak_price = is_peak()
if not na(peak_price)
// Check if this level already exists (avoid duplicates)
level_exists = false
if array.size(resistance_levels) > 0
for i = 0 to array.size(resistance_levels) - 1
existing_level = array.get(resistance_levels, i)
if math.abs(peak_price - existing_level) < (peak_price * 0.001) // Within 0.1%
level_exists := true
break
if not level_exists
// Create new resistance line extending to infinity
new_line = line.new(x1=bar_index - lookback, y1=peak_price, x2=bar_index - lookback, y2=peak_price, color=resistance_color, width=line_width, extend=extend.right)
array.push(resistance_lines, new_line)
array.push(resistance_levels, peak_price)
array.push(resistance_dates, current_date)
// Check for new support valleys
if show_support
valley_price = is_valley()
if not na(valley_price)
// Check if this level already exists (avoid duplicates)
level_exists = false
if array.size(support_levels) > 0
for i = 0 to array.size(support_levels) - 1
existing_level = array.get(support_levels, i)
if math.abs(valley_price - existing_level) < (valley_price * 0.001) // Within 0.1%
level_exists := true
break
if not level_exists
// Create new support line extending to infinity
new_line = line.new(x1=bar_index - lookback, y1=valley_price, x2=bar_index - lookback, y2=valley_price, color=support_color, width=line_width, extend=extend.right)
array.push(support_lines, new_line)
array.push(support_levels, valley_price)
array.push(support_dates, current_date)
// Clean up old lines if too many (keep last 50 of each type)
if array.size(resistance_lines) > 50
old_line = array.shift(resistance_lines)
line.delete(old_line)
array.shift(resistance_levels)
array.shift(resistance_dates)
if array.size(support_lines) > 50
old_line = array.shift(support_lines)
line.delete(old_line)
array.shift(support_levels)
array.shift(support_dates)
// Optional: Plot small markers for today's new levels
today_resistance = show_resistance and not na(is_peak()) and dayofmonth(time ) == current_date
today_support = show_support and not na(is_valley()) and dayofmonth(time ) == current_date
plotshape(today_resistance, title="Today's Resistance", location=location.abovebar, color=resistance_color, style=shape.triangledown, size=size.tiny)
plotshape(today_support, title="Today's Support", location=location.belowbar, color=support_color, style=shape.triangleup, size=size.tiny)
Multi-Timeframe MACD ConfluenceMulti-Timeframe MACD Confluence Indicator
This indicator plots Buy and Sell signals based on the confluence of MACD histogram direction across three different timeframes. When the MACD histogram is bullish (above zero) on all selected timeframes, a Buy signal is triggered. When it's bearish (below zero) on all, a Sell signal is shown.
🧠 Key Features:
Customizable timeframes (default: 5min, 15min, 1hr)
Uses traditional MACD: 12/26/9 EMA
Works on any asset or timeframe
Provides visual plot signals and built-in alerts
📈 This tool is ideal for traders who rely on multi-timeframe analysis to validate trend momentum before taking entries.
EMA HI/LO Cloud Shift + Extra EMA📌 EMA High/Low Buy-Sell Labels Indicator
This indicator generates simple Buy and Sell signals based on price interaction with two dynamic levels:
EMA High → Exponential Moving Average calculated from candle highs.
EMA Low → Exponential Moving Average calculated from candle lows.
🔑 How it Works
A Buy signal prints when the closing price crosses above the EMA High.
A Sell signal prints when the closing price crosses below the EMA Low.
Signals are marked directly on the chart with customizable labels — you can change the shape, size, and colors of the Buy and Sell labels to match your trading style.
The indicator does not plot the EMAs, keeping the chart clean and focused only on the entry/exit labels.
⚡ Use Case
Helps traders quickly identify potential trend breakouts (price strength above EMA High) or trend breakdowns (price weakness below EMA Low).
Works on any timeframe and any market (stocks, forex, crypto, futures, etc.).
Can be used standalone or combined with other indicators for confirmation.
🎯 Best For
Traders who want minimalist chart signals without clutter.
Trend-following strategies where confirmation of momentum is key.
Entry/Exit marking without needing to constantly watch EMA bands.
Pip Wizard Trend IndicatorThe Pip Wizard Indicator is a powerful trading tool designed to give traders clarity, confidence, and consistency in the markets. Built with precision logic, it helps identify high-probability setups by highlighting market structure shifts, fair value gaps (FVGs), and break-and-retest opportunities.
Whether you’re a beginner learning entries or an experienced trader looking for clean confirmations, Pip Wizard adapts to your strategy. The indicator not only spots potential trade zones but also provides a visual roadmap, removing second-guessing and keeping your focus sharp.
✨ Key Features:
Auto-detects Fair Value Gaps (FVGs) for continuation and reversal trades
Confirms breakouts and retests for higher-probability entries
Works across multiple timeframes and currency pairs
Clean, minimal chart design — no clutter, just pure signals
Perfect for day traders, swing traders, and scalpers
Step into the market with wizard-like precision and let Pip Wizard guide your next trade. 🪄💫
ATR Trailing SL FibonacciATR Trailing SL Fibonacci Indicator
This indicator combines ZigZag pattern detection with Fibonacci analysis to identify potential support and resistance levels for setting trailing stop losses.
Core Components:
ZigZag Pattern Detection
Uses imported ZigZag library to identify significant price swings
Configurable parameters:
depth: Minimum price movement threshold
deviation: Minimum deviation between swing points
backstep: Number of bars required for reversal confirmation
Fibonacci Analysis
Two display modes:
Retracements: Horizontal Fibonacci levels between ZigZag points
Timezone: Vertical Fibonacci time projections
Customizable Fibonacci levels with individual color settings
Customizable Fibonacci Levels:
Fib 0 (0%) - White
Fib A (23.6%) - Blue
Fib B (38.2%) - Green
Fib C (50%) - Gray (Default: ON)
Fib D (61.8%) - Orange
Fib E (78.6%) - Red
Fib F (100%) - White (Default: ON)
Display Features:
Visual Elements:
ZigZag line connecting swing points (toggleable)
Fibonacci level lines with colored labels
Price level labels at each Fibonacci line
Background color indicating trend direction
Customization Options:
Adjustable label sizes for Fibonacci levels and price labels
Timeframe selection for analysis
Source price selection (High/Low)
Technical Implementation:
Dynamic Updates: Automatically redraws Fibonacci levels when new ZigZag points are detected
Memory Management: Cleans up previous lines and labels to maintain chart cleanliness
Multi-timeframe Analysis: Uses request.security() for higher timeframe analysis
Trading Applications:
Stop Loss Placement: Use Fibonacci levels as dynamic trailing stop levels
Support/Resistance Identification: Key Fibonacci levels act as potential reversal zones
Trend Analysis: ZigZag direction helps identify overall market structure
Risk Management: ATR-based approach to setting stop losses relative to volatility
Usage Tips:
The 50% and 100% levels are enabled by default as they represent key psychological levels
Combine with other indicators for confirmation of Fibonacci level reactions
Use the background color as a quick visual reference for trend direction
Adjust the ZigZag parameters based on market volatility and timeframe
This indicator is particularly useful for traders who employ Fibonacci-based trading strategies and want a systematic approach to setting trailing stop losses based on market structure and key retracement levels.
EMA HI/LO Cloud Shift📌 EMA High/Low Buy-Sell Labels Indicator
This indicator generates simple Buy and Sell signals based on price interaction with two dynamic levels:
EMA High → Exponential Moving Average calculated from candle highs.
EMA Low → Exponential Moving Average calculated from candle lows.
🔑 How it Works
A Buy signal prints when the closing price crosses above the EMA High.
A Sell signal prints when the closing price crosses below the EMA Low.
Signals are marked directly on the chart with customizable labels — you can change the shape, size, and colors of the Buy and Sell labels to match your trading style.
The indicator does not plot the EMAs, keeping the chart clean and focused only on the entry/exit labels.
⚡ Use Case
Helps traders quickly identify potential trend breakouts (price strength above EMA High) or trend breakdowns (price weakness below EMA Low).
Works on any timeframe and any market (stocks, forex, crypto, futures, etc.).
Can be used standalone or combined with other indicators for confirmation.
🎯 Best For
Traders who want minimalist chart signals without clutter.
Trend-following strategies where confirmation of momentum is key.
Entry/Exit marking without needing to constantly watch EMA bands.
SCREENER Excess Combo — First-Hour Excess + MTF Candles + GOLDWhat it does
This study hunts for excess (failed pushes that leave long wicks) and higher-quality reversal bars, then rolls them into two compact states you can scan for on the Pine Screener:
Screener — 15m Bull Excess State → 1 when the rolling 15-minute streak condition for bull excess is met
Screener — 15m Bear Excess State → 1 when the rolling 15-minute streak condition for bear excess is met
Everything else in the script builds those states:
Module A — First-Hour Excess: Looks only inside a configurable first-hour session (default 09:30–10:30). Optional gap filter (by % or Daily ATR). Detects excess low (bullish) and excess high (bearish) probes using ATR-scaled range/wick/close placement thresholds + cooldown.
Module B — MTF Candles: Three pattern families with ATR floors: Pin/Excess tail, Engulfing, Outside. Priority is Engulf → Outside → Pin. Optional RTH gating and early-bar ignore.
GOLD consensus: If ≥2 out of 4 “bull forms” (A/B: Pin/Engulf/Outside) fire on a bar → GOLD Bull. Same for bears. Ties are broken using wick dominance.
Module D — 15m Streak States: Creates the two screener outputs by counting 15m events (A and/or B patterns, optionally including GOLD). Opposite-side event resets the active streak. Streaks persist across days (no daily reset) so you can require multiple consecutive events across sessions.
How to use it in the Pine Screener
Add this indicator to your chart once (no special timeframe required).
Open Pine Screener → choose this study.
Add these two columns (they’re included as hidden plot() series):
Screener — 15m Bull Excess State
Screener — 15m Bear Excess State
Filter for = 1 on either column to get candidates that currently meet your streak target.
(Optional) Turn on “Use in Pine Screener” toggle inside the script if you don’t want any drawings/tables on charts while scanning.
Key Inputs (quick guide)
Streak Target (15m): How many counted events in a row are required for state = 1. Increase to demand more confirmation across sessions.
Count GOLD as ‘excess’: If on, GOLD bars also contribute to the streak.
Module A thresholds: ATR-scaled Min range, Min wick, and Close in fraction set how strict first-hour probes must be; optional Gap filter (by % or Daily ATR).
Module B thresholds: Separate ATR floors for intraday/D/W/M; wick:body ratio for Pins; min body ATR for Engulf/Outside; optional RTH session and “ignore first N” bars.
Tip: If you get too many signals, raise ATR floors or the streak target. If you get too few, lower them or allow GOLD to count.
On-chart visuals (optional)
Bar color merges A + B, with GOLD shown in gold.
Small arrows show which module fired (15m).
A compact badge can display the live streak count (when not in Screener mode).
Turn these off with “Use in Pine Screener” to keep scans lightweight.
Logic Notes
All sizing is normalized by ATR so the behavior is comparable across symbols.
First-hour gap logic can be % or Daily ATR based.
When both sides fire on the same 15m bar (rare), the streaks neutralize for that bar.
Streak counters do not reset at the next trading day—they carry across sessions.
Disclaimers
This tool is for research and education. It does not constitute financial advice. Always validate signals in context (trend, liquidity, news) and manage risk. Settings that work on one asset may not generalize—tune thresholds and the streak target to your universe.
LLELB - CALL/PUT AI FILTER PRO (Solo t:2min)LLELB – CALL/PUT AI FILTER PRO is an intraday directional filter built specifically for 2-minute charts. It blends RSI (14), MACD (12/26/9), SMA100 (PM100), VWAP (hlc3) and a candle-intent check (body > 50% of range in the direction of the close) into a single score for bulls and bears. When either side reaches your confirmation threshold (factorConfirm, default 4), the indicator prints a CALL or PUT label and updates an optional compact status panel. Labels appear only when the state flips, reducing noise. Key settings include the confirmation threshold, panel visibility, compact mode, corner position and padding, plus border and opacity controls. Built-in alerts (“CALL 2min” and “PUT 2min”) are ready to use; for greater stability choose “once per bar close.” The script works entirely on the active 2-minute timeframe, avoids MTF lookahead, and does not repaint on bar close (values may evolve intrabar as expected). Use it as a direction filter alongside your own support/resistance and risk management. Educational use only—this is not financial advice.
Price Action [False Break+BreakOut] This indicator is designed to analyze Price Action with a focus on identifying Pivot Points and detecting Breakout and False Break signals.
Key Features:
Pivot Point Detection
Identifies Pivot High and Pivot Low points
Classifies Pivot Points into:
Higher High (HH)
Lower High (LH)
Higher Low (HL)
Lower Low (LL)
Visual Display Options
Pivot point markers (triangles)
Price values at pivot points
Support/Resistance level lines
Fractal Chaos Channel display
Average of Pivot High/Low
False Break Detection
Detects False Break signals
Customizable validation period (1-10 bars)
Option to include candle shadows in engulfing detection
Displays "FalseB!!" labels when detected
Color-coded signals (red for false break up, green for false break down)
Breakout Signals
Shows Breakout (⬆️) and Breakdown (⬇️) signals
Alert conditions for all signal types
Tracks recent breakout/breakdown levels
Main Configuration Settings:
Source data and length parameters for pivot detection
Selective display of different pivot types
Maximum bars to display
Support/Resistance level extension length
Text size customization
Technical Implementation:
Uses ta.pivothigh() and ta.pivotlow() for pivot detection
Implements bar counting for level persistence
Engulfing pattern detection for false breaks
Color-coded visual elements (teal for HH/HL, red for LH/LL)
Comprehensive alert system
Usage:
This indicator is ideal for traders using Price Action strategies, helping to identify trend reversal points, key Support/Resistance levels, and potential genuine/false breakout signals for better trade entries and exits.
EMA HI/LO Cloud📌 EMA High/Low Buy-Sell Labels Indicator
This indicator generates simple Buy and Sell signals based on price interaction with two dynamic levels:
EMA High → Exponential Moving Average calculated from candle highs.
EMA Low → Exponential Moving Average calculated from candle lows.
🔑 How it Works
A Buy signal prints when the closing price crosses above the EMA High.
A Sell signal prints when the closing price crosses below the EMA Low.
Signals are marked directly on the chart with customizable labels — you can change the shape, size, and colors of the Buy and Sell labels to match your trading style.
The indicator does not plot the EMAs, keeping the chart clean and focused only on the entry/exit labels.
⚡ Use Case
Helps traders quickly identify potential trend breakouts (price strength above EMA High) or trend breakdowns (price weakness below EMA Low).
Works on any timeframe and any market (stocks, forex, crypto, futures, etc.).
Can be used standalone or combined with other indicators for confirmation.
🎯 Best For
Traders who want minimalist chart signals without clutter.
Trend-following strategies where confirmation of momentum is key.
Entry/Exit marking without needing to constantly watch EMA bands.