Sistema de reversão do golden Bollinger Band Gap

Autora:ChaoZhang, Data: 2024-02-01 11:46:13
Tags:

img

Resumo

Este é um sistema de negociação de gap forex baseado em Bollinger Bands. É adequado para os principais pares de moedas, com a menor comissão possível (abaixo de 1 pip) e prazos que variam de 1 a 15 min.

Estratégia lógica

O sistema utiliza os indicadores Bollinger Bands, RSI e ADX para identificar oportunidades de negociação.

As bandas de Bollinger são usadas para identificar breakouts de preços. Vá longo quando o preço quebra acima da faixa superior, vá curto quando o preço quebra abaixo da faixa inferior. O RSI é usado para evitar falsos breakouts. Os breakouts são considerados válidos apenas quando o RSI reverte (caindo da zona de sobrecompra ou subindo da zona de sobrevenda).

Regras específicas de entrada são: entrada longa requer que o preço quebre acima da faixa superior, RSI subindo da zona de sobrevenda e cruzando a linha 30, ADX abaixo de 32 ao mesmo tempo. entrada curta requer que o preço quebre abaixo da faixa inferior, RSI caindo da zona de sobrecompra e cruzando a linha 70, ADX abaixo de 32 ao mesmo tempo.

As regras de saída incluem take profit/stop loss e reversão da linha média, ou seja: definir pontos fixos de take profit/stop loss, fechar posição quando o preço retornar à linha média de Bollinger.

Análise das vantagens

O sistema apresenta as seguintes vantagens:

  1. Usando Bandas de Bollinger para capturar oportunidades de negociação de gap, que têm um grande potencial de lucro.

  2. Combinar indicador RSI para evitar falhas e melhorar a probabilidade de lucro.

  3. Usar o indicador ADX para filtrar mercados sem tendências claras, evitando negociações desnecessárias.

  4. O fechamento na reversão da linha do meio bloqueia a maioria dos lucros e evita a retração dos lucros.

  5. Adequado para negociações de alta alavancagem, os lucros podem ser amplificados rapidamente.

Análise de riscos

Há também alguns riscos:

  1. Não há lucros se não capturar o gap.

  2. Risco de sobreajuste do backtest, os resultados em vivo podem divergir dos backtests.

  3. Duração da tendência insuficiente.

  4. A alavancagem elevada amplifica os riscos.

  5. Restrições de tempo de negociação podem causar perdas de negociações.

Orientações de otimização

O sistema pode ser melhorado pelos seguintes aspectos:

  1. Otimizar parâmetros para melhorar a eficácia do indicador, por exemplo, período de Bollinger, configurações do RSI, etc.

  2. Adicionar ou melhorar filtros para aumentar a percentagem de operações vencedoras, por exemplo, combinando mais indicadores ou fundamentais.

  3. Otimizar a estratégia de captação de lucro para maximizar o lucro por negociação, por exemplo, stop loss de trailing, stop loss baseado em ATR, etc.

  4. Determinar automaticamente o nível de alavancagem adequado para maximizar o retorno esperado.

  5. Usar técnicas de aprendizagem de máquina para encontrar parâmetros ideais automaticamente em vez de iteração manual.

Conclusão

O Golden Bollinger Band Gap Reversion System é um sistema típico de breakout de curto prazo. Ele visa capturar lucros das lacunas de preço. Vários filtros são usados para melhorar a qualidade dos sinais. Demonstra boa lucratividade em backtests.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy("Bollinger Bands, RSI and ADX Trading System", overlay=true)


timeinrange(res, sess) => time(res, sess) != 0


timer = color.red


//bgcolor(timeinrange(timeframe.period, "0300-0600") or timeinrange(timeframe.period, "0900-1300") or timeinrange(timeframe.period, "2030-2300") ? timer : na, transp=70)


//RSI
length = input( 20 )
overSold = input( 35 )
overBought = input( 65 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
//if (not na(vrsi))


//BB
lengthB = input(60, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthB)
dev = mult * stdev(src, lengthB)
upper = basis + dev
lower = basis - dev


//adx
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)

longEntry = close < upper and crossover(vrsi,overSold) and sig < 32 //and (timeinrange(timeframe.period, "0301-0600") or timeinrange(timeframe.period, "0901-1300") or timeinrange(timeframe.period, "2031-2300"))

shortEntry = close > upper and crossunder(vrsi,overBought) and sig < 32 //and (timeinrange(timeframe.period, "0301-0600") or timeinrange(timeframe.period, "0901-1300") or timeinrange(timeframe.period, "2031-2300"))


tp=input(90, step=10)
sl=input(90, step=10)

strategy.entry("long",1,when=longEntry)
strategy.exit("X_long", "long", profit=tp,  loss=sl )
strategy.close("long",when=crossunder(close,basis))

strategy.entry('short',0,when=shortEntry)
strategy.exit("x_short", "short",profit=tp, loss=sl)
strategy.close("short",when=crossover(close,basis))







Mais.