Cette stratégie utilise pleinement le jugement de tendance des moyennes mobiles et le jugement de surachat / survente des bandes de Bollinger. Avec le lissage de la moyenne mobile T3, elle peut identifier l'inversion de tendance en temps opportun et entrer sur le marché. Dans la zone d'oscillation, elle utilise les bandes de Bollinger pour identifier les zones de surachat / survente pour le contre-trend.
La stratégie utilise principalement trois groupes de moyennes mobiles pour identifier la tendance et générer des signaux de trading. La première est la moyenne mobile T3, qui peut filtrer les fluctuations de prix grâce à un lissage exponentiel et juger de la direction de la tendance. La seconde est la moyenne mobile à moyen terme, qui utilise ici une SMA de 20 périodes pour déterminer la tendance à moyen terme.
Les signaux de trading sont générés lorsque le SMA à moyen terme traverse le T3 à moyen terme en hausse, en combinaison avec une tendance à la hausse, allez long. Lorsque le SMA à moyen terme traverse le T3 à moyen terme en baisse, en combinaison avec une tendance à la baisse, allez court. En outre, les bandes de Bollinger peuvent être utilisées pour la prise de profit et le stop loss. Si le prix traverse la bande supérieure, envisagez de prendre un profit. Si le prix traverse la bande inférieure, envisagez un stop loss.
Plus précisément, la condition longue est que la SMA moyenne traverse la T3 moyenne vers le haut et que la MA rapide est supérieure à la MA lente. Si le prix traverse la bande supérieure de Bollinger ou que la SMA moyenne traverse la T3, envisagez de prendre un profit. La condition courte est que la SMA moyenne traverse la T3 moyenne vers le bas et que la MA rapide est inférieure à la MA lente. Si le prix traverse la bande inférieure de Bollinger ou que la SMA moyenne traverse la T3, considérez un stop loss.
Améliorations:
En résumé, cette stratégie utilise systématiquement des moyennes mobiles pour déterminer la tendance et identifie les niveaux de surachat / survente avec des bandes de Bollinger. Elle peut entrer sur le marché en temps opportun lors d'inversions de tendance et contrôle également efficacement les risques. Mais l'ajustement et l'optimisation des paramètres sont importants pour que la stratégie fonctionne vraiment bien.
/*backtest start: 2023-10-25 00:00:00 end: 2023-11-01 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle="BB T3 Strategy", title="BB T3 Strategy", overlay=true) //T3 b = 0.7 c1 = -b*b*b c2 = 3*b*b+3*b*b*b c3 = -6*b*b-3*b-3*b*b*b c4 = 1+3*b+b*b*b+3*b*b t3(len) => c1 * ema(ema(ema(ema(ema(ema(close, len), len), len), len), len), len) + c2 * ema(ema(ema(ema(ema(close, len), len), len), len), len) + c3 * ema(ema(ema(ema(close, len), len), len), len) + c4 * ema(ema(ema(close, len), len), len) //T3 end length = input(20, minval=1) mult = input(2.5, minval=0.001, maxval=50, title="StdDev") basis = t3(length) basisDev = t3(length/10) dev = mult * stdev(basisDev,length) upper = basis + dev lower = basis - dev offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#872323, offset = offset) p1 = plot(upper, "Upper", color=color.teal, offset = offset) p2 = plot(lower, "Lower", color=color.teal, offset = offset) fill(p1, p2, title = "Background", color=#198787, transp=95) stoploss = input(true, "Stop Loss") basisSma = sma(close, length) p3 = plot(basisSma, color=color.blue, title="MA", offset=offset) fastT3 = t3(50) slowT3 = t3(200) crossUp = crossover(basisSma, basis) crossDown = crossunder(basisSma, basis) bollBounce = crossover(close, upper) bollReject = crossunder(close, lower) underBasis = crossunder(close, basis) overBasis = crossover(close, basis) trendUp = fastT3 > slowT3 trendDown = fastT3 < slowT3 strategy.entry("long", strategy.long, when=(trendUp and crossUp), stop=(stoploss ? high+syminfo.mintick : na)) strategy.close("long", when=(bollBounce or crossDown or underBasis)) strategy.entry("short", strategy.short, when=(trendDown and crossDown), stop=(stoploss ? low-syminfo.mintick : na)) strategy.close("short", when=(bollReject or crossUp or overBasis))