La stratégie d'oscillation de percée latérale est une stratégie de trading quantitative qui utilise les bandes de Bollinger et l'indicateur MACD pour déterminer les signaux d'achat et de vente.
La stratégie d'oscillation de rupture latérale utilise des bandes de Bollinger pour juger de la gamme des fluctuations de prix. Les bandes de Bollinger comprennent la bande du milieu, la bande supérieure et la bande inférieure. La bande du milieu est la moyenne mobile simple de n jours, et les bandes supérieure et inférieure sont k fois la vraie gamme de n jours au-dessus et au-dessous de la bande du milieu respectivement. Lorsque le prix franchit la bande inférieure, on pense que le marché peut s'inverser, un signal d'achat est émis. Lorsque le prix franchit la bande supérieure, on pense que le marché peut s'inverser, un signal de vente est émis.
En plus d'utiliser les bandes de Bollinger pour déterminer les points de négociation, cette stratégie intègre également l'indicateur MACD pour déterminer les signaux de négociation. L'indicateur MACD comprend la ligne DIF, la ligne DEA et la ligne MACD. La ligne DIF est la différence entre la moyenne mobile exponentielle de 12 jours et la moyenne mobile exponentielle de 26 jours, la ligne DEA est la moyenne mobile exponentielle de 9 jours, et la ligne MACD est la différence entre les lignes DIF et DEA. Un signal d'achat est généré lorsque la ligne MACD passe de négative à positive, et un signal de vente est généré lorsqu'elle passe de positive à négative.
En combinant les bandes de Bollinger et les indicateurs MACD, les règles de génération de signaux de trading pour la stratégie d'oscillation de rupture latérale sont les suivantes: un signal d'achat est émis lorsque le prix franchit la bande inférieure du canal de Bollinger; un signal de vente est émis lorsque le prix franchit la bande supérieure du canal de Bollinger. Fermez la position lorsque le prix franchit à nouveau les rails du canal.
La stratégie d'oscillation de rupture latérale présente les avantages suivants:
Bien que la stratégie d'oscillation de rupture latérale présente de nombreux avantages, il existe encore certains risques dans le commerce réel, qui se reflètent principalement dans les aspects suivants:
Pour réduire les risques susmentionnés, nous pouvons optimiser les aspects suivants:
La stratégie d'oscillation de rupture latérale comporte également des possibilités d'optimisation supplémentaire, qui peuvent être effectuées principalement dans les directions suivantes:
La stratégie d'oscillation de percée latérale intègre les bandes de Bollinger et les indicateurs MACD pour déterminer le moment d'entrée et de sortie, et peut capturer efficacement les opportunités d'inversion des tendances oscillant en utilisant des percées de prix des deux côtés. Cette stratégie est simple, flexible dans la sélection des paramètres et fonctionne bien sur différents produits. Cependant, il y a encore des risques pour la stratégie qui nécessitent des tests et une optimisation supplémentaires. Nous avons proposé quelques idées d'optimisation. Avec une amélioration continue, nous pensons que la performance de cette stratégie s'améliorera de plus en plus.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-02 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Seitwärtsdoppelpenetration", overlay=false) //Keltner Channel source = open useTrueRange = input(true) length = input(20, minval=1) mult = input(4.0) ma = sma(source, length) range = useTrueRange ? tr : high - low rangema = sma(range, length) upper = ma + rangema * mult lower = ma - rangema * mult crossUpper = crossover(source, upper) crossLower = crossunder(source, lower) //Entry buyEntry = cross(lower,source) sellEntry = cross(upper,source) if (cross(lower,source)) strategy.entry("buyEntry", strategy.long, comment="buyEntry") if (cross(source, upper)) strategy.entry("sellEntry", strategy.short, comment="sellEntry") buyExit = cross(source, upper) sellExit = cross(lower,source) strategy.close("buyEntry", buyExit) strategy.close("sellEntry", sellExit)