Il s'agit d'un système de négociation de gap basé sur les bandes de Bollinger. Il convient aux principales paires de devises, avec la commission la plus basse possible (inférieure à 1 pip) et des délais allant de 1 à 15 min.
Le système utilise les bandes de Bollinger, les indicateurs RSI et ADX pour identifier les opportunités de négociation.
Les bandes de Bollinger sont utilisées pour identifier les écarts de prix. Allez long lorsque le prix dépasse la bande supérieure, allez court lorsque le prix dépasse la bande inférieure. Le RSI est utilisé pour éviter les fausses écarts. Les écarts ne sont considérés comme valables que lorsque le RSI s'inverse (en descendant de la zone de surachat ou en remontant de la zone de survente).
Les règles d'entrée spécifiques sont les suivantes: L'entrée longue nécessite une rupture du prix au-dessus de la bande supérieure, une hausse du RSI à partir de la zone de survente et une traversée de la ligne 30, l'ADX en dessous de 32 en même temps.
Les règles de sortie incluent le point de prise de profit/arrêt de perte et la réversion de la ligne moyenne, à savoir: Fixer des points de prise de profit/arrêt de perte fixes.
Le système présente les avantages suivants:
Utiliser les bandes de Bollinger pour saisir les opportunités de trading de la différence, qui ont un grand potentiel de profit.
Combiner l'indicateur RSI pour éviter les fausses ruptures et améliorer la probabilité de profit.
Utiliser l'indicateur ADX pour filtrer les marchés sans tendance claire, en évitant les transactions inutiles.
La fermeture sur la ligne de réversion du milieu bloque la plupart des bénéfices et évite le retracement des bénéfices.
Convient pour les transactions à effet de levier élevé, les bénéfices peuvent être amplifiés rapidement.
Il y a aussi des risques:
Il n'y a pas de profit si on ne capture pas les lacunes.
Risque de suradaptation des tests antérieurs.
La durée de la tendance est insuffisante.
Un effet de levier élevé amplifie les risques.
Les restrictions de temps de négociation peuvent entraîner des transactions manquantes.
Le système peut être amélioré par les aspects suivants:
Optimiser les paramètres pour améliorer l'efficacité de l'indicateur, par exemple la période de Bollinger, les paramètres du RSI, etc.
Ajouter ou améliorer des filtres pour augmenter le pourcentage de transactions gagnantes, par exemple en combinant plus d'indicateurs ou de fondamentaux.
Optimiser la stratégie de prise de profit pour maximiser le bénéfice par transaction, par exemple le stop loss de suivi, le stop loss basé sur l'ATR, etc.
Déterminer automatiquement le niveau d'effet de levier approprié pour maximiser le rendement attendu.
Utilisez des techniques d'apprentissage automatique pour trouver des paramètres optimaux automatiquement au lieu d'une itération manuelle.
Le Golden Bollinger Band Gap Reversion System est un système typique de rupture à court terme. Il vise à capturer les bénéfices des écarts de prix. Plusieurs filtres sont utilisés pour améliorer la qualité des signaux. Il démontre une bonne rentabilité dans les 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))