
La stratégie de suivi de tendance à la double moyenne mobile est une stratégie de trading quantitative qui utilise une combinaison de moyennes mobiles rapides et moyennes mobiles lentes pour déterminer la direction de la tendance et qui utilise la couleur de l’entité K-line comme signal d’entrée. La stratégie a la caractéristique de suivre la tendance et de faire des inversions.
La stratégie utilise une moyenne mobile lente de longueur 20 pour déterminer la direction de la tendance globale, une moyenne mobile lente de longueur 20 pour déterminer la tendance haussière lorsque le prix est en hausse et une moyenne mobile basse lorsque le prix est en baisse. En outre, la stratégie utilise une moyenne mobile rapide de longueur 5 comme filtre d’entrée, qui ne lance des transactions que lorsque le prix franchit la moyenne mobile rapide.
La stratégie analyse l’information en trois dimensions: la tendance globale, la moyenne à court terme et l’entité de la ligne K, ce qui améliore la fiabilité du signal de négociation. Un signal de négociation est émis lorsque les trois sont alignés, ce qui filtre efficacement une partie du bruit.
Il est capable de suivre les tendances et de renverser les transactions, ce qui lui permet de s’adapter à différentes conditions de marché.
Il permet d’effectuer un jugement multidimensionnel avant l’émission du signal de transaction, de filtrer efficacement les faux signaux et d’améliorer le taux de victoire.
L’optimisation des paramètres est large et peut être optimisée en ajustant la longueur de la moyenne mobile, la couleur de l’entité K et le nombre de racines.
La logique de la stratégie est claire, concise, facile à comprendre et adaptée aux débutants.
Il est possible de modifier le paramètre de la moyenne mobile ou d’ajouter un stop-loss pour éviter une série d’oscillations.
Lors de la phase d’agencement horizontal, il est facile de former un whipsaw, ce qui entraîne des pertes. Il est possible d’ajuster le nombre de racines de la couleur de l’entité de la ligne K de manière appropriée ou de fermer la transaction inversée.
Il est nécessaire d’effectuer un retour d’expérience suffisant pour s’assurer que les paramètres sont bien définis, sinon cela affectera considérablement la performance de la stratégie.
Essayez différents types de moyennes mobiles, comme les moyennes mobiles indicielles, les moyennes mobiles Kaufman adaptatives, etc.
Augmentation du contrôle du volume des transactions, par exemple en fixant le volume des transactions ou en les ajustant en fonction des intérêts des comptes.
Augmentation des mécanismes de stop-loss. Lorsque le prix revient au-dessous de la moyenne mobile lente, un stop-loss peut être envisagé.
Il est possible de tester différentes variétés pour déterminer la stabilité et l’adaptabilité de la stratégie.
Les stratégies de suivi de tendance à deux axes mobiles combinant le jugement de la tendance et le trading inversé permettent de capturer efficacement le reste de la tendance de la ligne moyenne et longue, mais aussi d’obtenir des gains supplémentaires sur la ligne courte. Les paramètres sont optimisés et les mécanismes renforcés, ce qui permet d’élargir encore plus l’espace de profit. La logique de la stratégie est simple et claire, ce qui convient parfaitement aux débutants.
/*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)