Stratégie de croisement à double moyenne mobile

Auteur:ChaoZhang est là., Date: 2023-11-22 16:10:21
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading quantitative simple basée sur des indicateurs de moyenne mobile. Il utilise la croix d'or et la croix de mort des moyennes mobiles rapides et lentes pour déterminer les signaux d'entrée et de sortie. Lorsque le MA rapide traverse au-dessus du MA lent depuis le bas, un signal d'achat est généré. Lorsque le MA rapide traverse au-dessous du MA lent depuis le haut, un signal de vente est généré.

La logique de la stratégie

La stratégie tire principalement parti de la capacité de suivi des tendances des moyennes mobiles. Le MA rapide a un paramètre plus petit et peut rapidement répondre aux changements de prix, tandis que le MA lent a un paramètre plus grand et représente la tendance à long terme. Le passage rapide du MA au-dessus du MA lent signale un renversement des mouvements à court terme et le début d'une tendance haussière. Le passage rapide du MA en dessous du MA lent signale un renversement vers une tendance baissière. En capturant ces signaux, nous pouvons trader avec l'élan.

Plus précisément, cette stratégie définit une moyenne mobile double de 5 jours (rapide) et 34 jours (lente). Elle calcule ces deux MA quotidiennement et vérifie si le MA rapide traverse au-dessus ou en dessous du MA lent. Si une croix dorée se produit, elle va long. Si une croix de mort se produit, elle sort des positions.

Analyse des avantages

Il s'agit d'une stratégie simple et facile à comprendre, adaptée aux débutants en quant trading.

La stratégie de double MA peut filtrer efficacement le bruit du marché et capturer la tendance principale.

Il a également un mécanisme de stop loss intégré. Lorsque les prix commencent à inverser la direction et que la croix de la mort du MA se produit, il sortira des positions en temps opportun pour contrôler les risques.

Analyse des risques

La stratégie de double MA comporte des risques tels que les échecs d'arrêt des pertes ou les échecs d'ajustement de la courbe.

  1. Les MAs ont des effets de retard et ne peuvent générer des signaux qu'après l'inversion de la tendance.

  2. Dans les marchés de variation, il peut y avoir de nombreux faux signaux, ce qui entraîne des transactions inutiles, une augmentation des coûts et des glissades.

  3. Il s'appuie uniquement sur des indicateurs techniques sans combiner l'analyse fondamentale.

  4. Il ne prend pas en compte la taille de la position et la gestion des risques.

Directions d'optimisation

Pour mieux exploiter ses forces et réduire les risques, des optimisations peuvent être effectuées de la manière suivante:

  1. Ajoutez des indicateurs de tendance comme le MACD et des indicateurs de volatilité comme le KDJ pour définir des règles d'entrée plus strictes et filtrer les faux signaux.

  2. Incorporer des mécanismes d'arrêt de perte appropriés, tels que la sortie après la baisse des prix d'un certain pourcentage après la croix d'or, ou après la baisse des prix d'une plage définie à partir de nouveaux sommets/baisses.

  3. Optimiser les combinaisons de jours de MA rapides et lents pour s'adapter aux fluctuations des prix dans différents délais.

  4. Indices de marché généraux de référence pour déterminer le régime global du marché et éviter une survente sur différents marchés.

  5. Incorporer des changements de volume de négociation pour vérifier la fiabilité des signaux de tendance.

Conclusion

La stratégie de croisement de moyenne mobile double est une stratégie de trading quantitative très typique. Elle présente des avantages tels que la simplicité, l'intuitivité et la facilité de mise en œuvre. Avec des tests continus et un ajustement des paramètres, elle peut produire des résultats décents. Cependant, des problèmes tels que l'identification des signaux en retard et les faux signaux existent. Des filtres supplémentaires et des mécanismes de gestion des risques doivent être incorporés pour en faire une stratégie génératrice de bénéfices stable.


/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
// This strategy is a modification to the "Bill Williams, Awesome Oscillator
// (AO) Backtest" strategy (Copyright by HPotter v1.0 29/12/2016)
//
// This version of the strategy by Midnight Mouse. 10/4/2018
//
// DESCRIPTION
//
// This indicator plots the oscillator as a column where periods fit for buying
// are marked as green, and periods fit for selling as orange/brown. If the
// current value of AO (Awesome Oscillator) is > the previous, the period is
// deemed fit for buying and the indicator is marked green. If the AO values is
// not over the previous, the period is deemed fit for selling and the indicator 
// is marked orange/brown.
//
// You can change long to short in the Input Settings
//
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////

strategy("Awesome Oscillator.MMouse_Lager_BCE")

// === SETTINGS ===

// Strategy start date
FromMonth   = input(defval = 1,    title = "From Month", minval = 1)
FromDay     = input(defval = 1,    title = "From Day",   minval = 1)
FromYear    = input(defval = 2017, title = "From Year",  minval = 2014)

// Strategy settings
nLengthSlow = input(34, minval=1,  title="Length Slow")
nLengthFast = input(5,  minval=1,  title="Length Fast")
allowShorts = input(false,         title="Include Short Trades")
reverse     = input(false,         title="Trade reverse")


// === BODY ===

// Use Heikin-Ashi candles for the buy/sell signal
ha_t        = heikinashi(syminfo.tickerid)
ha_high     = security(ha_t, timeframe.period, high)
ha_low      = security(ha_t, timeframe.period, low)
length      = input( 14 )
price       = open
vrsi        = rsi(price, length)

// Calc (H+L)/2 for each length
xSMA1_hl2   = sma((ha_high + ha_low)/2, nLengthFast)
xSMA2_hl2   = sma((ha_high + ha_low)/2, nLengthSlow)

// Get SMA difference (Fast - Slow)
xSMA1_SMA2  = xSMA1_hl2 - xSMA2_hl2

// Derive the color of the column
cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? #93c47d : #ad5e1d

// Determine the position to take (Long vs. Short)
pos = iff(xSMA1_SMA2 > xSMA1_SMA2[1],  1, iff(xSMA1_SMA2 < xSMA1_SMA2[1], -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos))

// Only apply strategy from the start date
if (time >= timestamp(FromYear, FromMonth, FromDay, 00, 00))
    if (possig == 1)
        // Market is currently fit for a Long position
        strategy.entry("Long", strategy.long)

    if (possig == -1)
        // Market is currently fit for a Short position
        if(allowShorts)
            // Shorts are allowed. Record a Short position
            strategy.entry("Short", strategy.short)	   	    
        else
            // Shorts are not allowed. Closec the Long position.
            strategy.close("Long")

// Define the candle colors
//barcolor(possig == -1 ? red : 
//         possig ==  1 ? green : 
//         blue )

// Plot the oscillator
plot(xSMA1_SMA2, style=columns, linewidth=1, color=cClr)

Plus de