Stratégies courantes de croisement de moyennes mobiles


Date de création: 2023-11-03 17:23:54 Dernière modification: 2023-11-03 17:23:54
Copier: 0 Nombre de clics: 707
1
Suivre
1617
Abonnés

Stratégies courantes de croisement de moyennes mobiles

Aperçu

La stratégie de croisement des moyennes mobiles est une stratégie d’analyse technique très classique et couramment utilisée. L’idée centrale de cette stratégie est d’utiliser les croisements entre les moyennes mobiles de différentes périodes comme signal d’achat. Un signal d’achat est généré lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme par le bas et un signal de vente lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme par le haut.

Principe de stratégie

La stratégie consiste à saisir les types de moyennes mobiles (SMA, EMA, WMA, RMA) et la longueur des cycles, ainsi que la plage de temps de retracement.

Calculer différents types de moyennes mobiles dans une fonction variable. Les moyennes mobiles calculées sont conservées par ma.

Lorsque le prix de clôture est au-dessus de ma, un signal d’achat est généré; lorsque le prix de clôture est en dessous de ma, un signal de vente est généré.

Pour mettre en place un stop loss, on calcule l’amplitude moyenne des fluctuations réelles sur 14 cycles par atr. On prend le point de traversée comme référence, et on ajoute ou diminue 2 fois atr comme limite de stop loss.

La logique d’entrée et de sortie est la suivante:

Entrée multiple: close sur ma et le point d’arrêt est le point d’entrée close pendant le temps de rétroaction Sortie à plusieurs têtes: fermeture à la perte de ma moins 2 fois le point d’entrée, ou au prix le plus élevé au-dessus du point d’entrée et fermeture à la fermeture au moment de la fermeture Entrée à vide: close sous ma et dans le temps de rétroaction, le point d’arrêt est le point d’entrée close Sortie à vide: close sur ma plus 2 fois atr pour une sortie à perte, ou prix minimum inférieur au point d’entrée close moins 2 fois atr pour une sortie à perte

Avantages stratégiques

  1. La stratégie est simple, claire, facile à comprendre et à mettre en œuvre.
  2. Application large, adaptée à différents marchés et variétés
  3. Les paramètres sont flexibles, le type et la période des moyennes mobiles sont réglables
  4. L’utilisation de l’arrêt ATR aide à contrôler les risques

Risque stratégique

  1. Les stratégies de moyennes mobiles sont susceptibles de générer des transactions fréquentes et des arrêts de perte, réduisant ainsi la marge de profit.
  2. Les moyennes mobiles sont plus susceptibles de produire des signaux trompeurs dans des conditions de forte volatilité
  3. La portée des arrêts ATR peut être trop grande ou trop petite pour empêcher des pertes massives

L’optimisation des risques peut être réalisée à partir des éléments suivants:

  1. Adaptation de la moyenne mobile à des moyennes périodiques plus longues
  2. Augmentation des conditions de filtrage afin d’éviter des transactions fréquentes dans des conditions de choc
  3. Optimiser les paramètres de l’ATR ou adopter d’autres méthodes de stop-loss
  4. Les indicateurs de tendance sont utilisés pour évaluer les grandes tendances et éviter les opérations de contre-courant.

Orientation de l’optimisation de la stratégie

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

  1. Augmentation des conditions de filtrage, telles que le volume des transactions, la volatilité, etc., afin d’éviter les ruptures irrationnelles
  2. La méthode d’arrêt ATR adaptée permet de modifier le périmètre de l’arrêt en fonction de la volatilité du marché
  3. La qualité du signal est améliorée par la vérification multifactorielle combinée à Stoch, RSI et autres indicateurs
  4. L’augmentation du jugement des tendances et l’évitement des opérations de contre-courant
  5. Utilisez le terme EXIT pour éviter les pertes à long terme
  6. Optimiser les paramètres de périodicité des moyennes mobiles pour trouver la meilleure combinaison de paramètres

Résumer

La stratégie de croisement des moyennes mobiles est une stratégie d’analyse technique très typique et couramment utilisée. L’idée centrale de la stratégie est simple, facile à mettre en œuvre, applicable à tous les marchés, et est l’une des stratégies d’entrée dans le trading quantitatif.

Code source de la stratégie
/*backtest
start: 2023-10-03 00:00:00
end: 2023-11-02 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA Cross Strategy", overlay=true,commission_value = 0.1)

type = input(defval = "WMA", title = "MA Type: ", options=["RMA", "SMA", "EMA", "WMA"])

length = input(28)
source = close



// === INPUT BACKTEST RANGE ===
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2000, title = "From Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(9999, 1, 1, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"



variant(type, src, len) =>
    v1 = sma(src, len)                                                  // Simple
    v2 = ema(src, len)                                                  // Exponential
    v5 = wma(src, len)                                                  // Weighted
    v7 = rma(src, len)                                                  // Smoothed
    type=="EMA"?v2 : type=="WMA"?v5 : type=="RMA"?v7 : v1
ma = variant(type,source, length)


atr = security(syminfo.tickerid, "D", atr(14))

range = valuewhen(cross(close,ma), (atr*2), na)

ep = valuewhen(cross(close,ma), close, na)

plot(ma,color=ma>ma[1]?color.blue:color.red,transp=0,linewidth=1)
plot(ep,color=#2196f3,transp=100,trackprice=true, offset=-9999)
plot(ep+range,color=#2196f3,transp=100,trackprice=true, offset=-9999)
plot(ep-range,color=#2196f3,transp=100,trackprice=true, offset=-9999)

strategy.entry("Long Entry", true, when = crossover(close,ma)  and window() , stop  = ep ) 
strategy.exit("Long Exit", "Long Entry", stop  = ep-range) 
strategy.exit("Long Exit", "Long Entry", when = high > ep+range ,stop = ep[1] ) 

strategy.entry("Short Entry", false, when = crossunder(close,ma)  and window() , stop  = ep ) 
strategy.exit("Short Exit", "Short Entry", stop  = ep+range) 
strategy.exit("Short Exit", "Short Entry", when = low < ep-range ,stop = ep[1] )