L'idée principale de cette stratégie est basée sur l'indicateur Squeeze Momentum de LazyBear
Cette stratégie intègre des bandes de Bollinger et des canaux de Keltner pour identifier les tendances et les zones de compression. Plus précisément, elle calcule des bandes de Bollinger de 20 périodes et des canaux de Keltner de 20 périodes. Lorsque les bandes de Bollinger tombent entièrement dans les canaux de Keltner, cela est considéré comme un signal de compression. La zone de compression est identifiée lorsque la bande inférieure des bandes de Bollinger dépasse la bande inférieure des canaux de Keltner et que la bande supérieure des bandes de Bollinger dépasse la bande supérieure des canaux de Keltner.
En outre, la stratégie utilise la régression linéaire pour analyser le changement de la pente du momentum. Elle calcule la valeur de régression linéaire du prix au cours des 20 dernières périodes moins le prix typique. Lorsque la pente de la valeur de régression linéaire est positive, elle est considérée comme une tendance à la hausse. Lorsque la pente est négative, c'est une tendance à la baisse. Dans la zone de pression, s'il y a un renversement de la pente du momentum, cela indique un achat ou une vente. Plus précisément, lorsque dans la zone de pression, un virage de momentum de positif à négatif émet un signal de vente. Et lorsque dans la zone de pression, un virage de momentum de négatif à positif émet un signal d'achat.
Pour filtrer les faux signaux, la stratégie juge également si le prix de clôture est supérieur à la moyenne mobile exponentielle de 50 jours et si la moyenne mobile exponentielle de 50 jours est en pente ascendante.
Il s'agit d'une stratégie très intelligente, utilisant deux types d'indicateurs différents pour faire un jugement multidimensionnel du marché, ce qui peut efficacement éviter de faux signaux.
Application complète des bandes de Bollinger, des canaux de Keltner et des indicateurs de dynamique pour une analyse multidimensionnelle et une précision améliorée.
Les zones de compression peuvent identifier efficacement les pics et les creux des inversions de momentum et capturer avec précision les virages.
Le filtrage des tendances basé sur le prix de clôture et l'EMA à 50 jours évite l'ouverture répétitive de positions lors des consolidations.
Les signaux émis uniquement pendant les zones de pression réduisent les faux signaux et améliorent le taux de rentabilité.
L'espace d'optimisation des paramètres est grand et permet des optimisations ciblées via des périodes d'ajustement, etc.
Combiné à long et à court, il prend en compte les grandes tendances du cycle et intègre des indicateurs à moyen terme, l'orientation à long terme est claire.
Bien que cette stratégie comporte de multiples indicateurs techniques non agricoles, il existe encore certains risques:
Perte de possibilités d'achat/vente lorsque les bandes de Bollinger et les canaux de Keltner divergent.
Des pertes importantes peuvent survenir lors de fortes hausses ou baisses du marché.
Dans les marchés à forte volatilité, les situations de contrainte peuvent ne pas être évidentes, ce qui entraîne moins de signaux.
Prédisposé à des pertes d'ajustement lors de transitions haussières ou baissières.
Pour éviter ces risques, nous pouvons prendre les mesures suivantes:
Optimiser les paramètres pour synchroniser autant que possible les bandes de Bollinger et les canaux de Keltner.
Réglez le stop-loss pour contrôler la perte unique.
Utiliser cette stratégie dans le cadre d'une stratégie de portefeuille, combinée à d'autres stratégies.
Réduire les positions de manière appropriée lors de marchés à forte volatilité.
Il reste encore beaucoup de place pour optimiser cette stratégie, principalement dans les directions suivantes:
Optimiser les périodes des bandes de Bollinger et des canaux de Keltner pour les synchroniser autant que possible.
Testez différents facteurs multiplicateurs pour trouver des combinaisons optimales de paramètres.
Essayez d'introduire d'autres indicateurs pour la confirmation, tels que le RSI, etc.
Sur la base des modèles Wen Hua Five Color Lines, utilisez sélectivement cette stratégie en fonction des étapes du marché.
Adopter l'apprentissage automatique, etc. pour optimiser dynamiquement les paramètres.
Test de retour sur différentes pièces pour trouver les produits commerciaux les plus appropriés.
Examiner l'efficacité de cette stratégie sur des délais plus longs (quotidien, hebdomadaire, etc.).
La stratégie LazyBear Squeeze Momentum utilise de manière complète divers indicateurs techniques, identifiant avec précision les renversements de momentum pour le trading pendant les zones de compression, évitant l'ouverture répétitive de positions pendant les marchés non tendance. Elle a systématiquement défini des règles d'achat et de vente quantifiables, se débrouillant excellemment dans les backtests.
/*backtest start: 2023-11-20 00:00:00 end: 2023-12-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // @author LazyBear // List of all my indicators: https://www.tradingview.com/v/4IneGo8h/ // initialBalance = 8000 strategy("Crypto momentum strategy", overlay=false) length = input(20, title="BB Length") mult = input(2.0, title="BB MultFactor") lengthKC = input(20, title="KC Length") multKC = input(1.5, title="KC MultFactor") useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool) // Calculate BB source = close basis = sma(source, length) ema = ema(source, 50) dev = multKC * stdev(source, length) upperBB = basis + dev lowerBB = basis - dev // Calculate KC ma = sma(source, lengthKC) range = useTrueRange ? tr : high - low rangema = sma(range, lengthKC) upperKC = ma + rangema * multKC lowerKC = ma - rangema * multKC sqzOn = lowerBB > lowerKC and upperBB < upperKC sqzOff = lowerBB < lowerKC and upperBB > upperKC noSqz = sqzOn == false and sqzOff == false val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)), sma(close, lengthKC)), lengthKC, 0) slope = (val - val[2]) emaSlope = (ema - ema[1]) bcolor = iff(slope > 0, color.lime, color.red) scolor = noSqz ? color.green : sqzOn ? color.black : color.green squeeze = (noSqz ? 0 : sqzOn ? 1 : 0) plot(val, color=color.gray, style=plot.style_line, linewidth=1, title="momentum") plot(slope, color=bcolor, style=plot.style_circles, linewidth=2, title="slope") plot(0, color=scolor, style=plot.style_line, linewidth=2, title="squeeze-zero") co = crossover(slope / abs(slope), 0) cu = crossunder(slope / abs(slope), 0) if co and source > ema and emaSlope > 0 strategy.entry("long", strategy.long, comment="long") if cu strategy.close("long")