Stratégie de tendance basée sur des moyennes mobiles sur plusieurs délais et sur l' EMA

Auteur:ChaoZhang est là., Date: 2024-02-21 15:59:43 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie utilise les moyennes mobiles (MA) et l'EMA sur différentes périodes pour identifier et négocier des tendances.

La logique de la stratégie

L'idée de base est basée sur la comparaison de 3 SMA de différentes périodes pour déterminer la dynamique des prix.

Plus précisément, la stratégie utilise 3 SMA - 3e, 8e et 10e période SMA. Lorsque le prix est inférieur à tous les 3 SMA, il est considéré comme une tendance à la baisse.

En outre, une EMA à 5 périodes vérifie si le corps de la bougie pointe vers le haut avant d'entrer dans des transactions longues.

Pour les règles de sortie, le nombre maximal de clôtures rentables ou la durée maximale sont utilisés comme mécanisme de stop loss.

Analyse des avantages

En combinant des MAs de différents délais, cette stratégie peut filtrer efficacement le bruit du marché et capturer les tendances à moyen et long terme.

L'utilisation de l'EMA pour vérifier la direction du corps de la bougie réduit le glissement inutile de l'achat dans les bougies en chute libre.

Dans l'ensemble, il s'agit d'un système stable et fiable, adapté à une tendance de plusieurs semaines à plusieurs mois.

Risques et atténuations

  • La stratégie est sensible aux paramètres. Le choix sous-optimal de 3 périodes SMA ou 1 EMA peut détériorer la qualité du signal. Les paramètres doivent être optimisés pour différents instruments.

  • Le risque d'écart n'est pas géré. Une nouvelle fondamentale soudaine selon laquelle les prix d'écart pourraient entraîner des pertes.

Des possibilités d'amélioration

  • Plus de délais de MAs ou EMA peuvent être ajoutés pour améliorer encore la précision de la tendance.

  • Un stop loss de prix modéré peut être testé pour verrouiller les bénéfices tout en réduisant les pertes lors de mouvements extrêmes.

  • L'apprentissage automatique peut optimiser dynamiquement les paramètres pour s'adapter à l'évolution des conditions du marché.

Conclusion

La stratégie est solide et fiable dans l'ensemble, utilisant des croisements MA pour déterminer la tendance complétée par un filtre EMA. Une optimisation des paramètres et des contrôles prudents des risques peuvent améliorer le taux de gain et la rentabilité.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Free Strategy #02 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Plus de