Esta estratégia é um sistema de negociação de tendência de indicadores multi-técnicos que combina Bandas de Bollinger, indicadores de tendência, indicadores de momento e indicadores de volatilidade, tomando decisões de negociação através da análise de volume de preços.
A lógica central da estratégia baseia-se nos seguintes aspectos: 1. Usando Bandas de Bollinger como referência para a faixa de volatilidade de preços, procurando oportunidades longas quando o preço quebra acima da faixa superior e oportunidades curtas quando quebra abaixo da faixa inferior Usando o indicador ADX para julgar a força da tendência, apenas abrindo posições quando a tendência for suficientemente forte (ADX>25) 3. Requer um aumento de volume (1,5 vezes acima do volume médio de 20 dias) para confirmar a validade da ruptura de preços 4. Usando o indicador SuperTrend como filtro de direção da tendência, apenas entrando em posições quando o preço está no lado correto da linha de tendência 5. Usando MACD cruz de morte, ATR trailing stop, ou ADX enfraquecimento como condições de saída
Esta é uma estratégia de acompanhamento de tendências com múltiplos indicadores bem projetada que constrói um sistema de negociação que combina o acompanhamento de tendências e o controle de riscos através da integração orgânica de Bandas de Bollinger, ADX, SuperTrend, MACD e outros indicadores. As vantagens da estratégia estão em múltiplas confirmações de sinais e mecanismos abrangentes de controle de riscos, mas também enfrenta desafios de otimização excessiva e sensibilidade de parâmetros. Através da otimização contínua e adaptação dinâmica ao ambiente de mercado, esta estratégia tem o potencial de manter um desempenho estável em diferentes condições de mercado.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Nifty Options Trendy Markets with TSL", overlay=true) // Input Parameters lengthBB = input(20, title="Bollinger Bands Length") multBB = input(2.0, title="Bollinger Bands Multiplier") adxLength = input(14, title="ADX Length") adxThreshold = input(25, title="ADX Entry Threshold") adxExitThreshold = input(20, title="ADX Exit Threshold") superTrendLength = input(10, title="Supertrend Length") superTrendMultiplier = input(3.0, title="Supertrend Multiplier") macdFast = input(12, title="MACD Fast Length") macdSlow = input(26, title="MACD Slow Length") macdSignal = input(9, title="MACD Signal Length") atrLength = input(14, title="ATR Length") atrMultiplier = input(1.5, title="Trailing Stop ATR Multiplier") volumeSpikeMultiplier = input(1.5, title="Volume Spike Multiplier") // Calculations [macdLine, signalLine,_ ] = ta.macd(close, macdFast, macdSlow, macdSignal) macdCrossover = ta.crossover(macdLine, signalLine) macdCrossunder = ta.crossunder(macdLine, signalLine) [middleBB,upperBB,lowerBB] = ta.bb(close, lengthBB, multBB) [supertrend, direction] = ta.supertrend(superTrendMultiplier,superTrendLength) len = input.int(17, minval=1, title="DI Length") lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50) [diplus, diminus, adx] = ta.dmi(len, lensig) atr = ta.atr(atrLength) trailingStopLong = close - atr * atrMultiplier // For long trades trailingStopShort = close + atr * atrMultiplier // For short trades volumeSpike = volume > ta.sma(volume, 20) * volumeSpikeMultiplier // Entry Conditions longEntry = ta.crossover(close, upperBB) and adx > adxThreshold and volumeSpike and close > supertrend shortEntry = ta.crossunder(close, lowerBB) and adx > adxThreshold and volumeSpike and close < supertrend // Exit Conditions longExit = ta.crossunder(macdLine, signalLine) or close < trailingStopLong or adx < adxExitThreshold shortExit = ta.crossover(macdLine, signalLine) or close > trailingStopShort or adx < adxExitThreshold // Strategy Entries and Exits if (longEntry) strategy.entry("Long", strategy.long) if (shortEntry) strategy.entry("Short", strategy.short) if (longExit) strategy.close("Long") if (shortExit) strategy.close("Short") // Plotting plot(supertrend, color=color.blue, style=plot.style_line, linewidth=2, title="Supertrend Line") plot(trailingStopLong, title="Trailing Stop for Long", color=color.green, style=plot.style_line) plot(trailingStopShort, title="Trailing Stop for Short", color=color.red, style=plot.style_line) bgcolor(longEntry ? color.new(color.green, 90) : shortEntry ? color.new(color.red, 90) : na, title="Background for Entry") // Alerts alertcondition(longEntry, title="Long Entry", message="Buy Call: Long entry conditions met") alertcondition(shortEntry, title="Short Entry", message="Buy Put: Short entry conditions met") alertcondition(longExit, title="Long Exit", message="Exit Call: Long exit conditions met") alertcondition(shortExit, title="Short Exit", message="Exit Put: Short exit conditions met")