Pivot detector🧠 Pivot Detector – Multi-condition Reversal Signal with Trend & Time Filters
This indicator is specifically optimized for Bitcoin trading, combining classic reversal patterns with volume, trend, and session filters.
🟢 Long signals:
- RSI crossing up from oversold (RSI < 30)
- MACD histogram crossing above zero
- Price touching the lower Bollinger Band with OBV reversal
- Bullish engulfing pattern + volume spike
🔴 Short signals:
- RSI crossing down from overbought (RSI > 70)
- MACD histogram crossing below zero
- Price touching upper Bollinger Band + OBV failure
- Bearish engulfing pattern + volume spike
⚙️ Additional filters:
- ❌ Signals are blocked during low-volatility range zones (ADX < 20 or narrow standard deviation)
- ✅ Longs only allowed during active hours: 00–02, 07–09, 13–15 UTC
- ✅ Shorts only triggered outside strong uptrend (ADX > 25 with DI+ dominance)
📊 Best used on:
- ✅ Bitcoin / BTCUSDT
- ✅ 15m, 30m, 1H, 4H charts
🎯 Strategy focus:
- Captures short-term reversals in volatile but trendable markets
- Filters out traps and low-quality signals during sideways conditions
- Best used with manual confirmation or as part of a composite system
Alerts are built-in for both long and short triggers.
⚠️ This tool is still in its experimental phase and may require further adjustments as it's tested and improved.
Chart-Muster
Liquidity Fracture DetectorThe Liquidity Fracture Detector is an advanced tool designed to identify micro-liquidity traps and structural fakeouts on intraday charts. These occur when the market appears to break out, only to quickly reverse — often triggered by stop hunts, inefficient fills, or manipulated order flow.
The script combines volume spikes, volatility anomalies, and price structure breaks to signal "fractures" — points where the market temporarily breaks its behavior, often followed by strong reversals or trend accelerations.
Detection logic in the script:
Volume spike greater than 2x the average (adjustable)
Volatility spike: candle range is > 1.5x the average
Extreme wicks: wick is larger than the candle body (a classic trap signal)
Structure break: price breaks previous high/low but closes back within the old range
Combine these elements → a “fracture” is marked
Visual representation:
Red background = potential bull trap (fake breakout to the upside)
Green background = potential bear trap (fake breakdown to the downside)
A label appears at each fracture: “Echo” with the number of previous hits
Ideal use cases:
Intraday trading (1m, 5m, 15m)
Crypto, indices, futures, and forex
Detecting reactive zones where the market takes a false direction
Confluence with S/R zones, order blocks, or liquidity pools
Fully customizable:
Volume and range sensitivity
Heatmap intensity
Toggle labels on/off
Note:
This script is intended to support discretionary analysis. It does not provide buy or sell signals and is not an automated strategy. Combine it with your own price action or order flow setup for optimal results.
Highlight Candle Body ≤ X Ticks (Customizable)🟠 Indicator Name: Highlight Candle Body ≤ X Ticks (Customizable)
Purpose:
Highlights candles where the body size (|open - close|) is less than or equal to a user-defined number of ticks — useful for spotting low-momentum or indecision candles across different futures instruments.
Features:
✅ Works with any instrument (CL, NG, HG, etc.)
🔧 Customizable tick size and max tick count
🎨 Adjustable highlight color
📏 Only measures the candle body, ignoring wicks
Use case:
Quickly identifies small-body candles that may signal pauses, traps, or setups before potential moves — especially helpful in volume-based or structure-based trading strategies.
Uptrick: Z-Score FlowAccording to author @Uptrick:
Uptrick: Z-Score Flow is a technical indicator that integrates trend-sensitive momentum analysis with the mean-reversion logic derived from Z-Score calculations. Its primary objective is to identify market conditions where price has deviated too far from its mean (overbought or oversold) or is within a statistically "normal" range, and then compare this observation with trend direction and RSI-based momentum signals. The result is a more contextual approach to trade entry and exit, prioritizing precision, clarity, and adaptability across different market regimes.
Introduction:
Financial instruments frequently shift between trending modes, where price extends strongly in one direction, and ranging modes, where price oscillates around a central value. A simple statistical measure like Z-Score can identify price extremes by comparing the current price to its historical mean and standard deviation. However, these extremes alone can be misleading if the overall market structure exhibits a strong trend. Uptrick: Z-Score Flow seeks to close this gap by combining Z-Score with an exponential moving average (EMA) trend filter and a smoothed RSI momentum check, thereby filtering out signals that contradict the prevailing market environment.
Objective:
The purpose of this script is to help traders identify mean reversion opportunities and trend-based pullbacks in a statistically sound manner, while still taking overall price action into account. By combining Z-Score thresholds with support conditions, the script reduces the likelihood of acting on random price rises or falls and instead focuses on significant movements within historical and current contextual frameworks.
Originality and Uniqueness:
Layered Signal Check: Signals require compliance with multiple layers (Z-Score extreme, EMA trend skew, and RSI momentum stance) rather than simply exceeding a statistical threshold.
RSI Zone Lock: Once the RSI enters an overbought/oversold zone and triggers a signal, the script blocks subsequent signals until the RSI recovers above or below those zones, limiting consecutive triggers.
Controlled Cooldown: A dedicated cooldown mechanism ensures that the script waits a specific number of bars before issuing a new signal in the opposite direction.
Gradient-Based Visualization: The distinct gradient fills between the price and the Z-Mean line improve readability, showing at a glance whether the price is trading above or below its statistical mean.
Comprehensive Metrics Panel: An optional table on the chart summarizes key Z-Score metrics, streamlining the process of verifying current statistical extremes, average levels, and momentum directions.
Why were these indicators merged? Z-Score metrics are excellent for identifying when the price deviates from its mean, but they don't intrinsically reveal whether the market's trajectory supports a reversal or whether the price could continue its trend. The EMA, commonly used to detect trend direction, offers valuable insight into whether the price is predominantly upward or downward. However, relying solely on a trend filter overlooks the intensity of price movements. The RSI adds a specific measure of momentum, helping to confirm whether market energy aligns with a potential reversal (e.g., the price is statistically low, but the RSI suggests imminent bullish momentum). By combining these three perspectives (Z-score for statistical context, the EMA for trend direction, and the RSI for momentum strength), the script offers a more comprehensive and adaptable system, aiming to avoid false positives caused by focusing on a single aspect of price behavior.
Calculations
The main calculation begins with a simple moving average (SMA) of the price over zL bars, called the base. The script then calculates the standard deviation of the price in the same window. Dividing the difference between the current price and the base price by this standard deviation gives the Z-score, which indicates how many standard deviations the price is from its mean. A positive Z-score indicates that the price is above its mean. A negative reading indicates the opposite.
AstraeaAi IndicatorBinary Options Indicator
The indicator is based on the MACD, it gives short positions on a 1-minute timeframe for 4 minutes of the transaction, on a 30c timeframe for 2 minutes of the transaction.
ORB Strat with ATR calculated TargetsThis is a script That puts the ORB high and low from 10 15 30 or 60 minute TF and once broken to the upside or the downside will place targets calculated based on 4 10 minute candle ATRs.
The ORB H and L will only appear at 10 am EST
High/Low Day + OperacionaisThis TradingView indicator plots the high and low of the current trading day with solid horizontal lines and corresponding labels. Additionally, it offers the option to display two sets of dashed horizontal lines based on user-defined distances from the day's high and low.
**Key Features:**
* **Current Day's High and Low:** Clearly marks the highest and lowest price reached so far during the current trading day with solid green and red lines, respectively, accompanied by "High Day" and "Low Day" labels.
* **Operational Levels:** Provides two independent operational setups with customizable distances and visibility:
* **Operational 01:** Plots a pair of dashed lines at a specified positive distance above the day's high and a negative distance below the day's low. This is configured using the "Distância Op. 01 (Pontos)" and "Mostrar Op. 01 (+/- Distância)" settings, with a customizable color ("Cor Op. 01").
* **Operational 02:** Plots another pair of dashed lines at a specified negative distance below the day's high and a positive distance above the day's low. This is configured using the "Distância Op. 02 (Pontos)" and "Mostrar Op. 02 (-/+ Distância)" settings, with a customizable color ("Cor Op. 02").
* **Customizable Distances:** Users can independently define the distance in points for each operational setup.
* **Individual Visibility:** Users can choose to show or hide each operational setup independently.
* **Color Options:** Users can customize the color of the dashed lines for each operational setup.
* **"Show Current Day Lines" Toggle:** A simple option to turn the display of the current day's high and low lines and labels on or off.
**How it Works:**
The indicator detects the start of a new trading day based on the chart's timeframe. It then tracks the highest and lowest prices reached within that day. The solid lines and labels for the day's high and low are updated dynamically as new highs or lows are made. The dashed lines for each operational level are calculated based on the configured distances from the current day's high and low and are also updated in real-time.
LvlPrice levels for Nasdaq NQ
using NDX and QQQ Price levels and convert them daily to NQ
Levels derived from
Option Flow
Whales target
GEX Levels
0dtde Levels
Largest Sweeps
Darkpools
ballenas by ErnestoWhat does this indicator do?
High Volume:
Calculates the average volume of the last n candles (configurable).
Marks candles with volume greater than the average multiplied by a factor (adjustable).
Candle Body:
Marks candles with a large body compared to their range (adjustable ratio).
Direction:
Green circle (buy): When the candle is bullish (close > open) and meets high volume and a large body.
Red circle (sell): When the candle is bearish (close < open) with high volume and a large body.
Automatic alerts: You will receive an alert when an institutional buy or sell is detected.
📊 How to use it?
Open the Pine Editor in TradingView.
Copy and paste this code.
Click Save and then Add to Chart.
Configure alerts according to your needs.
With this, you'll have a real-time indicator that displays circles on the candle itself when large volume purchases or sales are detected.
🟢🟥 Liquidity Grabs + Volumen Alto by ernesto[Crypto CLEAN]How does a Liquidity Grab work?
Pursuit of pending orders: In highly volatile markets, prices can move quickly to reach levels where there are many unexecuted orders. These orders can be stop-loss orders (which are being chased by the market), take-profit orders, or limit orders.
Market manipulation: In some cases, large market players, such as banks or financial institutions, can trigger these sharp price movements to capture liquidity and execute their trades at more favorable prices. This can generate a false price movement that appears to be going in one direction, but then quickly reverses.
Common causes: Liquidity grabs are common during times of low liquidity or when significant news events occur. They can also occur in consolidation ranges where the market is waiting for a "catalyst" to move.
Short Strategy - B2 v2.37-Core Production📌 Strategy Overview – B2 v2.37-Core Production
This script is a short-only algorithmic strategy designed for altcoins, using Bitcoin’s multi-timeframe MACD histogram trends to guide and validate short entries. It flips all long logic from the A2 model to focus on bearish momentum, breakdowns, and trend reversals.
🔍 What It Does
Detects high-confidence short entries based on multiple bearish signals.
Confirms direction using BTC MACD histogram downtrends across 4H, 1H, 15M, and 5M charts.
Avoids premature exits during flat momentum phases with a custom lull detection system.
🧠 How It Works
🔻 Bearish Indicators Used
Price below EMA
RSI decreasing
MACD histogram falling
Strong MACD drop detection
Volume surge confirmation
ADX trend strength check
VWAP rejection
📉 BTC Trend Filters
BTC must be in a 4H MACD downtrend for short entries to be valid.
Adds weighted confidence from 1H and 15M MACD downtrend confirmations.
5M MACD checks for rolling weakness, no pops, momentum flush, and steep slope.
📊 Scoring System
Each bearish signal adds weighted points (e.g. MACD drop = +2, RSI down = +0.5).
Entry only happens if total score ≥ entry threshold (default: 7.0) and BTC confirms downtrend.
Exit occurs if score < exit threshold (default: 6.0) or BTC starts recovering.
⏳ Lull Logic for Shorts
Prevents exit during temporary MACD flattening unless recovery is confirmed.
Requires confirmation that BTC hasn’t shifted trend back up.
🪧 Labels and Visualization
Entry/exit markers show BTCUSDT price at the time of signal using request.security().
Entry labels are red (top of candle), exit labels are green (bottom of candle).
✅ Result
This model is optimized for short trades during BTC-led market downturns, filtering out false positives by demanding multi-timeframe alignment and multiple bearish confirmations.
5 Moving Averages Indicator5 Moving Averages Indicator
This indicator plots five customizable moving averages on the price chart, allowing traders to analyze multiple timeframes and trend layers simultaneously.
Each moving average can be set individually to SMA, EMA, or WMA.
All lengths are fully adjustable to fit different trading strategies.
Designed for traders who need to monitor short-term, medium-term, and long-term trends together.
Clean visual layout with color separation for clarity.
Use this tool to identify trend direction, potential crossover signals, and dynamic areas of support/resistance across different periods.
Ideal for scalping, day trading, and swing trading.
Disclaimer: This indicator is a tool to assist analysis and should not be considered financial advice. Always use with proper risk management.
Jack's ADX with 5TF TABLEUpdated the table to show 5 timeframes.
When trend momentum aligns for added confirmation
No Trading ZoneNo trading zone
This indicator highlights the time range between 03:00 and 11:00 UTC as a "danger zone" for trading.
Based on data-driven backtesting, this period consistently showed:
- High frequency of moving average (MA) crossovers without meaningful trend
- A high concentration of sideways market conditions
- Increased likelihood of false breakouts and stop-loss hunting
On average, strong directional trends tend to emerge after 12:00 UTC, especially between 12:00–15:00 UTC.
Avoiding trades during this time zone can help reduce exposure to low-probability setups and enhance strategy reliability.
Break of Structure & Change of CharacterThis Break of Structure & Change of Character indicator is a fully customizable Pine Script v6 tool designed to help you spot key market structure shifts on any timeframe (optimized by default for 5‑minute charts). Here’s what it does and how to tailor it:
What It Detects
Swing Pivots
Finds local swing highs and lows over a configurable lookback (Pivot Lookback).
Break of Structure (BOS)
Marks when price closes beyond the last swing high (bullish BOS) or below the last swing low (bearish BOS), using an ATR‑based buffer to filter out minor moves.
Change of Character (CHoCH)
After a BOS, watches for price to reverse back through that level (e.g. a drop below the higher‑low after a bullish BOS), signaling a potential shift in momentum.
Key Inputs & Features
Pivot Lookback (pivotLen): How many bars to look back for pivots (default 8 for a 5‑min chart).
Fast Mode: When enabled, halves both the pivot lookback and ATR threshold for quicker—but noisier—signals.
ATR Threshold (atrLen & atrMult): Uses ATR(atrLen) × atrMult to require a minimum follow‑through beyond the pivot for a valid BOS/CHoCH.
Show Labels / Show Pivot Labels: Toggle on/off all structure labels or just pivot “x” markers.
Appearance Customization
Colors: Choose separate colors for pivot highs/lows, BOS labels, CHoCH labels, and structure lines.
Line Style: Select “Solid”, “Dotted”, or “Dashed” for your swing‑level lines.
Label Size & Style: Pick “Tiny”, “Small”, or “Normal” text size and choose label orientation (Up/Down/Left/Right) independently for pivots, BOS, and CHoCH.
Pivot Label Text: Change the pivot marker from the default “x” to any character you prefer.
How to Use
Add to Chart: Apply it on a 5‑minute chart (you’ll get a one‑time notice if you’re on another timeframe).
Tweak Inputs: Adjust pivot lookback, ATR multiplier, and toggle Fast Mode to suit your style.
Interpret Signals:
Green “BOS↑” or red “BOS↓” labels mark structure breaks.
Orange “CHoCH↓” or “CHoCH↑” labels flag the reversal through that level.
Dotted (or styled) lines trace the last swing high/low for visual reference.
Head Hunter HHHead Hunter HH - Advanced Market Structure & Volume Analysis Indicator
This indicator combines volume analysis, price action, and VWAP to identify high-probability trading opportunities across multiple timeframes.
Key Features:
• Smart Volume Analysis: Detects institutional volume patterns using dynamic thresholds
• VWAP-Based Market Structure: Multiple standard deviation bands for precision entry/exit
• Daily Level Integration: Previous day's high, low, close, and current day's open
• Advanced Signal Classification: Regular, Super Strong, and Scalp signals
Signal Types:
1. Regular Signals (White/Purple Triangles)
• Volume-confirmed reversals
• Institutional price levels
• Technical momentum alignment
2. Super Strong Signals (Green/Red Diamonds)
• High-volume breakouts
• Strong momentum confirmation
• Multiple timeframe alignment
3. Scalp Signals (Green/Magenta Circles)
• Quick reversal opportunities
• VWAP deviation analysis
• Volume surge confirmation
Visual Components:
• VWAP with Standard Deviation Bands
• 50 MA (optional)
• Daily Reference Levels
• Color-coded signals based on strength
• Bar color changes on confirmed signals
Best Practices:
• Most effective on higher timeframes (1H+)
• Use with major pairs/instruments
• Combine signals with support/resistance
• Monitor volume confirmation
• Wait for candle close confirmation
This indicator helps identify institutional order flow and high-probability reversal zones by analyzing volume patterns, price action, and market structure, providing traders with multiple confirmation layers before entry.
Note: Results may vary based on market conditions and timeframe selection. Always use proper risk management.
4H Color Sync for 15m, 30m, 90m, 1H4H Time Theory Session Colour Sync
- session colour sync to lower timeframes
- highlighting the sessions of 4h candles
- using the fractal nature of 4h time theory and applying it to the 1h/15m/5m/1m chart
- option to change the colours of 3 PAIRS for the 4h timeframe candles
- automatically syncs to your timezone
Volume Range Profile with Fair Value (Zeiierman)// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) creativecommons.org
// © Zeiierman {
//@version=6
indicator("Volume Range Profile with Fair Value (Zeiierman)", overlay=true, max_boxes_count=200, max_lines_count=10, max_labels_count=10)
//~~}
//~~ Tooltips for Inputs {
var string t1 = "Defines how many historical bars to consider when calculating the highest high and lowest low for the volume range zones. A larger value creates broader zones and more stable volume profiles, while a smaller value reacts quicker to price shifts."
var string t2 = "Controls how much of the full price range (from high to low) is allocated for the volume zones. A smaller value makes zones narrower and more focused on extremes; a higher value widens the zones to capture more volume."
var string t3 = "Sets the number of horizontal volume bins in each zone. More bins give finer granularity, while fewer bins make the volume histogram more generalized. Increasing too much may impact performance."
var string t4 = "Color used to fill the upper (typically sell) volume zone background. Lower transparency means stronger visual emphasis."
var string t5 = "Color used to fill the lower (typically buy) volume zone background. Adjust transparency to make it more or less visible against chart elements."
var string t6 = "Color used for the most active bin (POC – Point of Control). This bin represents where the most volume was traded within the zone."
var string t7 = "Toggle to display a dashed midline inside each volume zone. Helps visually separate the upper and lower halves of each zone."
var string t8 = "Color for the zone midlines. A more visible color helps with separation, especially on dark or noisy charts."
var string t9 = "When enabled, adds a label showing the percentage of total zone volume that occurred inside the POC bin."
var string t10 = "When enabled, displays labels showing the total Buy or Sell volume accumulated in each respective zone. Useful for reading directional volume pressure directly on the chart."
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Inputs {
len = input.int(100, "Lookback Period", minval=2, group="Period & Zones", tooltip=t1)
zoneP = input.float(30.0, "Zone Width (% of Range)", minval=1, maxval=50, step=0.5, group="Period & Zones", tooltip=t2)
bins = input.int(10, "Bins per Zone", minval=1, maxval=50, group="Volume Profile", tooltip=t3)
clrUp = input.color(color.new(color.red, 80), "Upper Zone Color", group="Visuals", tooltip=t4)
clrLo = input.color(color.new(color.lime, 80), "Lower Zone Color", group="Visuals", tooltip=t5)
clrPOC = input.color(color.new(color.white, 0), "POC Bin Color", group="Visuals", tooltip=t6)
showMid = input.bool(true, "Show Zone Midline", group="Visuals", tooltip=t7)
clrMid = input.color(color.new(color.orange, 0), "Midline Color", group="Visuals", tooltip=t8)
showPOClbl = input.bool(true, "Show POC % Label", group="Visuals", tooltip=t9)
showTotlbl = input.bool(true, "Show Total Vol Label", group="Visuals", tooltip=t10)
lblClr = color.white
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Globals {
var array allBoxes = array.new_box(0)
var array allLines = array.new_line(0)
var array allLabels = array.new_label(0)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Helpers {
f_formatVol(_v) =>
suf = ""
x = _v
if _v >= 1e9
suf := "B"
x := _v / 1e9
else if _v >= 1e6
suf := "M"
x := _v / 1e6
else if _v >= 1e3
suf := "K"
x := _v / 1e3
str.format("{0,number,#.###}{1}", x, suf)
f_clearDrawings() =>
for b in allBoxes
box.delete(b)
array.clear(allBoxes)
for l in allLines
line.delete(l)
array.clear(allLines)
for lb in allLabels
label.delete(lb)
array.clear(allLabels)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Zone calculation with distributed volume + buy/sell per bin {
f_zone() =>
hh = ta.highest(high, len)
ll = ta.lowest( low, len)
rng = hh - ll
zh = rng * zoneP / 100
ut = hh
ub = hh - zh
lt = ll + zh
lbz = ll
bs = zh / bins
volsU = array.new_float(bins, 0.0)
volsL = array.new_float(bins, 0.0)
buyU = array.new_float(bins, 0.0)
sellU = array.new_float(bins, 0.0)
buyL = array.new_float(bins, 0.0)
sellL = array.new_float(bins, 0.0)
totU = 0.0
totL = 0.0
for i = 0 to len - 1
bh = high
bl = low
v = volume
isBuy = close >= open
// Upper zone overlap
if bh >= ub and bl <= ut
br = bh - bl
if br <= syminfo.mintick
price = hl2
if price >= ub and price <= ut
j = math.floor((ut - price) / bs)
j := math.min(math.max(j, 0), bins - 1)
array.set(volsU, j, array.get(volsU, j) + v)
if isBuy
array.set(buyU, j, array.get(buyU, j) + v)
else
array.set(sellU, j, array.get(sellU, j) + v)
totU := totU + v
else
for j = 0 to bins - 1
binT = ut - j * bs
binB = binT - bs
ov = math.min(bh, binT) - math.max(bl, binB)
if ov > 0
frac = ov / br
cvol = v * frac
array.set(volsU, j, array.get(volsU, j) + cvol)
if isBuy
array.set(buyU, j, array.get(buyU, j) + cvol)
else
array.set(sellU, j, array.get(sellU, j) + cvol)
totU := totU + cvol
// Lower zone overlap
if bh >= lbz and bl <= lt
br2 = bh - bl
if br2 <= syminfo.mintick
price = hl2
if price >= lbz and price <= lt
j2 = math.floor((price - lbz) / bs)
j2 := math.min(math.max(j2, 0), bins - 1)
array.set(volsL, j2, array.get(volsL, j2) + v)
if isBuy
array.set(buyL, j2, array.get(buyL, j2) + v)
else
array.set(sellL, j2, array.get(sellL, j2) + v)
totL := totL + v
else
for j2 = 0 to bins - 1
binB2 = lbz + j2 * bs
binT2 = binB2 + bs
ov2 = math.min(bh, binT2) - math.max(bl, binB2)
if ov2 > 0
frac2 = ov2 / br2
cvol2 = v * frac2
array.set(volsL, j2, array.get(volsL, j2) + cvol2)
if isBuy
array.set(buyL, j2, array.get(buyL, j2) + cvol2)
else
array.set(sellL, j2, array.get(sellL, j2) + cvol2)
totL := totL + cvol2
pocU = 0
pocL = 0
maxU = 0.0
maxL = 0.0
for j = 0 to bins - 1
u = array.get(volsU, j)
l = array.get(volsL, j)
if u > maxU
maxU := u
pocU := j
if l > maxL
maxL := l
pocL := j
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Main {
f_clearDrawings()
hh = ta.highest(high, len)
ll = ta.lowest( low, len)
if hh - ll <= syminfo.mintick * bins
runtime.error("Range too small")
= f_zone()
startBar = bar_index - len + 1
histW = math.round(len * 0.5)
rightB = startBar - 2
leftB = rightB - histW
zoneEnd = bar_index + 1
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// Draw boxes {
bU = box.new(leftB, ut, zoneEnd, ub, border_color=na, bgcolor=clrUp)
bL = box.new(leftB, lt, zoneEnd, lbz, border_color=na, bgcolor=clrLo)
array.push(allBoxes, bU)
array.push(allBoxes, bL)
// Draw upper bins
pocVolU = totU > 0 ? array.get(volsU, pocU) : 0.0
for j = 0 to bins - 1
volj = array.get(volsU, j)
ratio = pocVolU > 0 ? volj / pocVolU : 0.0
wBars = math.max(1, math.ceil(histW * ratio))
x0 = math.max(leftB, rightB - wBars)
yT = ut - j * bs
yB = yT - bs
col = j == pocU ? clrPOC : color.new(clrUp, 50)
b = box.new(x0, yT, rightB, yB, border_color=color.new(color.red,30), bgcolor=col)
array.push(allBoxes, b)
// Draw lower bins
pocVolL = totL > 0 ? array.get(volsL, pocL) : 0.0
for j = 0 to bins - 1
volj = array.get(volsL, j)
ratio = pocVolL > 0 ? volj / pocVolL : 0.0
wBars = math.max(1, math.ceil(histW * ratio))
x0 = math.max(leftB, rightB - wBars)
yB2 = lbz + j * bs
yT2 = yB2 + bs
col2 = j == pocL ? clrPOC : color.new(clrLo, 50)
b2 = box.new(x0, yT2, rightB, yB2, border_color=color.new(color.lime,30), bgcolor=col2)
array.push(allBoxes, b2)
// Midlines
if showMid
mU = (ut + ub) / 2
mL = (lt + lbz) / 2
lnU = line.new(startBar, mU, zoneEnd, mU, color=clrMid, style=line.style_dashed)
lnL = line.new(startBar, mL, zoneEnd, mL, color=clrMid, style=line.style_dashed)
array.push(allLines, lnU)
array.push(allLines, lnL)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Draw Total‑Volume Labels {
if showTotlbl
// Upper zone: total Sell volume
totalSellU = array.sum(sellU)
if totalSellU > 0
labU = label.new(
startBar + histW/2, ut + bs,
"Sell Vol: " + f_formatVol(totalSellU),
xloc = xloc.bar_index,
style = label.style_label_center,
color = color.red,
textcolor = color.white,
size = size.normal
)
array.push(allLabels, labU)
// Lower zone: total Buy volume
totalBuyL = array.sum(buyL)
if totalBuyL > 0
labL = label.new(
startBar + histW/2, lbz - bs,
"Buy Vol: " + f_formatVol(totalBuyL),
xloc = xloc.bar_index,
style = label.style_label_center,
color = color.green,
textcolor = color.white,
size = size.normal
)
array.push(allLabels, labL)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Draw POC Vol % {
xLab = zoneEnd + 1
// Upper zone POC
if totU > 0
pvU = array.get(volsU, pocU)
bvU = array.get(buyU, pocU)
svU = array.get(sellU, pocU)
buyPctU = pvU > 0 ? bvU / pvU * 100 : 0
sellPctU = pvU > 0 ? svU / pvU * 100 : 0
totalPctU= pvU / totU * 100
txtU = "POC Vol: " +
"Buy " + str.format("{0,number,#.##}%", buyPctU) + " " +
"Sell " + str.format("{0,number,#.##}%", sellPctU) + " " +
"Total " + str.format("{0,number,#.##}%", totalPctU)
colU = buyPctU >= sellPctU ? color.green : color.red
labPOCU = label.new(
xLab, ut - (pocU + 0.5) * bs, txtU,
xloc = xloc.bar_index,
style = label.style_label_left,
color = colU,
textcolor = color.white,
size = size.small
)
array.push(allLabels, labPOCU)
// Lower zone POC
if totL > 0
pvL = array.get(volsL, pocL)
bvL = array.get(buyL, pocL)
svL = array.get(sellL, pocL)
buyPctL = pvL > 0 ? bvL / pvL * 100 : 0
sellPctL = pvL > 0 ? svL / pvL * 100 : 0
totalPctL = pvL / totL * 100
txtL = "POC Vol: " +
"Buy " + str.format("{0,number,#.##}%", buyPctL) + " " +
"Sell " + str.format("{0,number,#.##}%", sellPctL) + " " +
"Total " + str.format("{0,number,#.##}%", totalPctL)
colL = buyPctL >= sellPctL ? color.green : color.red
labPOCL = label.new(
xLab, lbz + (pocL + 0.5) * bs, txtL,
xloc = xloc.bar_index,
style = label.style_label_left,
color = colL,
textcolor = color.white,
size = size.small
)
array.push(allLabels, labPOCL)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ 6. POC‑volume trend line {
pocPrice = ut - (pocU + 0.5) * bs
avgPocPrice = ta.sma(pocPrice, len)
delta = avgPocPrice - avgPocPrice
lineColor = delta >= 0 ? color.green : color.red
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Plot {
plot(
avgPocPrice,
title = "Fair value - drifting over time.",
color = lineColor,
linewidth = 1,
style = plot.style_line
)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
Master Simple IndicatorThe streamlined Pine Script, created by masterbtcltc, is a technical analysis indicator that overlays on a price chart to provide buy and sell signals based on a dynamic 120-day simple moving average (SMA). Here's how it works:
Dynamic Moving Average: Calculates a 120-day SMA (ma_dynamic) using closing prices to smooth out price fluctuations and identify trends.
Buy/Sell Signals:
Buy Signal: Triggered when the closing price crosses above the 120-day SMA (longSignal), indicating potential bullish momentum. A white triangle with "close" text appears below the bar.
Sell Signal: Triggered when the closing price crosses below the 120-day SMA (shortSignal), suggesting bearish momentum. A yellow triangle with "Short" text appears above the bar.
Alerts: Generates alerts for buy (Long Signal Alert) and sell (Short Signal Alert) signals, notifying users when the price crosses the SMA.
Visual Highlights:
Price vs. SMA: The area between the closing price and the 120-day SMA is filled with yellow if the price is above the SMA (bullish) or blue if below (bearish).
50-day vs. 120-day SMA: The area between the 50-day SMA and 120-day SMA is filled green when the 50-day SMA is above the 120-day SMA, indicating a stronger bullish trend.
Created by masterbtcltc, this indicator helps traders identify trend changes and potential entry/exit points based on price interactions with the 120-day SMA, with clear visual cues and alerts for decision-making.
Bounty SeekerBounty Seeker - Advanced Market Structure & Order Block Detection
A sophisticated indicator that identifies high-probability reversal zones through the analysis of market structure, volume patterns, and institutional order blocks. This tool helps traders spot potential reversals and fake-outs with precision.
Core Components:
1. Pivot Detection System
• Smart pivot high/low identification
• Volume-enhanced confirmation
• RSI confluence validation
• Real-time market structure analysis
2. Order Block Detection
• Institutional buying/selling zones
• Historical support/resistance levels
• Smart volume threshold analysis
• Dynamic level adaptation
Signal Types:
1. Bull Pivots (White X)
• Strong volume confirmation
• RSI oversold conditions
• Price action validation
• Order block confluence
2. Bear Pivots (Purple X)
• Volume surge confirmation
• RSI overbought alignment
• Bearish price action
• Resistance zone validation
3. Fake Pivots (Orange X)
• Low volume warning signals
• Trap zone identification
• False breakout detection
• Risk management guide
Visual Elements:
• Dashed Lines: Order block zones
• White/Purple X's: Major pivot points
• Orange X's: Potential fake moves
• Dynamic support/resistance levels
Best Usage Practices:
• Most effective on 1H+ timeframes
• Focus on major market pairs
• Wait for complete signal formation
• Combine with trend direction
• Monitor volume confirmation
• Use proper position sizing
The indicator excels at:
1. Identifying potential reversal zones
2. Detecting institutional order blocks
3. Warning of potential fake moves
4. Providing clear entry/exit levels
5. Highlighting strong volume zones
Risk Management:
• Always wait for signal confirmation
• Use appropriate stop loss levels
• Consider multiple timeframe analysis
• Don't trade against major trends
• Monitor volume for validation
This indicator combines advanced market structure analysis with volume profiling to help traders identify high-probability trading opportunities while warning of potential traps and fake-outs.
Note: Past performance does not guarantee future results. Always use proper risk management techniques.
Custom Time Range Boxes + Fibs + ExtensionThis script draws two customizable time-range boxes per day, helping traders visualize key market sessions or activity windows. Each box is defined by start and end times that can be adjusted in the settings. You can also choose a custom color and extend the visual width of the box independently from the actual session time. Within each box, the indicator plots three Fibonacci levels: 0.3, 0.5, and 0.7. These levels are useful for identifying potential support, resistance, or retracement zones inside the session range. The script supports two separate time blocks, allowing you to track sessions like the New York Open and Power Hour simultaneously. All lines and boxes are drawn using bar_index for precision and control. The levels and box colors match for visual consistency. Perfect for intraday traders who want to track price behavior around key times. Clean, minimal, and performance-friendly — this tool adds clarity to your session-based strategy.
Highlight Candle Body ≤ 10 Ticks (Clean & Subtle)Purpose:
This indicator highlights candlesticks where the body size (difference between open and close) is 10 ticks or less, specifically for instruments like Crude Oil futures (CL) where 1 tick = 0.01.
How it works:
It calculates the body size: abs(close - open)
If the body is ≤ 0.10 (10 ticks), the candle is softly colored in muted orange.
Wicks are ignored — only the body is considered.
No additional shapes or markers — clean and minimal.
Use case:
Helps identify periods of indecision or low momentum — such as potential pause candles, traps, or setups just before volatility returns.