0% found this document useful (0 votes)
5 views44 pages

Scanner 3

This document is a TradingView Pine Script for a NIFTY sector scanner that includes features for analyzing various sectors, cryptocurrencies, and divergence patterns. It allows users to configure settings such as timeframes, groups, and divergence modes, as well as apply filters based on stochastic indicators. The script includes functions for calculating divergences, momentum, and slope analysis to assist traders in making informed decisions.

Uploaded by

aurobinda2
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views44 pages

Scanner 3

This document is a TradingView Pine Script for a NIFTY sector scanner that includes features for analyzing various sectors, cryptocurrencies, and divergence patterns. It allows users to configure settings such as timeframes, groups, and divergence modes, as well as apply filters based on stochastic indicators. The script includes functions for calculating divergences, momentum, and slope analysis to assist traders in making informed decisions.

Uploaded by

aurobinda2
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

//@version=5

indicator("NIFTY 10 Sector Scanner + Crypto + Trend + Configurable Dual ABC Divergence",


overlay=false, max_bars_back=2000)

//====================================================

// ALL SECTORS & GROUPS SELECTION

//====================================================

scanTF = [Link]("60", "Scanner Timeframe")

pageSel = [Link](

"BANKING",

"Sector",

options=[

"BANKING",

"IT",

"AUTO",

"FMCG",

"PHARMA",

"ENERGY",

"METAL",

"REALTY",

"FINANCE",

"CONSUMER",

"CRYPTO",

"MCX",

"SECTORS"
])

groupSel = [Link]("GROUP 1", "Select Group",

options=["GROUP 1","GROUP 2"])

//====================================================

// NEW DIVERGENCE MODE TOGGLE SWITCH

//====================================================

enableDivergence = [Link](true, "Enable Divergence")

divergenceMode = [Link](

"Both (Either Triggers)",

"Divergence Execution Mode",

options=[

"Divergence 1 Only",

"Divergence 2 Only",

"Both (Either Triggers)"

])

//====================================================

// FILTER TOGGLES

//====================================================

filterStoch1 = [Link](false, "Filter: Show only if Stoch 9,3 is OB/OS")

filterStoch2 = [Link](false, "Filter: Show only if Stoch 14,3 is OB/OS")

filterStoch3 = [Link](false, "Filter: Show only if Stoch 40,4 is OB/OS")


filterStoch4 = [Link](false, "Filter: Show only if Stoch 60,10 is OB/OS")

//====================================================

// CUSTOM OB / OS LEVELS

//====================================================

// Stoch 9,3

st1OB = [Link](80, "Stoch 9,3 Overbought")

st1OS = [Link](20, "Stoch 9,3 Oversold")

// Stoch 14,3

st2OB = [Link](80, "Stoch 14,3 Overbought")

st2OS = [Link](20, "Stoch 14,3 Oversold")

// Stoch 40,4

st3OB = [Link](80, "Stoch 40,4 Overbought")

st3OS = [Link](20, "Stoch 40,4 Oversold")

// Stoch 60,10

st4OB = [Link](80, "Stoch 60,10 Overbought")

st4OS = [Link](20, "Stoch 60,10 Oversold")

//====================================================

// TECHNICAL INPUTS

//====================================================
div_k = [Link](9, "Divergence 1 K")

div_d = [Link](3, "Divergence 1 D")

div2_k = [Link](14, "Divergence 2 K")

div2_d = [Link](3, "Divergence 2 D")

signalMode = [Link](

"Strong + Weak",

"Signal Strength",

options=[

"Strong Only",

"Weak Only",

"Strong + Weak"

])

k1 = [Link](9, "Stoch 1 K (9)")

d1 = [Link](3, "Stoch 1 D (3)")

k2 = [Link](14, "Stoch 2 K (14)")

d2 = [Link](3, "Stoch 2 D (3)")

k3 = [Link](40, "Stoch 3 K (40)")

d3 = [Link](4, "Stoch 3 D (4)")

k4 = [Link](60, "Stoch 4 K (60)")

d4 = [Link](10, "Stoch 4 D (10)")

pivotLen = [Link](5, "Pivot Length")

momentumLen = [Link](20, "Momentum Length")


zigzagLen = [Link](8, "ZigZag Length")

slopeLen = [Link](20, "Slope Length")

minSlope = [Link](0.0, "Minimum Slope Strength")

swingPct = [Link](0.0, "Minimum ABC Swing %")

fibMin = [Link](0.382, "B Wave Fib Min")

fibMax = [Link](0.786, "B Wave Fib Max")

momentumPct = [Link](1.0, "Momentum Min Move %", step=0.1)

divMode = [Link]( "ALL", "Divergence Mode",options=["MOM", "ZZ", "PIVOT","SLOPE", "ALL"])

patternMode = [Link](

"ALL",

"Pattern Mode",

options=[

"CLASSIC",

"ELLIOTT",

"CHANNEL",

"ALL"

])

//====================================================

// FIXED STOCHASTIC & DIVERGENCE ENGINE

//====================================================

// Updated function to calculate the %D line specifically

// Updated function definition

f_stoch_d(_len, _smoothK, _smoothD) =>


ll = [Link](low, _len)

hh = [Link](high, _len)

k = hh != ll ? 100 * (close - ll) / (hh - ll) : 0

k_smooth = [Link](k, _smoothK)

d = [Link](k_smooth, _smoothD)

nz(d, 0)

//--- DIVERGENCE MATH CORE FUNCTIONS ---

// Replace your old f_pivot_abc_bull with this updated version

// --- PIVOT ENGINES ---

//====================================================

// PURE ABC DIVERGENCE ENGINE

//====================================================

f_abc_divergence(

aPrice,

bPrice,

cPrice,

aStoch,

cStoch,

signalMode,
swingPct,

fibMin,

fibMax) =>

//----------------------------------

// Fib Retracement

//----------------------------------

abMove = [Link](bPrice - aPrice)

bullRetrace =

abMove > 0 ?

(bPrice - cPrice) / abMove :

0.0

bearRetrace =

abMove > 0 ?

(cPrice - bPrice) / abMove :

0.0

bullFib =

bullRetrace >= fibMin and

bullRetrace <= fibMax

bearFib =
bearRetrace >= fibMin and

bearRetrace <= fibMax

//----------------------------------

// Elliott ABC

//----------------------------------

bullABC =

not na(aPrice) and

not na(bPrice) and

not na(cPrice) and

cPrice < aPrice and

bPrice > [Link](aPrice, cPrice)

bearABC =

not na(aPrice) and

not na(bPrice) and

not na(cPrice) and

cPrice > aPrice and

bPrice < [Link](aPrice, cPrice)

//----------------------------------

// Swing Filter

//----------------------------------
bullSwing =

[Link](bPrice - aPrice) / aPrice * 100 >= swingPct and

[Link](bPrice - cPrice) / cPrice * 100 >= swingPct

bearSwing =

[Link](aPrice - bPrice) / aPrice * 100 >= swingPct and

[Link](cPrice - bPrice) / cPrice * 100 >= swingPct

//----------------------------------

// Classic Divergence

//----------------------------------

bullDiv =

not na(aPrice) and

not na(cPrice) and

cPrice < aPrice and

cStoch > aStoch and

aStoch < 20 and

cStoch > 20

bearDiv =

not na(aPrice) and

not na(cPrice) and

cPrice > aPrice and


cStoch < aStoch and

aStoch > 80 and

cStoch < 80

//----------------------------------

// Ascending / Descending Channel

//----------------------------------

channelBull =

not na(aPrice) and

not na(bPrice) and

not na(cPrice) and

aPrice < cPrice and

bPrice > aPrice and

bPrice > cPrice and

cStoch > aStoch

channelBear =

not na(aPrice) and

not na(bPrice) and

not na(cPrice) and

aPrice > cPrice and

bPrice < aPrice and

bPrice < cPrice and

cStoch < aStoch


//----------------------------------

// Pattern Selector

//----------------------------------

bullPattern =

patternMode == "CLASSIC" ? bullDiv :

patternMode == "ELLIOTT" ? (bullABC and bullDiv) :

patternMode == "CHANNEL" ? channelBull :

(bullDiv or (bullABC and bullDiv) or channelBull)

bearPattern =

patternMode == "CLASSIC" ? bearDiv :

patternMode == "ELLIOTT" ? (bearABC and bearDiv) :

patternMode == "CHANNEL" ? channelBear :

(bearDiv or (bearABC and bearDiv) or channelBear)

//----------------------------------

// Strong / Weak Bull

//----------------------------------

strongBull =

bullPattern and

bullSwing and

bullFib and
aStoch < 20 and

cStoch > 20

weakBull =

not na(aPrice) and

not na(cPrice) and

cPrice < aPrice and

cStoch > aStoch and

aStoch < 20 and

cStoch > 20

//----------------------------------

// Strong / Weak Bear

//----------------------------------

strongBear =

bearPattern and

bearSwing and

bearFib and

aStoch > 80 and

cStoch < 80

weakBear =

not na(aPrice) and

not na(cPrice) and


cPrice > aPrice and

cStoch < aStoch and

aStoch > 80 and

cStoch < 80

//----------------------------------

// Output

//----------------------------------

float result = 0.0

if signalMode == "Strong Only"

result :=

strongBull ? 2 :

strongBear ? -2 :

else if signalMode == "Weak Only"

result :=

weakBull ? 1 :

weakBear ? -1 :

else

result :=
strongBull ? 2 :

strongBear ? -2 :

weakBull ? 1 :

weakBear ? -1 :

result

//====================================================

// PIVOT ABC

//====================================================

f_div_core(aPrice, bPrice, cPrice, aOsc, cOsc) =>

bullDiv = cPrice < aPrice and cOsc > aOsc

bearDiv = cPrice > aPrice and cOsc < aOsc

bullStruct = aPrice > bPrice and cPrice > bPrice

bearStruct = aPrice < bPrice and cPrice < bPrice

bullABC = cPrice < aPrice

bearABC = cPrice > aPrice

bull = bullDiv and bullStruct and bullABC

bear = bearDiv and bearStruct and bearABC

bull ? 1 : bear ? -1 : 0
f_engine_pivot(st, signalMode, swingPct, fibMin, fibMax) =>

ph = [Link](high, pivotLen, pivotLen)

pl = [Link](low, pivotLen, pivotLen)

aPrice = [Link](not na(pl), low[pivotLen], 2)

bPrice = [Link](not na(ph), high[pivotLen], 1)

cPrice = [Link](not na(pl), low[pivotLen], 0)

aOsc = [Link](not na(pl), st[pivotLen], 2)

cOsc = [Link](not na(pl), st[pivotLen], 0)

result = f_abc_divergence(

aPrice,

bPrice,

cPrice,

aOsc,

cOsc,

signalMode,

swingPct,

fibMin,

fibMax)

//====================================================

// MOMENTUM ABC

//====================================================
//====================================================

// MOMENTUM DIVERGENCE (CANDLE BASED)

//====================================================

f_engine_momentum(st, signalMode, swingPct, fibMin, fibMax) =>

aPrice = close[momentumLen]

cPrice = low

aOsc = st[momentumLen]

cOsc = st

priceMovePct = aPrice != 0 ? [Link](cPrice - aPrice) / aPrice * 100 : 0

validMove =

priceMovePct >= momentumPct

bullDiv =

validMove and

cPrice < aPrice and

cOsc > aOsc and

aOsc < 20 and

cOsc > 20

bearDiv =
validMove and

cPrice > aPrice and

cOsc < aOsc and

aOsc > 80 and

cOsc < 80

strongBull =

bullDiv and

aOsc < 20 and

cOsc > 20

strongBear =

bearDiv and

aOsc > 80 and

cOsc < 80

float result = 0

if signalMode == "Strong Only"

result :=

strongBull ? 2 :

strongBear ? -2 :

else if signalMode == "Weak Only"


result :=

bullDiv ? 1 :

bearDiv ? -1 :

else

result :=

strongBull ? 2 :

strongBear ? -2 :

bullDiv ? 1 :

bearDiv ? -1 :

result

//====================================================

// SLOPE DIVERGENCE ENGINE

//====================================================

f_engine_slope(st, signalMode) =>

//----------------------------------

// Regression Slopes

//----------------------------------
priceSlope =

[Link](low, slopeLen, 0) -

[Link](low, slopeLen, 1)

oscSlope =

[Link](st, slopeLen, 0) -

[Link](st, slopeLen, 1)

//----------------------------------

// Bull / Bear Divergence

//----------------------------------

bullDiv =

priceSlope < -minSlope and

oscSlope > minSlope and

st[slopeLen] < 20 and

st > 20

bearDiv =

priceSlope > minSlope and

oscSlope < -minSlope and

st[slopeLen] > 80 and

st < 80
//----------------------------------

// Strong Signals

//----------------------------------

strongBull =

bullDiv and

st[slopeLen] < 20

strongBear =

bearDiv and

st[slopeLen] > 80

//----------------------------------

// Output

//----------------------------------

float result = 0

if signalMode == "Strong Only"

result :=

strongBull ? 2 :

strongBear ? -2 :

else if signalMode == "Weak Only"


result :=

bullDiv ? 1 :

bearDiv ? -1 :

else

result :=

strongBull ? 2 :

strongBear ? -2 :

bullDiv ? 1 :

bearDiv ? -1 :

result

//====================================================

// ZIGZAG ABC

//====================================================

f_engine_zigzag(st, signalMode, swingPct, fibMin, fibMax) =>

ph = [Link](high, zigzagLen, zigzagLen)

pl = [Link](low, zigzagLen, zigzagLen)

aPrice = [Link](not na(pl), low[zigzagLen], 2)

bPrice = [Link](not na(ph), high[zigzagLen], 1)

cPrice = [Link](not na(pl), low[zigzagLen], 0)


aOsc = [Link](not na(pl), st[zigzagLen], 2)

cOsc = [Link](not na(pl), st[zigzagLen], 0)

result = f_abc_divergence(

aPrice,

bPrice,

cPrice,

aOsc,

cOsc,

signalMode,

swingPct,

fibMin,

fibMax)

//====================================================

// DATA PROCESSOR WITH CONDITIONAL MODE MATRIX

//====================================================

f_calc_data(

k1, d1,

k2, d2,

k3, d3,

k4, d4,

div_k, div_d,

div2_k, div2_d,

momentumLen,
zigzagLen,

divergenceMode,

divMode,

patternMode,

signalMode,

swingPct,

fibMin,

fibMax

) =>

//========================

// STOCHASTICS

//========================

s1 = f_stoch_d(k1, 3, d1)

s2 = f_stoch_d(k2, 3, d2)

s3 = f_stoch_d(k3, 3, d3)

s4 = f_stoch_d(k4, 3, d4)

div_st1 = f_stoch_d(div_k, 3, div_d)

div_st2 = f_stoch_d(div2_k, 3, div2_d)

//========================

// RAW ENGINE OUTPUTS

//========================

//========================
// DIVERGENCE 1 ENGINES

//========================

piv1 = f_engine_pivot(

div_st1,

signalMode,

swingPct,

fibMin,

fibMax)

zz1 = f_engine_zigzag(

div_st1,

signalMode,

swingPct,

fibMin,

fibMax)

mom1 = f_engine_momentum(

div_st1,

signalMode,

swingPct,

fibMin,

fibMax)

//========================

// DIVERGENCE 2 ENGINES
//========================

slope1 = f_engine_slope(

div_st1,

signalMode)

piv2 = f_engine_pivot(

div_st2,

signalMode,

swingPct,

fibMin,

fibMax)

zz2 = f_engine_zigzag(

div_st2,

signalMode,

swingPct,

fibMin,

fibMax)

mom2 = f_engine_momentum(

div_st2,

signalMode,

swingPct,

fibMin,

fibMax)
slope2 = f_engine_slope(

div_st2,

signalMode)

//========================

// DIVERGENCE MODE

//========================

p_state =

divergenceMode == "Divergence 1 Only" ? piv1 :

divergenceMode == "Divergence 2 Only" ? piv2 :

piv1 != 0 ? piv1 : piv2

z_state =

divergenceMode == "Divergence 1 Only" ? zz1 :

divergenceMode == "Divergence 2 Only" ? zz2 :

zz1 != 0 ? zz1 : zz2

m_state =

divergenceMode == "Divergence 1 Only" ? mom1 :

divergenceMode == "Divergence 2 Only" ? mom2 :

mom1 != 0 ? mom1 : mom2

s_state =
divergenceMode == "Divergence 1 Only" ? slope1 :

divergenceMode == "Divergence 2 Only" ? slope2 :

slope1 != 0 ? slope1 : slope2

//========================

// DIVMODE FILTER

//========================

final_mom =

not enableDivergence ? 0 :

divMode == "MOM" ? m_state :

divMode == "ALL" ? m_state :

final_zz =

not enableDivergence ? 0 :

divMode == "ZZ" ? z_state :

divMode == "ALL" ? z_state :

final_piv =

not enableDivergence ? 0 :

divMode == "PIVOT" ? p_state :

divMode == "ALL" ? p_state :

0
final_slope =

not enableDivergence ? 0 :

divMode == "SLOPE" ? s_state :

divMode == "ALL" ? s_state :

//========================

// OUTPUT

//========================

[s1, s2, s3, s4, final_mom, final_zz, final_piv, final_slope]

//====================================================

////====================================================

// UPDATED SYMBOL ROUTING MATRIX (GROUP 1 / GROUP 2)

//====================================================

// PAGE BASED SYMBOL MATRIX (CLEAN VERSION)

//====================================================

// FIXED PAGE + GROUP SYMBOL MATRIX (WORKING)

//====================================================

isG1 = groupSel == "GROUP 1"

isG2 = groupSel == "GROUP 2"


// PAGE 1 BANKING

s1 = pageSel=="BANKING" ? (isG1 ? "NSE:HDFCBANK" : "NSE:INDUSINDBK") : na

s2 = pageSel=="BANKING" ? (isG1 ? "NSE:ICICIBANK" : "NSE:BANDHANBNK") : na

s3 = pageSel=="BANKING" ? (isG1 ? "NSE:SBIN" : "NSE:AUBANK") : na

s4 = pageSel=="BANKING" ? (isG1 ? "NSE:AXISBANK" : "NSE:FEDERALBNK") : na

s5 = pageSel=="BANKING" ? (isG1 ? "NSE:KOTAKBANK" : "NSE:IDFCFIRSTB") : na

// PAGE 2 IT

s1 := pageSel=="IT" ? (isG1 ? "NSE:TCS" : "NSE:LTIM") : s1

s2 := pageSel=="IT" ? (isG1 ? "NSE:INFY" : "NSE:PERSISTENT") : s2

s3 := pageSel=="IT" ? (isG1 ? "NSE:WIPRO" : "NSE:MPHASIS") : s3

s4 := pageSel=="IT" ? (isG1 ? "NSE:HCLTECH" : "NSE:COFORGE") : s4

s5 := pageSel=="IT" ? (isG1 ? "NSE:TECHM" : "NSE:OFSS") : s5

// PAGE 3 AUTO

s1 := pageSel=="AUTO" ? (isG1 ? "NSE:MARUTI" : "NSE:TVSMOTOR") : s1

s2 := pageSel=="AUTO" ? (isG1 ? "NSE:TATAMOTORS" : "NSE:HEROMOTOCO") : s2

s3 := pageSel=="AUTO" ? (isG1 ? "NSE:M&M" : "NSE:BOSCHLTD") : s3

s4 := pageSel=="AUTO" ? (isG1 ? "NSE:BAJAJ_AUTO" : "NSE:MRF") : s4

s5 := pageSel=="AUTO" ? (isG1 ? "NSE:EICHERMOT" : "NSE:ASHOKLEY") : s5

// PAGE 4 FMCG

s1 := pageSel=="FMCG" ? (isG1 ? "NSE:HINDUNILVR" : "NSE:DABUR") : s1

s2 := pageSel=="FMCG" ? (isG1 ? "NSE:ITC" : "NSE:MARICO") : s2

s3 := pageSel=="FMCG" ? (isG1 ? "NSE:NESTLEIND" : "NSE:GODREJCP") : s3


s4 := pageSel=="FMCG" ? (isG1 ? "NSE:BRITANNIA" : "NSE:COLPAL") : s4

s5 := pageSel=="FMCG" ? (isG1 ? "NSE:VBL" : "NSE:TATACONSUM") : s5

// PAGE 5 PHARMA

s1 := pageSel=="PHARMA" ? (isG1 ? "NSE:SUNPHARMA" : "NSE:GLENMARK") : s1

s2 := pageSel=="PHARMA" ? (isG1 ? "NSE:DRREDDY" : "NSE:LUPIN") : s2

s3 := pageSel=="PHARMA" ? (isG1 ? "NSE:CIPLA" : "NSE:TORNTPHARM") : s3

s4 := pageSel=="PHARMA" ? (isG1 ? "NSE:DIVISLAB" : "NSE:ALKEM") : s4

s5 := pageSel=="PHARMA" ? (isG1 ? "NSE:AUROPHARMA" : "NSE:ZYDUSLIFE") : s5

// PAGE 6 ENERGY

s1 := pageSel=="ENERGY" ? (isG1 ? "NSE:RELIANCE" : "NSE:POWERGRID") : s1

s2 := pageSel=="ENERGY" ? (isG1 ? "NSE:ONGC" : "NSE:TATAPOWER") : s2

s3 := pageSel=="ENERGY" ? (isG1 ? "NSE:BPCL" : "NSE:ADANIGREEN") : s3

s4 := pageSel=="ENERGY" ? (isG1 ? "NSE:IOC" : "NSE:ADANITRANS") : s4

s5 := pageSel=="ENERGY" ? (isG1 ? "NSE:NTPC" : "NSE:COALINDIA") : s5

// PAGE 7 METAL

s1 := pageSel=="METAL" ? (isG1 ? "NSE:TATASTEEL" : "NSE:NATIONALUM") : s1

s2 := pageSel=="METAL" ? (isG1 ? "NSE:JSWSTEEL" : "NSE:HINDZINC") : s2

s3 := pageSel=="METAL" ? (isG1 ? "NSE:HINDALCO" : "NSE:SAIL") : s3

s4 := pageSel=="METAL" ? (isG1 ? "NSE:VEDL" : "NSE:MOIL") : s4

s5 := pageSel=="METAL" ? (isG1 ? "NSE:JINDALSTEL" : "NSE:RATNAMANI") : s5

// PAGE 8 REALTY
s1 := pageSel=="REALTY" ? (isG1 ? "NSE:DLF" : "NSE:BRIGADE") : s1

s2 := pageSel=="REALTY" ? (isG1 ? "NSE:GODREJPROP" : "NSE:SOBHA") : s2

s3 := pageSel=="REALTY" ? (isG1 ? "NSE:OBEROIRLTY" : "NSE:MAHLIFE") : s3

s4 := pageSel=="REALTY" ? (isG1 ? "NSE:PHOENIXLTD" : "NSE:IBULLSLTD") : s4

s5 := pageSel=="REALTY" ? (isG1 ? "NSE:PRESTIGE" : "NSE:ANANTRAJ") : s5

// PAGE 9 FINANCE

s1 := pageSel=="FINANCE" ? (isG1 ? "NSE:BAJFINANCE" : "NSE:PFC") : s1

s2 := pageSel=="FINANCE" ? (isG1 ? "NSE:BAJAJFINSV" : "NSE:RECLTD") : s2

s3 := pageSel=="FINANCE" ? (isG1 ? "NSE:CHOLAFIN" : "NSE:ICICIPRULI") : s3

s4 := pageSel=="FINANCE" ? (isG1 ? "NSE:MUTHOOTFIN" : "NSE:LICI") : s4

s5 := pageSel=="FINANCE" ? (isG1 ? "NSE:SHRIRAMFIN" : "NSE:SBILIFE") : s5

// PAGE 10 CONSUMER

s1 := pageSel=="CONSUMER" ? (isG1 ? "NSE:TATACONSUM" : "NSE:RELAXO") : s1

s2 := pageSel=="CONSUMER" ? (isG1 ? "NSE:UBL" : "NSE:PAGEIND") : s2

s3 := pageSel=="CONSUMER" ? (isG1 ? "NSE:UNITDSPR" : "NSE:KAJARIACER") : s3

s4 := pageSel=="CONSUMER" ? (isG1 ? "NSE:RADICO" : "NSE:BLUESTARCO") : s4

s5 := pageSel=="CONSUMER" ? (isG1 ? "NSE:VOLTAS" : "NSE:WHIRLPOOL") : s5

// PAGE 11 CRYPTO

s1 := pageSel=="CRYPTO" ? (isG1 ? "BINANCE:BTCUSDT" : "BINANCE:ZECUSDT") : s1

s2 := pageSel=="CRYPTO" ? (isG1 ? "BINANCE:ETHUSDT" : "BINANCE:AVAXUSDT") : s2

s3 := pageSel=="CRYPTO" ? (isG1 ? "BINANCE:SOLUSDT" : "MUSD.P") : s3

s4 := pageSel=="CRYPTO" ? (isG1 ? "BINANCE:BNBUSDT" : "RIVERUSD.P") : s4


s5 := pageSel=="CRYPTO" ? (isG1 ? "BINANCE:LINKUSDT" : "BINANCE:DOGEUSDT") : s5

// PAGE 12 MCX

s1 := pageSel=="MCX" ? (isG1 ? "MCX:GOLD1!" : "MCX:ALUMINIUM1!") : s1

s2 := pageSel=="MCX" ? (isG1 ? "MCX:SILVER1!" : "MCX:ZINC1!") : s2

s3 := pageSel=="MCX" ? (isG1 ? "MCX:CRUDEOIL1!" : "MCX:LEAD1!") : s3

s4 := pageSel=="MCX" ? (isG1 ? "MCX:NATURALGAS1!" : "MCX:NICKEL1!") : s4

s5 := pageSel=="MCX" ? (isG1 ? "MCX:COPPER1!" : "MCX:MENTHAOIL1!") : s5

// PAGE 13 SECTOR INDICES

s1 := pageSel=="SECTORS" ? (isG1 ? "NSE:BANKNIFTY" : "NSE:CNXPHARMA") : s1

s2 := pageSel=="SECTORS" ? (isG1 ? "NSE:CNXFINANCE" : "NSE:CNXMETAL") : s2

s3 := pageSel=="SECTORS" ? (isG1 ? "NSE:CNXIT" : "NSE:CNXENERGY") : s3

s4 := pageSel=="SECTORS" ? (isG1 ? "NSE:CNXAUTO" : "NSE:CNXREALTY") : s4

s5 := pageSel=="SECTORS" ? (isG1 ? "NSE:CNXFMCG" : "NSE:CNXCONSUMPTION") : s5

//====================================================

// DATA STREAM ACQUISITIONS

//====================================================

[r1_st1, r1_st2, r1_st3, r1_st4, r1_mom, r1_zz, r1_piv, r1_slope] =

[Link](s1, scanTF,

f_calc_data(

k1, d1,

k2, d2,

k3, d3,

k4, d4,
div_k, div_d,

div2_k, div2_d,

momentumLen,

zigzagLen,

divergenceMode,

divMode,

patternMode,

signalMode,

swingPct,

fibMin,

fibMax

))

[r2_st1, r2_st2, r2_st3, r2_st4, r2_mom, r2_zz, r2_piv, r2_slope] =

[Link](s2, scanTF,

f_calc_data(

k1, d1,

k2, d2,

k3, d3,

k4, d4,

div_k, div_d,

div2_k, div2_d,

momentumLen,

zigzagLen,

divergenceMode,
divMode,

patternMode,

signalMode,

swingPct,

fibMin,

fibMax

))

[r3_st1, r3_st2, r3_st3, r3_st4, r3_mom, r3_zz, r3_piv, r3_slope] =

[Link](s3, scanTF,

f_calc_data(

k1, d1,

k2, d2,

k3, d3,

k4, d4,

div_k, div_d,

div2_k, div2_d,

momentumLen,

zigzagLen,

divergenceMode,

divMode,

patternMode,

signalMode,

swingPct,

fibMin,
fibMax

))

[r4_st1, r4_st2, r4_st3, r4_st4, r4_mom, r4_zz, r4_piv, r4_slope] =

[Link](s4, scanTF,

f_calc_data(

k1, d1,

k2, d2,

k3, d3,

k4, d4,

div_k, div_d,

div2_k, div2_d,

momentumLen,

zigzagLen,

divergenceMode,

divMode,

patternMode,

signalMode,

swingPct,

fibMin,

fibMax

))

[r5_st1, r5_st2, r5_st3, r5_st4, r5_mom, r5_zz, r5_piv, r5_slope] =

[Link](s5, scanTF,
f_calc_data(

k1, d1,

k2, d2,

k3, d3,

k4, d4,

div_k, div_d,

div2_k, div2_d,

momentumLen,

zigzagLen,

divergenceMode,

divMode,

patternMode,

signalMode,

swingPct,

fibMin,

fibMax

))

//====================================================

// FILTER VERIFICATION LOGIC

//====================================================

f_is_filtered(st1, st2, st3, st4) =>

bool pass1 =

not filterStoch1 or

(not na(st1) and (st1 >= st1OB or st1 <= st1OS))


bool pass2 =

not filterStoch2 or

(not na(st2) and (st2 >= st2OB or st2 <= st2OS))

bool pass3 =

not filterStoch3 or

(not na(st3) and (st3 >= st3OB or st3 <= st3OS))

bool pass4 =

not filterStoch4 or

(not na(st4) and (st4 >= st4OB or st4 <= st4OS))

pass1 and pass2 and pass3 and pass4

//====================================================

// CELL RENDER STYLES & CONVERSIONS

//====================================================

f_col(v) =>

na(v) or v > 100 or v < 0 ? [Link] : v > 80 ? [Link] : v < 20 ? [Link] : [Link]

f_cell_val(v) =>

na(v) or v > 100 or v < 0 ? "-" : [Link]([Link](v))

f_div_display(state) =>

string txt = "-"


color bg = [Link]

if state == 2

txt := "STR BULL"

bg := [Link]

else if state == 1

txt := "WEAKBULL"

bg := [Link]

else if state == -1

txt := "WEAKBEAR"

bg := [Link]

else if state == -2

txt := "STR BEAR"

bg := [Link]

[txt, bg]

//====================================================

// DISPLAY MATRIX DASHBOARD

//====================================================

var table t = [Link](position.top_right, 9, 6, border_width=1)


if [Link]

[Link](t, 0, 0, 7, 5)

[Link](t,0,0,"SYMBOL (" + pageSel + ")",bgcolor=[Link],text_color=[Link])

[Link](t,1,0,[Link](k1)+","+[Link](d1),bgcolor=[Link],text_color=[Link])

[Link](t,2,0,[Link](k2)+","+[Link](d2),bgcolor=[Link],text_color=[Link])

[Link](t,3,0,[Link](k3)+","+[Link](d3),bgcolor=[Link],text_color=[Link])

[Link](t,4,0,[Link](k4)+","+[Link](d4),bgcolor=[Link],text_color=[Link])

[Link](t,5,0,"MOM",bgcolor=[Link],text_color=[Link])

[Link](t,6,0,"ZZ",bgcolor=[Link],text_color=[Link])

[Link](t,7,0,"PIVOT",bgcolor=[Link],text_color=[Link])

[Link](t,8,0,"SLOPE",bgcolor=[Link],text_color=[Link])

int rowIdx = 1

// Row 1 Processing

if f_is_filtered(r1_st1, r1_st2,r1_st3, r1_st4)

[r1M_txt, r1M_bg] = f_div_display(r1_mom)

[r1Z_txt, r1Z_bg] = f_div_display(r1_zz)

[r1P_txt, r1P_bg] = f_div_display(r1_piv)

[r1S_txt, r1S_bg] = f_div_display(r1_slope)

[Link](t,0,rowIdx,s1)

[Link](t,1,rowIdx,f_cell_val(r1_st1), bgcolor=f_col(r1_st1))

[Link](t,2,rowIdx,f_cell_val(r1_st2), bgcolor=f_col(r1_st2))

[Link](t,3,rowIdx,f_cell_val(r1_st3), bgcolor=f_col(r1_st3))
[Link](t,4,rowIdx,f_cell_val(r1_st4), bgcolor=f_col(r1_st4))

[Link](t,5,rowIdx,r1M_txt, bgcolor=r1M_bg, text_color=[Link])

[Link](t,6,rowIdx,r1Z_txt, bgcolor=r1Z_bg, text_color=[Link])

[Link](t,7,rowIdx,r1P_txt, bgcolor=r1P_bg, text_color=[Link])

[Link](t,8,rowIdx,r1S_txt, bgcolor=r1S_bg, text_color=[Link])

rowIdx := rowIdx + 1

// Row 2 Processing

if f_is_filtered(r2_st1, r2_st2, r2_st3, r2_st4)

[r2M_txt, r2M_bg] = f_div_display(r2_mom)

[r2Z_txt, r2Z_bg] = f_div_display(r2_zz)

[r2P_txt, r2P_bg] = f_div_display(r2_piv)

[r2S_txt, r2S_bg] = f_div_display(r2_slope)

[Link](t,0,rowIdx,s2)

[Link](t,1,rowIdx,f_cell_val(r2_st1), bgcolor=f_col(r2_st1))

[Link](t,2,rowIdx,f_cell_val(r2_st2), bgcolor=f_col(r2_st2))

[Link](t,3,rowIdx,f_cell_val(r2_st3), bgcolor=f_col(r2_st3))

[Link](t,4,rowIdx,f_cell_val(r2_st4), bgcolor=f_col(r2_st4))

[Link](t,5,rowIdx,r2M_txt, bgcolor=r2M_bg, text_color=[Link])

[Link](t,6,rowIdx,r2Z_txt, bgcolor=r2Z_bg, text_color=[Link])

[Link](t,7,rowIdx,r2P_txt, bgcolor=r2P_bg, text_color=[Link])

[Link](t,8,rowIdx,r2S_txt, bgcolor=r2S_bg, text_color=[Link])

rowIdx := rowIdx + 1

// Row 3 Processing
if f_is_filtered(r3_st1, r3_st2, r3_st3, r3_st4)

[r3M_txt, r3M_bg] = f_div_display(r3_mom)

[r3Z_txt, r3Z_bg] = f_div_display(r3_zz)

[r3P_txt, r3P_bg] = f_div_display(r3_piv)

[r3S_txt, r3S_bg] = f_div_display(r3_slope)

[Link](t,0,rowIdx,s3)

[Link](t,1,rowIdx,f_cell_val(r3_st1), bgcolor=f_col(r3_st1))

[Link](t,2,rowIdx,f_cell_val(r3_st2), bgcolor=f_col(r3_st2))

[Link](t,3,rowIdx,f_cell_val(r3_st3), bgcolor=f_col(r3_st3))

[Link](t,4,rowIdx,f_cell_val(r3_st4), bgcolor=f_col(r3_st4))

[Link](t,5,rowIdx,r3M_txt, bgcolor=r3M_bg, text_color=[Link])

[Link](t,6,rowIdx,r3Z_txt, bgcolor=r3Z_bg, text_color=[Link])

[Link](t,7,rowIdx,r3P_txt, bgcolor=r3P_bg, text_color=[Link])

[Link](t,8,rowIdx,r3S_txt, bgcolor=r3S_bg, text_color=[Link])

rowIdx := rowIdx + 1

// Row 4 Processing

if f_is_filtered(r4_st1, r4_st2, r4_st3, r4_st4)

[r4M_txt, r4M_bg] = f_div_display(r4_mom)

[r4Z_txt, r4Z_bg] = f_div_display(r4_zz)

[r4P_txt, r4P_bg] = f_div_display(r4_piv)

[r4S_txt, r4S_bg] = f_div_display(r4_slope)

[Link](t,0,rowIdx,s4)

[Link](t,1,rowIdx,f_cell_val(r4_st1), bgcolor=f_col(r4_st1))

[Link](t,2,rowIdx,f_cell_val(r4_st2), bgcolor=f_col(r4_st2))
[Link](t,3,rowIdx,f_cell_val(r4_st3), bgcolor=f_col(r4_st3))

[Link](t,4,rowIdx,f_cell_val(r4_st4), bgcolor=f_col(r4_st4))

[Link](t,5,rowIdx,r4M_txt, bgcolor=r4M_bg, text_color=[Link])

[Link](t,6,rowIdx,r4Z_txt, bgcolor=r4Z_bg, text_color=[Link])

[Link](t,7,rowIdx,r4P_txt, bgcolor=r4P_bg, text_color=[Link])

[Link](t,8,rowIdx,r4S_txt, bgcolor=r4S_bg, text_color=[Link])

rowIdx := rowIdx + 1

// Row 5 Processing

if f_is_filtered(r5_st1, r5_st2, r5_st3, r5_st4)

[r5M_txt, r5M_bg] = f_div_display(r5_mom)

[r5Z_txt, r5Z_bg] = f_div_display(r5_zz)

[r5P_txt, r5P_bg] = f_div_display(r5_piv)

[r5S_txt, r5S_bg] = f_div_display(r5_slope)

[Link](t,0,rowIdx,s5)

[Link](t,1,rowIdx,f_cell_val(r5_st1), bgcolor=f_col(r5_st1))

[Link](t,2,rowIdx,f_cell_val(r5_st2), bgcolor=f_col(r5_st2))

[Link](t,3,rowIdx,f_cell_val(r5_st3), bgcolor=f_col(r5_st3))

[Link](t,4,rowIdx,f_cell_val(r5_st4), bgcolor=f_col(r5_st4))

[Link](t,5,rowIdx,r5M_txt, bgcolor=r5M_bg, text_color=[Link])

[Link](t,6,rowIdx,r5Z_txt, bgcolor=r5Z_bg, text_color=[Link])

[Link](t,7,rowIdx,r5P_txt, bgcolor=r5P_bg, text_color=[Link])

[Link](t,8,rowIdx,r5S_txt, bgcolor=r5S_bg, text_color=[Link])

//====================================================
// CHART STOCHASTIC VALUES

//====================================================

chart_stoch1 = f_stoch_d(k1, 3, d1)

chart_stoch2 = f_stoch_d(k2, 3, d2)

chart_stoch3 = f_stoch_d(k3, 3, d3)

chart_stoch4 = f_stoch_d(k4, 3, d4)

//====================================================

// PANEL OFFSETS

//====================================================

p1 = chart_stoch1 + 360

p2 = chart_stoch2 + 240

p3 = chart_stoch3 + 120

p4 = chart_stoch4

plot(360, color=[Link], linewidth=4)

plot(240, color=[Link], linewidth=4)

plot(120, color=[Link], linewidth=4)

// Top panel

hline(380, color=[Link])

hline(440, color=[Link])

// Second panel

hline(260, color=[Link])

hline(320, color=[Link])
// Third panel

hline(140, color=[Link])

hline(200, color=[Link])

// Bottom panel

hline(20, color=[Link])

hline(80, color=[Link])

plot(p1, color=[Link], linewidth=2, title="9,3")

plot(p2, color=[Link], linewidth=2, title="14,3")

plot(p3, color=[Link], linewidth=2, title="40,4")

plot(p4, color=[Link], linewidth=2, title="60,10")

You might also like