Cette stratégie calcule différents types de moyennes mobiles pour déterminer la direction de la tendance des prix et mettre en œuvre une entrée unilatérale.
La stratégie permet de sélectionner parmi 7 types de moyennes mobiles différents, notamment la moyenne mobile simple (SMA), la moyenne mobile exponentielle (EMA), la moyenne mobile pondérée par volume (VWMA), la moyenne mobile exponentielle double (DEMA), la moyenne mobile exponentielle triple (TEMA), la moyenne mobile adaptative de Kaufman (KAMA) et la ligne moyenne du canal de prix.
Lorsque le prix de clôture franchit la ligne de la moyenne mobile vers le haut, il est jugé comme une tendance haussière et une position longue est ouverte. Lorsque le prix de clôture franchit la ligne de la moyenne mobile vers le bas, il est jugé comme une tendance baissière et une position courte est ouverte. Cela peut capturer des points tournants dans la tendance des prix et atteindre une entrée unilatérale.
Les avantages de cette stratégie sont les suivants:
Divers types de moyennes mobiles peuvent être sélectionnés pour une flexibilité adaptée aux différents produits et cycles.
L'entrée d'un seul côté peut contrôler efficacement les risques.
L'entrée dans la direction de la tendance est facile à tirer profit.
Il est facile à comprendre et à mettre en œuvre.
Cette stratégie comporte également certains risques:
Lorsque le prix oscille autour de la ligne moyenne mobile, il y aura plusieurs faux signaux et des positions d'entrée inversées.
Il n'est pas possible d'éviter complètement les risques causés par des mouvements rapides de prix à la hausse ou à la baisse.
L'analyste doit sélectionner les paramètres de moyenne mobile appropriés.
La stratégie peut être optimisée par les aspects suivants:
Combinez avec d'autres indicateurs techniques tels que MACD, RSI pour juger du signal de tendance et former une combinaison de négociation.
Ajouter une logique de stop loss, telle que le stop loss de suivi ou le stop loss d'ordre en attente.
Testez et optimisez des paramètres comme la période moyenne mobile, le type de moyenne mobile pour trouver la combinaison optimale de paramètres.
Considérez l'utilisation du type d'ordre MarketIfTouched pour l'entrée, afin de suivre la tendance.
La stratégie détermine la direction de la tendance des prix en fonction des moyennes mobiles et implémente une entrée à un seul côté. Elle est simple à utiliser et à mettre en œuvre et peut contrôler efficacement les risques. Mais il existe également des risques de faux signaux et d'entrées inversées. Elle peut être continuellement améliorée en combinant d'autres indicateurs de signal, en optimisant les paramètres, en ajoutant un stop loss, pour rendre la stratégie plus stable et fiable.
/*backtest start: 2023-11-24 00:00:00 end: 2023-12-24 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MAs Tests v1.1", shorttitle = "MAs tests 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) needlong = input(true, "long") needshort = input(true, "short") len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length") type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type") src = input(close, defval = close, title = "Source") anti = input(true, defval = true, title = "Antipila") //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 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 plot(ma, color = blue, linewidth = 3, transp = 0) trend = anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1] longCondition = trend == 1 and trend[1] == -1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = trend == -1 and trend[1] == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)