
Esta estratégia é um sistema de negociação de reversão de tendência baseado na coordenação de múltiplos indicadores técnicos, usado principalmente para negociações de curto prazo em um período de 5 minutos. A estratégia integra métodos de análise multidimensionais, como rastreamento de tendência de média móvel, confirmação de volume, filtragem de volatilidade de ATR, etc., e filtra oportunidades de negociação de reversão de alta probabilidade por meio de condições de entrada rigorosas. Essa estratégia é particularmente adequada para operar durante horários de negociação com boa liquidez e pode capturar efetivamente oportunidades de reversão de curto prazo no mercado.
A lógica central da estratégia é baseada nos seguintes componentes principais:
Esta estratégia é um sistema de negociação de curto prazo bem projetado que alcança identificação de sinal de reversão e controle de risco mais confiáveis por meio da coordenação de múltiplos indicadores. A vantagem da estratégia está em suas opções de configuração flexíveis e mecanismo de gerenciamento de risco perfeito, mas também exige que os traders otimizem totalmente as configurações de parâmetros e os utilizem em um ambiente de mercado adequado. Por meio de otimização e melhoria contínuas, essa estratégia tem o potencial de se tornar uma ferramenta de negociação estável de curto prazo.
/*backtest
start: 2024-01-17 00:00:00
end: 2025-01-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Reversal Signals Strategy [AlgoAlpha]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
group_strategy = "Strategy Settings"
riskRewardRatio = input.float(2.0, "Risk-Reward Ratio", tooltip="Take Profit is Risk-Reward times Stop Loss", group=group_strategy)
stopLossATRMultiplier = input.float(1.5, "Stop Loss ATR Multiplier", tooltip="Multiplier for ATR-based stop loss", group=group_strategy)
// Reversal Signal Detection (from previous script)
group_reversal = "Reversal Detection Settings"
lookbackPeriod = input.int(12, "Candle Lookback", group=group_reversal)
confirmationPeriod = input.int(3, "Confirm Within", group=group_reversal)
enableVolumeConfirmation = input.bool(true, "Use Volume Confirmation", group=group_reversal)
group_trend = "Trend Settings"
trendMAPeriod = input.int(50, "Trend MA Period", group=group_trend)
trendMAType = input.string("EMA", "MA Type", options=["SMA", "EMA", "WMA", "VWMA"], group=group_trend)
group_appearance = "Appearance"
bullColor = input.color(#00ffbb, "Bullish Color", group=group_appearance)
bearColor = input.color(#ff1100, "Bearish Color", group=group_appearance)
// Moving Average Selection
ma_current = switch trendMAType
"SMA" => ta.sma(close, trendMAPeriod)
"EMA" => ta.ema(close, trendMAPeriod)
"WMA" => ta.wma(close, trendMAPeriod)
"VWMA" => ta.vwma(close, trendMAPeriod)
// Volume Confirmation
volumeIsHigh = volume > ta.sma(volume, 20)
// Calculate Reversal Scores
bullCandleScore = 0
bearCandleScore = 0
for i = 0 to (lookbackPeriod - 1)
bullCandleScore += close < low[i] ? 1 : 0
bearCandleScore += close > high[i] ? 1 : 0
// Reversal Signals
bullSignal = bullCandleScore == (lookbackPeriod - 1) and (not enableVolumeConfirmation or volumeIsHigh)
bearSignal = bearCandleScore == (lookbackPeriod - 1) and (not enableVolumeConfirmation or volumeIsHigh)
// ATR-based Stop Loss and Take Profit
atrValue = ta.atr(14)
stopLossLevel = stopLossATRMultiplier * atrValue
takeProfitLevel = stopLossLevel * riskRewardRatio
// Strategy Orders
if bullSignal
strategy.entry("Long", strategy.long)
strategy.exit("Long TP/SL", from_entry="Long", stop=close - stopLossLevel, limit=close + takeProfitLevel)
if bearSignal
strategy.entry("Short", strategy.short)
strategy.exit("Short TP/SL", from_entry="Short", stop=close + stopLossLevel, limit=close - takeProfitLevel)
// Plot Reversal Signals
plotshape(bullSignal, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=bullColor, size=size.small, text="B")
plotshape(bearSignal, title="Sell Signal", style=shape.labeldown, location=location.abovebar, color=bearColor, size=size.small, text="S")
// Alerts for trade signals
alertcondition(bullSignal, "Bullish Reversal", "Bullish Reversal Signal Detected")
alertcondition(bearSignal, "Bearish Reversal", "Bearish Reversal Signal Detected")