Stratégie de tendance sur plusieurs périodes basée sur la moyenne mobile et l'EMA


Date de création: 2024-02-21 15:59:43 Dernière modification: 2024-02-21 15:59:43
Copier: 1 Nombre de clics: 713
1
Suivre
1617
Abonnés

Stratégie de tendance sur plusieurs périodes basée sur la moyenne mobile et l’EMA

Aperçu

Cette stratégie est une stratégie qui utilise la moyenne et l’EMA pour réaliser des transactions de tendance sur des périodes de temps différentes. La stratégie permet de suivre une tendance à faible risque en combinant les entités SMA, EMA et K-Line de différentes périodes pour déterminer la direction de la tendance.

Principe de stratégie

Cette stratégie est basée sur la comparaison des moyennes SMA de trois périodes différentes pour déterminer le mouvement des prix. L’EMA est également utilisée pour déterminer la direction des entités.

En particulier, la stratégie utilise les moyennes SMA de 3 cycles, respectivement les SMA de 3 cycles, 8 cycles et 10 cycles. Le prix est considéré comme en baisse lorsque le prix est en dessous des trois moyennes et émet un signal d’achat lorsque le prix remonte à la moyenne.

En outre, la stratégie utilise l’EMA de 5 cycles pour aider à déterminer la direction de l’entité de la ligne K, en veillant à ce que l’entité soit à la hausse lors de l’achat.

Dans la gestion de la position, la stratégie définit le nombre de gains ou la période de détention maximale comme moyen d’arrêter les pertes.

Analyse des avantages

Cette stratégie, combinée à une moyenne linéaire de différentes périodes de temps, permet de juger les tendances, de filtrer efficacement le bruit du marché et de suivre les tendances de la ligne médiane et longue. Les paramètres de la stratégie ont été optimisés et ont bien fonctionné dans le historique.

En outre, la stratégie d’adhésion aux jugements de l’EMA permet d’éviter les situations d’achat à la baisse de l’entité de la ligne K, réduisant ainsi les pertes de points de glissement inutiles.

Dans l’ensemble, la stratégie est stable, fiable et adaptée à un suivi de longue et moyenne durée.

Risques et contre-mesures

  • La stratégie est sensible aux paramètres, et une mauvaise configuration de 3 cycles SMA ou de cycles EMA peut entraîner une baisse de la qualité du signal de négociation. L’optimisation des paramètres est nécessaire pour différentes variétés.

  • La stratégie ne prend pas en compte les cas de sauts importants ou de lacunes. Si des nouvelles importantes entraînent une forte hausse des prix, des pertes peuvent être causées.

Direction d’optimisation

  • On peut envisager d’ajouter plus de paramètres cycliques pour former des comparaisons EMA ou SMA sur plusieurs périodes, ce qui rend la stratégie plus précise dans son jugement des tendances.

  • Il est possible de tester des paramètres de stop-loss à une certaine amplitude, afin de réduire les pertes de tendances extrêmes, tout en garantissant des gains.

  • On peut essayer d’introduire l’apprentissage automatique pour optimiser les paramètres de manière dynamique, afin que les paramètres de la stratégie puissent être ajustés en fonction de la situation du marché en temps réel.

Résumer

La stratégie est globalement robuste et fiable, utilisant une comparaison de la moyenne pour déterminer la direction de la tendance, complétée par des signaux de filtrage EMA. Par l’optimisation des paramètres et des réglages de contrôle du vent, il est possible d’améliorer encore le taux de victoire et de rentabilité de la stratégie. Il vaut la peine d’être étudié et appliqué.

Code source de la stratégie
/*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))