Esta é uma estratégia de negociação de curto prazo que utiliza o indicador ADX para filtrar sinais de ruptura. Ele fica curto quando o preço quebra acima da banda superior de Bollinger e o ADX está caindo, e fica longo quando o preço quebra abaixo da banda inferior de Bollinger e o ADX está subindo. A estratégia também define stop loss e take profit automaticamente para negociação totalmente automatizada.
O núcleo desta estratégia é o uso de Bollinger Bands para sinais de ruptura. As bandas superior e inferior de Bollinger Bands representam dois desvios padrão do preço, por isso as rupturas geralmente implicam que o preço está entrando em uma tendência forte. Além disso, o indicador ADX é introduzido aqui como um filtro para evitar falsas rupturas.
Especificamente, esta estratégia calcula as Bandas de Bollinger usando 33 períodos de preços de fechamento. A faixa do meio é uma média móvel simples de 33 períodos, e as bandas superior/inferior são colocadas em dois desvios padrão acima/abaixo da faixa do meio. A estratégia sinaliza curto quando o preço fecha abaixo da faixa superior e o ADX de 8 períodos está abaixo do ADX de 15 períodos. Ele sinaliza longo quando o preço fecha acima da faixa inferior e o ADX de 8 períodos está acima do ADX de 15 períodos. As saídas são definidas em 800 pontos de lucro e 400 pontos de stop loss.
Como uma estratégia de ruptura que incorpora filtros de tendência e impulso, tem várias vantagens:
Há também alguns riscos com esta estratégia:
Para mitigar esses riscos, podemos ajustar o parâmetro BB para reduzir as faixas, ajustar os períodos ADX para evitar filtragem excessiva e reduzir a perda de parada para controlar a perda de uma única negociação.
Há espaço para uma maior otimização:
Em conclusão, esta é uma estratégia de ruptura simples e prática com filtro. Identificar tendências com BBs e filtrar sinais com ADX ajuda a evitar ruído durante períodos de alcance e capturar oportunidades de tendência até certo ponto.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Hizbullah XAUUSD Sniper", overlay=true) Price = close Length = input(33) Mult = input(2) Basis = sma(Price, Length) StdDev = Mult * stdev(Price, Length) Upper = Basis + StdDev Lower = Basis - StdDev ADX_Length = input(4) TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) SmoothedTrueRange = sma(TrueRange, ADX_Length) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedDirectionalMovementPlus = sma(DirectionalMovementPlus, ADX_Length) SmoothedDirectionalMovementMinus = sma(DirectionalMovementMinus, ADX_Length) DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus)*100 SmoothedADX1 = ema(DX, input(8)) SmoothedADX2 = ema(DX, input(15)) Condition1 = crossunder(Price, Upper) and SmoothedADX1 < SmoothedADX2 Take_Profit = input(800) Stop_Loss = input(400) strategy.entry("ShortEntry", true, when = Condition1) strategy.exit("ShortExit", "ShortEntry", profit = Take_Profit, loss = Stop_Loss)