//@version=5 indicator("DrNiki's Market Nuker", shorttitle="DrNiki's Market Nuker", overlay=true) // Function to calculate RSI rsiLength = input(14, title="RSI Length") rsiValue = ta.rsi(close, rsiLength) // Stochastic RSI stochRsiLength = input(14, title="Stochastic RSI Length") stochRsiValue = ta.stoch(close, close, close, stochRsiLength) // Wavetrend Indicator n1 = input(10, "Channel Length") n2 = input(21, "Average Length") 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") ap = hlc3 esa = ta.ema(ap, n1) d = ta.ema(math.abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ta.ema(ci, n2) wt1 = tci wt2 = ta.sma(wt1, 4) // Custom implementation of On Balance Volume (OBV) var float obv = na obv := close > close[1] ? obv + volume : close < close[1] ? obv - volume : obv // Money Flow Index (MFI) mfiLength = input(7, title="MFI Length") mfiValue = ta.mfi(close, mfiLength) // Initialize points for each timeframe longPointsRSI = close > close[1] ? 1 : 0 shortPointsRSI = close < close[1] ? 1 : 0 longPointsStochRSI = stochRsiValue > stochRsiValue[1] ? 1 : 0 shortPointsStochRSI = stochRsiValue < stochRsiValue[1] ? 1 : 0 longPointsWavetrend = wt1 > wt1[1] ? 1 : 0 shortPointsWavetrend = wt1 < wt1[1] ? 1 : 0 longPointsOBV = obv > obv[1] ? 1 : 0 shortPointsOBV = obv < obv[1] ? 1 : 0 longPointsMFI = mfiValue > 50 ? 1 : 0 shortPointsMFI = mfiValue < 50 ? 1 : 0 // Calculate total points for each timeframe totalLongPoints = longPointsRSI + longPointsStochRSI + longPointsWavetrend + longPointsOBV + longPointsMFI totalShortPoints = shortPointsRSI + shortPointsStochRSI + shortPointsWavetrend + shortPointsOBV + shortPointsMFI // Calculate combined probabilities for each timeframe combinedProbabilityLong = totalLongPoints / 5 * 100 combinedProbabilityShort = totalShortPoints / 5 * 100 // Display combined probabilities in a box at the top right corner var labelBox = label.new(na, na, "") label.set_xy(labelBox, bar_index, high) label.set_text(labelBox, "Long: " + str.tostring(combinedProbabilityLong) + "%\nShort: " + str.tostring(combinedProbabilityShort) + "%") label.set_color(labelBox, color.new(color.blue, 0)) label.set_style(labelBox, label.style_label_left) // Display on different timeframes rsiValue1H = ta.rsi(close, 14) rsiValue2H = ta.rsi(close, 28) rsiValue3H = ta.rsi(close, 42) rsiValue4H = ta.rsi(close, 56) // Odds calculation for each timeframe odds1H = (longPointsRSI + longPointsStochRSI + longPointsWavetrend + longPointsOBV + longPointsMFI) / 5 * 100 odds2H = (shortPointsRSI + shortPointsStochRSI + shortPointsWavetrend + shortPointsOBV + shortPointsMFI) / 5 * 100 odds3H = (longPointsRSI + longPointsStochRSI + longPointsWavetrend + longPointsOBV + longPointsMFI) / 5 * 100 odds4H = (shortPointsRSI + shortPointsStochRSI + shortPointsWavetrend + shortPointsOBV + shortPointsMFI) / 5 * 100 // Plotting plot(rsiValue1H, title="RSI 1H", color=color.new(color.red, 0), linewidth=2) plot(rsiValue2H, title="RSI 2H", color=color.new(color.blue, 0), linewidth=2) plot(rsiValue3H, title="RSI 3H", color=color.new(color.green, 0), linewidth=2) plot(rsiValue4H, title="RSI 4H", color=color.new(color.purple, 0), linewidth=2)