Stratégie de suivi de la tendance à la double moyenne mobile croisée

Auteur:ChaoZhang est là., Date: le 28 février 2023 à 11h52
Les étiquettes:

Résumé

Cette stratégie utilise le double principe de croisement de la moyenne mobile combiné à un indicateur de suivi de tendance pour déterminer et suivre les tendances. L'idée principale est d'aller long lorsque la moyenne mobile de courte période dépasse la moyenne mobile de longue période et d'aller court lorsque la moyenne mobile de courte période dépasse la moyenne mobile de longue période.

La logique de la stratégie

La stratégie est principalement constituée d'un double système de croisement des moyennes mobiles et d'un système de suivi des tendances.

Le double système de croisement des moyennes mobiles contient une EMA1 rapide et une EMA2 lente. Les périodes par défaut sont de 10 jours pour l'EMA1 et de 20 jours pour l'EMA2. Un signal d'achat est généré lorsque l'EMA1 traverse au-dessus de l'EMA2. Un signal de vente est généré lorsque l'EMA1 traverse au-dessous de l'EMA2.

Les signaux d'achat ne sont générés que lorsque le prix est dans une tendance à la hausse (le prix est au-dessus de l'EMA de 100 jours). Les signaux de vente ne sont générés que lorsque le prix est dans une tendance à la baisse (le prix est en dessous de l'EMA de 100 jours). Cela filtre la plupart des situations de fausse rupture.

Des flèches d'achat et de vente sont également tracées sur les bougies pour afficher visuellement les signaux de trading.

Le système de suivi des tendances utilise des lignes journalières intradiennes et cycliques pour confirmer à nouveau la direction de la tendance.

Les signaux de négociation ne sont générés que lorsque les jugements intraday et cycliques s'accordent.

Analyse des avantages

Le plus grand avantage de cette stratégie est l'intégration des deux systèmes de suivi des tendances et de croisement des moyennes mobiles, qui filtrent efficacement les faux signaux et maintiennent les retraits à des niveaux acceptables.

Plus précisément, les avantages du double système de croisement des moyennes mobiles sont les suivants:

  1. Une logique simple et facile à comprendre, adaptée aux débutants.

  2. Suivre la tendance, éviter de négocier contre la tendance.

  3. Périodes d'EMA rapides et lentes personnalisables, adaptables à différents cycles.

  4. Une forte rentabilité dans les grandes tendances.

L'ajout de l'EMA100 présente les avantages suivants:

  1. Éviter les transactions contre la tendance, réduire les pertes.

  2. Suivre la tendance, maintenir le retrait contrôlable.

Le système de suivi des tendances présente les avantages suivants:

  1. Analyse de plusieurs périodes, évitant le bruit d'une seule période.

  2. Assurer l'alignement avec la direction de la tendance majeure, réduire les retraits.

  3. Heikin-Ashi élimine le bruit, capturant uniquement les tendances.

Analyse des risques

Quelques risques à noter pour cette stratégie:

  1. Des croisements fréquents et des coûts de négociation supplémentaires lors de consolidations prolongées.

  2. Des signaux retardés, manquant les premières étapes de la tendance.

  3. Des pertes importantes lorsque la tendance est inversée.

  4. La performance dépend de l'optimisation des paramètres.

Les solutions:

  1. Réduire la fréquence des transactions lors des consolidations.

  2. Réduire les périodes d'EMA pour obtenir des signaux de tendance plus tôt.

  3. Utilisez le stop loss pour contrôler une seule perte.

  4. Optimiser les paramètres pour différents produits et conditions de marché.

Directions d'optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Optimisation de la période EMA. Testez plus de combinaisons pour trouver des périodes optimales.

  2. Ajouter plus de jugements sur les délais, par exemple des lignes mensuelles ou trimestrielles.

  3. Incorporer des mécanismes d'arrêt des pertes comme les arrêts mobiles ou exponentiels.

  4. Combinez avec des indicateurs de volume comme On Balance Volume.

  5. Améliorer le timing d'entrée en utilisant des oscillateurs plus rapides comme le MACD.

  6. Optimisation des paramètres pour plus de produits et de ressources.

Conclusion

Cette stratégie combine les atouts des systèmes doubles de croisement des moyennes mobiles et de suivi des tendances, évitant les faiblesses des systèmes uniques.


/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © askkuldeeprandhawa

//@version=4

strategy("KSR Strategy", overlay=true)



par1=input(10)
par2=input(20)
ema1=ema(close,par1)
ema2=ema(close,par2)
buy=ema1>ema2
sell=ema2<ema1
mycolor= iff(buy,color.green,iff(sell,color.blue,color.red))
barcolor(color=mycolor)



ema100=ema(close,100)
ibuy=crossover(ema1,ema2)
iSell=crossunder(ema1,ema2)

varp=tostring(close[1])
plotshape(ibuy, "Up Arrow", shape.triangleup, location.belowbar, color.green, 0, 0,"Buy" , color.green, true, size.tiny)
plotshape(iSell, "Down Arrow", shape.triangledown, location.abovebar, color.red, 0, 0, "Sell", color.red, true, size.tiny)

crossed =crossover(ema(close,par1), ema(close,par2))
// if crossed
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.green, 
//          textcolor=color.white,
//          style=label.style_labelup, yloc=yloc.belowbar)
         
crossed2 =crossunder(ema(close,par1), ema(close,par2))
// if crossed2
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.red, 
//          textcolor=color.white,
//          style=label.style_labeldown, yloc=yloc.abovebar)
         
plot(ema(close,par1),"EMA Short",color=color.white)
plot(ema(close,par2),"EMA Long",color=color.orange)


longCondition = crossover(ema(close, par1), ema(close, par2))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(ema(close, par1), ema(close, par2))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)




ma1_len = input(title="MA1", type=input.integer, defval=8, minval=1, maxval=100, step=1)
ma2_len = input(title="MA2", type=input.integer, defval=12, minval=1, maxval=100, step=1)

o = ema(open, ma1_len)
c = ema(close, ma1_len)
h = ema(high, ma1_len)
l = ema(low, ma1_len)

tim1=input('D',"Short Time")
tim2=input('W',"Long Time")

ema_p=input(title="EMA Period", type=input.integer, defval=16, minval=1, maxval=100, step=1)
refma = ema(close, ema_p)
plot(refma, title="EMA" , linewidth=1, color=close < refma ? color.orange : color.blue)
ha_t = heikinashi(syminfo.tickerid)
ha_o = security(ha_t, tim2, o)
ha_c = security(ha_t, tim2, c)
ha_h = security(ha_t, tim2, h)
ha_l = security(ha_t, tim2, l)
o2 = ema(ha_o, ma2_len)
c2 = ema(ha_c, ma2_len)
h2 = ema(ha_h, ma2_len)
l2 = ema(ha_l, ma2_len)
ha_col = ha_c > ha_o ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c > ha_o ? color.green : color.red, location=location.bottom)


ha_t1 = heikinashi(syminfo.tickerid)
ha_o1 = security(ha_t1, tim1, o)
ha_c1 = security(ha_t1, tim1, c)
ha_h1 = security(ha_t1, tim1, h)
ha_l1 = security(ha_t1, tim1, l)
o3 = ema(ha_o1, ma2_len)
c3 = ema(ha_c1, ma2_len)
h3 = ema(ha_h1, ma2_len)
l3 = ema(ha_l1, ma2_len)
ha_col1 = ha_c1 > ha_o1 ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c1 > ha_o1 ? color.green : color.red, location=location.top)







Plus de