RSI + Stochastic + Signals NachomixCryptoRSI + Stochastic + Signals — by NachomixCrypto
This indicator combines the strength of the classic Relative Strength Index (RSI) with the momentum sensitivity of the Stochastic RSI, delivering a powerful tool for identifying trend strength, overbought/oversold zones, and high-probability entry and exit points.
🔹 Key Features:
RSI (Relative Strength Index):
A 14-period RSI is plotted and dynamically colored — green when RSI is above 50 (bullish bias), and red when below 50 (bearish bias). This quick visual cue helps traders instantly gauge the prevailing market momentum.
Additionally, the script calculates the estimated price levels where RSI would reach 70 (overbought) or 30 (oversold). These projections are updated dynamically and shown as labeled points, providing a valuable forecast of potential resistance and support levels based purely on RSI behavior.
Stochastic RSI:
A smoothed version of the Stochastic RSI is used, with adjustable %K and %D periods. The indicator draws a subtle ribbon between the %K and %D lines, which shifts color depending on momentum direction — green when %K > %D (bullish), red when %K < %D (bearish). A central white ribbon line adds a further visual reference for median momentum.
Dynamic Background Coloring:
The background changes color based on the RSI value and the relationship between %K and %D. When RSI is within the 30–70 range (a potential accumulation or neutral zone), the background becomes a soft green or red depending on whether momentum is bullish or bearish.
Projected RSI Price Levels:
The script estimates at what price the RSI would hit 70 or 30 using smoothed gains and losses. These levels are displayed as floating labels on the RSI chart and offer traders insights into potential future price targets or reversal zones based on RSI dynamics — a unique feature not found in standard indicators.
Horizontal Reference Lines:
Important RSI levels (0, 20, 30, 50, 70, 80, 100) are plotted as static horizontal lines to help visually interpret market conditions.
Buy and Sell Signals:
Trading signals are generated when:
A buy (long) signal is triggered when %K crosses above %D from below 40 — suggesting bullish momentum from oversold conditions.
A sell (short) signal is triggered when %K crosses below %D from above 60 — suggesting bearish momentum from overbought conditions.
These signals are marked as small green (up) or red (down) triangles near the RSI chart's top and bottom.
Indicadores de Banda
Ultra Algo//@version=5
//...................../´¯¯/)
//...................,/¯.../
//.................../..../
//.............../´¯/'..'/´¯¯`·¸
//.........../'/.../..../....../¨¯\
//..........('(....´...´... ¯~/'..')
//...........\..............'...../
//............\....\.........._.·´
//.............\..............(
//..............\..............\
//----
//---------
indicator("Ultra Algo", overlay = false)
// Inputs
src = input(close, "Source", group = "Main settings")
p = input.int(180, "Trend period", group = "Main settings", tooltip = "Changes STRONG signals' sensitivity.", minval = 1)
atr_p = input.int(155, "ATR Period", group = "Main settings", minval = 1)
mult = input.float(2.1, "ATR Multiplier", step = 0.1, group = "Main settings", tooltip = "Changes sensitivity: higher period = higher sensitivty.")
mode = input.string("Type A", "Signal mode", options = , group = "Mode")
use_ema_smoother = input.string("No", "Smooth source with EMA?", options = , group = "Source")
src_ema_period = input(3, "EMA Smoother period", group = "Source")
color_bars = input(true, "Color bars?", group = "Addons")
signals_view = input.string("All", "Signals to show", options = , group = "Signal's Addon")
signals_shape = input.string("Labels", "Signal's shape", options = , group = "Signal's Addon")
buy_col = input(color.rgb(0, 255, 8), "Buy colour", group = "Signal's Addon", inline = "BS")
sell_col = input(color.rgb(255, 0, 0), "Sell colour", group = "Signal's Addon", inline = "BS")
// Calculations
src := use_ema_smoother == "Yes" ? ta.ema(src, src_ema_period) : src // Source;
h = ta.highest(src, p) // Highest of src p-bars back;
l = ta.lowest(src, p) // Lowest of src p-bars back.
d = h - l
ls = "" // Tracker of last signal
m = (h + l) / 2 // Initial trend line;
m := bar_index > p ? m : m
atr = ta.atr(atr_p) // ATR;
epsilon = mult * atr // Epsilon is a mathematical variable used in many different theorems in order to simplify work with mathematical object. Here it used as sensitivity measure.
change_up = (mode == "Type B" ? ta.cross(src, m + epsilon) : ta.crossover(src, m + epsilon)) or src > m + epsilon // If price breaks trend line + epsilon (so called higher band), then it is time to update the value of a trend line;
change_down = (mode == "Type B" ? ta.cross(src, m - epsilon) : ta.crossunder(src, m - epsilon)) or src < m - epsilon // If price breaks trend line - epsilon (so called higher band), then it is time to update the value of a trend line.
sb = open < l + d / 8 and open >= l
ss = open > h - d / 8 and open <= h
strong_buy = sb or sb or sb or sb or sb
strong_sell = ss or ss or ss or ss or ss
m := (change_up or change_down) and m != m ? m : change_up ? m + epsilon : change_down ? m - epsilon : nz(m , m) // Updating the trend line.
ls := change_up ? "B" : change_down ? "S" : ls // Last signal. Helps avoid multiple labels in a row with the same signal;
colour = ls == "B" ? buy_col : sell_col // Colour of the trend line.
buy_shape = signals_shape == "Labels" ? shape.labelup : shape.triangleup
sell_shape = signals_shape == "Labels" ? shape.labeldown : shape.triangledown
// Plottings
// Signals with label shape
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Buy/Sell") and change_up and ls != "B" and not strong_buy, "Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = "BUY🚀", textcolor = color.white, force_overlay=true) // Plotting the BUY signal;
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Buy/Sell") and change_down and ls != "S" and not strong_sell, "Sell signal" , color = colour, style = sell_shape, size = size.normal, text = "SELL🐻", textcolor = color.white, force_overlay=true) // Plotting the SELL signal.
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Strong") and change_up and ls != "B" and strong_buy, "Strong Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = "STRONG", textcolor = color.white, force_overlay=true) // Plotting the STRONG BUY signal;
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Strong") and change_down and ls != "S" and strong_sell, "Strong Sell signal" , color = colour, style = sell_shape, size = size.normal, text = "STRONG", textcolor = color.white, force_overlay=true) // Plotting the STRONG SELL signal.
// Signal with arrow shape
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Buy/Sell") and change_up and ls != "B" and not strong_buy, "Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny, force_overlay=true) // Plotting the BUY signal;
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Buy/Sell") and change_down and ls != "S" and not strong_sell, "Sell signal" , color = colour, style = sell_shape, size = size.tiny, force_overlay=true) // Plotting the SELL signal.
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Strong") and change_up and ls != "B" and strong_buy, "Strong Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny, force_overlay=true) // Plotting the STRONG BUY signal;
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Strong") and change_down and ls != "S" and strong_sell, "Strong Sell signal" , color = colour, style = sell_shape, size = size.tiny, force_overlay=true) // Plotting the STRONG SELL signal.
barcolor(color_bars ? colour : na) // Bar coloring
// Alerts
matype = input.string(title='MA Type', defval='EMA', options= )
ma_len1 = input(title='Short EMA1 Length', defval=5)
ma_len2 = input(title='Long EMA1 Length', defval=7)
ma_len3 = input(title='Short EMA2 Length', defval=5)
ma_len4 = input(title='Long EMA2 Length', defval=34)
ma_len5 = input(title='Short EMA3 Length', defval=98)
ma_len6 = input(title='Long EMA3 Length', defval=45)
ma_len7 = input(title='Short EMA4 Length', defval=7)
ma_len8 = input(title='Long EMA4 Length', defval=11)
ma_len9 = input(title='Short EMA5 Length', defval=11)
ma_len10 = input(title='Long EMA5 Length', defval=15)
ma_offset = input(title='Offset', defval=0)
//res = input(title="Resolution", type=resolution, defval="240")
f_ma(malen) =>
float result = 0
if matype == 'EMA'
result := ta.ema(src, malen)
result
if matype == 'SMA'
result := ta.sma(src, malen)
result
result
htf_ma1 = f_ma(ma_len1)
htf_ma2 = f_ma(ma_len2)
htf_ma3 = f_ma(ma_len3)
htf_ma4 = f_ma(ma_len4)
htf_ma5 = f_ma(ma_len5)
htf_ma6 = f_ma(ma_len6)
htf_ma7 = f_ma(ma_len7)
htf_ma8 = f_ma(ma_len8)
htf_ma9 = f_ma(ma_len9)
htf_ma10 = f_ma(ma_len10)
//plot(out1, color=green, offset=ma_offset)
//plot(out2, color=red, offset=ma_offset)
//lengthshort = input(8, minval = 1, title = "Short EMA Length")
//lengthlong = input(200, minval = 2, title = "Long EMA Length")
//emacloudleading = input(50, minval = 0, title = "Leading Period For EMA Cloud")
//src = input(hl2, title = "Source")
showlong = input(false, title='Show Long Alerts')
showshort = input(false, title='Show Short Alerts')
showLine = input(false, title='Display EMA Line')
ema1 = input(true, title='Show EMA Cloud-1')
ema2 = input(true, title='Show EMA Cloud-2')
ema3 = input(true, title='Show EMA Cloud-3')
ema4 = input(true, title='Show EMA Cloud-4')
ema5 = input(true, title='Show EMA Cloud-5')
emacloudleading = input.int(0, minval=0, title='Leading Period For EMA Cloud')
mashort1 = htf_ma1
malong1 = htf_ma2
mashort2 = htf_ma3
malong2 = htf_ma4
mashort3 = htf_ma5
malong3 = htf_ma6
mashort4 = htf_ma7
malong4 = htf_ma8
mashort5 = htf_ma9
malong5 = htf_ma10
cloudcolour1 = mashort1 >= malong1 ? color.rgb(0, 255, 0) : color.rgb(255, 0, 0)
cloudcolour2 = mashort2 >= malong2 ? #4caf4f47 : #ff110047
cloudcolour4 = mashort4 >= malong4 ? #4caf4f52 : #f2364652
cloudcolour5 = mashort5 >= malong5 ? #33ff0026 : #ff000026
//03abc1
mashortcolor1 = mashort1 >= mashort1 ? color.olive : color.maroon
mashortcolor2 = mashort2 >= mashort2 ? color.olive : color.maroon
mashortcolor3 = mashort3 >= mashort3 ? color.olive : color.maroon
mashortcolor4 = mashort4 >= mashort4 ? color.olive : color.maroon
mashortcolor5 = mashort5 >= mashort5 ? color.olive : color.maroon
mashortline1 = plot(ema1 ? mashort1 : na, color=showLine ? mashortcolor1 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA1', force_overlay=true)
mashortline2 = plot(ema2 ? mashort2 : na, color=showLine ? mashortcolor2 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA2', force_overlay=true)
mashortline3 = plot(ema3 ? mashort3 : na, color=showLine ? mashortcolor3 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA3', force_overlay=true)
mashortline4 = plot(ema4 ? mashort4 : na, color=showLine ? mashortcolor4 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA4', force_overlay=true)
mashortline5 = plot(ema5 ? mashort5 : na, color=showLine ? mashortcolor5 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA5', force_overlay=true)
malongcolor1 = malong1 >= malong1 ? color.green : color.red
malongcolor2 = malong2 >= malong2 ? color.green : color.red
malongcolor3 = malong3 >= malong3 ? color.green : color.red
malongcolor4 = malong4 >= malong4 ? color.green : color.red
malongcolor5 = malong5 >= malong5 ? color.green : color.red
malongline1 = plot(ema1 ? malong1 : na, color=showLine ? malongcolor1 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA1', force_overlay=true)
malongline2 = plot(ema2 ? malong2 : na, color=showLine ? malongcolor2 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA2', force_overlay=true)
malongline3 = plot(ema3 ? malong3 : na, color=showLine ? malongcolor3 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA3', force_overlay=true)
malongline4 = plot(ema4 ? malong4 : na, color=showLine ? malongcolor4 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA4', force_overlay=true)
malongline5 = plot(ema5 ? malong5 : na, color=showLine ? malongcolor5 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA5', force_overlay=true)
fill(mashortline1, malongline1, color=cloudcolour1, title='MA Cloud1', transp=45)
fill(mashortline2, malongline2, color=cloudcolour2, title='MA Cloud2', transp=65)
fill(mashortline4, malongline4, color=cloudcolour4, title='MA Cloud4', transp=65)
fill(mashortline5, malongline5, color=cloudcolour5, title='MA Cloud5', transp=65)
leftBars = input(15, title='Left Bars ')
rightBars = input(15, title='Right Bars')
volumeThresh = input(20, title='Volume Threshold')
//
highUsePivot = fixnan(ta.pivothigh(leftBars, rightBars) )
lowUsePivot = fixnan(ta.pivotlow(leftBars, rightBars) )
r1 = plot(highUsePivot, color=ta.change(highUsePivot) ? na : #FF0000, linewidth=3, offset=-(rightBars + 1), title='Resistance', force_overlay=true)
s1 = plot(lowUsePivot, color=ta.change(lowUsePivot) ? na : #00ff0d, linewidth=3, offset=-(rightBars + 1), title='Support', force_overlay=true)
//Volume %
short = ta.ema(volume, 5)
long = ta.ema(volume, 10)
osc = 100 * (short - long) / long
//For bull / bear wicks
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © divudivu600
// Developer By ALCON ALGO
//telegram : @harmonicryptosignals
//@version = 5
//indicator(shorttitle='Oscillator Vision', title='Alcon Oscillator Vision', overlay=false)
n1 = input(10, 'Channel length')
n2 = input(21, 'Average length')
reaction_wt = input.int(defval=1, title='Reaction in change of direction', minval=1)
nsc = input.float(53, 'Levels About Buys', minval=0.0)
nsv = input.float(-53, 'Levels About Sells', maxval=-0.0)
Buy_sales = input(true, title='Only Smart Buy Reversal')
Sell_sales = input(true, title='Only Smart Sell Reversal')
Histogram = input(true, title='Show Histogarm')
//Trendx = input(false, title='Show Trendx')
barras = input(true, title='Divergence on chart(Bars)')
divregbull = input(true, title='Regular Divergence Bullish')
divregbear = input(true, title='Regular Divergence Bearish')
divhidbull = input(true, title='Show Divergence Hidden Bullish')
divhidbear = input(true, title='Show Divergence Hidden Bearish')
Tags = input(true, title='Show Divergence Lable')
amme = input(false, title='Activar media movil Extra para WT')
White = #FDFEFE
Black = #000000
Bearish = #e91e62
Bullish = #18e0ff
Strong_Bullish = #2962ff
Bullish2 = #00bedc
Blue1 = #00D4FF
Blue2 = #009BBA
orange = #FF8B00
yellow = #FFFB00
LEZ = #0066FF
purp = #FF33CC
// Colouring
tf(_res, _exp, gaps_on) =>
gaps_on == 0 ? request.security(syminfo.tickerid, _res, _exp) : gaps_on == true ? request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_on, barmerge.lookahead_off) : request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_off, barmerge.lookahead_off)
ha_htf = ''
show_ha = input.bool(true, "Show HA Plot/ Market Bias", group="HA Market Bias")
ha_len = input(7, 'Period', group="HA Market Bias")
ha_len2 = input(10, 'Smoothing', group="HA Market Bias")
// Calculations {
o = ta.ema(open, ha_len)
c = ta.ema(close, ha_len)
h1 = ta.ema(high, ha_len)
l1 = ta.ema(low, ha_len)
haclose = tf(ha_htf, (o + h1 + l1 + c) / 4, 0)
xhaopen = tf(ha_htf, (o + c) / 2, 0)
haopen = na(xhaopen ) ? (o + c) / 2 : (xhaopen + haclose ) / 2
hahigh = math.max(h1, math.max(haopen, haclose))
halow = math.min(l1, math.min(haopen, haclose))
o2 = tf(ha_htf, ta.ema(haopen, ha_len2), 0)
c2 = tf(ha_htf, ta.ema(haclose, ha_len2), 0)
h2 = tf(ha_htf, ta.ema(hahigh, ha_len2), 0)
l2 = tf(ha_htf, ta.ema(halow, ha_len2), 0)
ha_avg = (h2 + l2) / 2
// }
osc_len = 8
osc_bias = 100 *(c2 - o2)
osc_smooth = ta.ema(osc_bias, osc_len)
sigcolor =
(osc_bias > 0) and (osc_bias >= osc_smooth) ? color.new(Bullish, 35) :
(osc_bias > 0) and (osc_bias < osc_smooth) ? color.new(Bullish2, 75) :
(osc_bias < 0) and (osc_bias <= osc_smooth) ? color.new(Bearish, 35) :
(osc_bias < 0) and (osc_bias > osc_smooth) ? color.new(Bearish, 75) :
na
// }
nsc1 = nsc
nsc2 = nsc + 5
nsc3 = nsc + 10
nsc4 = nsc + 15
nsc5 = nsc + 20
nsc6 = nsc + 25
nsc7 = nsc + 30
nsc8 = nsc + 35
nsv1 = nsv - 5
nsv2 = nsv - 10
nsv3 = nsv - 15
nsv4 = nsv - 20
nsv5 = nsv - 25
nsv6 = nsv - 30
nsv7 = nsv - 35
nsv8 = nsv - 40
ap = hlc3
esa = ta.ema(ap, n1)
di = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * di)
tci = ta.ema(ci, n2)
wt1 = tci
wt2 = ta.sma(wt1, 4)
direction = 0
direction := ta.rising(wt1, reaction_wt) ? 1 : ta.falling(wt1, reaction_wt) ? -1 : nz(direction )
Change_of_direction = ta.change(direction, 1)
pcol = direction > 0 ? Strong_Bullish : direction < 0 ? Bearish : na
obLevel1 = input(60, 'Over Bought Level 1')
obLevel2 = input(53, 'Over Bought Level 2')
osLevel1 = input(-60, 'Over Sold Level 1')
osLevel2 = input(-53, 'Over Sold Level 2')
rsi = ta.rsi(close,14)
color greengrad = color.from_gradient(rsi, 10, 90, #00ddff, #007d91)
color redgrad = color.from_gradient(rsi, 10, 90, #8b002e, #e91e62)
ob1 = plot(obLevel1, color=#e91e6301)
os1 = plot(osLevel1, color=#00dbff01)
ob2 = plot(obLevel2, color=#e91e6301)
os2 = plot(osLevel2, color=#00dbff01)
p1 = plot(wt1, color=#00dbff01)
p2 = plot(wt2, color=#e91e6301)
plot(wt1 - wt2, color=wt2 - wt1 > 0 ? redgrad : greengrad, style=plot.style_columns)
// fill(p1,p2,color = wt2 - wt1 > 0 ? redgrad: greengrad) // old
fill(p1,p2,color = sigcolor) // new
fill(ob1,ob2,color = #e91e6350)
fill(os1,os2,color = #00dbff50)
midpoint = (nsc + nsv) / 2
ploff = (nsc - midpoint) / 8
BullSale = ta.crossunder(wt1, wt2) and wt1 >= nsc and Buy_sales == true
BearSale = ta.crossunder(wt1, wt2) and Buy_sales == false
Bullishh = ta.crossover(wt1, wt2) and wt1 <= nsv and Sell_sales == true
Bearishh = ta.crossover(wt1, wt2) and Sell_sales == false
plot(BullSale ? wt2 + ploff : na, style=plot.style_circles, color=color.new(Bearish, 0), linewidth=6, title='BuysG')
plot(BearSale ? wt2 + ploff : na, style=plot.style_circles, color=color.new(Bearish, 0), linewidth=6, title='SellsG')
plot(Bullishh ? wt2 - ploff : na, style=plot.style_circles, color=color.new(Strong_Bullish, 0), linewidth=6, title='Buys On Sale')
plot(Bearishh ? wt2 - ploff : na, style=plot.style_circles, color=color.new(Strong_Bullish, 0), linewidth=6, title='Sells on Sale')
//plot(Histogram ? wt1 - wt2 : na, style=plot.style_area, color=color.new(Blue2, 80), linewidth=1, title='Histograma')
//barcolor(barras == true and Bullishh == true or barras == true and Bearishh == true ? Bullish2 : na)
//barcolor(barras == true and BullSale == true or barras == true and BearSale == true ? Bearish : na)
/////// Divergence ///////
f_top_fractal(_src) =>
_src < _src and _src < _src and _src > _src and _src > _src
f_bot_fractal(_src) =>
_src > _src and _src > _src and _src < _src and _src < _src
f_fractalize(_src) =>
f_top_fractal(_src) ? 1 : f_bot_fractal(_src) ? -1 : 0
fractal_top1 = f_fractalize(wt1) > 0 ? wt1 : na
fractal_bot1 = f_fractalize(wt1) < 0 ? wt1 : na
high_prev1 = ta.valuewhen(fractal_top1, wt1 , 0)
high_price1 = ta.valuewhen(fractal_top1, high , 0)
low_prev1 = ta.valuewhen(fractal_bot1, wt1 , 0)
low_price1 = ta.valuewhen(fractal_bot1, low , 0)
regular_bearish_div1 = fractal_top1 and high > high_price1 and wt1 < high_prev1 and divregbear == true
hidden_bearish_div1 = fractal_top1 and high < high_price1 and wt1 > high_prev1 and divhidbear == true
regular_bullish_div1 = fractal_bot1 and low < low_price1 and wt1 > low_prev1 and divregbull == true
hidden_bullish_div1 = fractal_bot1 and low > low_price1 and wt1 < low_prev1 and divhidbull == true
col1 = regular_bearish_div1 ? Bearish : hidden_bearish_div1 ? Bearish : na
col2 = regular_bullish_div1 ? Strong_Bullish : hidden_bullish_div1 ? Strong_Bullish : na
//plot(title='Divergence Bearish', series=fractal_top1 ? wt1 : na, color=col1, linewidth=2, transp=0)
//plot(title='Divergence Bullish', series=fractal_bot1 ? wt1 : na, color=col2, linewidth=2, transp=0)
plotshape(regular_bearish_div1 and divregbear and Tags ? wt1 + ploff * 1 : na, title='Divergence Regular Bearish', text='Bear', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(Bearish, 0), textcolor=color.new(White, 0))
plotshape(hidden_bearish_div1 and divhidbear and Tags ? wt1 + ploff * 1 : na, title='Divergence Hidden Bearish', text='H Bear', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(Bearish, 0), textcolor=color.new(White, 0))
plotshape(regular_bullish_div1 and divregbull and Tags ? wt1 - ploff * 1 : na, title='Divergence Regular Bullish', text='Bull', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(Strong_Bullish, 0), textcolor=color.new(White, 0))
plotshape(hidden_bullish_div1 and divhidbull and Tags ? wt1 - ploff * 1 : na, title='Divergence Hidden Bullish', text='H Bull', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(Strong_Bullish, 0), textcolor=color.new(White, 0))
/////// Unfazed Alerts //////
////////////////////////////////////////////////-MISTERMOTA MOMENTUM-/////////////////////////////////////
source = input(close)
responsiveness = math.max(0.00001, input.float(0.9, minval=0.0, maxval=1.0))
periodd = input(50)
sd = ta.stdev(source, 50) * responsiveness
var worm = source
diff = source - worm
delta = math.abs(diff) > sd ? math.sign(diff) * sd : diff
worm += delta
ma = ta.sma(source, periodd)
raw_momentum = (worm - ma) / worm
current_med = raw_momentum
min_med = ta.lowest(current_med, periodd)
max_med = ta.highest(current_med, periodd)
temp = (current_med - min_med) / (max_med - min_med)
value = 0.5 * 2
value *= (temp - .5 + .5 * nz(value ))
value := value > .9999 ? .9999 : value
value := value < -0.9999 ? -0.9999 : value
temp2 = (1 + value) / (1 - value)
momentum = .25 * math.log(temp2)
momentum += .5 * nz(momentum )
//momentum := raw_momentum
signal = nz(momentum )
trend = math.abs(momentum) <= math.abs(momentum )
////////////////////////////////////////////////-GROWING/FAILING-//////////////////////////////////////////
length = input.int(title="MOM Period", minval=1, defval=14, group="MOM Settings")
srcc = input(title="MOM Source", defval=hlc3, group="MOM Settings")
txtcol_grow_above = input(#1a7b24, "Above Grow", group="MOM Settings", inline="Above")
txtcol_fall_above = input(#672ec5, "Fall", group="MOM Settings", inline="Above")
txtcol_grow_below = input(#F37121, "Below Grow", group="MOM Settings", inline="Below")
txtcol_fall_below = input(#be0606, "Fall", group="MOM Settings", inline="Below")
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options= , group="MA Settings")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="MA Settings")
smoothingLine = ma(delta, smoothingLength, typeMA)
deltaText=(delta > 0 ? (delta > delta ? " MOM > 0 and ▲ Growing, MOM = " + str.tostring(delta , "#.##") :" MOM > 0 and ▼ Falling, MOM = " + str.tostring(delta , "#.##") ) : (delta > delta ? "MOM < 0 and ▲ Growing, MOM = " + str.tostring(delta , "#.##"): " MOM < 0 and ▼ Falling, MOM = " + str.tostring(delta , "#.##")))
oneDay = 24 * 60 * 60 * 1000
barsAhead = 3
tmf = if timeframe.ismonthly
barsAhead * oneDay * 30
else if timeframe.isweekly
barsAhead * oneDay * 7
else if timeframe.isdaily
barsAhead * oneDay
else if timeframe.isminutes
barsAhead * oneDay * timeframe.multiplier / 1440
else if timeframe.isseconds
barsAhead * oneDay * timeframe.multiplier / 86400
else
0
angle(_src) =>
rad2degree = 180 / 3.14159265359 //pi
ang = rad2degree * math.atan((_src - _src ) / ta.atr(14))
ang
emae = angle(smoothingLine)
emaanglestat = emae > emae ? "▲ Growing": "▼ Falling"
deltaTextxxx = "MOM MA/ATR angle value is " + str.tostring(emae, "#.##") + "° and is " + emaanglestat
deltacolorxxx = emae >0 and emae >=emae ? txtcol_grow_above : txtcol_fall_below
// Label
label lpt1 = label.new(time, -30, text=deltaTextxxx , color=deltacolorxxx, xloc=xloc.bar_time, style=label.style_label_left, textcolor=color.white, textalign=text.align_left, size=size.normal)
label.set_x(lpt1, label.get_x(lpt1) + tmf)
label.delete(lpt1 )
txtdeltaColors = (delta > 50 ? (delta < delta ? txtcol_grow_above : txtcol_fall_above) : (delta < delta ? txtcol_grow_below : txtcol_fall_below))
label ldelta1 = label.new(time, 30, text=deltaText , color=txtdeltaColors, xloc=xloc.bar_time, style=label.style_label_left, textcolor=color.white, textalign=text.align_left, size=size.normal)
label.set_x(ldelta1, label.get_x(ldelta1) + tmf)
label.delete(ldelta1 )
//...................../´¯¯/)
//...................,/¯.../
//.................../..../
//.............../´¯/'..'/´¯¯`·¸
//.........../'/.../..../....../¨¯\
//..........('(....´...´... ¯~/'..')
//...........\..............'...../
//............\....\.........._.·´
//.............\..............(
//..............\..............\
//----
//---------
Estrategia Scalping Oro (XAU/USD) 5M (Compra y Venta)Gold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minuteGold five minute
OBV & AD Oscillators with Dual Smoothing OptionsOn Balance Volume and Accumulation/Distribution
Overlaid into 1 and then some,
Now it is an oscillator!
3 customizable moving average types
- Ehlers Deviation Scaled Moving Average
- Volatility Dynamic Moving Average
- Simple Moving Average
Each with customizable periods
And with the ability to overlay a second set too
Default Settings have a longer period MA of 377 using Ehlers DSMA to better capture the standard view of OBV and A/D.
An extra overlay of a shorter period using a Volatility DMA uses Average True Range with its own custom settings, seeks to act more as an RSI
forexroboot Hunter Premiumthis indicator trade on crypto and forex
trade on any time frame
enjoyed
inst: Forexroboot
ما
forexroboot
WT Screener Dashboard//@version=5
indicator("WT Screener Dashboard", overlay=true)
// === Fonksiyon: WT hesaplama ===
getWT(sym) =>
src = request.security(sym, "1h", hlc3)
esa = ta.ema(src, 10)
d = ta.ema(math.abs(src - esa), 10)
ci = (src - esa) / (0.015 * d)
tci = ta.ema(ci, 21)
wt1 = tci
wt2 = ta.sma(wt1, 4)
// === Fonksiyon: Tabloya satır yazma ===
writeRow(tbl, sym, w1, w2, row) =>
bull = w1 > w2
bear = w1 < w2
signal = bull ? "✅ AL" : bear ? "❌ SAT" : "-"
table.cell(tbl, 0, row, sym, text_color=color.white)
table.cell(tbl, 1, row, bull ? "✓" : "", text_color=color.green)
table.cell(tbl, 2, row, bear ? "✓" : "", text_color=color.red)
table.cell(tbl, 3, row, signal, text_color=color.white)
// === Coin verileri (WT) ===
= getWT("BINANCE:BTCUSDT")
= getWT("BINANCE:ETHUSDT")
= getWT("BINANCE:SOLUSDT")
= getWT("BINANCE:XRPUSDT")
= getWT("BINANCE:AVAXUSDT")
= getWT("BINANCE:BNBUSDT")
= getWT("BINANCE:DOGEUSDT")
= getWT("BINANCE:MATICUSDT")
= getWT("BINANCE:DOTUSDT")
= getWT("BINANCE:ADAUSDT")
// === Tablo tanımı ===
var table wtTable = table.new(position.top_right, 4, 11, border_width=1)
if bar_index % 10 == 0
table.cell(wtTable, 0, 0, "COIN", text_color=color.white, bgcolor=color.blue)
table.cell(wtTable, 1, 0, "WT1 > WT2", text_color=color.white, bgcolor=color.green)
table.cell(wtTable, 2, 0, "WT1 < WT2", text_color=color.white, bgcolor=color.red)
table.cell(wtTable, 3, 0, "SİNYAL", text_color=color.white, bgcolor=color.gray)
writeRow(wtTable, "BTC", btc1, btc2, 1)
writeRow(wtTable, "ETH", eth1, eth2, 2)
writeRow(wtTable, "SOL", sol1, sol2, 3)
writeRow(wtTable, "XRP", xrp1, xrp2, 4)
writeRow(wtTable, "AVAX", avax1, avax2, 5)
writeRow(wtTable, "BNB", bnb1, bnb2, 6)
writeRow(wtTable, "DOGE", doge1, doge2, 7)
writeRow(wtTable, "MATIC", matic1, matic2, 8)
writeRow(wtTable, "DOT", dot1, dot2, 9)
writeRow(wtTable, "ADA", ada1, ada2, 10)
Advanced Structure & Order BlocksBelow is a Pine Script (version 6) that combines advanced structure mapping (identifying market structure through swing highs/lows and break of structure) with order block detection (bullish and bearish). The script plots swing points, marks bullish and bearish order blocks, and identifies break of structure (BOS) for trend direction. It’s designed to be customizable and clear for traders analyzing market structure and liquidity zones.
```pine
//@version=6
indicator("Advanced Structure & Order Blocks", overlay=true, max_boxes_count=100, max_lines_count=100)
// Inputs
lookback = input.int(5, "Swing Lookback", minval=1, step=1, group="Structure Settings")
ob_sensitivity = input.float(0.5, "Order Block Sensitivity", minval=0.1, maxval=2, step=0.1, group="Order Block Settings")
max_ob_display = input.int(10, "Max Order Blocks Displayed", minval=1, maxval=50, group="Order Block Settings")
show_bos = input.bool(true, "Show Break of Structure", group="Structure Settings")
// Swing High/Low Detection
swing_high = ta.pivothigh(high, lookback, lookback)
swing_low = ta.pivotlow(low, lookback, lookback)
// Store swing points
var float last_high = 0
var float last_low = 0
var int last_high_idx = 0
var int last_low_idx = 0
if swing_high
last_high := swing_high
last_high_idx := bar_index
if swing_low
last_low := swing_low
last_low_idx := bar_index
// Plot swing points
plotshape(swing_high, style=shape.triangleup, location=location.abovebar, color=color.red, size=size.small, offset=-lookback)
plotshape(swing_low, style=shape.triangledown, location=location.belowbar, color=color.green, size=size.small, offset=-lookback)
// Market Structure (Bullish/Bearish)
var bool is_bullish = true
var float last_structure_high = high
var float last_structure_low = low
if close > last_high and is_bullish == false
is_bullish := true
last_structure_low := last_low
if close < last_low and is_bullish
is_bullish := false
last_structure_high := last_high
// Break of Structure (BOS)
var float bos_level = 0
var color bos_color = na
if show_bos
if is_bullish and close > last_structure_high
bos_level := last_structure_high
bos_color := color.green
last_structure_high := high
if not is_bullish and close < last_structure_low
bos_level := last_structure_low
bos_color := color.red
last_structure_low := low
plotshape(bos_level, style=shape.labeldown, location=location.absolute, color=bos_color, size=size.tiny, text="BOS", textcolor=color.white)
// Order Block Detection
var int ob_count = 0
bullish_ob() =>
// Bullish OB: Price rejects from a low, forming a demand zone
close < open and close > open and close > high * (1 + ob_sensitivity / 100)
bearish_ob() =>
// Bearish OB: Price rejects from a high, forming a supply zone
close > open and close < open and close < low * (1 - ob_sensitivity / 100)
// Plot Order Blocks
if bullish_ob() and ob_count < max_ob_display
box.new(left=bar_index , top=high , right=bar_index, bottom=low , bgcolor=color.new(color.green, 80), border_color=color.green)
ob_count := ob_count + 1
if bearish_ob() and ob_count < max_ob_display
box.new(left=bar_index , top=high , right=bar_index, bottom=low , bgcolor=color.new(color.red, 80), border_color=color.red)
ob_count := ob_count + 1
// Reset OB count when structure changes
if is_bullish != is_bullish
ob_count := 0
// Plot current trend
var label trend_label = na
label.delete(trend_label )
trend_label := label.new(
bar_index, high, text=is_bullish ? "Bullish" : "Bearish",
color=is_bullish ? color.green : color.red, textcolor=color.white, style=label.style_label_down
)
```
### Explanation
1. **Structure Mapping**:
- Uses `ta.pivothigh` and `ta.pivotlow` to detect swing highs/lows based on a user-defined lookback period.
- Tracks market trend (bullish/bearish) by comparing price action against previous swing points.
- Identifies Break of Structure (BOS) when price breaks a significant high (in a bearish trend) or low (in a bullish trend), plotted as a labeled marker.
2. **Order Blocks**:
- Detects bullish order blocks (demand zones) where a bearish candle is followed by a strong bullish candle, indicating institutional buying.
- Detects bearish order blocks (supply zones) where a bullish candle is followed by a strong bearish candle, indicating institutional selling.
- Sensitivity is adjustable to fine-tune OB detection.
- Boxes are drawn around order blocks, limited by a user-defined maximum to avoid clutter.
3. **Features**:
- Visualizes swing points with triangles (red for highs, green for lows).
- Displays BOS events with labels for trend confirmation.
- Shows trend direction (bullish/bearish) with a dynamic label.
- Caps the number of displayed order blocks for clarity.
- Resets OB count on structure change to prioritize recent zones.
### Customization
- **Swing Lookback**: Adjusts how far back the script looks for swing points (higher values for longer-term structure).
- **OB Sensitivity**: Controls the strength required for OB detection (lower values for more OBs, higher for stricter).
- **Max OB Display**: Limits how many OBs are shown to keep the chart clean.
- **Show BOS**: Toggle BOS labels on/off.
### Notes
- The script runs on any timeframe, but higher timeframes (e.g., 4H, Daily) are better for significant OBs and structure.
- Order blocks are historical and may repaint slightly until confirmed by structure changes.
- For advanced use, you could add alerts for BOS or OB formation by using `alertcondition()`.
This code provides a robust foundation for structure-based trading with order blocks. You can extend it further by adding fair value gaps (FVG) or liquidity sweeps if needed. Let me know if you want to dive deeper into any part!
M2 Global Liquidity AdjustedM2 Global Adjusted by @ivanpratx is a custom indicator designed to track aggregated global liquidity using M2 money supply data from the world's major economies. It visualizes both the current state of global liquidity and a forward-shifted version (3 months ahead) to help anticipate market movements.
This tool is particularly valuable for analyzing Bitcoin due to its strong correlation with global liquidity trends in recent years. By observing the forward-shifted M2 line, traders and analysts can identify potential macro-driven inflection points before they occur in price action, offering a leading perspective on market cycles.
The indicator combines M2 data from the US, China, Eurozone, Japan, and the UK—converted to a common base—to create a unified global liquidity view. It serves as a practical, high-level signal for assessing risk appetite, market expansion or contraction phases, and major turning points in crypto and broader asset classes.
Relative Strength IndexAdjusted RSI indicator with customizable colors, allowing you to easily change the appearance of bullish and bearish divergences. This version is designed for traders who prefer a more neutral or minimalistic color palette, improving visual clarity without losing key signals. Ideal for cleaner charts and better integration with personalized themes.
SPY Hunter SetupBuilt for traders who want to capture high-probability momentum moves on SPY using clean technical logic.
This strategy was developed and refined to help filter out noise and highlight only the best potential trade setups by combining multiple proven indicators into a cohesive system. The goal is to reduce false signals, limit overtrading, and increase confidence in your entries.
Range 15:30 by Billy RayQuesto indicatore calcola il range (massimo e minimo) tra le ore **15:30** e le ore **15:45** (UTC), basandosi su candele di timeframe **5 minuti**.
Fornisce una visione chiara dei livelli chiave per completare analisi o strategie di trading che si basano sui movimenti iniziali della sessione.
### Funzionalità principali:
1. **Calcolo del range massimo e minimo**:
- - - - - - -
This indicator calculates the range (high and low) between **15:30** and **15:45** (UTC), based on **5-minute timeframe candles**.
It provides a clear visualization of key levels to support analysis or trading strategies based on the initial session movements.
### Main Features:
1. **High and Low Range Calculation**:
- Computes the high and low prices during the time period between **15:30** and **15:45** (UTC).
- Uses **5-minute timeframe candles**, regardless of the timeframe selected on the chart.
2. **Horizontal Lines for High and Low**:
- Draws two horizontal lines: a **green line** for the high of the range and a **red line** for the low of the range.
- The lines are limited to **10 candles** in length to ensure clarity on the chart.
### Usage:
- Perfect for traders analyzing price behavior during the initial phase of the session.
- Compatible with intraday strategies that require dynamic support and resistance levels calculated within specific time periods.
### Note:
- Ensure the chart data fully covers the **15:30-15:45 UTC** time range.
- You can easily customize the length of the lines by modifying the `10` value in the `line.new()` function if needed.
**Author**:
**Version**: 1.0
IFG MASTER SIGNALSignal for people to test various trend pattern analysis techniques and research. This is for research purposes only. Not financial advice.
MACD with Signals. Non-editable version. NACHOMIXCRYPTODescription of the "MACD with Signals. Non-editable version. NACHOMIXCRYPTO" Indicator
The "MACD with Signals. Non-editable version. NACHOMIXCRYPTO"
is a technical analysis indicator built in Pine Script (version 6) for TradingView. It is based on the traditional Moving Average Convergence Divergence (MACD) indicator but includes additional features such as signal labels on the main chart and two informational tables displayed in a separate window below the price chart (overlay=false). This version is designed to be fully non-editable, meaning users cannot modify its core parameters or visual settings through the input menu. Below is a detailed breakdown of its components, functionality, and purpose:
1. Purpose
This indicator aims to assist traders in identifying potential buy ("LONG") and sell ("SHORT") opportunities by analyzing crossovers between the MACD line and the signal line. It enhances the standard MACD by:
Labeling signals directly on the price chart.
Filtering signals as "TRUE" or "FALSE" based on their position relative to the zero line.
Predicting possible crossovers within the next 4 bars.
Displaying current and predicted signals in two separate tables.
The "non-editable" nature ensures that the indicator's settings (MACD lengths and source) remain fixed and hidden from users, making it a standardized tool for public use without customization options.
2. Components
Fixed Parameters
Fast EMA Length: Set to a fixed value (not visible or editable), representing the shorter-term exponential moving average (EMA).
Slow EMA Length: Set to a fixed value (not visible or editable), representing the longer-term EMA.
Signal Line Length: Set to a fixed value (not visible or editable), determining the smoothing period for the signal line.
MACD Source: Fixed to the closing price (close), not visible or editable in the input menu.
These values are embedded in the code and cannot be altered by users, ensuring consistency in how the MACD is calculated.
Informative Message
A static message appears in the input menu: "This is the public version that does not allow edits or signal modifications." This informs users that no customization is available.
MACD Calculations
MACD Line (macdLine): The difference between the fast EMA and slow EMA.
Signal Line (signalLine): An EMA of the MACD line, smoothed over the fixed signal line length.
Histogram (histogram): The difference between the MACD line and the signal line, visualized as columns.
Zero Line
A horizontal line at 0 (zeroLine) serves as a reference point to distinguish bullish (above 0) and bearish (below 0) conditions.
Slope Calculations
MACD Slope (macdSlope): The change in the MACD line from the previous bar.
Signal Slope (signalSlope): The change in the signal line from the previous bar.
These slopes are used to predict potential crossovers.
Crossover Prediction
Next 4 Bars Prediction (crossInNext4Bars): Estimates if the MACD line and signal line will cross within the next 4 bars based on their current values and slopes.
Signal Conditions
Buy Signal (longCondition): Triggered when the MACD line crosses above the signal line (ta.crossover).
Sell Signal (shortCondition): Triggered when the MACD line crosses below the signal line (ta.crossunder).
Tables
Current Signal Table: Positioned at the bottom-right corner with a blue border, displaying the active signal.
Next Signal Table: Positioned at the top-right corner with an orange border, showing the predicted signal.
Labels
Labels appear on the main price chart at the price level (yloc.price) with fixed styles and colors:
"LONG": Green background, white text, upward arrow style (label.style_label_up).
"SHORT": Red background, white text, downward arrow style (label.style_label_down).
"FALSE.LONG": Aqua background, white text, upward arrow style.
"FALSE.SHORT": Fuchsia background, white text, downward arrow style.
3. Functionality
MACD Calculation:
The indicator calculates the MACD using the fixed fast EMA, slow EMA, and signal line lengths applied to the closing price.
Signal Generation:
Buy Signal ("LONG" or "FALSE.LONG"):
If the MACD line crosses above the signal line:
"LONG" if the MACD line is above the zero line (valid bullish signal).
"FALSE.LONG" if below the zero line (potentially misleading).
Sell Signal ("SHORT" or "FALSE.SHORT"):
If the MACD line crosses below the signal line:
"SHORT" if the MACD line is below the zero line (valid bearish signal).
"FALSE.SHORT" if above the zero line (potentially misleading).
These signals are displayed as labels on the price chart and in the current signal table.
Crossover Prediction:
The indicator analyzes the slopes of the MACD and signal lines to predict if a crossover is likely within 4 bars:
"POSSIBLE: LONG" if the MACD line is trending upward relative to the signal line.
"POSSIBLE: SHORT" if trending downward.
This prediction is shown in the next signal table.
Visualization:
Separate Window:
Histogram: Columns with dynamic colors (dark green/light green above zero, dark red/light red below zero) based on value and trend.
MACD Line: Green line with a thickness of 2.
Signal Line: Red line with a thickness of 2.
Zero Line: Yellow horizontal line at 0.
Tables: Current signal (bottom-right, blue frame) and next signal (top-right, orange frame) with white text and background colors matching the signal type.
Main Chart: Labels indicating "LONG", "SHORT", "FALSE.LONG", or "FALSE.SHORT" at the price level of the triggering bar.
4. Visual Output
Histogram: Green above the zero line, red below, with shades varying based on whether the histogram is increasing or decreasing.
Lines: Green MACD line, red signal line, and yellow zero line.
Labels: Fixed colors and styles on the price chart.
Tables:
Current signal table: Green for "LONG", red for "SHORT", aqua for "FALSE LONG", gray for "NO SIGNAL".
Next signal table: Green for "POSSIBLE: LONG", red for "POSSIBLE: SHORT", gray for "NO SIGNAL".
5. Usage
Target Audience: Traders looking for a simple, pre-configured MACD-based tool to identify entry and exit points without needing to adjust settings.
Trading Style: Suitable for scalping or swing trading, with the added benefit of crossover predictions for proactive decision-making.
Non-editable Design: The fixed parameters and lack of customization ensure consistent behavior across all users, making it ideal for public distribution.
6. Limitations
No Customization: Users cannot adjust MACD lengths, source, colors, or label styles, limiting flexibility.
Fixed Source: Relies solely on closing prices, which may not suit all trading strategies.
Prediction Accuracy: The 4-bar crossover prediction depends on current trends and may not always be reliable in choppy markets.
False Signals: While filtered by the zero line, false signals can still occur in sideways markets.
7. Input Menu
The only visible element in the input menu is the "Information" field with the message: "This is the public version that does not allow edits or signal modifications." No other settings are exposed or adjustable.
In summary, the "MACD with Signals. Non-editable version. NACHOMIXCRYPTO" is a locked-down, user-friendly version of a MACD indicator tailored for public use. It provides clear buy/sell signals, predictive insights, and visual aids through labels and tables, all while maintaining a standardized, non-customizable configuration for simplicity and consistency.
Mongoose Yield Spread Dashboard v5 – Labeled, Alerted, ReadableCurveGuard: Mongoose Edition
Track the macro tide before it turns.
This tool visualizes the three most-watched U.S. Treasury yield curve spreads:
2s10s (10Y - 2Y)
5s30s (30Y - 5Y)
3M10Y (10Y - 3M)
Each spread is plotted with dynamic color logic, inversion alerts, and floating labels. Background shading highlights historical inversion zones to help spot macro regime shifts in real time.
✅ Alert-ready
✅ Dark mode optimized
✅ Floating labels
✅ Clean layout for fast macro insight
📌 For educational and informational purposes only.
This script does not provide financial advice or trade recommendations.
DI+/- Cross Strategy with ATR SL and 2% TPDI+/- Cross Strategy with ATR Stop Loss and 2% Take Profit
📝 Script Description for Publishing:
This strategy is based on the directional movement of the market using the Average Directional Index (ADX) components — DI+ and DI- — to generate entry signals, with clearly defined risk and reward targets using ATR-based Stop Loss and Fixed Percentage Take Profit.
🔍 How it works:
Buy Signal: When DI+ crosses above 40, signaling strong bullish momentum.
Sell Signal: When DI- crosses above 40, indicating strong bearish momentum.
Stop Loss: Dynamically calculated using ATR × 1.5, to account for market volatility.
Take Profit: Fixed at 2% above/below the entry price, for consistent reward targeting.
🧠 Why it’s useful:
Combines momentum breakout logic with volatility-based risk management.
Works well on trending assets, especially when combined with higher timeframe filters.
Clean BUY and SELL visual labels make it easy to interpret and backtest.
✅ Tips for Use:
Use on assets with clear trends (e.g., major forex pairs, trending stocks, crypto).
Best on 30m – 4H timeframes, but can be customized.
Consider combining with other filters (e.g., EMA trend direction or Bollinger Bands) for even better accuracy.
Average Body RangeThe Average Body Range (ABR) indicator calculates the average size of a candle's real body over a specified period. Unlike the traditional Average Daily Range (ADR), which measures the full range from high to low, the ABR focuses solely on the absolute difference between the open and close of each bar. This provides insight into market momentum and trading activity by reflecting how much price is actually moving from open to close , not just in total.
This indicator is especially useful for identifying:
Periods of strong directional movement (larger body sizes)
Low-volatility or indecisive markets (smaller body sizes)
Changes in trend conviction or momentum
Customization:
Length: Number of bars used to compute the average (default: 14)
Use ABR to enhance your understanding of price behavior and better time entries or exits based on market strength.
FT-RSISummary of the Custom RSI Indicator Script (For Futu Niuniu Platform):
This Pine Script code implements a triple-period RSI indicator with horizontal reference lines (70, 50, 30) for technical analysis on the Futu Niuniu trading platform.
Key Features:
Multi-period RSI Calculation:
Computes three RSI values using 9, 14, and 22-period lengths to capture short-term, standard, and smoothed momentum signals.
Utilizes the Relative Moving Average (RMA) method for RSI calculation (ta.rma function).
Horizontal Reference Bands:
Upper Band (70): Red dotted line (semi-transparent) to identify overbought conditions.
Middle Band (50): Green dotted line as the neutral equilibrium level.
Lower Band (30): Blue dotted line (semi-transparent) to highlight oversold zones.
Visual Customization:
Distinct colors for each RSI line:
RSI (9): Orange (#F79A00)
RSI (14): Green (#49B50D)
RSI (22): Blue (#5188FF)
All lines have a thickness of 2 pixels for clear visibility.
Platform Compatibility:
This script is designed for Futu Niuniu’s charting system, leveraging Pine Script syntax adaptations supported by the platform. The horizontal bands and multi-period RSI logic help traders analyze trend strength and potential reversal points efficiently.
Note: Ensure Futu Niuniu’s scripting environment supports ta.rma and hline functions for proper execution.
ATR Bands Unlock Volatility Insights with ATR Bands Indicator
Ever wondered how market volatility can shape your trades?
The Average True Range (ATR) is a powerful tool, and I've created a TradingView indicator that makes it even easier to visualize.
This indicator plots ATR bands directly on your price chart, giving you a dynamic view of potential price movement.
Key features:
Customizable price source: Use close, high, low, HL2, HLC3, or OHLC4 prices.
Adjustable ATR multiplier: Control the width of the bands to suit your trading style.
Visual clarity: Clear upper and lower bands help identify potential support and resistance areas.
See the code here and give it a try! #TradingView #PineScript #TechnicalAnalysis #ATR #Volatility #tradingindicator #stockmarket #crypto #finance
Visual suggestions:
A chart screenshot showing the ATR bands on a popular stock or crypto chart.
A GIF demonstrating how the bands expand and contract with price volatility.
An image highlighting the key features of the indicator (customizable inputs, etc.).
Long Short Momentum with Signals
Long and Short momentum
WHEN SHORT MOMENTUM CHANGES 2.0 POINTS and long term changes 5 points on day basis write A for Bullish and B for Bearish on Main Price chart
WHEN SHORT MOMENTUM CHANGES .30 per hour POINTS and long term changes 1 points on 1 hour basis. Put a green dot for Bull and red for bear in short term and for long termRespectively on price chart
PMO + Daily SMA(55)PMO + Daily SMA(55)
This script plots the Price Momentum Oscillator (PMO) using the classic DecisionPoint methodology, along with its signal line and the 55-period Simple Moving Average (SMA) of the daily PMO.
PMO is a smoothed momentum indicator that measures the rate of change and helps identify trend direction and strength. The signal line is an EMA of the PMO, commonly used for crossover signals.
The 55-period SMA of the daily PMO is added as a longer-term trend filter. It remains based on daily data, even when applied to intraday charts, making it useful for aligning lower timeframe trades with higher timeframe momentum.
Ideal for swing and position traders looking to combine short-term momentum with broader trend context.
EMA+EMA+ (Golden & Death Cross Visualizer)
Enhance your chart with intelligent EMA cross detection. This script highlights 50/200 EMA Golden and Death Crosses, with optional filters using RSI and MACD for stronger signal confluence. Smart labels include RSI/MACD values for extra context, and background zones help visualize the significance of each cross. Customize duration, visibility, and filter sensitivity to suit your strategy.
Nifty Advance/Decline Ratio - First 20 StocksNifty 20 Advance/Decline Ratio Indicator
This Pine Script tracks the Advance/Decline Ratio of the top 20 Nifty stocks (by weightage as of March 31, 2025). It helps gauge the market's strength by comparing the number of advancing vs. declining stocks among major Nifty heavyweights. The script calculates and plots the ratio, with a reference line at 1 (neutral point). This indicator resets daily and provides insights into overall market trends based on the performance of the top Nifty stocks.
Key Features:
Tracks advance/decline movements of top 20 Nifty stocks.
Plots the Advance/Decline Ratio on the chart.
Resets daily for fresh analysis.