Esta é uma estratégia de negociação quantitativa avançada que combina o indicador de Supertrend com análise de volume. A estratégia identifica pontos de reversão de tendência potenciais monitorando dinamicamente os cruzamentos de preços com a linha de Supertrend e o comportamento anormal do volume.
A lógica central da estratégia baseia-se nos seguintes elementos-chave: 1. Utiliza o indicador Supertrend como principal ferramenta de determinação de tendências, calculado com base no ATR para adaptação à volatilidade dinâmica do mercado. 2. Definir um volume médio móvel de 20 períodos como referência, com um limiar de 1,5x para a detecção de anomalias de volume. 3. Ativa sinais de negociação quando o preço atravessa a linha Supertrend e as condições de volume são atendidas. Implementa configurações dinâmicas de stop-loss (1.5x ATR) e take-profit (3x ATR) para uma relação risco-recompensa ideal.
A estratégia constrói um sistema de negociação confiável e adaptável, combinando o indicador Supertrend com análise de volume. Seus pontos fortes estão na confirmação de sinal multidimensional e gestão de risco dinâmica, embora as condições do mercado ainda influenciem o desempenho da estratégia. Através da otimização e refinamento contínuos, a estratégia tem o potencial de manter um desempenho estável em diferentes ambientes de mercado.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend with Volume Strategy", overlay=true) // Input parameters for Supertrend atrLength = input(10, title="ATR Length") multiplier = input(3.0, title="Multiplier") // Calculate Supertrend [supertrend, direction] = ta.supertrend(multiplier, atrLength) // Plot Supertrend plot(supertrend, color=direction == 1 ? color.green : color.red, title="Supertrend") // Volume condition volumeThreshold = input(1.5, title="Volume Threshold (x Average)") avgVolume = ta.sma(volume, 20) // 20-period average volume highVolume = volume > (avgVolume * volumeThreshold) // Define entry conditions longCondition = ta.crossover(close, supertrend) and highVolume shortCondition = ta.crossunder(close, supertrend) and highVolume // Execute trades if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Optional: Add stop loss and take profit stopLoss = input(1.5, title="Stop Loss (in ATRs)") takeProfit = input(3.0, title="Take Profit (in ATRs)") if (longCondition) strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=close + (takeProfit * ta.atr(atrLength)), stop=close - (stopLoss * ta.atr(atrLength))) if (shortCondition) strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=close - (takeProfit * ta.atr(atrLength)), stop=close + (stopLoss * ta.atr(atrLength)))