Dante's SFP Detector [Visual]Concept: The Swing Failure Pattern (SFP)
In modern markets, "Smart Money" often seeks liquidity by pushing price just beyond key Swing Highs or Swing Lows to trigger retail stop-losses and breakout orders. Once this liquidity is absorbed, price often reverses aggressively. This phenomenon is known as a Swing Failure Pattern (SFP).
Trading blind breakouts is dangerous. This indicator helps you identify when a breakout is actually a Trap.
What This Indicator Does
This script automatically detects and visualizes SFPs in real-time. Unlike other indicators that simply place an icon on the chart, this tool draws the exact level that was swept, allowing you to see the "Crime Scene" clearly.
It confirms an SFP only when two conditions are met:
The Sweep: Price pierces a previous Swing High or Low (grabbing liquidity).
The Rejection: The candle closes back inside the range (trapping the traders who entered on the break).
Visuals & How to Read
🩸 Bearish SFP (Short Signal):
Icon: A red drop appears above the bar.
Line: A red dashed line connects the previous High to the current wick.
Meaning: Buyers are trapped at the top. The breakout failed.
💎 Bullish SFP (Long Signal):
Icon: A gem appears below the bar.
Line: A green dashed line connects the previous Low to the current wick.
Meaning: Sellers are trapped at the bottom. The breakdown failed.
How to Trade It
Entry: Enter on the Close of the signal candle.
Stop Loss: Place your Hard Stop just beyond the wick of the signal candle (the sweep point).
Target: Target the opposing Swing High/Low or the mid-range.
Settings
Swing Lookback (Fractal Size): Defines how far back the script looks for highs/lows.
Default (20): Best for local structure and day trading (15m, 1H charts).
Higher values (e.g., 50+): Better for finding major structural reversals on higher timeframes (4H, Daily).
Disclaimer: This tool is for educational purposes. Always manage your risk and wait for candle closes before executing trades.
Educational
euroPRO_Alarme_1.03euroPRO Alarm System - Alert Indicator
Professional alert system with lockout protection for EUR/USD trading.
Key Features:
- 20-pip lockout zone with visual box
- Automatic setup detection alerts
- Night range tracking
- Session filter (07:00-22:00 CET)
- Webhook support for Discord/Slack
- Color-coded lockout status (gray = locked, green = free)
Technical Details:
- Based on proven NanoTrader strategy
- Optimized for EUR/USD 5-minute timeframe
- Prevents overtrading with lockout logic
- Clean visual design
(c) forexPRO-Systeme - Thorsten Helbig
For licensed users only
Support: hallo@forexpro-systeme.de
Automatic Fibonacci indicator based on swing pivots.It detects key market points and plots high-probability levels used by institutional and algorithmic traders. Useful for identifying golden zones, optimal pullbacks, re-entry spots, and projection targets. Works on any asset and timeframe.
Heikin Ashi SMA 9 / 20 / 50 (MTF + Selectable Source)This is simple Heikin ashi value three moving average as 9 / 20 / 50 for clear trend identification . use it wisely with other confirmation .
Volume SMA 9 / 20 / 50This is real time volume average lines having option to select period of volume lines . it not only provides volume with respect to price action but also we can find out real picture of price action pressure. use it with ADX and MACD wisely . only volume spike is not confirmation some times fake breakout , so wait for confirmation and participate at breakout confirmation.
IB - Initial Balance
up to 2 sessions per day
up to 3 mid lines
selectable background color for high or low first.
Precious Matrix Index Follow-PRO📈 Precious Matrix – Index Follow PRO
Smart Alignment Engine for Stocks, Index & Sector
Precious Matrix – Index Follow PRO is a professional alignment indicator that tells you—at a glance—whether a stock is following, diverging, or staying neutral against its reference index and sector.
Built for intraday and positional traders, this tool converts complex market relationships into a single, clear decision panel.
🚀 What This Indicator Does
It checks real-time alignment between:
📊 Stock
📉 Index (default: NIFTY)
🏭 Sector Index
…and tells you whether the stock is:
FOLL0WING the broader market
DIVERGING (potential opportunity or warning)
NEUTRAL (no clear edge)
🔥 Core Features
🔹 Dual Calculation Modes
Choose how momentum is measured:
Since Open – perfect for intraday trend bias
Last N Minutes – great for scalping & momentum bursts
🔹 Automatic Sector Intelligence
Built-in auto sector mapping for Indian stocks
Works with BANK, IT, FMCG, METAL, AUTO, PHARMA, REALTY
Or switch to manual mode anytime
🔹 Adaptive Threshold Engine
Decide how sensitive the system should be:
Manual % threshold
ATR-based dynamic threshold
Automatically adjusts for volatility & timeframe
🔹 Professional Filters (Optional)
Turn on only what you need:
Relative Strength – stock stronger/weaker than index
MTF Agreement – higher timeframe trend validation
VWAP Acceptance – price position filter
ATR Regime – trend vs range environment
Volume Confirmation – activity validation
Each enabled filter is clearly shown on the label.
🧠 Smart Signal Logic
The system classifies every moment into:
✅ FOLLOWS INDEX – high-probability alignment
❌ DIVERGES – early warning / opportunity zone
⏸️ NEUTRAL – stay patient
With extra intelligence like:
Stronger / Weaker relative strength tags
Direction arrows
Live % change readings
🏷️ Dynamic Floating Label
A clean, non-intrusive label that:
Auto-positions near the latest candle
Updates in real time
Scales with Small / Medium / Large text options
Changes color based on:
Green → Following
Red → Diverging
Grey → Neutral
📊 Sector Snapshot Table (Optional)
Turn on the Sector Table to see:
Live % change of:
BANK
IT
REALTY
FMCG
METAL
AUTO
PHARMA
Instantly compare which sector is leading or lagging
Perfect for sector rotation and relative strength trading.
🎯 Best Use Cases
This indicator is ideal for:
Index traders
Option sellers & buyers
Intraday equity traders
Sector rotation strategies
Anyone who trades alignment, divergence & momentum
⚙️ Highlights
Designed for Indian markets
Works on all timeframes
No repainting logic
Highly optimized for live trading
Clean UI – no clutter, only decisions
📌 Trading Tip
Use Index Follow PRO before taking any trade:
If the stock is not aligned with:
Index
Sector
Higher timeframe
…it’s usually better to wait.
When all three line up, you trade with market force, not against it.
Precious Matrix-L5-HL📊 Precious Matrix-L5-HL
Pro Dashboard for Multi-Day Market Structure
Precious Matrix-L5-HL is a professional-grade dashboard indicator designed to give traders instant clarity on price behavior across multiple day ranges — from short-term momentum to extended custom periods.
This tool focuses on High–Low structure, Net change, and live range positioning, all presented in a clean, decision-friendly panel.
🚀 Key Features
🔹 Multi-Mode Dashboard
Switch instantly between:
Last 5 / 10 / 15 Days
Custom Date Range
Summary View
Custom → Till Live (Auto-extended)
Each mode recalculates:
Net movement
Range expansion
Live position inside the range
🔹 Smart Custom Range Engine
Select any custom date window (up to 50 days).
Automatically detects the true start date even with missing sessions.
Option to auto-set “To” date as today 15:30 IST for live tracking.
🔹 Custom → Live Extension
A unique feature that extends your chosen custom range up to the current day, showing:
Updated High / Low
Live A/R positioning
Accurate net change from custom start
Perfect for tracking how price evolves after a major event or breakout.
🔹 Δ Range Intelligence
The dashboard doesn’t just show numbers — it shows context:
Total range of the period
Current price location inside that range
Remaining upside / downside room
This makes it ideal for:
Swing traders
Positional traders
Index & futures traders
Anyone who trades based on range behavior
🔹 Max Close ± Panel
An additional smart widget that shows:
Maximum positive close change
Maximum negative close change
Exact dates and ending closes
within any chosen date range.
Great for studying volatility spikes and trend impulse strength.
🎯 Who This Is For
If you like to trade using:
Market structure
Daily ranges
Multi-day momentum
Event-based tracking
Clean dashboards instead of cluttered indicators
…then Precious Matrix-L5-HL is built for you.
⚙️ Highlights
Optimized with minimal security calls
No repainting logic
Works on all symbols (Index, Stocks, Futures)
Designed for Indian markets with IST timing support
Fully customizable panel position & visibility
📌 Tip
Use Summary Mode for big-picture bias, and
Custom → Till Live mode after important days like:
Budget day
RBI policy
Big breakout session
Earnings / results day
It turns your chart into a live performance tracker.
Nifty - 3m By PaisaPani IVThis script is created strictly for educational and research purposes.
It demonstrates rule-based market behavior using technical conditions.
Trading and investing involve risk, and financial markets can be volatile.
Past performance does not guarantee future results.
This script does not provide financial, investment, or trading advice.
Users should perform their own analysis and apply appropriate risk management
before using this script in live market conditions.
The author is not responsible for any financial losses incurred.
D1 NDOGs & NWOGsNew Week Opening Gap & New Day Opening Gap
Made Simple By implementing Look back periods and including C.E.
TGO v7.1 (Mod 7 Eklendi)7 adet mod dan oluşmaktadir özel güç power modu ile fiyat bandda hareket eder.
euroPRO_basis_1.01.04euroPRO Trading System - Main Indicator
Professional EUR/USD trading system with automatic FIP target zones and price labels.
Key Features:
- 20 FIP target zones (P1-P12 positive, N1-N8 negative)
- Automatic price labels at all FIP levels
- Real-time Card UI with system status
- Daily session filter (07:00-22:00 CET)
- High/Low markers with pip distance
- Automatic setup detection
- 20-pip lockout protection
Technical Details:
- Based on proven NanoTrader strategy
- Optimized for EUR/USD 5-minute timeframe
- Clean visual design
- Low CPU usage
© forexPRO-Systeme - Thorsten Helbig
For licensed users only
Support: hallo@forexpro-systeme.de
euroPRO Trading System - Haupt-Indikator
Features:
- FIP Zielbereiche (P1-P12, N1-N8)
- Automatische Preislabels
- Card-UI mit System-Status
- Session-Filter (07:00-22:00 MEZ)
© forexPRO-Systeme - Thorsten Helbig
Nur für lizenzierte User"
Precision Scalper Pro v2026Precision Scalper Pro (ALMA + Dual RSI) - Usage Instructions
1. Setup
Platform: TradingView (Desktop recommended).
Timeframe: Set your chart to 1-minute (1m) or 3-minute (3m).
Assets: Use high-liquidity assets only: BTC/USDT, ETH/USDT, EUR/USD, or Gold (XAUUSD).
Timing: Trade during high-volume sessions (London/New York overlap is best).
2. Reading the Chart
Blue Line (ALMA Trend):
Price above the blue line = Only look for BUY signals.
Price below the blue line = Only look for SELL signals.
Green Triangle: A potential BUY (Long) signal has occurred.
Red Triangle: A potential SELL (Short) signal has occurred.
3. Executing a Trade Manually
Always wait for the candle to close before entering a trade.
Action Buy Signal (Green Triangle) Sell Signal (Red Triangle)
Enter Position Buy at market price. Short-sell at market price.
Stop Loss (SL) Set SL order at the DASHED RED LINE. Set SL order at the DASHED RED LINE.
Take Profit (TP) Set TP order at the DASHED GREEN LINE. Set TP order at the DASHED GREEN LINE.
4. Critical Rules for Success
Candle Close: Never enter a trade while the current candle is still active; wait for it to finish and lock the signal in place.
Risk Management: Never risk more than 1-2% of your total balance per trade.
Early Exit: If the opposite signal appears while you are in an open trade, exit the current trade immediately and consider switching direction.
Watch Fees: Ensure your broker fees don't consume your small scalping profits.
Micro Futures Risk Calculator (Minimal)risk calculator based off of stop distance. to keep risk consistent for consistent growth
Lunar Phases AdvancedHigh Precision Lunar Phases Advanced Indicator
Our Beautiful Companion in the Night:
At New Moon, the Moon sits between Earth and the Sun. The Near side is completely dark, so the Moon is unseen (except during a solar eclipse). At Full Moon, the Near side of the Moon is on the opposite side of Earth from the Sun, so sunlight hits the entire face we see—creating that big, beautifully bright Ball in the night sky. Due to tidal locking, we never see the Far side of the moon from Earth's surface.
Right after New Moon, a thin Waxing Crescent appears low in the western sky at dusk, growing into the half-lit First Quarter, then a bulging Waxing Gibbous until reaching Full Moon which rises exactly as the Sun sets. After Full, it shrinks through Waning Gibbous, Last Quarter (half-lit visible in the early morning sky), finishing with a Waning Crescent (thin sliver again) just before disappearing at dawn for the next New Moon.
The Moon’s orbit is elliptical, so its distance from Earth varies. When Full and near Perigee(closest approach) it appears larger and up to 30% brighter leading way to the name, Super Moon. Near Apogee(farthest distance) the Moon will look smaller and dimmer, or Micro Moon. These extreme alignments tend to cluster in "seasons" because the point of closest approach slowly drifts around the orbit, completing a full cycle every 18.6 years.
Chart zoomed out to highlight the seasonal Super Moon behavior:
This indicator places markers on your chart for every New/Full Moon. Super Moon events use larger circles, Micro Moon events use smaller ones (both optional based on distance at event). There are background colors for Apogee and Perigee events, with optional diamond markers.
Chart with Full/New Moon markers and phase background colors:
Extended Functionality
This advanced version builds on the core Phase detection by adding Lunar orbit extremes with event tilt values:
Precise Perigee (closest approach) and Apogee (farthest away) markers optionally appear as red diamonds above the bar for Perigee and green diamonds below for Apogee.
Background tint shows whether the Moon is currently approaching Perigee (cyan shade) or Apogee (violet shade), giving instant visual context for distance expansion and contraction.
Chart with Apogee/Perigee markers and approaching background colors:
Accuracy:
New and Full Moon times are typically within ±few minutes
Distances are typically within ±10–100 km
Tilt values are typically within ±0.01° of astronomically true.
The Info Table expands to three columns:
Current — live phase name and live geocentric distance
Next Phase — upcoming New or Full Moon, countdown timer, and expected distance
Next Extreme — upcoming Perigee or Apogee, countdown timer, and expected distance
Settings:
Thresholds group:
"Full"/"New" checkboxes turn SuperMoon and MicroMoon individually on or off for each
Distance inputs let you set your own km cutoffs for what counts as super or micro (defaults are common values around 369,000 km and 405,000 km)
Start Date and End Date control the time range the script scans for events (default 2010–2028)
BackGround Color group:
"Current Phase" checkbox turns the Waxing/Waning background colors on or off
Color pickers let you choose your own Waxing (default purple shade) and Waning (default blue shade)
"Approaching" checkbox turns the Apogee/Perigee background colors on or off
Color pickers let you choose your own Perigee (default cyan shade) and Apogee (default violet shade)
Information group:
"Show Info Table" turns the top-right panel on or off
"(New/Full)" checkbox adds detailed labels directly on New/Full bars with user selected time-zone, distance, and Lunar tilt from Earths Ecliptic
"(Peri/Apo)" checkbox adds detailed labels directly on Peri/Apo bars with user selected time-zone, distance, and Lunar tilt from Earths Ecliptic
Drop down time-zone for label
Powered by multiple 50-term approximations of the ELP2000-82B lunar theory.
Disclaimer: The script was developed with assistance from Grok 4.1, always under human supervision and decision-making.
Trap longs - Hamza Naveed// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
//@version=5
indicator("Trap Longs - Hamza Naveed", max_labels_count = 500, overlay = false, format = format.volume)
g1 = '📊 Net Positions '
g2 = '📈 Moving Averages (VWMA/EMA) '
g3 = '⚙️ Additional Settings '
g4 = '🎚️ Profile '
g5 = '🖥️ Statistics '
g6 = '⚖️ Divergences'
// User inputs - General settings
dtype = input.string('Net Positions', 'Type', options = )
disp = input.string('Candles', 'Display as', options = )
cumu = input.string('Full Data', 'Cumulation', options = )
denom = input.string('Quote Currency', 'Quoted in', options = )
// User inputs - Data Source Settings
binance = input.bool(true, 'Binance USDT.P', inline = 'src')
binance2 = input.bool(true, 'Binance USD.P', inline = 'src')
binance3 = input.bool(true, 'Binance BUSD.P', inline = 'src2')
bitmex = input.bool(true, 'BitMEX USD.P', inline = 'src2')
bitmex2 = input.bool(true, 'BitMEX USDT.P ', inline = 'src3')
kraken = input.bool(true, 'Kraken USD.P', inline = 'src3')
// User inputs - Net Positions
showL = input.bool(true, 'NET LONGS ►', group = g1, inline='l')
showS = input.bool(false, 'NET SHORTS ►', group = g1, inline='s')
showD = input.bool(false, 'NET DELTA ►', group = g1, inline='d')
showR = input.bool(false, 'NET RATIO ►', group = g1, inline='r')
pcolL = input.color(#a5d6a7, '', group = g1, inline = 'l')
ncolL = input.color(#f77c80, '', group = g1, inline = 'l')
lcolL = input.color(#a5d6a7, '━', group = g1, inline = 'l')
pcolS = input.color(#a5d6a7, '', group = g1, inline = 's')
ncolS = input.color(#f77c80, '', group = g1, inline = 's')
lcolS = input.color(#faa1a4, '━', group = g1, inline = 's')
pcolD = input.color(#a5d6a7, '', group = g1, inline = 'd')
ncolD = input.color(#f77c80, '', group = g1, inline = 'd')
lcolD = input.color(#90bff9, '━', group = g1, inline = 'd')
pcolR = input.color(#a5d6a7, '', group = g1, inline = 'r')
ncolR = input.color(#f77c80, '', group = g1, inline = 'r')
lcolR = input.color(#f9d690, '━', group = g1, inline = 'r')
// User inputs - Net Positions EMAs
mat = input.string('VWMA', 'Type', options= , group=g2)
emaL = input.bool(false, 'LONGS ', group=g2, inline='emal')
emaS = input.bool(false, 'SHORTS ', group=g2, inline='emas')
emaD = input.bool(false, 'DELTA ',group=g2, inline='emad')
emaR = input.bool(false, 'RATIO ',group=g2, inline='emar')
emaLl = input.int(100, '', group=g2, inline='emal')
emaSl = input.int(100, '', group=g2, inline='emas')
emaDl = input.int(100, '', group=g2, inline='emad')
emaRl = input.int(100, '', group=g2, inline='emar')
emaLc = input.color(color.rgb(165, 214, 167, 60), '', group=g2, inline='emal')
emaSc = input.color(color.rgb(250, 161, 164, 60), '', group=g2, inline='emas')
emaDc = input.color(color.rgb(144, 191, 249, 60), '', group=g2, inline='emad')
emaRc = input.color(color.rgb(249, 214, 144, 60), '', group=g2, inline='emar')
// User inputs - Additional settings
volhm = input.bool(false, 'Volume HM', group=g3, inline='vol')
volc2 = input.color(color.rgb(49, 121, 245),'', group=g3, inline = 'vol')
offs = input.int (10, 'Label Offset', group=g3)
length = input.int (14, 'Position RSI Length', group=g3)
vlbl = input.bool(true, 'Value Labels', group=g3, inline='lv')
nlbl = input.bool(true, 'Data Labels', group=g3, inline='lv')
wick = input.bool(false, 'Show Candle Wicks', group=g3)
// User inputs - Profile settings
prof = input.bool (false, 'Generate a profile', group=g4)
profsrc = input.string('Net Longs', 'Profile Data', options = , group=g4)
vapct = input.float (70, 'Value Area %', minval = 5, maxval = 95, group = g4)
ori = input.string("Left", 'Position', options = , group = g4)
profSize = input.int (2, 'Node Size', minval = 1, group = g4)
rows = input.int (40, 'Rows', minval = 6, maxval = 500, step = 25, group = g4) - 1
vancol = input.color (color.new(color.blue, 75), 'Node Colors ', group = g4, inline = 'nc')
nvancol = input.color (color.new(color.gray, 75), '━', group = g4, inline = 'nc')
poc = input.bool (false, 'POC', group = g4, inline = 'POC'),
poccol = input.color (color.new(color.red, 50), ' ', group = g4, inline = "POC")
val = input.bool (false, 'VA', group = g4, inline = "VA")
vafill = input.color (color.new(color.blue, 95), ' ', group = g4, inline = 'VA')
// User inputs - Statistics
stats = input.bool(false, 'Show Stats', group = g5)
chg_b = input.int(50, 'Bars Back', group = g5)
tablevpos = input.string('Horizontal', 'Orientation', options= , group = g5)
tablepos = input.string('Bottom Center', 'Position', options= , group = g5)
stat_oi = input.bool(true, 'OI ━', group = g5, inline = 'oi')
stat_nl = input.bool(true, 'NL ━', group = g5, inline = 'nl')
stat_ns = input.bool(true, 'NS ━', group = g5, inline = 'ns')
stat_nd = input.bool(true, 'ND ━', group = g5, inline = 'nd')
stat_oi_c = input.bool(true, 'OI Change ━', group = g5, inline = 'oi')
stat_nl_c = input.bool(true, 'NL Change ━', group = g5, inline = 'nl')
stat_ns_c = input.bool(true, 'NS Change ━', group = g5, inline = 'ns')
stat_nd_c = input.bool(true, 'ND Change ━', group = g5, inline = 'nd')
stat_oi_r = input.bool(true, 'OI RSI', group = g5, inline = 'oi')
stat_nl_r = input.bool(true, 'NL RSI', group = g5, inline = 'nl')
stat_ns_r = input.bool(true, 'NS RSI', group = g5, inline = 'ns')
stat_nd_r = input.bool(true, 'ND RSI', group = g5, inline = 'nd')
// User inputs - Divergence Finder
showdiv = input.bool(false, 'Divergence finder', group = g6)
divsrc = input.string('Net Longs', 'Source', options = , group=g6)
pivotDistance = input.int(5, 'Maximum Distance', minval=0, group=g6)
leftPivot = input.int(8, 'Lookback Bars Left', minval=1, group=g6)
rightPivot = input.int(8, 'Lookback Bars Right', minval=1, group=g6)
pHH_npLH = input.bool(true, 'Price HH + Data LH', group = g6, inline='div1')
pLH_npHH = input.bool(true, 'Price LH + Data HH', group = g6, inline='div2')
pLL_npHL = input.bool(true, 'Price LL + Data HL ', group = g6, inline='div3')
pHL_npLL = input.bool(true, 'Price HL + Data LL ', group = g6, inline='div4')
pHH_npLHcol = input.color(color.red, '', group = g6, inline='div1')
pLH_npHHcol = input.color(color.red, '', group = g6, inline='div2')
pLL_npHLcol = input.color(color.green, '', group = g6, inline='div3')
pHL_npLLcol = input.color(color.green, '', group = g6, inline='div4')
// Getting OI data
mex = syminfo.basecurrency=='BTC' ? 'XBT' : string(syminfo.basecurrency)
= request.security('BINANCE' + ":" + string(syminfo.basecurrency) + 'USDT.P_OI', timeframe.period, [close-close , close], ignore_invalid_symbol = true)
= request.security('BINANCE' + ":" + string(syminfo.basecurrency) + 'USD.P_OI', timeframe.period, [close-close , close], ignore_invalid_symbol = true)
= request.security('BINANCE' + ":" + string(syminfo.basecurrency) + 'BUSD.P_OI', timeframe.period, [close-close , close], ignore_invalid_symbol = true)
= request.security('BITMEX' + ":" + mex + 'USD.P_OI', timeframe.period, [close-close , close], ignore_invalid_symbol = true)
= request.security('BITMEX' + ":" + mex + 'USDT.P_OI', timeframe.period, [close-close , close], ignore_invalid_symbol = true)
= request.security('KRAKEN' + ":" + string(syminfo.basecurrency) + 'USD.P_OI', timeframe.period, [close-close , close], ignore_invalid_symbol = true)
deltaOI = (binance ? nz(oid1,0) : 0) + (binance2 ? nz(oid2,0)/close : 0) + (binance3 ? nz(oid3,0) : 0) + (bitmex ? nz(oid4,0)/close : 0) + (bitmex2 ? nz(oid5,0)/close : 0) + (kraken ? nz(oid6,0)/close : 0)
OI = (binance ? nz(oi1,0) : 0) + (binance2 ? nz(oi2,0)/close : 0) + (binance3 ? nz(oi3,0) : 0) + (bitmex ? nz(oi4,0)/close : 0) + (bitmex2 ? nz(oi5,0)/close : 0) + (kraken ? nz(oi6,0)/close : 0)
// Conditions for positions entering and exiting
priceUP = close>open
priceDOWN = close0
oiDOWN = deltaOI<0
newlongs = oiUP and priceUP
rektlongs = oiDOWN and priceDOWN
newshorts = oiUP and priceDOWN
rektshorts = oiDOWN and priceUP
// Visible range
vrc = cumu=='Visible Range' ? time > chart.left_visible_bar_time and time <= chart.right_visible_bar_time : true
// Cumulation of positions entering and exiting
longs_entering = ta.cum(newlongs and vrc ? (denom=='Base Currency' ? deltaOI : deltaOI * close) : 0)
longs_exiting = ta.cum(rektlongs and vrc ? (denom=='Base Currency' ? deltaOI : deltaOI * close) : 0)
shorts_entering = ta.cum(newshorts and vrc ? (denom=='Base Currency' ? deltaOI : deltaOI * close) : 0)
shorts_exiting = ta.cum(rektshorts and vrc ? (denom=='Base Currency' ? deltaOI : deltaOI * close) : 0)
// Output data
net_longs = longs_entering - math.abs(longs_exiting)
net_shorts = shorts_entering - math.abs(shorts_exiting)
net_delta = net_longs - net_shorts
net_ratio = net_longs / net_shorts
// Calculating Relative Strength
longs_strength = ta.rsi(net_longs, length)
shorts_strength = ta.rsi(net_shorts, length)
delta_strength = ta.rsi(net_delta, length)
ratio_strength = ta.rsi(net_ratio, length)
oi_strength = ta.rsi(OI, length)
// Calculating candle OHLC
src = dtype=='Net Positions' ? net_longs : longs_strength
OpenL = wick ? ta.sma(src , 2) : src
HighL = ta.highest(src, 1)
LowL = ta.lowest(src, 1)
CloseL = wick ? ta.sma(src, 2) : src
src2 = dtype=='Net Positions' ? net_shorts : shorts_strength
OpenS = wick ? ta.sma(src2 , 2) : src2
HighS = ta.highest(src2, 1)
LowS = ta.lowest(src2, 1)
CloseS = wick ? ta.sma(src2, 2) : src2
src3 = dtype=='Net Positions' ? net_delta : delta_strength
OpenD = wick ? ta.sma(src3 , 2) : src3
HighD = ta.highest(src3, 1)
LowD = ta.lowest(src3, 1)
CloseD = wick ? ta.sma(src3, 2) : src3
src4 = dtype=='Net Positions' ? net_ratio : ratio_strength
OpenR = wick ? ta.sma(src4 , 2) : src4
HighR = ta.highest(src4, 1)
LowR = ta.lowest(src4, 1)
CloseR = wick ? ta.sma(src4, 2) : src4
// Calculating EMAs
Lema = mat=='EMA' ? ta.ema(src, emaLl) : ta.vwma(src, emaLl)
Sema = mat=='EMA' ? ta.ema(src2, emaSl) : ta.vwma(src2, emaSl)
Dema = mat=='EMA' ? ta.ema(src3, emaDl) : ta.vwma(src3, emaDl)
Rema = mat=='EMA' ? ta.ema(src4, emaRl) : ta.vwma(src4, emaRl)
// Conditions
lcondL = showL and (disp=='Line' or disp=='Columns'), ccondL = showL and disp=='Candles'
lcondS = showS and (disp=='Line' or disp=='Columns'), ccondS = showS and disp=='Candles'
lcondD = showD and (disp=='Line' or disp=='Columns'), ccondD = showD and disp=='Candles'
lcondR = showR and (disp=='Line' or disp=='Columns'), ccondR = showR and disp=='Candles'
// Plotting Lines
plot(lcondL ? src : na, title="Net Longs", color=disp=='Line' ? lcolL : (net_longs >0 ? pcolL : ncolL), linewidth=1, style = disp=='Line' ? plot.style_line : disp=='Columns' ? plot.style_columns : na, editable = false)
plot(lcondS ? src2 : na, title="Net Shorts", color=disp=='Line' ? lcolS : (net_shorts >0 ? pcolS : ncolS), linewidth=1, style = disp=='Line' ? plot.style_line : disp=='Columns' ? plot.style_columns : na, editable = false)
plot(lcondD ? src3 : na, title="Net Shorts", color=disp=='Line' ? lcolD : (net_delta >0 ? pcolD : ncolD), linewidth=1, style = disp=='Line' ? plot.style_line : disp=='Columns' ? plot.style_columns : na, editable = false)
plot(lcondR ? src4 : na, title="Net Ratio", color=disp=='Line' ? lcolR : (net_ratio >0 ? pcolR : ncolR), linewidth=1, style = disp=='Line' ? plot.style_line : disp=='Columns' ? plot.style_columns : na, editable = false)
// Plotting Candles
plotcandle(ccondL ? OpenL : na, ccondL ? HighL : na, ccondL ? LowL : na, ccondL ? CloseL : na, "Longs", CloseL>OpenL ? pcolL : ncolL, CloseL>OpenL ? pcolL : ncolL, false, bordercolor = CloseL>OpenL ? pcolL : ncolL)
plotcandle(ccondS ? OpenS : na, ccondS ? HighS : na, ccondS ? LowS : na, ccondS ? CloseS : na, "Shorts", CloseS>OpenS ? pcolS : ncolS, CloseS>OpenS ? pcolS : ncolS, false, bordercolor = CloseS>OpenS ? pcolS : ncolS)
plotcandle(ccondD ? OpenD : na, ccondD ? HighD : na, ccondD ? LowD : na, ccondD ? CloseD : na, "Delta", CloseD>OpenD ? pcolD : ncolD, CloseD>OpenD ? pcolD : ncolD, false, bordercolor = CloseD>OpenD ? pcolD : ncolD)
plotcandle(ccondR ? OpenR : na, ccondR ? HighR : na, ccondR ? LowR : na, ccondR ? CloseR : na, "Ratio", CloseR>OpenR ? pcolR : ncolR, CloseR>OpenR ? pcolR : ncolR, false, bordercolor = CloseR>OpenR ? pcolR : ncolR)
// Plotting EMAs
plot(emaL ? Lema : na, color=emaLc, editable = false)
plot(emaS ? Sema : na, color=emaSc, editable = false)
plot(emaD ? Dema : na, color=emaDc, editable = false)
plot(emaR ? Rema : na, color=emaRc, editable = false)
// Plotting Relative Strength
plot(dtype=='Position RSI' ? 100 : na, color=color.rgb(120, 123, 134, 90), title = 'RSI 100')
plot(dtype=='Position RSI' ? 70 : na, color=color.rgb(120, 123, 134, 72), title = 'RSI 70')
plot(dtype=='Position RSI' ? 50 : na, color=color.rgb(120, 123, 134, 90), title = 'RSI 50')
plot(dtype=='Position RSI' ? 30 : na, color=color.rgb(120, 123, 134, 72), title = 'RSI 30')
plot(dtype=='Position RSI' ? 0 : na, color=color.rgb(120, 123, 134, 90), title = 'RSI 0')
// Volume Heatmap
vol = volume
volmax = ta.highest(volume, 50)
col = color.from_gradient(volume, 0, volmax, chart.bg_color, volc2)
plotshape(time>chart.left_visible_bar_time and volhm, style=shape.square, size=size.normal,location = location.bottom, color=col, editable = false)
// Labels
if vlbl and disp=='Candles'
vLlabel = showL ? label.new(bar_index, CloseL>OpenL ? HighL : LowL, newlongs or rektlongs ? str.tostring(deltaOI, format.volume) : na, size = size.auto, color=color.rgb(255, 255, 255, 100), textcolor = chart.fg_color, style = CloseL>OpenL ? label.style_label_down : label.style_label_up) : na
vSlabel = showS ? label.new(bar_index, CloseS>OpenS ? HighS : LowS, newshorts or rektshorts ? str.tostring(deltaOI, format.volume) : na, size = size.auto, color=color.rgb(255, 255, 255, 100), textcolor = chart.fg_color, style = CloseS>OpenS ? label.style_label_down : label.style_label_up) : na
vDlabel = showD ? label.new(bar_index, CloseD>OpenD ? HighD : LowD, str.tostring(deltaOI, format.volume), size = size.auto, color=color.rgb(255, 255, 255, 100), textcolor = chart.fg_color, style = CloseD>OpenD ? label.style_label_down : label.style_label_up) : na
vRlabel = showR ? label.new(bar_index, CloseR>OpenR ? HighR : LowR, str.tostring(deltaOI, format.volume), size = size.auto, color=color.rgb(255, 255, 255, 100), textcolor = chart.fg_color, style = CloseR>OpenR ? label.style_label_down : label.style_label_up) : na
if nlbl and disp!='Columns'
Llabel = showL ? label.new(bar_index+offs, src, 'NET LONGS', size = size.tiny, color=lcolL, textcolor = color.black, style = label.style_label_left) : na
Slabel = showS ? label.new(bar_index+offs, src2, 'NET SHORTS', size = size.tiny, color=lcolS, textcolor = color.black, style = label.style_label_left) : na
Dlabel = showD ? label.new(bar_index+offs, src3, 'NET DELTA', size = size.tiny, color=lcolD, textcolor = color.black, style = label.style_label_left) : na
Rlabel = showR ? label.new(bar_index+offs, src4, 'NET RATIO', size = size.tiny, color=lcolR, textcolor = color.black, style = label.style_label_left) : na
label.delete(Llabel )
label.delete(Slabel )
label.delete(Dlabel )
label.delete(Rlabel )
// Generating a profile - Code from @KioseffTrading's "Profile Any Indicator" script (used with their permission)
srcp = profsrc=='Net Longs' ? src : profsrc=='Net Shorts' ? src2 : profsrc=='Net Delta' ? src3 : src4
var int timeArray = array.new_int()
var float dist = array.new_float()
var int x2 = array.new_int(rows + 1, 5)
var vh = matrix.new(1, 1)
array.unshift(timeArray, math.round(time))
if prof and time >= chart.left_visible_bar_time and time <= chart.right_visible_bar_time
matrix.add_col(vh)
matrix.set(vh, 0, matrix.columns(vh) - 1, srcp)
if prof and barstate.islast
= switch ori
"Left" =>
=>
calc = (matrix.max(vh) - matrix.min(vh)) / (rows + 1)
for i = 0 to rows
array.push(dist, matrix.min(vh) + (i * calc))
for i = 1 to matrix.columns(vh) - 1
for x = 0 to array.size(dist) - 1
if matrix.get(vh, 0, i) >= matrix.get(vh, 0, i - 1)
if array.get(dist, x) >= matrix.get(vh, 0, i - 1) and array.get(dist, x) <= matrix.get(vh, 0, i)
array.set(x2, x, array.get(x2, x) + profSize)
else
if array.get(dist, x) >= matrix.get(vh, 0, i) and array.get(dist, x) <= matrix.get(vh, 0, i - 1)
array.set(x2, x, array.get(x2, x) + profSize)
boc = array.new_box()
for i = 1 to rows
right = array.get(timeArray, n + array.get(x2, i))
if ori == "Left"
switch math.sign(n - array.get(x2, i))
-1 => right := chart.right_visible_bar_time
=> right := array.get(timeArray, n - array.get(x2, i))
array.push(boc, box.new(pos, array.get(dist, i - 1),
right, array.get(dist, i), xloc = xloc.bar_time, border_color =
nvancol, bgcolor = nvancol
))
if i == rows
array.push(boc, box.new(pos, array.get(dist, array.size(dist) - 1),
right, array.get(dist, array.size(dist) - 1) + calc, xloc = xloc.bar_time, border_color =
nvancol, bgcolor = nvancol
))
array.shift(x2), nx = array.indexof(x2, array.max(x2))
nz = nx - 1, nz2 = 0, nz3 = 0, nz4 = 0
for i = 0 to array.size(x2) - 1
if nz > -1 and nx <= array.size(x2) - 1
switch array.get(x2, nx) >= array.get(x2, nz)
true => nz2 += array.get(x2, nx), nx += 1
=> nz2 += array.get(x2, nz), nz -= 1
else if nz <= -1
nz2 += array.get(x2, nx), nx += 1
else if nx >= array.size(x2)
nz2 += array.get(x2, nz), nz -= 1
if nz2 >= array.sum(x2) * (vapct / 100)
nz3 := nx <= array.size(x2) - 1 ? nx : array.size(x2) - 1, nz4 := nz <= -1 ? 0 : nz
break
for i = nz3 to nz4
box.set_border_color(array.get(boc, i), vancol)
box.set_bgcolor(array.get(boc, i), vancol)
if poc
var pocL = line(na)
y = math.avg(box.get_top(array.get(boc, array.indexof(x2, array.max(x2)))), box.get_bottom(array.get(boc, array.indexof(x2, array.max(x2)))))
if na(pocL)
pocL := line.new(chart.left_visible_bar_time, y, chart.right_visible_bar_time, y, xloc = xloc.bar_time, color = poccol, width = 1)
else
line.set_xy1(pocL, chart.left_visible_bar_time, y)
line.set_xy2(pocL, chart.right_visible_bar_time, y)
if val
var vaup = line(na), var vadn = line(na)
ydn = box.get_bottom(array.get(boc, nz3)), yup = box.get_top(array.get(boc, nz4))
if na(vaup)
vadn := line.new(chart.left_visible_bar_time, ydn, chart.right_visible_bar_time, ydn, xloc = xloc.bar_time, color = vancol, width = 1)
vaup := line.new(chart.left_visible_bar_time, yup, chart.right_visible_bar_time, yup, xloc = xloc.bar_time, color = vancol, width = 1)
else
line.set_xy1(vadn, chart.left_visible_bar_time, ydn), line.set_xy2(vadn, chart.right_visible_bar_time, ydn)
line.set_xy1(vaup, chart.left_visible_bar_time, yup), line.set_xy2(vaup, chart.right_visible_bar_time, yup)
linefill.new(vadn, vaup, vafill)
//Generating tables for Stats
switchpos(tablepos) =>
switch tablepos
'Top Left' => position.top_left
'Top Center' => position.top_center
'Top Right' => position.top_right
'Bottom Left' => position.bottom_left
'Bottom Center' => position.bottom_center
'Bottom right' => position.bottom_right
dataTable = table.new(switchpos(tablepos), columns=15, rows=15, bgcolor=color.rgb(120, 123, 134, 56))
fill_rows(cond, txt, c, r) =>
if cond
table.cell(table_id=dataTable, column = tablevpos=='Horizontal' ? c : 0, row = tablevpos=='Horizontal' ? 0 : r, text = txt, height=0, text_color=color.white, text_halign=text.align_center, text_valign= text.align_center)
if barstate.islast and stats and dtype!='Position RSI'
txt = ' •𝗢𝗜: ' + (denom=='Quote Currency' ? '$' : '') + str.tostring(denom=='Base Currency' ? OI : OI*close, format = format.volume) + ' ' + (denom=='Base Currency' ? str.tostring(string(syminfo.basecurrency)) : '')
txt2 = ' •𝗡𝗟: ' + (denom=='Quote Currency' ? '$' : '') + str.tostring(net_longs, format = format.volume) + ' ' + (denom=='Base Currency' ? str.tostring(string(syminfo.basecurrency)) : '')
txt3 = ' •𝗡𝗦: ' + (denom=='Quote Currency' ? '$' : '') + str.tostring(net_shorts, format = format.volume) + ' ' + (denom=='Base Currency' ? str.tostring(string(syminfo.basecurrency)) : '')
txt4 = ' •𝗡𝗗: ' + (denom=='Quote Currency' ? '$' : '') + str.tostring(net_delta, format = format.volume) + ' ' + (denom=='Base Currency' ? str.tostring(string(syminfo.basecurrency)) : '')
txt5 = ' •𝗢𝗜𝗖: ' + (denom=='Quote Currency' ? '$' : '') + str.tostring(denom=='Base Currency' ? OI-OI : (OI-OI ) * close, format = format.volume) + ' ' + (denom=='Base Currency' ? str.tostring(string(syminfo.basecurrency)) : '')
txt6 = ' •𝗡𝗟𝗖: ' + (denom=='Quote Currency' ? '$' : '') + str.tostring(net_longs - net_longs , format = format.volume) + ' ' + (denom=='Base Currency' ? str.tostring(string(syminfo.basecurrency)) : '')
txt7 = ' •𝗡𝗦𝗖: ' + (denom=='Quote Currency' ? '$' : '') + str.tostring(net_shorts - net_shorts , format = format.volume) + ' ' + (denom=='Base Currency' ? str.tostring(string(syminfo.basecurrency)) : '')
txt8 = ' •𝗡𝗗𝗖: ' + (denom=='Quote Currency' ? '$' : '') + str.tostring(net_delta - net_delta , format = format.volume) + ' ' + (denom=='Base Currency' ? str.tostring(string(syminfo.basecurrency)) : '')
txt9 = ' •𝗢𝗜 𝗥𝗦𝗜: ' + str.tostring(math.round(oi_strength,1))
txt10 = ' •𝗡𝗟 𝗥𝗦𝗜: ' + str.tostring(math.round(longs_strength,1))
txt11 = ' •𝗡𝗦 𝗥𝗦𝗜: ' + str.tostring(math.round(shorts_strength, 1))
txt12 = ' •𝗡𝗗 𝗥𝗦𝗜: ' + str.tostring(math.round(delta_strength, 1))
fill_rows(stat_oi, txt, 0, 0)
fill_rows(stat_nl, txt2, 1, 1)
fill_rows(stat_ns, txt3, 2, 2)
fill_rows(stat_nd, txt4, 3, 3)
fill_rows(stat_oi_c, txt5, 4, 4)
fill_rows(stat_nl_c, txt6, 5, 5)
fill_rows(stat_ns_c, txt7, 6, 6)
fill_rows(stat_nd_c, txt8, 7, 7)
fill_rows(stat_oi_r, txt9, 8, 8)
fill_rows(stat_nl_r, txt10, 9, 9)
fill_rows(stat_ns_r, txt11, 10, 10)
fill_rows(stat_nd_r, txt12, 11, 11)
// Divergence Finder
switchdivsrc(divsrc) =>
switch divsrc
'Net Longs' => src
'Net Shorts' => src2
'Net Delta' => src3
'Net Ratio' => src4
np = switchdivsrc(divsrc)
var priceHigh = array.new_float(0), var priceLow = array.new_float(0)
var priceHighIndex = array.new_int (0), var priceLowIndex = array.new_int (0)
var npHigh = array.new_float(0), var npLow = array.new_float(0)
var npHighIndex = array.new_int (0), var npLowIndex = array.new_int (0)
var priceHighTrend = 0, var priceLowTrend = 0
var npHighTrend = 0, var npLowTrend = 0
bool closeRecentHighs = false, bool closeOldHighs = false
bool closeHighs = false, bool closeRecentLows = false
bool closeOldLows = false, bool closeLows = false
curPriceHigh = ta.pivothigh(close, leftPivot, rightPivot)
curPriceLow = ta.pivotlow (close, leftPivot, rightPivot)
curnpHigh = ta.pivothigh(np, leftPivot, rightPivot)
curnpLow = ta.pivotlow (np, leftPivot, rightPivot)
if not na(curPriceHigh)
array.push(priceHigh, curPriceHigh)
array.push(priceHighIndex, bar_index-rightPivot)
if not na(curPriceLow)
array.push(priceLow, curPriceLow)
array.push(priceLowIndex, bar_index-rightPivot)
if not na(curnpHigh)
array.push(npHigh, curnpHigh)
array.push(npHighIndex, bar_index-rightPivot)
if not na(curnpLow)
array.push(npLow, curnpLow)
array.push(npLowIndex, bar_index-rightPivot)
if showdiv
if array.size(priceHigh) >= 2 and not na(curPriceHigh)
if array.get(priceHigh, array.size(priceHigh)-1) >= array.get(priceHigh, array.size(priceHigh)-2)
priceHighTrend := 1
else
priceHighTrend := -1
if array.size(priceLow) >= 2 and not na(curPriceLow)
if array.get(priceLow, array.size(priceLow)-1) >= array.get(priceLow, array.size(priceLow)-2)
priceLowTrend := 1
else
priceLowTrend := -1
if array.size(npHigh) >= 2 and not na(curnpHigh)
if array.get(npHigh, array.size(npHigh)-1) >= array.get(npHigh, array.size(npHigh)-2)
npHighTrend := 1
else
npHighTrend := -1
if array.size(npLow) >= 2 and not na(curnpLow)
if array.get(npLow, array.size(npLow)-1) >= array.get(npLow, array.size(npLow)-2)
npLowTrend := 1
else
npLowTrend := -1
if array.size(priceHighIndex) >= 2 and array.size(npHighIndex) >=2
closeRecentHighs := math.abs(array.get(priceHighIndex, array.size(priceHighIndex)-1) - array.get(npHighIndex, array.size(npHighIndex)-1)) <= pivotDistance
closeOldHighs := math.abs(array.get(priceHighIndex, array.size(priceHighIndex)-2) - array.get(npHighIndex, array.size(npHighIndex)-2)) <= pivotDistance
closeHighs := closeRecentHighs and closeOldHighs
if array.size(priceLowIndex) >= 2 and array.size(npLowIndex) >=2
closeRecentLows := math.abs(array.get(priceLowIndex, array.size(priceLowIndex)-1) - array.get(npLowIndex, array.size(npLowIndex)-1)) <= pivotDistance
closeOldLows := math.abs(array.get(priceLowIndex, array.size(priceLowIndex)-2) - array.get(npLowIndex, array.size(npLowIndex)-2)) <= pivotDistance
closeLows := closeRecentLows and closeOldLows
bool uptrendExhuastion = closeHighs and priceHighTrend > 0 and npHighTrend < 0 and (not na(curnpHigh) or not na(curPriceHigh))
bool uptrendAbsorption = closeHighs and priceHighTrend < 0 and npHighTrend > 0 and (not na(curnpHigh) or not na(curPriceHigh))
bool downtrendExhuastion = closeLows and priceLowTrend < 0 and npLowTrend > 0 and (not na(curnpLow) or not na(curPriceLow))
bool downtrendAbsorption = closeLows and priceLowTrend > 0 and npLowTrend < 0 and (not na(curnpLow) or not na(curPriceLow))
drawDiv(time1, price1, time2, price2, type) =>
dcol = type == 'Uptrend Exhuastion' ? pHH_npLHcol : type == 'Uptrend Absorption' ? pLH_npHHcol : type == 'Downtrend Exhaustion' ? pLL_npHLcol : type == 'Downtrend Absorption' ? pHL_npLLcol : na
line.new(x1=time1, y1=price1, x2=time2, y2=price2, color=dcol, width=1)
if uptrendAbsorption or uptrendExhuastion and showdiv
highTime1 = array.get(npHighIndex, array.size(npHighIndex)-1)
highPrice1 = array.get(npHigh, array.size(npHigh)-1)
highTime2 = array.get(npHighIndex, array.size(npHighIndex)-2)
highPrice2 = array.get(npHigh, array.size(npHigh)-2)
if uptrendExhuastion and pHH_npLH
drawDiv(highTime1, highPrice1, highTime2, highPrice2, 'Uptrend Exhuastion')
if uptrendAbsorption and pLH_npHH
drawDiv(highTime1, highPrice1, highTime2, highPrice2, 'Uptrend Absorption')
if downtrendAbsorption or downtrendExhuastion and showdiv
lowTime1 = array.get(npLowIndex, array.size(npLowIndex)-1)
lowPrice1 = array.get(npLow, array.size(npLow)-1)
lowTime2 = array.get(npLowIndex, array.size(npLowIndex)-2)
lowPrice2 = array.get(npLow, array.size(npLow)-2)
if downtrendExhuastion and pLL_npHL
drawDiv(lowTime1, lowPrice1, lowTime2, lowPrice2, 'Downtrend Exhuastion')
if downtrendAbsorption and pHL_npLL
drawDiv(lowTime1, lowPrice1, lowTime2, lowPrice2, 'Downtrend Absorption')
MAWHOOB PROMAWHOOB PRO INDICATOR
Professional Analysis & Trading System
━━━━━━━━━━━━━━━━
🎯 OVERVIEW
━━━━━━━━━━━━━━━━
MAWHOOB PRO is a professional, all-in-one Pine Script® indicator designed for traders seeking institutional-grade market analysis combined with systematic, rule-based trading execution. It seamlessly overlays intelligent Higher Timeframe structures, advanced Volume Profile analysis, and Automatic Fibonacci levels — directly on your chart.
Beyond powerful market visualization, MAWHOOB PRO integrates a fully-featured, complete, and backtestable trading system with instant signals, advanced risk management, and real-time alerts.
━━━━━━━━━━━━━━━━
⚡ CORE CAPABILITIES
━━━━━━━━━━━━━━━━
Higher Timeframe Structure – Multi-timeframe support (15m to 12M).
Advanced Volume Profile – POC, Value Area, with Moving Averages.
Automatic Fibonacci Levels – Dynamic retracements and extensions.
Multi-Strategy System – 4 specialized algorithms for different market conditions.
Smart Trading Signals – Entry signals, exit management with real‑time updates.
Professional Position Sizing – Advanced risk calculations with leverage support.
Multi-TP Management – 3 configurable take profits with fractional position scaling.
Advanced Risk Management – Multiple SL types, trailing stop, and risk limiters.
Real-Time Alerts – Instant notifications for all trading events and signals.
Performance Analytics – Comprehensive backtesting with detailed trade statistics.
━━━━━━━━━━━━━━━━
💠 SECTION 1: PROFESSIONAL MARKET ANALYSIS
━━━━━━━━━━━━━━━━
🕒 Higher Timeframe Structure
MAWHOOB PRO's HTF system goes beyond simple candle plotting. It displays creative higher timeframe structures (e.g., 15m, 1H, Daily, etc.) to identify dominant trends and key liquidity levels without switching your current chart.
❖ Key Features:
Multi-timeframe analysis across 18 different timeframes.
Creative OHLC box visualization with intelligent projection.
Smart "Super Bars" detection for high-probability setups.
Customizable boxes with professional styling options.
Dual visualization modes (HTF_End projection or Bars_Offset).
Performance-optimized rendering with intelligent cleanup system.
📊 Advanced Volume Profile
Understanding where institutional volume concentrates is critical. MAWHOOB PRO's Volume Profile system automatically identifies key levels using proprietary algorithms — giving you the same edge professional traders use to spot accumulation and distribution zones.
❖ Key Features:
Automatic Point of Control (POC) detection and real-time updates.
Dynamic Value Area (VAH/VAL) calculations with configurable sensitivity.
Multiple volume analysis modes (Total, Bullish, Bearish directional filtering).
Customizable row resolution for precision analysis.
Histogram Display: Detailed volume distribution visualization.
Box Display: Clean POC representation for minimal chart clutter.
Intelligent Volume Profile Moving Averages for trend confirmation.
Advanced POC Bands for mean-reversion and confluence identification.
Real-time updates with optional confirmed-only display mode.
Lite Mode optimization for resource-constrained environments.
📐 Automatic Fibonacci Levels
Manual Fibonacci drawing is time-consuming and subjective. MAWHOOB PRO automatically calculates and displays Fibonacci levels using intelligent swing detection algorithms — eliminating manual work while ensuring consistency. Each level is fully customizable with professional styling.
❖ Key Features:
Intelligent bullish/bearish swing detection.
Comprehensive retracement levels (0% to 100%).
Extended projection levels for target identification (113% to 423%).
Flexible display modes (retracements only, extensions only, or combined).
Customizable lines with professional styling (solid, dashed, dotted).
Dynamic label positioning and text customization.
Single color mode or multi-color differentiation.
Right-extension capability for forward projections.
Automatic level adjustment based on market structure.
━━━━━━━━━━━━━━━━
💠 SECTION 2: PROFESSIONAL TRADING SYSTEM
━━━━━━━━━━━━━━━━
📈 Multi-Strategy Signal Generation
Markets don't stay in one condition forever. The ability to adapt your strategy to current market conditions is what separates consistently profitable traders from the rest. MAWHOOB PRO provides four proprietary strategies, each independently optimized for specific market environments:
HTF Structure Strategy
Volume Profile POC Strategy
POC Moving Average Strategy
Value Area Moving Average Strategy
💡 Advanced Entry Management
Professional traders don't use one-size-fits-all entry execution. MAWHOOB PRO provides intelligent entry management with multiple execution types and sophisticated validation:
Entry Types: Immediate market execution or intelligent limit order simulation.
Direction Control: Long-only, short-only, or bidirectional trading.
Smart Filters: Multi-layer validation system maximizing signal quality.
💰 Professional Position Management
Execute trades with institutional-grade position sizing and risk control:
Flexible Sizing Options – Choose percentage-based (% of capital) or fixed USD per trade.
Leverage Support – Scale exposure from 1× to 100× for any market condition.
Fractional Position Scaling – Close portions at TP1, TP2, TP3 independently.
🎯 Advanced Take Profit System
Exiting positions at the right levels separates winners from break-even traders. MAWHOOB PRO provides sophisticated TP management:
Three Take Profit System: Configurable position scaling across three profit targets.
Profit Modes: Custom calculation methods and risk-reward based targeting.
Intelligent Optimization: Adaptive profit placement for optimal risk/reward ratios.
⛔️ Comprehensive Stop Loss System
Proper stop loss placement is essential for consistent trading. MAWHOOB PRO provides multiple intelligent stop loss methods:
Four Stop Loss Types: Range-based, ATR-based, percentage-based, and adaptive algorithms.
Risk Limiter – Automatic SL tightening to prevent extensive losses from gap moves:
ATR-based limits for market-responsive protection.
Percentage-based limits for consistent risk caps.
Minimum Distance Validation – Adaptive stop placement to prevent quick stops:
Correct-side validation (SL always on opposite side of entry).
Realistic tick-size constraints.
Smart adaption to market volatility.
🛡️ Dynamic Trailing System
Maximize profit potential while protecting capital:
Break Even Mode: Intelligent break-even activation with buffer protection.
Move Target Mode: Progressive trailing using advanced profit protection algorithms.
Real-time visual updates showing current TS status.
Tolerance percentage to prevent being stopped out by noise.
State-aware activation (only after partial profit taking).
Multiple exit types tracked separately (TP hits vs. TS exits).
🔔 Smart Alert System
Stay informed of every important trade event with instant notifications:
Entry Alerts – Instant notification when long/short signals.
Exit Alerts– Individual notifications for each exit event: (TP1/TP2/TP3 hits, Stop Loss trigger, Break Even protection).
Trade Summary – Comprehensive recap with duration, exit type, and P&L.
Frequency-controlled to prevent notification spam.
Contextual information (Symbol, Trade ID, Price, Direction).
Real-time account balance updates.
Professional formatting for quick information scanning.
📊 Professional Performance Analytics
MAWHOOB PRO's backtesting system provides institutional-quality performance analytics and comprehensive statistics:
Real-time statistics updates.
Total trades executed in period.
Win rate analysis (separate Pure SL vs. Partial SL tracking).
Trades by direction (Long vs. Short breakdown).
TP1, TP2, TP3 hit counts and profitability.
Direct stop loss vs. partial stop loss separation.
Trailing stop protection count.
Exit type distribution analysis.
Gross profit from all exits.
Leverage-adjusted returns.
Win/Loss percentage breakdown.
Total net PnL (including fees).
Fee impact analysis.
Trade duration tracking per trade.
Average hold time by exit type.
Historical time-based performance patterns.
Visual statistics table with custom positioning.
🔍 Backtesting & Validation
Comprehensive period-based backtesting for rigorous strategy validation:
Custom date range selection (Start and End dates).
Period-based filtering for specific market conditions.
Automatic trade pruning outside selected periods.
Multiple strategy comparison capability.
Optional display of all historical trades.
Entry and exit points clearly marked.
Entry/exit labels with detailed information.
Visual price action context preservation.
Trade-by-trade P&L tracking.
👁️🗨️ Real-Time Trade Monitoring
Monitor your active positions with professional visual displays:
Real-time price level indicators for Entry, TPs, and SL.
Live update on position status as price moves.
Visual indicators showing which TPs have been executed.
Trailing stop level visualization with current status.
Customizable label positioning (Left, Right, Center).
Multiple label size options (Tiny, Small, Normal).
Color-coded by trade direction and exit type.
Professional formatting with essential information.
Toggle on/off for chart cleanliness.
━━━━━━━━━━━━━━━━
🔍 WHO CAN USE MAWHOOB PRO ?
━━━━━━━━━━━━━━━━
✔️ MAWHOOB PRO Is Designed For Traders Who:
Require Professional Tools – Need institutional-grade analysis and execution.
Seek Systematic Trading – Replace emotional decisions with rule-based processes.
Value Strategy Validation – Backtest thoroughly before risking capital.
Demand Precision – Need reliable signals with comprehensive monitoring.
Trade Actively – Benefit from real-time alerts and position management.
Manage Risk Professionally – Apply mathematical position sizing and stop loss logic.
✔️ Compatible Trading Environments:
Forex markets (Major, Minor, Exotic pairs).
Stock markets (with appropriate timeframes).
Cryptocurrency markets (Bitcoin, Altcoins).
Futures markets (with leverage support).
Day trading timeframes (1m to 4H).
Swing trading timeframes (4H to Weekly).
Position trading timeframes (Daily to Monthly).
✔️ Supported Trading Styles:
Discretionary trading with professional tools.
Semi-automated trading with smart signals.
Systematic strategy validation and backtesting.
Multiple market condition adaptation.
Bidirectional trading (Long/Short).
Directional bias trading (Long-only or Short-only).
━━━━━━━━━━━━━━━━
📋 QUICK START GUIDE
━━━━━━━━━━━━━━━━
1️⃣ Analysis Tools Configuration (10-15 minutes)
Add MAWHOOB PRO indicator to your chart.
Select your desired Higher Timeframe (HTF).
Customize visual elements to match your preferences.
Use displayed levels as confluence zones for manual trading.
Monitor Volume Profile and Fibonacci levels for trade setup identification.
2️⃣ Trading System Configuration (15-20 minutes)
Enable Trading System in settings.
Select Strategy Type (HTF_Range, VP_POC, POC_MA, or VA_MA).
Choose Trading Type (Spot or Futures).
Configure Position Sizing (Percentage or Fixed USD).
Set Account Capital and leverage (if applicable).
Configure Take Profits (TP1/TP2/TP3 with fractions).
Select Stop Loss Type and parameters.
Enable Trailing Stop (optional, recommended).
Set backtesting date range.
Enable Alerts for signal notifications.
Run historical backtest to validate strategy.
Demo test minimum 30 days before live deployment.
━━━━━━━━━━━━━━━━
🛑 TECHNICAL DISCLOSURES & IMPORTANT INFORMATION
━━━━━━━━━━━━━━━━
📌 Data Accuracy & Signal Quality
Real-time calculations for developing structures may adjust until HTF bar completion.
Historical signals maintain integrity and non-repaint on confirmed bars.
Signal generation uses only confirmed (non-repainting) data for backtesting validity.
Volume Profile updates in real-time until HTF period closure.
Fibonacci levels automatically recalculate on new swing identification.
━━━━━━━━━━━━━━━━
⚠️ RISK DISCLOSURE & DISCLAIMERS
━━━━━━━━━━━━━━━━
⚙️ MAWHOOB PRO Is Designed For:
Professional market analysis and structure identification.
Systematic strategy backtesting and validation.
Educational purposes for trading strategy development.
Real-time monitoring of active positions.
NOT for providing financial advice or guaranteed outcomes.
🛑 Important Disclaimers
Past performance does NOT guarantee future results.
Backtesting results are simulated and may differ from live trading.
Real trading includes slippage, requotes, and execution delays not simulated.
All trading involves substantial risk of loss.
Test all strategies in simulated environments before live implementation.
Never risk more than you can afford to lose.
Leverage magnifies both profits and losses exponentially.
📋 Testing Protocol Recommendation
Backtest Phase – Run 6-12 months of historical data minimum.
Demo Testing Phase – Live practice for minimum 30 days without real capital.
Performance Tracking – Document all demo trades and results.
Risk Assessment – Verify acceptable drawdown and profit ratios.
Live Deployment – Start with conservative position sizing.
Ongoing Monitoring – Track live performance vs. backtest results.
🔐 Disclaimer of Liability
By using MAWHOOB PRO, you acknowledge and accept:
All trading risks and potential loss of capital.
That past performance does not guarantee future results.
That you are solely responsible for all trading decisions.
That you have tested the system appropriately before live trading.
That losses are possible regardless of system quality.
That market conditions change and strategies may underperform.
Full responsibility for all financial outcomes.
━━━━━━━━━━━━━━━━
🏆 EXCLUSIVE ACCESS (INVITE-ONLY)
━━━━━━━━━━━━━━━━
MAWHOOB PRO is an invite-only indicator reserved for serious traders committed to professional execution and risk management.
🔒 Why Invite-Only ?
Quality Assurance – Ensures users understand and respect proper risk management.
Strategy Integrity – Protects strategy methodology from mass distribution.
Professional Community – Maintains focus on serious, disciplined traders.
Dedicated Support – Provides personalized assistance to qualified users.
Continuous Improvement – Collects quality feedback for enhancement.
✔️ Access Requirements
Eligible users typically demonstrate:
Understanding of technical analysis fundamentals.
Experience with systematic trading or backtesting.
Commitment to proper risk management practices.
Intention to demo test before live deployment.
Professional approach to trading (not gambling).
Respect for intellectual property and terms of use.
━━━━━━━━━━━━━━━━
📚 DOCUMENTATION & SUPPORT
━━━━━━━━━━━━━━━━
📖 Built-in Guidance & Support
Comprehensive tooltips for every indicator setting (hover ⓘ for instant help).
Context-sensitive assistance for advanced parameters (explaining the "why").
Strategic recommendations adapted to different market conditions.
Detailed inline documentation for configuration options.
Invite-only user community for shared strategies and feedback.
💬 Professional Support Includes:
Strategy optimization consultation.
Configuration assistance for your specific market.
Performance review of backtest results.
Troubleshooting and technical support.
Updates and improvements to core algorithms.
🧪 Validation Protocol
Historical Backtest – Minimum 6-12 months recommended.
Demo Testing – Minimum 30 days without real capital.
Performance Review – Compare live results to backtest.
Ongoing Optimization – Adjust parameters based on results.
Risk Monitoring – Track PnL and account equity.
⚙️ Professional Trading Principles
Position sizing based on risk, not reward.
Stop loss placement before entry execution.
Take profit targets set with realistic expectations.
Risk-reward ratios of minimum 1:1.5 or better.
Account preservation over aggressive profit taking.
Consistency over home-run trades.
━━━━━━━━━━━━━━━━
🔄 UPDATES & CONTINUOUS DEVELOPMENT
━━━━━━━━━━━━━━━━
MAWHOOB PRO is a continuously evolving system. Development is guided by:
User feedback and real-world trading results.
Market condition changes and emerging opportunities.
Performance optimization and efficiency improvements.
Trading community insights and professional recommendations.
💬 Community Feedback Loop:
Your trading results shape future development:
Report strategies that work exceptionally well.
Suggest improvements based on your experience.
Identify market conditions requiring adaptation.
Help validate new features during beta testing.
━━━━━━━━━━━━━━━━
💡 MAWHOOB PRO – Where Professional Analysis Meets Systematic Execution
Created & Designed by @mawhoobx
📝 REMEMBER
The best indicator is the one combined with proper risk management, discipline, and a solid trading plan. MAWHOOB PRO is designed to assist your trading, not replace your judgment.
Trade Smart. Trade Safe. Trade Profitable.
MIN AND MAX 52 WEEKThis indicator plots the 52 week high and 52 week low levels using weekly data and displays them on any timeframe.
It provides a long term structural reference to identify major support and resistance areas and potential yearly breakouts.
The indicator is intended for contextual market analysis and educational purposes only.
Range Breakout Statistics [Honestcowboy]⯁ Overview
The Range Breakout Statistics uses a very simple system to detect ranges/consolidating markets. The principle is simple, it looks for areas where the slope of a moving average is flat compared to past values. If the moving average is flat for X amount of bars that's a range and it will draw a box.
The statistics part of the script is a bit more complicated. The aim of this script is to expand analysis of trading signals in a different way than a regular backtest. It also highlights the polyline tool, one of my favorite drawing tools on the tradingview platform.
⯁ Statistics Methods
The script has 2 different modes of analyzing a trading signals strength/robustness. It will do that for 2 signals native to the script.
Upper breakout: first price breakout at top of box, before max bars (100 bars by default)
Lower breakout: first price breakout at bottom of box, before max bars
The analysis methods themselves are straightforward and it should be possible for tradingview community to expand this type of analysis to other trading signals. This script is a demo for this analysis, yet some might still find the native signals helpful in their trading, that's why the script includes alerts for the 2 native signals. I've also added a setting to disable any data gathering, which makes script run faster if you want to automate it.
For both of the analysis methods it uses the same data, just with different calculations and drawing methods. The data set is all past price action reactions to the signals saved in a matrix. Below a chart for explaining this visually.
⯁ Method 1: Averages Projection
The idea behind this is that just showing all price action that happened after signal does not give actionable insights. It's more a spaghetti jumble mess of price action lines. So instead the script averages the data out using 3 different approaches, all selectable in the settings menu.
Geometric Average: useful as it accurately reflects compound returns over time, smoothing out the impact of large gains or losses. Accounts for volatility drift.
Arithmetic Average: a standard average calculation, can be misleading in trading due to volatility drift. It is the most basic form of averaging so I included it.
Median: useful as any big volatility huge moves after a signal does not really impact the mean as it's just the middle value of all values.
These averages are the 2 lines you will find in the middle of the projection. Having a clear difference between a lower break average and upper break average price reaction can signal significance of the trading signal instead of pure chaos.
Outside of this I also included calculations for the maximum and minimum values in the dataset. This is useful for seeing price reactions range to the signal, showing extreme losses or wins are possible. For this range I also included 2 matrices of highs and lows data. This makes it possible to draw a band between the range based on closing price and the one using high/low data.
Below is a visualisation of how the averages data is shown on chart.
⯁ Method 2: Equity Simulation
This method will feel closer to home for traders as it more closely resembles a backtest. It does not include any commissions however and also is just a visualisation of price reaction to a signal. This method will simulate what would happen if you would buy at the breakout point and hold the trade for X amount of bars. With 0 being sell at same bar close. To test robustness I've given the option to visualise Equity simulation not just for 1 simulation but a bunch of simulations.
On default settings it will draw the simulations for 0 bars holding all the way to 10 bars holding. The idea behind it is to check how stable the effect is, to have further confirmation of the significance of the signal. If price simulation line moves up on average for 0 bars all the way to 10 bars holding time that means the signal is steady.
Below is a visualisation of the Equity Simulation.
⯁ Signal filtering
For the boxes themselves where breakouts come from I've included a simple filter based on the size of the box in ATR or %. This will filter out all the boxes that are larger top to bottom than the ATR or % value you setup.
⯁ Coloring of Script
The script includes 5 color themes. There are no color settings or other visual settings in the script, the script themes are simple and always have colors that work well together. Equity simulation uses a gradient based on lightness to color the different lines so it's easier to differentiate them while still upper breaks having a different color than lower breaks.
This script is not created to be used in conjunction with other scripts, it will force you into a background color that matches the theme. It's purpose is a research tool for systematic trading, to analyse signals in more depth.
Metaverse color theme:
⯁ Conclusion
I hope this script will help traders get a deeper understanding of how different assets react to their assets. It should be possible to convert this script into other signals if you know how to code on the platform. It is my intention to make more publications that include this type of analysis. It is especially useful when dealing with signals that do not happen often enough, so a regular backtest is not enough to test their significance.
Web3Labs ICT SweepsWeb3Labs ICT Sweeps is an ICT - SMC style TradingView indicator that combines market structure, prior session liquidity, HTF levels and fair value gaps into one tool. It helps you see where liquidity sits, where sweeps occur and how intraday context is forming.
Overview
ICT Sweeps focuses on four core components - sessions - market structure - FVGs - HTF liquidity.
The goal is to give a clean but information dense view of where price is likely to take liquidity and react.
1 - Sessions
The Sessions block controls markup for the Asian - London - New York sessions relative to the instrument exchange timezone.
Sessions - toggles session boxes on or off - each session is highlighted with its own color so you instantly see when each market is active.
Session text - adds labels with session name and total traded volume in notional terms - this makes it easy to spot where the main liquidity flow appeared during the day.
Sessions High - Low lines - plots horizontal lines for each session high and low - these levels act as local liquidity pools and potential sweep - reaction zones.
Separate box and text colors for Asia - London - NY let you tune visibility for dark - light themes and your personal chart style.
2 - Market Structure
The Market Structure block automatically marks Changes of Character - ChoCh - and Breaks of Structure - BOS - on the chart.
MS swing length - 3 to 10 - controls how sensitive the structure is
3 - more frequent - noisy swings for aggressive intraday analysis
10 - smoother - larger swings for higher timeframes.
Separate colors for bullish - bearish ChoCh - BOS make trend reading intuitive - you clearly see where structure flipped bullish or bearish and where key structural breaks occurred.
3 - Fair Value Gaps - FVG
The Fair Value Gaps block highlights price imbalance zones following ICT logic.
Max active FVG limits the number of FVGs visible at the same time - from 1 to 50 - so the chart stays readable and focused on the most relevant zones.
Separate settings for bull - bear FVG fill - border - text color let you visually distinguish bullish vs bearish imbalances and keep zones clean and easy to read.
4 - HTF Liquidity Levels
The HTF Liquidity Levels block plots key higher timeframe liquidity levels directly on the current timeframe.
Custom HTF lines ON enables
Previous 4H High - Low
Previous Day High - Low
Previous Week High - Low
Previous Month High - Low.
These levels serve as targets - liquidity pools - reference points for sweeps and strong reactions.
Individual line width controls for 4H - Day - Week - Month let you visually prioritize more important levels - for example making weekly - monthly thicker and 4H thinner.
Text color and text size options keep labels like Previous Day High or Previous Week Low readable without cluttering the chart.






















