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.
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.
O sistema apresenta as seguintes vantagens:
Usando Bandas de Bollinger para capturar oportunidades de negociação de gap, que têm um grande potencial de lucro.
Combinar indicador RSI para evitar falhas e melhorar a probabilidade de lucro.
Usar o indicador ADX para filtrar mercados sem tendências claras, evitando negociações desnecessárias.
O fechamento na reversão da linha do meio bloqueia a maioria dos lucros e evita a retração dos lucros.
Adequado para negociações de alta alavancagem, os lucros podem ser amplificados rapidamente.
Há também alguns riscos:
Não há lucros se não capturar o gap.
Risco de sobreajuste do backtest, os resultados em vivo podem divergir dos backtests.
Duração da tendência insuficiente.
A alavancagem elevada amplifica os riscos.
Restrições de tempo de negociação podem causar perdas de negociações.
O sistema pode ser melhorado pelos seguintes aspectos:
Otimizar parâmetros para melhorar a eficácia do indicador, por exemplo, período de Bollinger, configurações do RSI, etc.
Adicionar ou melhorar filtros para aumentar a percentagem de operações vencedoras, por exemplo, combinando mais indicadores ou fundamentais.
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.
Determinar automaticamente o nível de alavancagem adequado para maximizar o retorno esperado.
Usar técnicas de aprendizagem de máquina para encontrar parâmetros ideais automaticamente em vez de iteração manual.
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))