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.
Educational
Micro Futures Risk Calculator (Minimal)risk calculator based off of stop distance. to keep risk consistent for consistent growth
Adaptive For LoopThe Adaptive For Loop is a new advanced trend following tool that can avoid false signals while keeping a high speed.
Benefits
- Good speed
- Low noise
- High Performance on INDEX:BTCUSD
- Plotting for clear visualization of trend and values.
The Idea
Before I tried using a For Loop on a singular piece of source - but every source was noisy in different parts and was not really that good.
So I got an idea: How about I make a for loop on all of them (open, high, low, close) and filter them to get the best out of all worlds?
How it works
Calculate the For Loop for open, high, low, close -> a For Loop compares the current value to past values and scores it accordingly.
After calculating them, it picks the one with the highest absolute value. This means only the for loop with the highest strength gets applied. This filters noise and provides users with high speed even in the environments that do not support it.
Enjoy Gs!
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.
Gaps-Trendlines-CHOCH-BOS By @crypto_alphabitBINANCE:BTCUSDT
This indicator includes .....
1) Fair value gaps ...
* Bullish gaps
* Bearish gaps
* Automatically removed when the gaps filled
* Gaps color can be changed from setting
2) Recent Trend lines
* Higher trend lines ( from high to high)
* Lower trend lines ( from low to low )
* Higher trend lines breakout ( Bullish Breakout)
* Lower trend lines breakout ( bearish Breakout)
* Coloring breakout candle
* Colors can be changed from setting
* Swing lookback can be changed from setting
* Alert for Bullish Breakout
* Alert for Bearish Breakout
3) COCH & BOS
* Bullish Change of character
* Bearish change of character
* Bullish break of structure
* Bearish break of structure
* Swing lookback can be changed from setting
* Keeping specific number of last drawings
* keeping and removing exact ( CHOCH or BOS) can be managed from setting
* Colors can be changed from setting
* Alert for Bullish CHOCH
* Alert for Bearish CHOCH
* Alert for Bullish BOS
* Alert for Bearish BOS
Thank you for reading .... by @Crypto_alphabit
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.
TDPOWERSYS vs Market-Cap Weighted Peersfor QIC - UnCut Diamonds team..
to compare one company vs its peers bundled as basket.
editable..
Multi-Indicator Strategy (Aroon + Supertrend)This script is for educational purpose to use multi-indicators
Global M2 IndexedGlobal M2 money supply indicator that tracks liquidity from major economies (US, China, Japan, UK, Eurozone) and correlates it with Bitcoin price movements.
**Features:**
• Tracks global M2 money supply converted to USD
• Adjustable forward offset (default 70 days) as a leading indicator
• Indexed scaling to visually correlate with BTC price
• Forward-looking price prediction based on liquidity trends
• OUTLOOK indicator: Very Bullish → Very Bearish
**How to Use:**
• Blue line shows where M2 liquidity suggests BTC should be
• When M2 line is above BTC price, expect potential upside
• When M2 line is below BTC price, expect potential consolidation
• Check the info table for specific price targets and outlook
**Settings:**
• Slide Days Forward: Adjust the leading indicator offset
• Lookback Period: Period for indexing calculations
• Country toggles: Enable/disable specific economies
KCP Magic Trend [Dr. K. C. Prakash]📈 KCP Magic Trend — Indicator Description
KCP Magic Trend is a clean, professional trend-following indicator designed for intraday and swing trading, focusing on clarity, simplicity, and non-repainting signals.
🔹 Core Components
KCP Fast – Green line
Captures short-term momentum and early trend shifts.
KCP Slow – Red line
Defines the dominant market trend and helps filter noise.
VWAP (Black line) – Reference only
Acts as a fair-value benchmark to judge price strength or weakness (no filtering logic applied).
🔹 Signal Logic
🟢 BUY Signal
When KCP Fast crosses above KCP Slow, indicating bullish trend initiation.
🔴 SELL Signal
When KCP Fast crosses below KCP Slow, indicating bearish trend initiation.
All signals are non-repainting and based solely on the current chart timeframe.
🔹 Design Philosophy
❌ No HTF complexity
❌ No unnecessary inputs
✅ Fixed, optimized parameters
✅ Only Style & Visibility controls exposed
✅ Clean charts for fast decision-making
🔹 Best Use Cases
Intraday index trading (NIFTY, BANKNIFTY, FINNIFTY)
Swing trading in equities
Trend confirmation + pullback entries
Works best in trending markets
🔹 How Traders Use It
Trade in the direction of the Fast–Slow crossover
Use VWAP as a visual reference for price acceptance or rejection
Avoid trades when lines are flat or tightly overlapping
🔹 Summary
KCP Magic Trend is built for traders who want a simple, disciplined, and visually clear trend tool—no clutter, no repainting, just actionable trend signals.
KCP ATR + EMA Bands [Dr. K. C. Prakash]📊 KCP ATR + EMA Bands
KCP ATR + EMA Bands is a trend-responsive volatility channel indicator that combines the Exponential Moving Average (EMA) with Average True Range (ATR) to identify trend direction, dynamic support & resistance, trade zones, and extreme price conditions.
It is designed for intraday, swing, and positional trading, especially in indices, futures, and high-liquidity stocks.
🔧 How the Indicator Works
1️⃣ EMA – Trend Anchor
The EMA (default: 21) acts as the core trend line:
Price above EMA → bullish bias
Price below EMA → bearish bias
2️⃣ ATR – Volatility Engine
The ATR measures real-time volatility and expands or contracts the bands automatically:
High volatility → wider bands
Low volatility → tighter bands
This makes the indicator adaptive, unlike fixed-width channels.
3️⃣ Inner Bands – Trade Zones
Constructed using ATR × 1.0
Represent high-probability pullback and continuation zones
Useful for:
Pullback entries
Trend continuation trades
Mean-reversion setups within trend
4️⃣ Outer Bands – Extreme Zones
Constructed using ATR × 2.0
Represent price extremes
Ideal for:
Profit booking
Reversal watch zones
Stop-loss reference levels
🎨 Visual Design (Professional)
🟢 Green bands → bullish zones & support
🔴 Red bands → bearish zones & resistance
⚪ Gray EMA → neutral trend reference
Clean fills help identify bullish and bearish pressure zones without clutter.
📈 Trading Applications
✔ Trend Trading
Buy on pullbacks near lower inner band when price is above EMA
Sell on pullbacks near upper inner band when price is below EMA
✔ Breakout Trading
Strong closes beyond inner bands indicate momentum expansion
Breaks beyond outer bands signal exhaustion or strong continuation
✔ Risk Management
Inner bands → trailing stop reference
Outer bands → hard stop or target zones
⏱️ Best Timeframes
5m / 15m → Intraday trading
30m / 1H → Swing trading
Daily → Positional trading
🏆 Why This Indicator Stands Out
✔ Combines trend + volatility in one tool
✔ Adaptive to market conditions
✔ Reduces noise compared to fixed bands
✔ Clear visual guidance for entries, exits & risk
✔ Works across asset classes
⚠️ Important Note
This indicator performs best in trending or expanding volatility markets.
Always confirm trades with price action, volume, or higher-timeframe bias.
KCP RSI + EMA Trend [Dr. K. C. Prakash]KCP RSI + EMA Trend
A professional, low-noise momentum indicator built on Volume-Weighted RSI and EMA trend confirmation, designed to filter false signals and capture high-probability trend moves.
Key Highlights (in simple terms):
Volume-Weighted RSI (VWRSI): Gives more importance to high-volume price moves, reducing weak signals.
EMA-14 on RSI: Confirms momentum direction and avoids premature entries.
HTF RSI Filter (Auto): Aligns trades with higher-timeframe trend (5m→15m, 15m→1H).
Strong Anti-False Filters: Uses RSI slope, range detection, and volume strength.
Clear Zones: Only 20 / 80 extreme levels for clean overbought–oversold structure.
Signals:
BUY: RSI crosses above 50 with volume + HTF trend confirmation
SELL: RSI crosses below 50 with volume + HTF trend confirmation
Best Use:
✔ Intraday & scalping (5m / 15m)
✔ Trend-following entries
✔ Avoiding sideways market traps
Ideal for: Traders who want clean, disciplined signals without over-trading.
EMA + PDH/PDL 2 Days [Scalping-Algo]🎯 Overview
A clean, focused scalping indicator designed for 2-minute and 4-minute stock charts. Combines trend-following EMAs with key daily support/resistance zones to identify high-probability scalp entries.
🛠️ What's Included
ComponentDescription🟡 EMA 13Fast momentum line🟣 EMA 48Medium trend filter🔴 EMA 200Major trend direction🔵 PDH/PDLPrevious day high & low zones🟠 PDH-2/PDL-22 days ago high & low zones
⏰ Session Filter
Only displays levels during regular trading hours (9:30 AM - 4:00 PM EST) to keep your chart clean during pre/post market.
📊 How to Use for Scalping
✅ Long Setup (2m/4m chart)
Price above EMA 200 (bullish bias)
Price pulls back to PDH/PDL zone or EMA 48
EMA 13 crosses above EMA 48
Enter on bounce from zone
Target: next resistance zone or 1:2 R/R
❌ Short Setup (2m/4m chart)
Price below EMA 200 (bearish bias)
Price rallies into PDH/PDL zone or EMA 48
EMA 13 crosses below EMA 48
Enter on rejection from zone
Target: next support zone or 1:2 R/R
💡 Pro Tips
TipWhy🔥 Trade the first hourMost volume & volatility🎯 Zone confluenceBest setups when PDH/PDL aligns with EMAs⚡ Quick exitsScalping = small gains, don't overstay🚫 Avoid chopSkip trades when price is stuck between zones📉 Respect EMA 200Don't long below it, don't short above it
🔵 Zone Colors Explained
Blue zones → Yesterday's high/low (stronger levels)
Orange zones → 2 days ago high/low (secondary levels)
Zone thickness → 20 ticks buffer for natural price noise
⚙️ Best Settings
TimeframeBest For2 minuteQuick scalps, 5-15 cent targets4 minuteSlightly larger moves, less noise
📌 Recommended Pairs
Works best on liquid stocks with tight spreads:
SPY, QQQ, AAPL, TSLA, AMD, NVDA, META, AMZN
⚠️ Risk Management
RuleSuggestion🛑 Stop lossBelow/above the zone (tight)🎯 Take profit1:2 or 1:3 risk/reward minimum📏 Position sizeMax 1-2% account risk per trade
🚀 Quick Start
Add indicator to 2m or 4m chart
Wait for price to reach a colored zone
Confirm trend direction with EMA 200
Look for EMA 13/48 alignment
Enter with tight stop, scale out at targets
ICC PRO - Complete Trading System (v2.2)ICC Trading Indicator using Sci's Logic.
ICC Trading, or Indication, Correction, Continuation, is a structured day/swing trading strategy that identifies market cycles for high-probability entries, focusing on price breaking key levels (Indication), pulling back (Correction) to grab liquidity, and then resuming the trend (Continuation) for entries, emphasizing discipline and market structure over impulsive trades. It helps traders avoid chasing breakouts by waiting for pullbacks, improving timing and risk management by understanding how institutions move markets
SMA Cross + Adaptive Q MA + AMA Channel
📘 OPERATIONAL MANUAL: Adaptive Trend & SR Breakout SystemThis system combines non-parametric regression, volatility channels, and automated price action structures to identify high-probability entries.
1. Core IndicatorsAdaptive Q (KAMA): The primary trend line.
Green = Bullish;
Red = Bearish.
AMA Channel: An ATR-based envelope ($1.5 \times ATR$) that defines the "Value Area".
SMA 50 Filter: Global trend filter. Trade Long only above; Short only below.
SR Zones: Automatic boxes marking historical Support
(Blue/Green) and Resistance (Red).Shutterstock
2. Entry Rules
🟢 LONG SETUP:Price is above SMA 50.Large Lime Triangle appears (Channel Cross).Adaptive Q line is Green.Best entry: Price bounces off a Support Box.
🔴 SHORT SETUP:Price is below SMA 50.Large Red Triangle appears (Channel Cross).Adaptive Q line is Red.Best entry: Price rejects a Resistance Box.
3. Risk Management
Stop Loss: Set at $1.5 \times ATR$ or behind the nearest SR Box.
Take Profit: Target the next opposite SR Zone or exit if the Adaptive Q changes color.
4. LegendLarge Triangles: High-conviction volatility signals.
Small Triangles: Standard SMA Cross (early warning).
Red/Green Boxes: Supply and Demand zones for structural confirmation.
Lunar Phases & DistanceHigh Precision Lunar Phases & Distance Indicator
Our Beautiful Companion in the Night:
At New Moon, the Moon sits between Earth and the Sun. The side facing us is completely dark, so the Moon is invisible (except during a solar eclipse). At Full Moon, 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.
Right after New Moon, a thin Waxing Crescent appears low in the western evening sky, growing into the half-lit First Quarter, then a bulging waxing gibbous until reaching Full Moon. After Full, it shrinks through Waning Gibbous, Last Quarter (half-lit visible in the morning sky), finishing with a Waning Crescent (thin sliver again) just before disappearing at 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.
This indicator places clear markers on your chart for every exact New and Full Moon. Super Moon events use larger circles, Micro Moon events use smaller ones (both optional based on distance at event).
Chart zoomed out to highlight the seasonal behavior:
Accuracy:
New and Full Moon times are typically within ±few minutes & Distances are typically within ±10–100 km of astronomically true.
A small info table sits in the top-right corner and shows:
Current phase name (e.g., "Waxing Gibbous" or "Super Full Moon")
Live geocentric distance to the Moon right now
Name of the next New or Full Moon, with a countdown timer (days:hours:minutes)
Expected distance at that upcoming event
Settings
Thresholds group:
Two "Enable" checkboxes completely turn supermoon and micromoon highlighting on or off
Distance inputs let you set your own km cutoffs for what counts as super or micro (defaults are common values around 367,000 km and 405,000 km)
Start Date and End Date control the time range the script scans for events (default 2010–2028)
BackGround group:
"Current Phase" checkbox turns the waxing/waning background colours on or off
Colour pickers let you choose your own waxing (default soft purple) and waning (default soft blue) shades
Information group:
"Show Info Table" turns the top-right panel on or off
"(New/Full)" debug checkbox adds detailed labels directly on New/Full bars with exact UTC time and distance (useful for verification)
Powered by the open-source (telephonejack/LunarSolver/1) library using 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.






















