Stratégie de croisement à double moyenne mobile

EMA SMA
Date de création: 2024-05-17 15:48:04 Dernière modification: 2024-05-17 15:48:04
Copier: 0 Nombre de clics: 661
1
Suivre
1617
Abonnés

Stratégie de croisement à double moyenne mobile

Aperçu

La stratégie de croisement bi-équilibré est une stratégie de trading classique de suivi de la tendance. La stratégie utilise deux moyennes mobiles, l’une étant une moyenne mobile rapide et l’autre une moyenne mobile lente. Lorsqu’une moyenne mobile rapide traverse la moyenne mobile lente de haut en bas, elle est appelée “cross-gold”, indiquant qu’une tendance à la hausse peut se former, au cours de laquelle de plus grandes positions sont ouvertes.

Principe de stratégie

Le cœur de la stratégie est d’utiliser les caractéristiques de tendance et les signaux de croisement des moyennes mobiles pour déterminer la direction de la tendance et le moment d’ouvrir une position. Tout d’abord, définissez les périodes de moyennes mobiles rapides (par défaut 50) et de moyennes mobiles lentes (par défaut 200) par paramètres, et choisissez d’utiliser une SMA ou une EMA.

  1. Lorsque la moyenne mobile rapide traverse la moyenne mobile lente vers le haut (crossover en or), ouvrez une position supplémentaire si vous n’avez pas de position en cours, tout en définissant un prix de stop-loss (calculé en fonction du pourcentage de stop-loss).
  2. Lorsque la moyenne mobile rapide traverse la moyenne mobile lente vers le bas (cross-death), les positions en cours sans détention sont ouvertes à découvert, en même temps que le prix de stop-loss.
  3. Si plusieurs positions sont déjà en place, les positions sont libérées lors de la croisée des morts.
  4. Si la position est déjà vacante, la position est libérée lorsque le croisement de l’or se produit. Il ouvre des positions avec des signaux de croisement des moyennes mobiles et met en place des arrêts de perte pour capturer les tendances à moyen et long terme des prix en suivant la tendance.

Avantages stratégiques

  1. La logique est simple et claire, facile à comprendre et à mettre en œuvre, et elle est la base de la stratégie de suivi des tendances.
  2. Le croisement des moyennes mobiles de deux périodes différentes permet de mieux juger de la formation et de l’inversion des tendances.
  3. Prend en charge les deux types de moyennes mobiles SMA et EMA, avec une flexibilité de choix.
  4. Il a mis en place un stop-loss, ce qui permet de maîtriser le risque de perte.
  5. Le style “trend-following” est parfait pour suivre les tendances à moyen et long terme.

Risque stratégique

  1. Une mauvaise sélection de paramètres (par exemple, une mauvaise sélection de la période de la moyenne mobile) peut entraîner une fréquence de signal ou un retard dans la prise de tendance.
  2. La volatilité rapide peut entraîner des transactions fréquentes et une mauvaise performance.
  3. Une reprise plus importante peut survenir à la fin d’une reprise ou d’une reprise.
  4. Un pourcentage fixe de stop loss peut ne pas être un bon moyen de contrôler le risque.

Orientation de l’optimisation de la stratégie

  1. Optimisation des paramètres, y compris la périodicité des moyennes mobiles, le pourcentage de stop-loss, etc. pour améliorer la stabilité et le rapport risque-revenu.
  2. L’introduction d’indicateurs liés à la volatilité tels que l’ATR peut être envisagée pour ajuster dynamiquement la position de stop loss.
  3. Il est possible d’ouvrir une position après la confirmation d’une tendance plutôt que de la franchir immédiatement, ou d’ajouter d’autres indicateurs de confirmation de tendance pour aider à juger, améliorer l’exactitude de la prise de tendance.
  4. Il est possible d’améliorer les stratégies de gestion des fonds, par exemple, en augmentant ou en diminuant les positions.
  5. Considérez la combinaison avec d’autres signaux pour former une stratégie multifactorielle.

Résumer

La stratégie de croisement bi-équilibré est une stratégie de suivi de tendance simple et classique qui permet de déterminer la direction de la tendance et le moment de la clôture d’une position en croisant deux moyennes mobiles de différentes périodes. Cependant, les paramètres fixes peuvent être instables dans un environnement de marché changeant et nécessitent des améliorations supplémentaires, telles que l’optimisation des paramètres, l’amélioration des arrêts de perte, l’introduction de signaux, etc.

Code source de la stratégie
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)

//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length") 
maSlowLength  = input(200, title="Quick MA Length") 
useSma        = input(true, title="Use SMA? If false, EMA is used.")

maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow  = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)

stop_loss_percentage = input(2.0, title="Stop Loss (%)")

var float longStopLevel = na
var float shortStopLevel = na

bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross  = ta.crossunder(maQuick, maSlow)

//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------

if(strategy.position_size == 0)
    // Golden cross, enter a long position
    if(isGoldenCross)
        strategy.entry("Buy", strategy.long)
        longStopLevel := close - close * stop_loss_percentage/100.0
        strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
    // Death cross, enter short position
    else if(isDeathCross)
        strategy.entry("Sell", strategy.short)
        shortStopLevel := close + close * stop_loss_percentage/100.0
        strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)

//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
    // Close long position on death cross
    if(strategy.position_size > 0 and isDeathCross)
        strategy.close("Buy")
    
    // Close short position on golden cross
    else if(strategy.position_size < 0 and isGoldenCross)
        strategy.close("Sell")

//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)