// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © PIndex //@version=6 indicator("Momentum Pulse") ad6_plot_stoch_bg = input(true,"Plot Momentum Pulse",inline = "fm3") // show_lower = input(true,"Yellow",group = g_lowerPane,inline = "fm" ) ad6_stoch_bullc = input.color(color.new(color.green,75),'',inline = "fm3") ad6_stoch_bearc = input.color(color.new(color.red,75),'',inline = "fm3") ad6_plot_stoch_sig = input(true,"Crosses",inline = "fm3") ms_q = 10 ms_r = 3 ms_s = 3 ms_nsig = 3 ms_matype = 'ema' // possible: ema, sma, wma, trima, hma, dema, tema, zlema ms_overbought = 75 ms_oversold = -75 ms_plot_circles = true trima(ms_src, ms_length) => ta.sma(ta.sma(ms_src, ms_length), ms_length) hma(ms_src, ms_length) => ta.wma(2 * ta.wma(ms_src, ms_length / 2) - ta.wma(ms_src, ms_length), math.round(math.sqrt(ms_length))) dema(ms_src, ms_length) => 2 * ta.ema(ms_src, ms_length) - ta.ema(ta.ema(ms_src, ms_length), ms_length) tema(ms_src, ms_length) => 3 * ta.ema(ms_src, ms_length) - 3 * ta.ema(ta.ema(ms_src, ms_length), ms_length) + ta.ema(ta.ema(ta.ema(ms_src, ms_length), ms_length), ms_length) zlema(ms_src, ms_length) => ta.ema(ms_src, ms_length) + ta.ema(ms_src, ms_length) - ta.ema(ta.ema(ms_src, ms_length), ms_length) ms_smi = 100 * ta.ema(ta.ema(close - 0.5 * (ta.highest(ms_q) + ta.lowest(ms_q)), ms_r), ms_s) / (0.5 * ta.ema(ta.ema(ta.highest(ms_q) - ta.lowest(ms_q), ms_r), ms_s)) ema_1 = ta.ema(ms_smi, ms_nsig) sma_1 = ta.sma(ms_smi, ms_nsig) wma_1 = ta.wma(ms_smi, ms_nsig) trima__1 = trima(ms_smi, ms_nsig) hma__1 = hma(ms_smi, ms_nsig) dema__1 = dema(ms_smi, ms_nsig) tema__1 = tema(ms_smi, ms_nsig) zlema__1 = zlema(ms_smi, ms_nsig) ema_2 = ta.ema(ms_smi, ms_nsig) ms_sig = ms_matype == 'ema' ? ema_1 : ms_matype == 'sma' ? sma_1 : ms_matype == 'wma' ? wma_1 : ms_matype == 'trima' ? trima__1 : ms_matype == 'hma' ? hma__1 : ms_matype == 'dema' ? dema__1 : ms_matype == 'tema' ? tema__1 : ms_matype == 'zlema' ? zlema__1 : ema_2 // Mom pulse // Cross conditions var mpTrend = 0 co = ta.crossover(ms_smi, ms_sig) cu = ta.crossunder(ms_smi, ms_sig) if co mpTrend := 1 if cu mpTrend := -1 col = mpTrend == 1 ? ad6_stoch_bullc : mpTrend == -1 ? ad6_stoch_bearc : na bgcolor(ad6_plot_stoch_bg and ad6_plot_stoch_sig? col : na,title = "Momentum Pulse Background")