Stratégie de trading inter-périodes basée sur l'indicateur EMA


Date de création: 2024-01-29 15:56:56 Dernière modification: 2024-01-29 15:56:56
Copier: 0 Nombre de clics: 608
1
Suivre
1617
Abonnés

Stratégie de trading inter-périodes basée sur l’indicateur EMA

Aperçu

Cette stratégie est une stratégie de trading inter-périodes basée sur les indicateurs EMA. Elle utilise deux EMA de périodes différentes comme signaux d’achat et de vente, en faisant plus sur les EMA de périodes longues sur les EMA de périodes courtes et en faisant moins sur les EMA de périodes longues sous les EMA de périodes courtes.

Principe de stratégie

La stratégie utilise le forfait de l’indicateur EMA comme signal de négociation. Plus précisément, elle calcule séparément les EMA à court terme et les EMA à long terme, générant un signal d’achat lorsque le cours de l’EMA à court terme est supérieur à celui de l’EMA à long terme et un signal de vente lorsque le cours de l’EMA à court terme est inférieur à celui de l’EMA à long terme.

Une fois dans la position, la stratégie définit simultanément le stop loss et le stop loss. Le stop loss est un certain pourcentage du prix d’entrée qui sert de ligne de stop loss et de stop loss si le prix touche la ligne de stop loss.

La stratégie permet également de choisir entre un placement en plus ou en moins, ainsi qu’entre un placement sur le jour et un placement sur la position. Pour les transactions sur le jour, la position est forcée à être nulle avant la clôture de la bourse américaine.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’utilisation de l’indicateur EMA filtre la courbe, évite d’être induit en erreur par les fluctuations de haute fréquence et permet de capturer au hasard les tendances de moyenne et longue ligne.

  2. Utilisez un croisement entre une EMA à courte période et une EMA à longue période comme signal de transaction, afin d’éviter de négocier fréquemment.

  3. La mise en place d’un stop-loss pour contrôler le rapport risque/rendement de chaque ordre est utile pour la gestion des fonds.

  4. Il est possible de choisir entre le trading à la hausse ou à la baisse, le day trading ou le trading à la position, pour différents types de traders.

  5. Compatible avec plusieurs types de transactions, y compris les actions, les devises, les monnaies numériques, etc.

Analyse des risques

Cette stratégie comporte aussi des risques potentiels:

  1. Les EMA sont en retard et risquent de manquer un tournant dans la tendance à court terme.

  2. Le mauvais choix d’EMA à long terme peut entraîner une erreur de signal.

  3. Les détenteurs de positions trop longues risquent d’être exposés à des chocs plus importants.

  4. L’arrêt mécanique du stop loss peut entraîner un départ prématuré ou une diminution des bénéfices.

Les mesures de gestion des risques correspondantes incluent:

  1. Optimiser les paramètres de l’EMA pour trouver la meilleure combinaison de cycles.

  2. Ajouter d’autres indicateurs à l’appui.

  3. La position d’arrêt de perte est ajustée dynamiquement.

  4. La situation est inhabituelle.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Optimiser les paramètres de l’EMA pour trouver des combinaisons de longue et courte périodes adaptées aux différentes variétés.

  2. L’ajout d’autres indicateurs de jugement, tels que MACD, KD, etc., permet une résonance multicomposante.

  3. L’augmentation de la formation des modèles d’apprentissage automatique génère un arrêt de perte dynamique.

  4. Accès à des indicateurs RISK plus avancés pour l’ingénierie des caractéristiques.

  5. Ajout d’éléments de transaction adaptatifs et optimisation automatique des paramètres.

Résumer

Cette stratégie est un excellent modèle de stratégie de suivi des tendances, dont le principal avantage réside dans l’utilisation de l’indicateur EMA pour filtrer le bruit et réaliser des gains stables, tout en offrant une gestion complète des risques et des gains. Grâce à une optimisation continue, la stratégie peut devenir une stratégie quantifiée universelle sur tous les marchés, qui vaut la peine d’être apprise et mise en pratique par les traders.

Code source de la stratégie
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy by Vikrant Singh", overlay=true)


// Input for EMA Lengths
var bool runningPOS = false
var float stopLossLevel = na
var float targetLevel = na
shortLength = input(11, title="Short EMA Length")
longLength = input(21, title="Long EMA Length")

// Input for Stop-Loss and Target
stopLossPct = input(1, title="Stop-Loss (%)")
targetPct = input(3, title="Target (%)")
longOnly = input(true, title="Long Only")
intraDay = input(true, title="intraday?")


// Calculate EMAs
emaShort = ta.ema(close, shortLength)
emaLong = ta.ema(close, longLength)

// Calculate crossover conditions
crossoverCondition = ta.crossover(emaShort, emaLong)
crossunderCondition = ta.crossunder(emaShort, emaLong)

// Entry condition (long position just before crossover)
if crossoverCondition and not runningPOS and longOnly and (hour <= 15)
    strategy.entry("Long", strategy.long)
    runningPOS := true
    stopLossLevel := close * (1 - stopLossPct / 100)
    targetLevel := close * (1 + targetPct / 100)

//Entry condition (short position just before crossover)
if crossunderCondition and not runningPOS and not longOnly and (hour <= 15)
    strategy.entry("Short", strategy.short)
    runningPOS := true
    stopLossLevel := close * (1 + stopLossPct / 100)
    targetLevel := close * (1 - targetPct / 100)

// Exit conditions (square off on reverse crossover)
//Exit long
if (crossunderCondition or (low < stopLossLevel) or (high > targetLevel) ) and longOnly and runningPOS
    strategy.close("Long",comment = "Exit long")// ("Long", from_entry="Long",stop=stopLossLevel, limit=targetLevel)
    runningPOS := false

//Exit short
if (crossoverCondition or (high > stopLossLevel) or (low < targetLevel) ) and not longOnly and runningPOS
    strategy.close("Short", comment = "Exit Short")
    runningPOS := false

if intraDay and runningPOS
    if (hour >= 15)
        strategy.close_all(comment = "Intraday square off")
        //strategy.close("Long",comment = "intraday square off")
        runningPOS := false


// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")