La stratégie de suivi de tendance des moyennes mobiles doubles utilise une combinaison de moyennes mobiles rapides et lentes pour déterminer la direction de la tendance, ainsi que la couleur du corps du chandelier comme signaux d'entrée.
La stratégie utilise une moyenne mobile lente de 20 périodes pour définir la tendance globale. Le croisement ascendant suggère une tendance haussière tandis que le croisement descendant suggère une tendance baissière. Un MA rapide de 5 périodes sert de filtre d'entrée. Les transactions ne sont déclenchées que lorsque le prix dépasse la MA rapide.
La stratégie examine l'action des prix en utilisant trois dimensions - tendance, MA à court terme et corps de chandelier, améliorant la fiabilité du signal.
Combine le suivi de la tendance et le renversement moyen, adaptable à tous les environnements de marché.
L'examen multifactoriel des signaux antérieurs améliore le taux de victoire en évitant les faux signaux.
Optimisé en utilisant des longueurs MA, des couleurs de bougies vérifiées, etc.
Une logique claire et concise, adaptée aux débutants.
L'utilisation d'un système d'évaluation de la rentabilité peut entraîner des pertes ou des retraits.
Essayez de modifier le nombre de bougies vérifiées ou de désactiver le renversement moyen.
Des tests antérieurs importants sont nécessaires pour valider les paramètres et les performances.
Examiner d'autres types d'AM, par exemple EMA, KAMA, etc.
Ajouter des règles de dimensionnement des positions, par exemple quantité fixe ou pourcentage de capitaux propres.
Considérez la possibilité de sortir des positions longues si le prix se ferme en dessous de la moyenne moyenne lente.
Test sur différents instruments pour vérifier la stabilité.
La stratégie Double MA tire profit des transactions de tendance tout en extraisant l'alpha de la réversion moyenne dans des délais plus courts. La performance et le potentiel de profit peuvent être améliorés par l'optimisation. Malgré sa simplicité, elle permet aux débutants de saisir les concepts clés autour de la combinaison de la tendance et de la réversion moyenne.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs 1.5", shorttitle = "Trend MAs 1.5", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, "long") needshort = input(true, "short") type = input(7, defval = 7, minval = 1, maxval = 7, title = "Type of Slow MA") src = input(close, defval = close, title = "Source of Slow MA") usefastsma = input(true, "Use fast MA Filter") fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period") len = input(20, defval = 20, minval = 2, maxval = 200, title = "slow MA Period") bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q") fastsma = ema(src, fastlen) //DEMA dema = 2 * ema(src, len) - ema(ema(close, len), len) //TEMA xPrice = close xEMA1 = ema(src, len) xEMA2 = ema(xEMA1, len) xEMA3 = ema(xEMA2, len) tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA xvnoise = abs(src - src[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src - src[len]) nnoise = sum(xvnoise, len) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama = nz(kama[1]) + nsmooth * (src - nz(kama[1])) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //Trend ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0 trend = low > ma ? 1 : high < ma ? -1 : trend[1] //Bars bar = close > open ? 1 : close < open ? -1 : 0 redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0 greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0 //Signals up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0 dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0 //Lines colorfastsma = usefastsma == true ? red : na plot(fastsma, color = colorfastsma, title = "Fast MA") plot(ma, color = blue, linewidth = 3, transp = 0, title = "Slow MA") //Trading longCondition = up == 1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)