Cette stratégie est une stratégie de trading quantitative basée sur les bandes de Bollinger et les indicateurs MACD. Elle combine le trading de rupture des bandes de Bollinger et le suivi des tendances MACD pour améliorer la qualité des signaux de trading.
La stratégie utilise principalement les bandes de Bollinger et les indicateurs MACD pour déterminer les signaux de négociation.
Les bandes de Bollinger se composent d'une bande moyenne, d'une bande supérieure et d'une bande inférieure. Un signal d'achat est généré lorsque le prix franchit la bande inférieure. Un signal de vente est généré lorsque le prix franchit la bande supérieure. La stratégie utilise le principe de rupture des bandes de Bollinger pour déterminer des signaux de rupture plus forts.
L'indicateur MACD reflète la relation entre les moyennes mobiles à court et à long terme. Il utilise des croisements de la ligne de différence et de la ligne de signal pour déterminer les points d'entrée et de sortie.
Dans l'ensemble, la stratégie combine le suivi de tendance des bandes de Bollinger et les avantages de la moyenne mobile du MACD, visant à capturer les fluctuations plus importantes du marché dans des tendances fortes.
La combinaison des bandes de Bollinger et des indicateurs MACD rend les signaux de trading plus fiables.
Le suivi de la tendance des bandes de Bollinger et les croisements des moyennes mobiles MACD peuvent produire des signaux d'entrée plus forts sur les marchés en tendance.
Les faux signaux peuvent être efficacement filtrés par un jugement à double indicateur, ce qui réduit le risque de négociation.
Il y a une grande marge d'optimisation des paramètres de la stratégie, qui peut être ajustée en fonction des différents produits et cycles.
Dans les marchés à plage, les signaux de négociation générés par les bandes de Bollinger et le MACD peuvent être fréquents, entraînant des risques de sur-trading.
Trois croix dorées MACD consécutives à des niveaux bas peuvent présenter le risque d'un renversement à la baisse.
La stratégie utilise plusieurs indicateurs, ce qui rend l'optimisation des paramètres et les tests de stratégie assez difficiles.
Pour lutter contre ces risques, des méthodes telles que l'ajustement des périodes de détention, le réglage des stop-loss, l'optimisation des paramètres peuvent être utilisées pour les contrôler.
Testez les paramètres des bandes de Bollinger à plus longue période pour réduire la fréquence des transactions.
Optimiser les paramètres de la ligne rapide et lente du MACD pour améliorer la sensibilité de l'indicateur.
Ajouter d'autres indicateurs pour le filtrage, tels que KDJ, RSI, etc., pour améliorer la qualité du signal.
Mettre en place des arrêts dynamiques pour quitter automatiquement les transactions et contrôler les risques liés aux transactions uniques.
En théorie, en intégrant le trading de rupture des bandes de Bollinger et le filtrage de l'indicateur MACD, cette stratégie peut produire des signaux de trading de haute qualité.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Nabz-BBMACD-2022-V1.1", shorttitle="BBM-Nabz", overlay=true) // My 1st Pine Scrpt Indicator // Work on best on 1Hr Chart // Open for Help/Donations. var float lastentry=1 int result = 0 float x = 0 drawshape = false /////////////EMA shortest = ta.ema(close, 20) short = ta.ema(close, 50) longer = ta.ema(close, 100) longest = ta.ema(close, 200) plot(shortest, color = color.red) plot(short, color = color.orange) plot(longer, color = color.aqua) plot(longest, color = color.blue) ///////////// RSI RSIlength = input(6,title="RSI Period Length") RSIoverSold = 50 RSIoverBought = 50 price = close vrsi = ta.rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input.int(200, minval=1,title="Bollinger Period Length") BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation") BBbasis = ta.sma(price, BBlength) BBdev = BBmult * ta.stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev source = close buyEntry = ta.crossover(source, BBlower) sellEntry = ta.crossunder(source, BBupper) ////////////// MACD fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength) aMACD = ta.ema(MACD, MACDLength) delta = MACD - aMACD ///////////// Colors switch1=input(true, title="Enable Bar Color?") switch2=input(true, title="Enable Background Color?") TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? color.red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? color.green : na ///////////Strategy bool tcu = not (ta.crossunder(price[0],shortest[0])) if (((price[1]<BBlower[1]) and (ta.crossover(price,BBlower)))) lastentry := low[1] strategy.entry("RSI_BB_L", strategy.long, comment="Buy 1st IF") if (((ta.crossover(delta, 0.0) and (ta.crossover(price,BBlower))))) lastentry := low[1] strategy.entry("RSI_BB_L", strategy.long, comment="Buy 2nd IF") if (((ta.crossover(delta, 0.0)) and (low[0]>shortest[0])) and (price[1]<low)) lastentry := low[1] strategy.entry("RSI_BB_L", strategy.long, comment="Buy 3rd IF") //else if (((ta.crossover(delta, 0.01)) and (high[1]<BBupper)) and (tcu)) lastentry := low[1] strategy.entry("RSI_BB_L", strategy.long, comment="Buy 4th IF") if ((ta.crossunder(low[0],shortest[0]) and close<shortest)) strategy.close(id="RSI_BB_L", comment="Close by 1st IF") if (price<lastentry) drawshape := true if (price<strategy.opentrades.entry_price(0)/1.01175734321249) strategy.close(id="RSI_BB_L", comment="Close by 2nd IF") plot(strategy.opentrades.entry_price(0), color=color.yellow)