RSI Volatility Suppression Zones [BigBeluga]RSI Volatility Suppression Zones is an advanced indicator that identifies periods of suppressed RSI volatility and visualizes these suppression zones on the main chart. It also highlights breakout dynamics, giving traders actionable insights into potential market momentum.
🔵 Key Features:
Detection of Suppression Zones:
Identifies periods where RSI volatility is suppressed and marks these zones on the main price chart.
Breakout Visualization:
When the price breaks above the suppression zone, the box turns aqua, and an upward label is drawn to indicate a bullish breakout.
If the price breaks below the zone, the box turns purple, and a downward label is drawn for a bearish breakout.
Breakouts accompanied by a "+" label represent strong moves caused by short-lived, tight zones, signaling significant momentum.
Wave Labels for Consolidation:
If the suppression zone remains unbroken, a "wave" label is displayed within the gray box, signifying continued price stability within the range.
Gradient Intensity Below RSI:
A gradient strip below the RSI line increases in intensity based on the duration of the suppressed RSI volatility period.
This visual aid helps traders gauge how extended the low volatility phase is.
🔵 Usage:
Identify Breakouts: Use color-coded boxes and labels to detect breakouts and their direction, confirming potential trend continuation or reversals.
Evaluate Market Momentum: Leverage "+" labels for strong breakout signals caused by short suppression phases, indicating significant market moves.
Monitor Price Consolidation: Observe gray boxes and wave labels to understand ongoing consolidation phases.
Analyze RSI Behavior: Utilize the gradient strip to measure the longevity of suppressed volatility phases and anticipate breakout potential.
RSI Volatility Suppression Zones provides a powerful visual representation of RSI volatility suppression, breakout signals, and price consolidation, making it a must-have tool for traders seeking to anticipate market movements effectively.
Băng tần và kênh
Squeeze Momentum Indicator v1 by KevyStocksReach out for my exact settings.
Some things I would like to change/add in the next version are: \
Allow plot sizes to be customizable
Default arrow colors to red or green
Squeeze Dashboard - when in a squeeze, and when squeeze released to upside, and squeeze released to downside.
Add Previous Day High
Add Previous Day Low
Add Previous Day 50% Marker
Add Golden Pocket Fibonacci
GainzAlgo Pro// © GainzAlgo
//@version=5
indicator('GainzAlgo Pro', overlay=true, max_labels_count=500)
candle_stability_index_param = input.float(0.5, 'Candle Stability Index', 0, 1, step=0.1, group='Technical', tooltip='Candle Stability Index measures the ratio between the body and the wicks of a candle. Higher - more stable.')
rsi_index_param = input.int(50, 'RSI Index', 0, 100, group='Technical', tooltip='RSI Index measures how overbought/oversold is the market. Higher - more overbought/oversold.')
candle_delta_length_param = input.int(5, 'Candle Delta Length', 3, group='Technical', tooltip='Candle Delta Length measures the period over how many candles the price increased/decreased. Higher - longer period.')
disable_repeating_signals_param = input.bool(false, 'Disable Repeating Signals', group='Technical', tooltip='Removes repeating signals. Useful for removing clusters of signals and general clarity')
GREEN = color.rgb(29, 255, 40)
RED = color.rgb(255, 0, 0)
TRANSPARENT = color.rgb(0, 0, 0, 100)
label_size = input.string('normal', 'Label Size', options= , group='Cosmetic')
label_style = input.string('text bubble', 'Label Style', , group='Cosmetic')
buy_label_color = input(GREEN, 'BUY Label Color', inline='Highlight', group='Cosmetic')
sell_label_color = input(RED, 'SELL Label Color', inline='Highlight', group='Cosmetic')
label_text_color = input(color.white, 'Label Text Color', inline='Highlight', group='Cosmetic')
stable_candle = math.abs(close - open) / ta.tr > candle_stability_index_param
rsi = ta.rsi(close, 14)
bullish_engulfing = close < open and close > open and close > open
rsi_below = rsi < rsi_index_param
decrease_over = close < close
bull = bullish_engulfing and stable_candle and rsi_below and decrease_over and barstate.isconfirmed
bearish_engulfing = close > open and close < open and close < open
rsi_above = rsi > 100 - rsi_index_param
increase_over = close > close
bear = bearish_engulfing and stable_candle and rsi_above and increase_over and barstate.isconfirmed
var last_signal = ''
if bull and (disable_repeating_signals_param ? (last_signal != 'buy' ? true : na) : true)
if label_style == 'text bubble'
label.new(bull ? bar_index : na, low, 'BUY', color=buy_label_color, style=label.style_label_up, textcolor=label_text_color, size=label_size)
else if label_style == 'triangle'
label.new(bull ? bar_index : na, low, 'BUY', yloc=yloc.belowbar, color=buy_label_color, style=label.style_triangleup, textcolor=TRANSPARENT, size=label_size)
else if label_style == 'arrow'
label.new(bull ? bar_index : na, low, 'BUY', yloc=yloc.belowbar, color=buy_label_color, style=label.style_arrowup, textcolor=TRANSPARENT, size=label_size)
last_signal := 'buy'
if bear and (disable_repeating_signals_param ? (last_signal != 'sell' ? true : na) : true)
if label_style == 'text bubble'
label.new(bear ? bar_index : na, high, 'SELL', color=sell_label_color, style=label.style_label_down, textcolor=label_text_color, size=label_size)
else if label_style == 'triangle'
label.new(bear ? bar_index : na, high, 'SELL', yloc=yloc.abovebar, color=sell_label_color, style=label.style_triangledown, textcolor=TRANSPARENT, size=label_size)
else if label_style == 'arrow'
label.new(bear ? bar_index : na, high, 'SELL', yloc=yloc.abovebar, color=sell_label_color, style=label.style_arrowdown, textcolor=TRANSPARENT, size=label_size)
last_signal := 'sell'
alertcondition(bull, 'BUY Signals', 'New signal: BUY')
alertcondition(bear, 'SELL Signals', 'New signal: SELL')
NIFTY BANKNIFTY MIDCAP SENSEX FINNIFTY LEVELS)this indicator uses Gann's methods which are based on the idea that markets move in predictable geometric patterns and are influenced by time and price.
Key Concepts of Gann Levels:
Gann Angles:
Gann believed that specific angles could indicate the trend of a market. The most notable is the 45-degree angle, which he called the "1x1" or "45-degree line."
Angles are drawn from a significant price point, such as a high or low, and represent the speed or slope of the price movement.
Gann Square of 9:
A mathematical tool that calculates support and resistance levels based on the square root of numbers and their geometric relationships.
It aligns numbers in a spiral format, starting from a central point, and helps identify key price levels at certain degrees.
Gann Fan:
A series of lines drawn at specific angles from a significant high or low. Common angles include 1x1 (45°), 2x1 (26.25°), and 1x2 (63.75°).
These angles help traders identify potential areas where the trend might accelerate, decelerate, or reverse.
Gann Retracements:
Levels based on key price ratios derived from natural laws and geometric principles. Common Gann retracement levels include 12.5%, 25%, 50%, and 75%.
Time Analysis:
Gann emphasized the importance of time cycles. He believed markets move in time-based patterns, such as yearly cycles, seasonal cycles, or specific time intervals.
Relative Risk MetricOVERVIEW
The Relative Risk Metric is designed to provide a relative measure of an asset's price, within a specified range, over a log scale.
PURPOSE
Relative Position Assessment: Visualizes where the current price stands within a user-defined range, adjusted for log scale.
Logarithmic Transformation: Utilizes the natural log to account for a log scale of prices, offering a more accurate representation of relative positions.
Calculation: The indicator calculates a normalized value via the function Relative Price = / log(UpperBound) − log(LowerBound) . The result is a value between 0 and 1, where 0 corresponds to the lower bound and 1 corresponds to the upper bound on a log scale.
VISUALIZATION
The indicator plots three series:
Risk Metric - a plot of the risk metric value that’s computed from an asset's relative price so that it lies within a logarithmic range between 0.0 & 1.0.
Smoothed Risk Metric - a plot of the risk metric that’s been smoothed.
Entry/Exit - a scatter plot for identified entry and exit. Values are expressed as percent and are coded as red being exit and green being entity. E.g., a red dot at 0.02 implies exit 2% of the held asset. A green dot at 0.01 implies use 1% of a designated capital reserve.
USAGE
Risk Metric
The risk metric transformation function has several parameters. These control aspects such as decay, sensitivity, bounds and time offset.
Decay - Acts as an exponent multiplier and controls how quickly dynamic bounds change as a function of the bar_index.
Time Offset - provides a centering effect of the exponential transformation relative to the current bar_index.
Sensitivity - controls how sensitive to time the dynamic bound adjustments should be.
Baseline control - Serves as an additive offset for dynamic bounds computation which ensures that bounds never become too small or negative.
UpperBound - provides headroom to accomodate growth an assets price from the baseline. For example, an upperbound of 3.5 accommodates a 3.5x growth from the baseline value (e.g., $100 -> $350).
LowerBound - provides log scale compression such that the overall metric provides meaningful insights for prices well below the average whilst avoiding extreme scaling. A lowerbound of 0.25 corresponds to a price that is approx one quarter of a normalised baseline in a log context.
Weighted Entry/Exit
This feature provides a weighted system for identifying DCA entry and exit. This weighting mechanism adjusts the metric's interpretation to highlight conditions based on dynamic thresholds and user-defined parameters to identify high-probability zones for entry/exit actions and provide risk-adjusted insights.
Weighting Parameters
The weighting function supports fine-tuning of the computed weighted entry/exit values
Base: determines the foundational multiplier for weighting the entry/exit value. A higher base amplifies the weighting effect, making the weighted values more pronounced. It acts as a scaling factor to control the overall magnitude of the weighting.
Exponent: adjusts the curve of the weighting function. Higher exponent values increase sensitivity, emphasizing differences between risk metric values near the entry or exit thresholds. This creates a steeper gradient for the computed entry/exit value making it more responsive to subtle shifts in risk levels.
Cut Off: specifies the maximum percentage (expressed as a fraction of 1.0) that the weighted entry/exit value can reach. This cap ensures the metric remains within a meaningful range and avoids skewing
Exit condition: Defines a threshold for exit. When the risk metric is below the exit threshold (but above the entry threshold) then entry/exit is neutral.
Entry condition: Defines a threshold for entry. When the risk metric is above the entry threshold (but below the exit threshold) then entry/exit is neutral.
Weighting Behaviour
For entry conditions - value is more heavily weighted as the metric approaches the entry threshold, emphasizing lower risk levels.
For exit conditions - value is more heavily weighted as the metric nears the exit threshold, emphasizing increased risk levels.
USE-CASES
Identifying potential overbought or oversold conditions within the specified logarithmic range.
Assisting in assessing how the current price compares to historical price levels on a logarithmic scale.
Guiding decision-making processes by providing insights into the relative positioning of prices within a log context
CONSIDERATIONS
Validation: It's recommended that backtesting over historical data be done before acting on any identified entry/exit values.
User Discretion: This indicator focus on price risk. Consider other risk factors and general market conditions as well.
Intraday Leading Indicator Strategy DHRUPAL JOSHIUseful for intraday and swing trading
Use Strategy before making proper analysis
Fortuna/4.20FC. Индикатор для поиска ценовых уровней. Он ищет 2 ценовых уровня.
Красный уровень это уровень максимального количества совпадений цены(качаний)
Синий уровень это второй(2) по количеству совпадений!
Volume Spike & RSI Scalping (Session Restricted)//@version=6
strategy("Volume Spike & RSI Scalping (Session Restricted)", overlay=true)
// Inputs
rsi_length = input(14, title="RSI Length")
overSold = input(30, title="RSI Oversold Level")
overBought = input(70, title="RSI Overbought Level")
volume_threshold = input(1.5, title="Volume Spike Multiplier (e.g., 1.5x avg volume)")
risk_reward_ratio = input(2.0, title="Risk-Reward Ratio (1:X)")
atr_length = input(14, title="ATR Length")
session_start_london = input.time(timestamp("0000-01-01 08:00 +0000"), title="London Session Start (UTC)")
session_end_london = input.time(timestamp("0000-01-01 16:00 +0000"), title="London Session End (UTC)")
session_start_ny = input.time(timestamp("0000-01-01 13:00 +0000"), title="New York Session Start (UTC)")
session_end_ny = input.time(timestamp("0000-01-01 21:00 +0000"), title="New York Session End (UTC)")
// Helper Functions
is_session = (time >= session_start_london and time <= session_end_london) or (time >= session_start_ny and time <= session_end_ny)
// RSI Calculation
vrsi = ta.rsi(close, rsi_length)
// Volume Spike Detection
avg_volume = ta.sma(volume, 20)
volume_spike = volume > avg_volume * volume_threshold
// Entry Signals Based on RSI and Volume
long_condition = is_session and volume_spike and vrsi < overSold and close > open // Bullish price action
short_condition = is_session and volume_spike and vrsi > overBought and close < open // Bearish price action
// Execute Trades
if (long_condition)
stop_loss = low - ta.atr(atr_length)
take_profit = close + (close - stop_loss) * risk_reward_ratio
strategy.entry("Buy", strategy.long, comment="Buy Signal")
strategy.exit("Take Profit/Stop Loss", "Buy", stop=stop_loss, limit=take_profit)
if (short_condition)
stop_loss = high + ta.atr(atr_length)
take_profit = close - (stop_loss - close) * risk_reward_ratio
strategy.entry("Sell", strategy.short, comment="Sell Signal")
strategy.exit("Take Profit/Stop Loss", "Sell", stop=stop_loss, limit=take_profit)
// Background Highlighting for Signals
bgcolor(long_condition ? color.new(color.green, 85) : na, title="Long Signal Background")
bgcolor(short_condition ? color.new(color.red, 85) : na, title="Short Signal Background")
EMA & ATR Dynamic Trend BandThis indicator combines an Exponential Moving Average (EMA) with an Average True Range (ATR)-based trailing stop to create a dynamic band that adapts to price action.
When the band is below the price, it acts as dynamic support, highlighting an area ideal for long trades. Traders can enter trades within this zone while managing risk using the ATR line as a stop-loss guide.
When the band is above the price, it acts as dynamic resistance, identifying optimal zones for short trades with the ATR line as the stop-loss.
The band changes color to provide visual feedback on momentum: green when the EMA or ATR suggests upward support and red when it indicates downward resistance. While the color may occasionally shift during volatile moves (e.g., price spikes), these areas often represent prime entry opportunities within a larger trend.
This indicator is highly customizable and serves as a versatile tool for identifying support and resistance zones, managing risk, and fine-tuning trade entries and exits.
cocoTrading indicator v2this is descripton of this indicator.this is descripton of this indicatorthis is descripton of this indicatorthis is descripton of this indicatorthis is descripton of this indicatorthis is descripton of this indicatorthis is descripton of this indicatorthis is descripton of this indicatorthis is descripton of this indicatorthis is descripton of this indicator.
Mrphin's Awesome IndicatorA collection of all my favourite indicators to identify key points to sell puts and calls and potential breakouts.
Range Filter + EMA200 by MMMEl indicador "Range Filter Buy and Sell 5min" está diseñado para detectar tendencias y generar señales de compra y venta en gráficos de 5 minutos, aunque puede ajustarse para otros intervalos de tiempo y activos financieros. Este indicador utiliza un filtro basado en rangos que combina el precio con un promedio suavizado del rango de las velas, lo que ayuda a eliminar el ruido del mercado y enfocarse en movimientos significativos.
Características principales:
Filtro de Rango Suavizado:
Utiliza un rango promedio suavizado para identificar niveles clave en el precio. Los niveles altos (High Band) y bajos (Low Band) representan zonas objetivo dinámicas.
Detección de Tendencias:
Una tendencia alcista se indica cuando el precio está por encima del filtro y mantiene una dirección ascendente.
Una tendencia bajista ocurre cuando el precio está por debajo del filtro y sigue una dirección descendente.
Señales de Compra/Venta:
Genera señales visuales ("Buy" y "Sell") en el gráfico cuando se cumplen condiciones específicas de cambio de tendencia.
También incluye alertas configurables para facilitar la toma de decisiones.
Colores Dinámicos:
Colorea las barras según la dirección del filtro, lo que ayuda a visualizar de manera intuitiva el estado del mercado.
Compatibilidad con Estrategias:
Incluye una sección opcional para convertir el indicador en una estrategia, permitiendo ejecutar órdenes automáticas con niveles de Take Profit (TP) y Stop Loss (SL).
La incorporación de la EMA 200 permite conocer de que tipo de mercado se trata, para tomar decisiones correctas
Nadaraya-Watson Envelope [LuxAlgo]Chỉ báo kỹ thuật (Technical Indicator) là một công cụ quan trọng được sử dụng trong phân tích kỹ thuật để dự báo xu hướng giá cả trong tương lai của các tài sản tài chính như cổ phiếu, tiền tệ, hàng hóa, hay chỉ số. Chỉ báo này được tính toán từ các dữ liệu lịch sử về giá và khối lượng giao dịch, giúp các nhà giao dịch đưa ra các quyết định mua hoặc bán dựa trên các tín hiệu mà chỉ báo cung cấp.
Fibonacci Düzeltme SeviyeleriBelirtilen bar sayısı ve fibonacci değerlerine göre fibonacci düzeltme seviyelerini grafik üzerinde çizer. Eğer grafikte belirtilenden daha az bar var ise bu durumda grafikte yer alan max bar sayısını dikkate alarak çizim yapar.
ADX, RSI, & TSI utilized as ARTI [by KeremErtem]The ARTI indicator, designed by Kerem Ertem, merges the power of three technical analysis tools: the Average Directional Index (ADX), the Relative Strength Index (RSI), and the True Strength Index (TSI). By combining these indicators, ARTI provides a comprehensive view of market momentum, trend strength, and potential reversals. This unique approach aims to offer a more robust and reliable signal for traders to make informed decisions.
How It Works:
Source Input: The primary data source is hlc3 (High, Low, Close average), but you can customize it as needed.
Smoothing: The smoothing parameter (l0) helps in reducing noise for clearer signals.
Signal Period & Lookback Range: These parameters (l1 and l2) define the period for signal calculation and the range for historical data analysis.
Indicator Components:
ACI Function:
The ACI function calculates an adjusted price angle, providing a unique perspective on price movements.
It uses lowest and highest prices within a lookback range to calculate an average (sf0), deviation (sf1), and the angle (sf3).
Relative Strength Index (RSI):
RSI is calculated over a specified length (goguz) and smoothed using the ACI function to provide a refined measure of price momentum.
Average Directional Index (ADX):
ADX, along with its positive (dip) and negative (dim) directional movement indicators, measures trend strength.
It is smoothed with the ACI function to enhance its reliability.
ARTI Indicator Calculation:
The ARTI indicator combines the smoothed RSI and ADX values.
It applies the True Strength Index (TSI) to the average of these smoothed values to generate the ARTI signal.
The signal is further refined with weighted average (ALMA) and standard deviation calculations to define upper, lower, and center bands.
Usage:
ART Signal Line: Plotted with color changes indicating bullish (#00ffbb) or bearish (#ff1100) trends based on directional changes.
Upper and Lower Bands: Define potential price reversal zones, providing visual cues for overbought or oversold conditions.
Center Line: Represents the average price level, helping traders understand the general price trend.
By combining these multiple technical indicators, the ARTI script provides a multifaceted view of the market, helping traders identify potential entry and exit points with greater accuracy. Use this script to enhance your trading strategies by understanding the underlying trends, momentum, and potential reversals in the market.
Feel free to experiment with different parameter settings to tailor the indicator to your specific trading style and preferences. Happy trading! 📈
Qobavision indicatorEl "Qobavision Indicator" es una herramienta personalizada diseñada para identificar la acción del precio en relación con bandas dinámicas basadas en una EMA (Media Móvil Exponencial) de longitud configurable. Este indicador proporciona una guía visual clara mediante colores personalizados en las velas, según su posición con respecto a las bandas:
Velas verdes: El precio cierra por encima de la banda superior, lo que puede indicar un impulso alcista.
Velas rojas: El precio cierra por debajo de la banda inferior, lo que puede señalar un impulso bajista.
Velas grises: El precio cierra dentro de las bandas, indicando una posible consolidación o rango.
El ancho de las bandas se calcula utilizando un multiplicador configurable del ATR (Rango Verdadero Promedio), lo que permite que las bandas se ajusten dinámicamente a la volatilidad del mercado. Además, el indicador incluye opciones de personalización avanzadas, como colores para las velas y el fondo de las bandas, junto con la transparencia del relleno.
Características clave:
Configuración flexible de la longitud de la EMA y el multiplicador del ATR.
Personalización de colores para las velas y el fondo de las bandas.
Identificación visual clara de diferentes condiciones del mercado.
Adecuado para traders de todos los niveles que deseen analizar tendencias y volatilidad en cualquier temporalidad.
Kaldıraçlı İşlem StratejisiKaldıraçlı İşlem Stratejisi Kaldıraçlı İşlem Stratejisi Kaldıraçlı İşlem Stratejisi
DCA bot FullMAX-FThis Strategy is working on crypto or stock in thiscase BTC 2 H Time Frame
It using 7 dynamic band's of smoothed sma
One's it get in long position the band's are plotted
Make sure to adjust the bands for different assets- there is adjustment deviations or width of the band's
Getting in long position is determined be hmaL -price- cross under
Take profit is trialing - hmaT or % or average price + take profit - note if you use % trailing back test is not realistic but is working on real time
let me know- updates are coming
The user can adjust all the band's and all the sum + extra- order's multiply volume
Volume Weighted Average Price_kumaran//@version=6
indicator(title="Volume Weighted Average Price", shorttitle="VWAP", overlay=true, timeframe="", timeframe_gaps=true)
hideonDWM = input(false, title="Hide VWAP on 1D or Above", group="VWAP Settings", display = display.data_window)
var anchor = input.string(defval = "Session", title="Anchor Period",
options= , group="VWAP Settings")
src = input(title = "Source", defval = hlc3, group="VWAP Settings", display = display.data_window)
offset = input.int(0, title="Offset", group="VWAP Settings", minval=0, display = display.data_window)
BANDS_GROUP = "Bands Settings"
CALC_MODE_TOOLTIP = "Determines the units used to calculate the distance of the bands. When 'Percentage' is selected, a multiplier of 1 means 1%."
calcModeInput = input.string("Standard Deviation", "Bands Calculation Mode", options = , group = BANDS_GROUP, tooltip = CALC_MODE_TOOLTIP, display = display.data_window)
showBand_1 = input(true, title = "", group = BANDS_GROUP, inline = "band_1", display = display.data_window)
bandMult_1 = input.float(1.0, title = "Bands Multiplier #1", group = BANDS_GROUP, inline = "band_1", step = 0.5, minval=0, display = display.data_window)
showBand_2 = input(false, title = "", group = BANDS_GROUP, inline = "band_2", display = display.data_window)
bandMult_2 = input.float(2.0, title = "Bands Multiplier #2", group = BANDS_GROUP, inline = "band_2", step = 0.5, minval=0, display = display.data_window)
showBand_3 = input(false, title = "", group = BANDS_GROUP, inline = "band_3", display = display.data_window)
bandMult_3 = input.float(3.0, title = "Bands Multiplier #3", group = BANDS_GROUP, inline = "band_3", step = 0.5, minval=0, display = display.data_window)
cumVolume = ta.cum(volume)
if barstate.islast and cumVolume == 0
runtime.error("No volume is provided by the data vendor.")
new_earnings = request.earnings(syminfo.tickerid, earnings.actual, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true)
new_dividends = request.dividends(syminfo.tickerid, dividends.gross, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true)
new_split = request.splits(syminfo.tickerid, splits.denominator, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true)
isNewPeriod = switch anchor
"Earnings" => not na(new_earnings)
"Dividends" => not na(new_dividends)
"Splits" => not na(new_split)
"Session" => timeframe.change("D")
"Week" => timeframe.change("W")
"Month" => timeframe.change("M")
"Quarter" => timeframe.change("3M")
"Year" => timeframe.change("12M")
"Decade" => timeframe.change("12M") and year % 10 == 0
"Century" => timeframe.change("12M") and year % 100 == 0
=> false
isEsdAnchor = anchor == "Earnings" or anchor == "Dividends" or anchor == "Splits"
if na(src ) and not isEsdAnchor
isNewPeriod := true
float vwapValue = na
float upperBandValue1 = na
float lowerBandValue1 = na
float upperBandValue2 = na
float lowerBandValue2 = na
float upperBandValue3 = na
float lowerBandValue3 = na
if not (hideonDWM and timeframe.isdwm)
= ta.vwap(src, isNewPeriod, 1)
vwapValue := _vwap
stdevAbs = _stdevUpper - _vwap
bandBasis = calcModeInput == "Standard Deviation" ? stdevAbs : _vwap * 0.01
upperBandValue1 := _vwap + bandBasis * bandMult_1
lowerBandValue1 := _vwap - bandBasis * bandMult_1
upperBandValue2 := _vwap + bandBasis * bandMult_2
lowerBandValue2 := _vwap - bandBasis * bandMult_2
upperBandValue3 := _vwap + bandBasis * bandMult_3
lowerBandValue3 := _vwap - bandBasis * bandMult_3
plot(vwapValue, title="VWAP", color=#2962FF, offset=offset)
upperBand_1 = plot(upperBandValue1, title="Upper Band #1", color=color.green, offset=offset, display = showBand_1 ? display.all : display.none)
lowerBand_1 = plot(lowerBandValue1, title="Lower Band #1", color=color.green, offset=offset, display = showBand_1 ? display.all : display.none)
fill(upperBand_1, lowerBand_1, title="Bands Fill #1", color= color.new(color.green, 95) , display = showBand_1 ? display.all : display.none)
upperBand_2 = plot(upperBandValue2, title="Upper Band #2", color=color.olive, offset=offset, display = showBand_2 ? display.all : display.none)
lowerBand_2 = plot(lowerBandValue2, title="Lower Band #2", color=color.olive, offset=offset, display = showBand_2 ? display.all : display.none)
fill(upperBand_2, lowerBand_2, title="Bands Fill #2", color= color.new(color.olive, 95) , display = showBand_2 ? display.all : display.none)
upperBand_3 = plot(upperBandValue3, title="Upper Band #3", color=color.teal, offset=offset, display = showBand_3 ? display.all : display.none)
lowerBand_3 = plot(lowerBandValue3, title="Lower Band #3", color=color.teal, offset=offset, display = showBand_3 ? display.all : display.none)
fill(upperBand_3, lowerBand_3, title="Bands Fill #3", color= color.new(color.teal, 95) , display = showBand_3 ? display.all : display.none)
AI Prediction Indicator with Alerts//@version=5
indicator("AI Prediction Indicator with Alerts", overlay=true)
// Inputs
emaShortLength = input(9, "Short EMA Length")
emaLongLength = input(21, "Long EMA Length")
rsiLength = input(14, "RSI Length")
rsiOverbought = input(70, "RSI Overbought Level")
rsiOversold = input(30, "RSI Oversold Level")
predictionLookahead = input.int(1, "Prediction Candle Lookahead (min)", minval=1)
// Calculations
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
// AI-Inspired Conditions for Prediction
buyCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOversold
sellCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOverbought
// Signal Prediction for Next Candle
futureBuyPrediction = ta.crossover(emaShort , emaLong ) and rsi < rsiOversold
futureSellPrediction = ta.crossunder(emaShort , emaLong ) and rsi > rsiOverbought
// Plot EMA Lines
plot(emaShort, color=color.blue, linewidth=1, title="Short EMA")
plot(emaLong, color=color.orange, linewidth=1, title="Long EMA")
// Plot Buy/Sell Signals
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")
// Background Prediction Visualization
bgcolor(futureBuyPrediction ? color.new(color.green, 90) : futureSellPrediction ? color.new(color.red, 90) : na)
// Alerts
if (buyCondition)
alert("Buy Signal: Potential bullish move detected.", alert.freq_once_per_bar_close)
if (sellCondition)
alert("Sell Signal: Potential bearish move detected.", alert.freq_once_per_bar_close)