Cette stratégie génère des signaux de trading basés sur le croisement de deux moyennes mobiles avec des périodes différentes.
La stratégie permet aux utilisateurs de choisir le type et la durée des moyennes mobiles. Les types comprennent SMA, EMA, VWMA, etc. La longueur détermine la période des moyennes mobiles.
Deux moyennes mobiles sont calculées en fonction de la sélection de l'utilisateur. Si la ligne plus rapide traverse au-dessus de la ligne plus lente, une croix dorée est formée et un signal d'achat est généré. Si la ligne plus rapide traverse au-dessous de la ligne plus lente, une croix de mort est formée et un signal de vente est généré.
Lorsque le prix moyen à court terme est supérieur au prix moyen à long terme, il est considéré comme une tendance haussière et des positions longues doivent être prises.
Les risques peuvent être gérés en optimisant les paramètres, en combinant d'autres indicateurs pour la génération de signaux, en mettant en œuvre un stop loss/take profit, etc.
La stratégie a une logique simple et claire de génération de signaux avec un croisement de deux MAs. Elle permet un réglage flexible des paramètres et des combinaisons avec d'autres stratégies d'optimisation, mais les risques de variation des marchés doivent être surveillés et la gestion de l'argent est cruciale.
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-13 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) 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") //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 = low > ma ? 1 : high < ma ? -1 : trend[1] longCondition = trend == 1 and trend[1] == -1 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trend == -1 and trend[1] == 1 if (shortCondition) strategy.entry("Short", strategy.short)