EMA Crossover PredictionThis scripts predicts if a crossover of a short EMA (e.g. 20) over a long EMA (e.g. 200) is going to happen within the next foreseen periods (e.g. 50) and provides the predicted value in terms of number of periods and price when the crossover would happen.
المؤشرات والاستراتيجيات
Hourly Market Movement Pattern Indicator# Hourly Market Movement Pattern Indicator
This versatile technical analysis tool identifies the most active hours for trading by analyzing historical price movements. While it can be viewed on any timeframe chart, the indicator specifically tracks and displays which hours of the day historically show the strongest upward or downward price movements, helping traders optimize their trading schedule around these recurring hourly patterns.
## Core Features
- Tracks the best performing hours for both upward and downward movements
- Viewable on any timeframe chart while maintaining hourly analysis
- Clear visual display through a color-coded table overlay
- Real-time updates with new market data
- Works with all trading instruments (stocks, crypto, forex, futures, etc.)
## Timeframe Applications
### Chart Viewing Options
- Can be viewed on any timeframe chart (1min to Monthly)
- Maintains hourly pattern analysis regardless of chart timeframe
- Helps correlate hourly patterns with your preferred trading timeframe
- Allows detailed visualization of hourly patterns within your analysis period
### Intraday Trading
- Identify the most profitable hours for trading
- Plan trading sessions around historically strong hours
- Optimize entry and exit timing based on hourly patterns
- Structure day trading schedules around peak movement hours
### Swing Trading
- Use hourly statistics to optimize entry/exit timing
- Plan trade executions during historically strong hours
- Time position entries based on hourly success rates
- Enhance swing trading decisions with hourly pattern data
## Practical Applications
### Pattern Recognition
- Track recurring hourly market movements
- Identify institutional trading hour patterns
- Detect regular market cycle hours
- Recognize changes in hourly market behavior
### Risk Management
- Adjust position sizing based on historical hourly patterns
- Plan entries during statistically favorable hours
- Time stop loss adjustments around known volatile hours
- Scale positions according to hourly success rates
### Trade Planning
- Schedule trading sessions during optimal hours
- Plan trade executions around strong movement periods
- Structure trading day around peak hours
- Time position adjustments to favorable hours
## Setup Options
- Timeframe: View on any chart timeframe while tracking hourly patterns
- Visual Display: Non-intrusive table overlay
- Color Coding: Green for upward movements, Red for downward movements
- Hour Display: 24-hour format for global market compatibility
## Trading Strategy Integration
The indicator enhances trading approaches through:
- Optimal hour identification for trade execution
- Historical hourly pattern analysis
- Day trading session optimization
- Position timing based on hourly statistics
## Notes
This indicator proves particularly valuable for:
- Traders seeking to optimize their daily trading schedule
- Day traders focusing on peak market hours
- Swing traders optimizing entry/exit timing
- Traders adapting strategies to specific market hours
- International traders tracking hour-specific patterns across sessions
The tool's hourly pattern analysis provides crucial timing information regardless of your preferred chart timeframe or trading style, helping optimize trade execution around the most statistically favorable hours of the day.
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")
Volume Liquidity Oscillator (VLO) Volumen de liquidez.📊 Volume Liquidity Oscillator (VLO)
📌 Descripción del Indicador
El Volume Liquidity Oscillator (VLO) es un oscilador diseñado para analizar el flujo de volumen y la liquidez del mercado. Utiliza un cálculo basado en el Money Flow Index (MFI) modificado, pero en lugar de Open Interest, usa el volumen real del activo seleccionado.
El VLO permite detectar si el volumen está impulsando el precio al alza (acumulación) o a la baja (distribución), ayudando a los traders a confirmar tendencias y detectar posibles cambios de dirección en el mercado.
📊 Cálculo y Funcionamiento
1️⃣ Clasificación del volumen:
Se separa el volumen en alcista (cuando el precio sube) y bajista (cuando el precio baja).
Si hay más volumen en velas alcistas → Se interpreta como acumulación (color azul).
Si hay más volumen en velas bajistas → Se interpreta como distribución (color rojo).
2️⃣ Normalización en un oscilador (-100 a +100):
+100 → Máxima acumulación (fuerza compradora alta).
-100 → Máxima distribución (presión vendedora alta).
0 → Mercado sin dirección clara.
3️⃣ Opciones de Suavizado:
Se puede aplicar una media móvil ponderada (WMA) ajustable.
Opciones recomendadas: 30 (sensible, corto plazo) o 200 (suavizado, largo plazo).
📈 ¿Cómo Interpretarlo?
✅ Acumulación (Zona Azul, Valores Positivos):
Si el VLO está por encima de 0, el volumen está impulsando el precio al alza.
Si el volumen sigue aumentando, confirma la tendencia alcista.
✅ Distribución (Zona Roja, Valores Negativos):
Si el VLO está por debajo de 0, indica que el volumen está acompañando caídas en el precio.
Una fuerte distribución puede anticipar una corrección o cambio de tendencia bajista.
✅ Divergencias con el Precio:
Si el precio sube pero el VLO baja → Posible distribución oculta, señal de debilidad.
Si el precio baja pero el VLO sube → Posible acumulación oculta, señal de fuerza alcista.
✅ Cruce de la Línea 0:
De negativo a positivo → Señal de acumulación, posible inicio de tendencia alcista.
De positivo a negativo → Señal de distribución, posible corrección bajista.
🔥 ¿Para qué mercados es útil?
✔️ Criptomonedas → Para detectar fases de acumulación y distribución en BTC, ETH y altcoins.
✔️ Futuros y Bolsa → Puede aplicarse en futuros de S&P 500, Nasdaq, oro, petróleo, etc.
✔️ Forex → Permite evaluar la fuerza del volumen en pares de divisas.
🎯 Ventajas del VLO frente a otros indicadores
✅ Mejora el Money Flow Index (MFI) al usar volumen real en lugar de Open Interest.
✅ Más preciso que indicadores de volumen simples, ya que mide la liquidez real del mercado.
✅ Filtra señales falsas cuando el volumen no acompaña los movimientos del precio.
✅ Permite ajustar el suavizado con WMA para adaptarlo a diferentes estilos de trading.
🚀 Conclusión
El Volume Liquidity Oscillator (VLO) es una herramienta poderosa para analizar el impacto del volumen en los precios, ayudando a confirmar tendencias y detectar posibles cambios de ciclo. Ideal para traders de cripto, futuros y bolsa que buscan mejorar su análisis de acumulación y distribución.
BFX Buy and SellThe BFX Buy and Sell Strategy is a cutting-edge trading tool designed to help you navigate the markets with confidence.
This strategy simplifies decision-making by delivering precise buy and sell signals, ensuring you’re always one step ahead of market trends. Perfect for traders of all experience levels, it offers clean visuals and reliable alerts to maximize your trading potential.
Whether you’re looking to fine-tune your strategy or seeking a fresh approach to trading, the BFX Buy and Sell is your ultimate partner for smarter, more efficient trading.
Developed by
Jc Golden
BeardedFX
www.beardedfx.net
VIVIDLY MIX Scalper with signal & EMA_AngleVIVIDLY MIX Scalper with Signal & EMA Angle Indicator Description
This indicator is a versatile scalping tool that combines several popular indicators with an added signal based on their interaction. The primary goal of the indicator is to provide traders with clear information about the current market conditions and potential entry and exit points.
Integrated Indicators and Their Authors:
CM_SlingShotSystem (© ChrisMoody): This component helps identify the trend direction and pullback moments. It utilizes two exponential moving averages (EMAs) to pinpoint aggressive and conservative entry points. Thank you to ChrisMoody for this valuable trend identification tool.
Parabolic SAR + EMA 200 + MACD Signals (© Saleh_Toodarvari): This section includes Parabolic SAR for tracking potential trend reversals, the EMA 200 for determining the long-term trend, and MACD for measuring momentum and identifying divergences. We appreciate Saleh_Toodarvari for integrating these important indicators.
Double Zig Zag with HHLL (© LonesomeTheBlue): This indicator displays two zig zag lines with different periods to highlight significant price reversals and the formation of Higher Highs (HH), Higher Lows (HL), Lower Lows (LL), and Lower Highs (LH). Thank you to LonesomeTheBlue for visualizing market structure.
Swing Points and Liquidity (© LeviathanCapital): This tool marks significant price reversals (swings) and optionally displays volume and open interest changes at these levels, helping to identify potential liquidity zones. We thank LeviathanCapital for assisting in identifying key price levels.
Relative Strength Index (RSI): The standard RSI indicator is used to measure the strength of recent price changes and identify overbought and oversold conditions.
Awesome Oscillator (AO): The Awesome Oscillator indicator measures market momentum by comparing short-term and long-term moving averages of the price.
New Combined Signal:
The added buy and sell signal is based on the simultaneous confirmation of the following four conditions:
RSI vs. RSI Moving Average: The RSI must cross above its moving average for a buy signal and below for a sell signal.
MACD:
Crossover: The MACD signal line must cross above the MACD line for a buy signal and below the MACD line for a sell signal.
Histogram: The MACD histogram must be above zero for a buy signal and below zero for a sell signal.
Awesome Oscillator (AO): The current AO bar must be green (higher than the previous) for a buy signal and red (lower than the previous) for a sell signal.
When all four conditions are met simultaneously, a "Buy X 4" or "Sell X 4" label appears on the chart, indicating a potential opportunity to enter a position.
EMA Angle:
The indicator also calculates the angle of the fast EMA (exponential moving average). This allows for assessing the strength of the current price movement. Positive angle values suggest an upward trend, while negative values indicate a downward trend.
Default EMA Angle Values for Specific Coins:
The indicator offers default EMA angle values for the following cryptocurrencies:
BTC: 0.0004
ETH: 0.025
SOL: 0.14
DOGE: 330
SUI: 21
BNB: 0.2
TON: 300
AAVE: 0.09
AVAX: 1
PEOPLE: 800
These values can be adjusted in the indicator settings.
Signals Table:
A table is displayed in the top-right corner of the chart, providing a summary of the current status of various indicators:
CHECK: The header for the signal check column.
LONG: Indicates the presence of a buy signal.
SHORT: Indicates the presence of a sell signal.
Each row in the table corresponds to a specific condition or indicator:
RSI vs MA: Shows where the RSI is relative to its moving average.
MACD CROSS: Indicates a MACD line crossover.
MACD HIST: Shows the position of the MACD histogram relative to zero.
AO BAR: Displays the color of the current AO bar.
SAR: Shows the current position of the Parabolic SAR relative to the price.
RSI 50: Indicates whether the RSI is above or below the 50 level.
AO: Shows whether the Awesome Oscillator is above or below zero.
200MA: Indicates whether the price is above or below the 200-period EMA.
CONS ENTRY: Displays conservative entry signals from the CM_SlingShotSystem.
RSI : 70/30: Shows whether the RSI is in overbought (above 70) or oversold (below 30) zones.
Fast EMA angle: Displays the current angle of the fast EMA.
A "✔️" symbol in the corresponding cell signifies that the condition is met for that direction (Long or Short), while a "➖" indicates no signal.
In Conclusion:
The VIVIDLY MIX Scalper with Signal & EMA Angle indicator is a comprehensive scalping solution, providing traders with a multitude of analysis tools and signal filtering capabilities. The combination of proven indicators and the added signal based on their synergy can assist in making more informed trading decisions. Remember to conduct your own research and test the indicator under various market conditions before using it in live trading.
ROC-Weighted MA Oscillator [SeerQuant]ROC-Weighted MA Oscillator (ROCWMA)
The ROC-Weighted MA Oscillator (ROCWMA) is a momentum-based indicator which uniquely combines the Rate of Change (ROC) with customizable moving averages, offering a dynamic oscillator for trend analysis. Featuring z-score normalization and weighted MA integration, the ROCWMA delivers actionable trend signals with customizable thresholds.
--------------------------------------------------------------------------------------------------
⚙️ How It Works
1️⃣ Rate of Change (ROC) Normalization
The indicator begins with a normalized ROC calculation over a customizable length, transforming raw momentum data into a dynamic range for enhanced analysis.
2️⃣ Weighted Moving Average (MA)
A custom moving average (MA) is calculated using selectable MA types such as TEMA, SMA, EMA, and more. The normalized ROC is then applied as a weight to derive the ROC-Weighted MA (RWMA), blending trend and momentum data.
3️⃣ Z-Score Oscillator
The RWMA is normalized using z-score calculations, resulting in a smoothed oscillator. This process highlights deviations from the mean, identifying overbought and oversold conditions dynamically.
4️⃣ Threshold Logic
Bullish (Uptrend): Oscillator exceeds the positive threshold.
Bearish (Downtrend): Oscillator drops below the negative threshold.
Neutral: Oscillator remains between thresholds.
5️⃣ Dynamic Visual Representation
A color-coded histogram reflects trend strength and direction.
Optional candle coloring visually emphasizes trends on the chart.
Gradient fills enhance clarity of threshold areas.
--------------------------------------------------------------------------------------------------
✨ Customizable Settings
ROC Settings
Define the ROC length for momentum calculation.
MA Settings
Choose from multiple MA types (TEMA, EMA, SMA, etc.).
Customize the length and data source for MA calculations.
Adjust the signal length for smoothing.
Threshold Settings
Set neutral, bullish, and bearish thresholds to match your strategy.
Style Settings
Toggle candle coloring for visual trend enhancement.
Select from five unique color schemes to suit your chart style.
--------------------------------------------------------------------------------------------------
🚀 Features and Benefits
Momentum-Weighted Analysis: Combines ROC with advanced moving averages for precise trend evaluation.
Dynamic Thresholds: Z-score-based logic adapts to market conditions.
Visual Clarity: Color-coded histograms, candles, and gradient fills make trend detection intuitive.
Highly Customizable: Flexible inputs and multiple MA types ensure adaptability to various trading styles.
--------------------------------------------------------------------------------------------------
📜 Disclaimer
This indicator is for educational purposes only and does not constitute financial advice. Past performance is not indicative of future results. Users should consult a licensed financial advisor before making trading decisions. Use at your own risk.
--------------------------------------------------------------------------------------------------
CSP Entry Signal//@version=5
indicator("CSP Entry Signal", overlay=true)
// RSI Calculation
rsiLength = 14
rsiSource = close
rsiValue = ta.rsi(rsiSource, rsiLength)
// Moving Averages for Trend Confirmation
ema200 = ta.ema(close, 200)
// MACD Histogram for Momentum Confirmation
= ta.macd(close, 12, 26, 9)
// Support Level Detection (Simple Moving Low)
supportLookback = 20
supportLevel = ta.lowest(low, supportLookback)
// Implied Volatility Approximation (Using ATR as a Proxy)
atrLength = 14
atrValue = ta.atr(atrLength)
// Entry Conditions
rsiCondition = rsiValue < 55
trendCondition = close > ema200 and macdHist > 0
supportCondition = close <= supportLevel
// Final Entry Signal
cspEntrySignal = rsiCondition and trendCondition and supportCondition
// Plot Support Level
plot(supportLevel, title="Support Level", color=color.blue, linewidth=2, style=plot.style_stepline)
// Plot Entry Signal
plotshape(cspEntrySignal, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="CSP Entry")
// Alert Condition
alertcondition(cspEntrySignal, title="CSP Entry Alert", message="CSP Entry Signal Triggered")
8 en 1 SM, DMI, Koncorde, RSI, MACD, CMF, Estocástico y Aroon.Con este indicador podrás ver 8 osciladores diferentes al mismo tiempo y activar o desactivar el que quieras, también personalizarlos. Los osciladores que trae son los siguientes: Squeeze Momentum, DMI, Koncorde, RSI, MACD, CMF, Estocástico y Aroon.
Oscilador/RSIEste indicador es una combinación de dos herramientas: el Oscilador WaveTrend Mejorado (una variación del WaveTrend Oscillator) y el Índice de Fuerza Relativa (RSI), con la adición de alertas y diversas opciones de personalización.
Simple RSI StrategySimple RSI Strategy for Educational Purposes
This Pine Script, built with TradingView's latest version (v6), implements a Simple RSI Strategy designed to highlight overbought and oversold conditions in the market. It leverages the Relative Strength Index (RSI) as a tool to trigger long entries and exits based on user-defined thresholds.
Key Features:
Customizable RSI Parameters: Adjust the RSI length, overbought, and oversold levels to fit different trading scenarios.
Risk Management Parameters: Includes configurable initial capital, position sizing as a percentage of equity, slippage, and commission for realistic backtesting.
Visual Enhancements: Overbought and oversold zones are clearly plotted with gradient fills and color-coded signals for better interpretability.
Signal Triggers: Long entries are initiated when the RSI crosses above the oversold level, and positions are closed when the RSI crosses below the overbought level.
Important Note:
This script is intended solely for educational purposes. While it provides insights into basic RSI-based strategies, it does not account for advanced risk management, market conditions, or position hedging. Users should exercise additional caution and implement comprehensive risk management techniques, such as stop losses and portfolio diversification, when applying similar strategies in live trading.
Backtest results and performance metrics derived from this script may not accurately reflect real-world outcomes due to limitations such as slippage, order execution timing, and market volatility.
Disclaimer: Trading involves significant financial risk. This script is not investment advice. Users should consult with a financial advisor and perform thorough testing before deploying any trading strategy.
This description emphasizes the educational aspect of the script while encouraging traders to incorporate robust risk management practices.
IFR2 com parametrização para nivel, período, e mmEstratégia paraa backtest baseada no IFR2 do Stormer entrando quando o IFR fica abaixo do nível desejado, sendo que a entrada ocorre quando o IFR vira para cima. A saída ocorre depois de n candles.
Nesta estratégia é possivel parametrizar:
Período do RSI :2
Nível do RSI :25
Quantidade de candles para fechamento :5
é possivel utilizar uma média móvel como filtro de entrada, o que pode melhorar o fator de Lucro em muitos ativos, porem em outros pode piorar.
No grafico aparece uma linha branca ligando o ponto de compra com o de venda para melhor visualizar.
FVG DetectorA fairly flexible indicator for displaying imbalance zones. There are quite a few similar indicators, but none of them suit me, so I made my own.
Settings:
Minimum FVG size in % - Minimum imbalance size in percentage
Percentage of filling FVG - When the imbalance is filled by the specified percentage, the imbalance will be considered inactive
Show FVG - The number of FVG to be shown on the chart. If 0, all FVG are shown
FVG Long color - Color of FVG Long FVG
FVG Short color - Color of FVG Short FVG
FVG middle line - Setting the line that shows the middle of the imbalance
Filling 50% FVG - When filling the imbalance halfway, the line showing the middle of the imbalance changes type and color
When Candle Close - The rectangle showing the imbalance zone is removed only after the candle closes
History - Display all imbalance zones on history
Conclusion:
This indicator will be useful for those users who need to display imbalance zones, the middle of the imbalance, and also visually show that the price has covered half of the imbalance zone.
QuantFarming Signals v6//@version=6
indicator("QuantFarming Signals", overlay = true, max_boxes_count = 500)
// INPUT
Resolution = input.timeframe("240", title = "Resolution")
BarWidth = input.int(4, title = "Bar Width", minval = 1)
RSIRegPeriod = input.int(1000, title = "RSI Regression Period")
RSIRegFactor = input.float(1.7, title = "RSI Regression Factor")
StopLossBufferPoints = input.float(5.0, title = "Stop Loss Buffer Points")
WebhookID = input.string("", title = "Webhook ID", group = "Setup")
WebhookToken = input.string("", title = "Webhook Token", group = "Setup")
Delay = input.timeframe("240", title = "Signal Delay", group = "Setup")
BuyMovingAveragePeriod = input.int(25, title = "Buy MA Period", inline = "Buy", group = "Moving Average Period & Angle")
SellMovingAveragePeriod = input.int(25, title = "Sell MA Period", inline = "Sell", group = "Moving Average Period & Angle")
BuyAngle = input.float(+0.01, title = "Buy MA Angle", inline = "Buy", group = "Moving Average Period & Angle")
SellAngle = input.float(-0.01, title = "Sell MA Angle", inline = "Sell", group = "Moving Average Period & Angle")
RSIMax = input.float(55, title = "RSI Max", group = "Relative Strength Index Regression")
RSIMin = input.float(50, title = "RSI Min", group = "Relative Strength Index Regression")
// KR INPUT
Timeframe = input.timeframe("5", title = "Timeframe", group = "Kernel Regression for Confirmation")
Size = input.int(100, title = "Size", minval = 1, group = "Kernel Regression for Confirmation")
Bandwidth = input.float(5.0, title = "Bandwidth Parameter", minval = 1, step = 0.125, group = "Kernel Regression for Confirmation")
R = input.float(1.0, title = "R Value", minval = 0.125, step = 0.125, group = "Kernel Regression for Confirmation")
// FIBONACCI RETRACEMENT INPUT
RetracementLookback = input.int(100, title = "Retracement Lookback", group = "Fibonacci Retracement")
// POINTS IN THE BOX
BoxPoints = input.bool(true, title = "Display Points", group = "Points In The Box")
BoxWidth = input.int(10, title = "Box Width", group = "Points In The Box")
BoxHeight = input.int(10, title = "Box Height", group = "Points In The Box")
// DIRECTION ===============================================
// OFFSET
Offset = timeframe.in_seconds(Resolution) >= timeframe.in_seconds(timeframe.period) ? timeframe.in_seconds(Resolution) / timeframe.in_seconds(timeframe.period) : 0
// TRENDLINE
BuyMovingAverage = request.security(syminfo.tickerid, Resolution, ta.sma(close, BuyMovingAveragePeriod))
SellMovingAverage = request.security(syminfo.tickerid, Resolution, ta.sma(close, SellMovingAveragePeriod))
// ANGLE OF ELEVATION AND DEPRESSION
BuyMovingAverageAngle = request.security(syminfo.tickerid, Resolution, (BuyMovingAverage / BuyMovingAverage - 1) * 100)
SellMovingAverageAngle = request.security(syminfo.tickerid, Resolution, (SellMovingAverage / SellMovingAverage - 1) * 100)
// DIRECTION
var Direction = int(0)
BuyDirection = BuyMovingAverage > BuyMovingAverage and BuyMovingAverageAngle > BuyAngle ? 1 : 0
SellDirection = SellMovingAverage < SellMovingAverage and SellMovingAverageAngle < -SellAngle ? -1 : 0
Direction := BuyDirection > BuyDirection ? 1 : (SellDirection < SellDirection ? -1 : Direction)
// DRAW ANGLE OF ELEVATION AND DEPRESSION
if Direction > Direction
line.new(bar_index, BuyMovingAverage, bar_index , BuyMovingAverage , xloc.bar_index, extend.none, color.white, line.style_solid, 2)
if Direction < Direction
line.new(bar_index, SellMovingAverage, bar_index , SellMovingAverage , xloc.bar_index, extend.none, color.yellow, line.style_solid, 2)
// DRAW TRENDLINE
plot(BuyMovingAverage, title = "Buy Moving Average", color = Direction > 0 ? color.aqua : color.fuchsia, offset = -Offset + 1)
plot(SellMovingAverage, title = "Sell Moving Average", color = Direction > 0 ? color.aqua : color.fuchsia, offset = -Offset + 1)
// DRAW DIRECTION
bgcolor(color = color.new(Direction > 0 ? color.teal : color.maroon, 90), title = "Direction", offset = -Offset + 1)
// REGRESSION ============================================
// RELATIVE STRENGTH INDEX
RSI = ta.rsi(close, 14)
// RELATIVE STRENGTH INDEX REGRESSION
RSIRegression = ta.linreg(RSI, RSIRegPeriod, 0)
// RELATIVE STRENGTH INDEX DEVIATION
RSIDeviation = ta.stdev(RSI, RSIRegPeriod) * RSIRegFactor
// RSI SIGNAL
RSISell = ta.crossunder(RSI, RSIRegression + RSIDeviation) and RSI > RSIMax
RSIBuy = ta.crossover(RSI, RSIRegression - RSIDeviation) and RSI < RSIMin
// KERNEL REGRESSION ==============================================================================
// KERNEL REGRESSION
KernelRegression() =>
CurrentWeight = 0.0
CumulativeWeight = 0.0
for Count = 0 to Size
Y = close
U = math.pow(Count, 2) / (math.pow(Bandwidth, 2) * R)
W = (U >= 1) ? 0 : (3. / 4) * (1 - math.pow(U, 2))
CurrentWeight := CurrentWeight + Y * W
CumulativeWeight := CumulativeWeight + W
CurrentWeight / CumulativeWeight
// REVERSAL CONFIRMATION
Regression = request.security(syminfo.tickerid, Timeframe, KernelRegression())
// SIGNAL
Sell = RSISell and Direction < 0 and Regression > Regression
Buy = RSIBuy and Direction > 0 and Regression < Regression
// DELAY
var Track = int(0)
Active = (time - Track) >= timeframe.in_seconds(Delay) * 1000
Track := Active and (Buy or Sell) ? time : Track
plotshape(Sell and Active, title = "Sell", style = shape.triangledown, color = color.fuchsia, location = location.abovebar, size = size.tiny)
plotshape(Buy and Active, title = "Buy", style = shape.triangleup, color = color.aqua, location = location.belowbar, size = size.tiny)
// LEVEL ==========================================================================
// LEVEL
Peak = ta.highest(RetracementLookback)
Trough = ta.lowest (RetracementLookback)
// DEVIATION
Deviation = Peak - Trough
// SIDE
Side = Buy and Active ? 1 : (Sell and Active ? -1 : 0)
// FIBONACCI RETRACEMENT ==========================================================================
// FIBONACCI RETRACEMENT
var TP1 = float(na)
var TP2 = float(na)
var Stop = float(na)
F0 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.000
F1 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.236
F2 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.382
F3 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.500
F4 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.618
F5 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.786
F6 = (Side > 0 ? Trough : Peak) + Side * Deviation * 1.000
F7 = (Side > 0 ? Trough : Peak) + Side * Deviation * 1.236
F8 = (Side > 0 ? Trough : Peak) + Side * Deviation * 1.382
F9 = (Side > 0 ? Trough : Peak) + Side * Deviation * 1.500
FX = (Side != 0 ? 1 : (Side != 0 ? 2 : (Side != 0 ? 3 : 0)))
if Side > 0 and FX == 0
TP1 := (close < F1 ? F2 : (close < F2 ? F3 : (close < F3 ? F4 : (close < F4 ? F5 : (close < F5 ? F6 : (close < F6 ? F7 : na))))))
TP2 := (close < F1 ? F3 : (close < F2 ? F4 : (close < F3 ? F5 : (close < F4 ? F6 : (close < F5 ? F7 : (close < F6 ? F8 : na))))))
Stop := close - (Deviation * 0.236 + StopLossBufferPoints)
if Side < 0 and FX == 0
TP1 := (close > F1 ? F2 : (close > F2 ? F3 : (close > F3 ? F4 : (close > F4 ? F5 : (close > F5 ? F6 : (close > F6 ? F7 : na))))))
TP2 := (close > F1 ? F3 : (close > F2 ? F4 : (close > F3 ? F5 : (close > F4 ? F6 : (close > F5 ? F7 : (close > F6 ? F8 : na))))))
Stop := close + (Deviation * 0.236 + StopLossBufferPoints)
// DRAW FIBONACCI RETRACEMENT
var OpenPosition = int(0), OpenPosition := FX > 0 ? OpenPosition + 1 : 0
var Line = float(na), Line := OpenPosition == 1 ? Stop : (OpenPosition == 2 ? TP2 : Line)
plot(Line, linewidth = 1, color = FX == 0 ? na : (OpenPosition < 3 and OpenPosition > 1 ? color.lime : na))
plot(Stop, linewidth = 1, color = FX == 0 ? na : (OpenPosition < 6 and OpenPosition > 0 ? color.fuchsia : na))
plot(TP1, linewidth = 1, color = FX == 0 ? na : (OpenPosition < 6 and OpenPosition > 0 ? color.aqua : na))
plot(TP2, linewidth = 1, color = FX == 0 ? na : (OpenPosition < 6 and OpenPosition > 0 ? color.aqua : na))
// DRAW POINTS IN THE BOX
Box = array.new_box()
if Active and (Buy or Sell) and bar_index > 2 and BoxPoints
StopPoints = str.tostring(math.round(math.abs(close - Stop) / syminfo.mintick) * syminfo.mintick) + " pts"
TP1Points = str.tostring(math.round(math.abs(close - TP1) / syminfo.mintick) * syminfo.mintick) + " pts"
TP2Points = str.tostring(math.round(math.abs(close - TP2) / syminfo.mintick) * syminfo.mintick) + " pts"
array.push(Box, box.new(left = bar_index - 2, top = Stop + BoxHeight, right = bar_index + BoxWidth, bottom = Stop - BoxHeight, text = StopPoints, text_size = size.auto, text_halign = text.align_right, border_color = color.fuchsia, bgcolor = color.new(color.fuchsia, 80)))
array.push(Box, box.new(left = bar_index - 2, top = TP1 + BoxHeight, right = bar_index + BoxWidth, bottom = TP1 - BoxHeight, text = TP1Points, text_size = size.auto, text_halign = text.align_right, border_color = color.aqua, bgcolor = color.new(color.aqua, 80)))
array.push(Box, box.new(left = bar_index - 2, top = TP2 + BoxHeight, right = bar_index + BoxWidth, bottom = TP2 - BoxHeight, text = TP2Points, text_size = size.auto, text_halign = text.align_right, border_color = color.aqua, bgcolor = color.new(color.aqua, 80)))
// WEBHOOK
message = array.new_string()
array.push(message, "\"id\": \"" + WebhookID + "\"")
array.push(message, "\"token\": \"" + WebhookToken + "\"")
array.push(message, "\"ticker\": \"" + syminfo.ticker + "\"")
array.push(message, "\"action\": \"" + (Buy ? "BUY" : "SELL") + "\"")
array.push(message, "\"price\": \"" + str.tostring(close) + "\"")
array.push(message, "\"time\": \"" + str.tostring(time) + "\"")
if Active and (Buy or Sell)
alert(message = "{ " + array.join(message, ", ") + " }", freq = alert.freq_once_per_bar_close)
Bottom Detection Monitor**Bottom-Fishing Monitor**
This indicator utilizes the RSI value when it falls below 30. The difference between the RSI value and 30 is accumulated over time. If the RSI value exceeds 30 during this period, the accumulated value is automatically reset to zero, and the calculation starts anew. Once the accumulated value reaches the set threshold, it resets again.
The default threshold is set to 100.
This concept originally emerged from observing one-minute trading charts, where it is particularly suitable for smaller timeframes. In cases of a continuous, strong downward trend on higher timeframes, the threshold might need to be set much higher. This could result in the indicator's graph becoming overly distorted. Additionally, since the volatility characteristics and amplitude vary for different instruments, I’ve made this threshold adjustable for users.
Using the same principle, I’ve also created a similar detection mechanism based on CCI.
Under normal circumstances, this curve stays close to the zero line. However, during a downward trend where RSI falls below 30, the curve starts to rise. When the suddenly increasing curve peaks and then drops back to the zero line, it signals a bottom-fishing opportunity. That said, due to the threshold setting, multiple peaks may appear consecutively. Users should be aware of this in practice and can adjust the threshold to mitigate such occurrences.
This is the beginning of my open-source journey.
I respect creative ideas and redefined expressions.
Thank you, TradingView community, for giving me this opportunity.
Ropen Swing Trading Combo IndicatorHow This Works:
✅ Plots the 21 EMA as a trend indicator.
✅ Plots Bollinger Bands to detect overbought/oversold conditions.
✅ Calculates RSI & MACD for momentum confirmation.
✅ Uses OBV to confirm volume-based breakouts.
✅ Highlights buy/sell signals:
Buy Signal (Green background) → When price crosses above EMA, RSI < 50, MACD bullish crossover, price near lower Bollinger Band, and OBV rising.
Sell Signal (Red background) → When price crosses below EMA, RSI > 50, MACD bearish crossover, price near upper Bollinger Band, and OBV declining.
Parabolic SAR + EMA 200 + MACD Signals// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Saleh_Toodarvari
//@version=5
indicator(title="Parabolic SAR + EMA 200 + MACD Signals", shorttitle="SAR EMA MACD", overlay=true, timeframe="", timeframe_gaps=true)
// Inputs
sar_start = input(0.02)
sar_increment = input(0.02)
sar_maximum = input(0.2, "Max Value")
ema_len = input.int(200, minval=1, title="Length")
ema_src = input(close, title="Source")
ema_offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
macd_fast_length = input(title="Fast Length", defval=12)
macd_slow_length = input(title="Slow Length", defval=26)
macd_src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options= )
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options= )
// Colors
col_macd = input(#2962FF, "MACD Line ", group="Color Settings", inline="MACD")
col_signal = input(#FF6D00, "Signal Line ", group="Color Settings", inline="Signal")
col_grow_above = input(#26A69A, "Above Grow", group="Histogram", inline="Above")
col_fall_above = input(#B2DFDB, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#FFCDD2, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#FF5252, "Fall", group="Histogram", inline="Below")
// Parabolic SAR
SAR = ta.sar(sar_start, sar_increment, sar_maximum)
plot(SAR, "ParabolicSAR", style=plot.style_circles, color=#2962FF)
// EMA 200
EMA_200 = ta.ema(ema_src, ema_len)
plot(EMA_200, title="EMA", color=color.blue, offset=ema_offset)
// MACD
fast_ma = sma_source == "SMA" ? ta.sma(macd_src, macd_fast_length) : ta.ema(macd_src, macd_fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(macd_src, macd_slow_length) : ta.ema(macd_src, macd_slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
delta = macd - signal
// Conditions
main_trend=if ohlc4high
true
else
false
macd_long = if (ta.crossover(delta, 0))
true
else
false
macd_short = if (ta.crossunder(delta, 0))
true
else
false
// Long
buy_signal= sar_long and macd_long and (main_trend=="Bullish")
// Short
sell_signal= sar_short and macd_short and (main_trend=="Bearish")
// Plots
plotshape(buy_signal, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white)
plotshape(sell_signal, title="Sell Label", text="Sell", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white)
//_________________alerts_________________
alertcondition(buy_signal, title='SAR EMA200 MACD Buy signal!', message='Buy signal')
alertcondition(sell_signal, title='SAR EMA200 MACD Sell signal!', message='Sell signal')
2 EMA CROSS
The "2 EMA CROSS" indicator is a powerful and user-friendly tool tailored for traders looking to pinpoint potential market entry and exit points through the use of exponential moving average (EMA) crossovers. This indicator features two EMAs: a fast EMA (default period of 25) and a slow EMA (default period of 50), allowing traders to easily identify bullish or bearish signals directly on their charts.
Bullish Signal: When the fast EMA crosses above the slow EMA, it suggests a potential buying opportunity, marked by a green signal.
Bearish Signal: Conversely, when the fast EMA crosses below the slow EMA, it indicates a potential selling opportunity, shown by a red signal.
The "2 EMA CROSS" indicator is highly customizable, allowing users to choose their preferred type of moving averages and source data. This versatility makes it suitable for a variety of trading strategies. Whether you are a novice or an experienced trader, the "2 EMA CROSS" provides clear and intuitive visual cues to enhance your trading decisions.
Crossover Signal with RSISimple Strategy With Signals using ema and rsi with requred accuracy
do paper trade first
Scalping EMA+RSI+BB carloss//@version=5
indicator("Scalping EMA+RSI+BB", overlay=true)
// Configuración de la EMA de 20 períodos
emaLength = 20
ema20 = ta.ema(close, emaLength)
// Cambiar color de la EMA según tendencia
emaColor = ema20 > ema20 ? color.green : color.red
plot(ema20, color=emaColor, linewidth=2, title="EMA 20")
// Configuración de las Bandas de Bollinger
bbLength = 20
bbMult = 2.0
basis = ta.sma(close, bbLength)
deviation = ta.stdev(close, bbLength)
upperBB = basis + bbMult * deviation
lowerBB = basis - bbMult * deviation
fill(plot(upperBB, color=color.blue, title="Banda Superior"),
plot(lowerBB, color=color.blue, title="Banda Inferior"), color=color.new(color.blue, 90))
// Configuración del RSI
rsiLength = 14
rsiOverbought = 70
rsiOversold = 30
rsi = ta.rsi(close, rsiLength)
hline(rsiOverbought, "Sobrecompra", color=color.red, linestyle=hline.style_dotted)
hline(rsiOversold, "Sobreventa", color=color.green, linestyle=hline.style_dotted)
hline(50, "Neutral", color=color.gray, linestyle=hline.style_dotted)
// Señales de compra y venta
buySignal = rsi < rsiOversold and close < lowerBB
sellSignal = rsi > rsiOverbought and close > upperBB
// Mostrar señales en el gráfico
plotshape(series=buySignal, title="Compra", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, title="Venta", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Mensajes para la estrategia
alertcondition(buySignal, title="Alerta de Compra", message="Señal de compra detectada")
alertcondition(sellSignal, title="Alerta de Venta", message="Señal de venta detectada")