Stratégie de croisement de moyenne mobile simple

Auteur:ChaoZhang est là., Date: 2023-11-14 16h17 et 16 min
Les étiquettes:

img

Résumé

Cette stratégie génère des signaux d'achat et de vente basés sur la croix dorée et la croix de mort de plusieurs moyennes mobiles simples (SMA) avec différentes périodes de temps pour déterminer la direction de la tendance. Elle utilise 4 SMA - 20 jours, 50 jours, 100 jours et 200 jours SMA. Lorsque la SMA à court terme franchit le sommet de la SMA à long terme, elle est considérée comme une croix dorée et un signal d'achat est déclenché. Lorsque la SMA à court terme franchit le sommet de la SMA à long terme, elle est considérée comme une croix de mort et un signal de vente est déclenché.

La logique de la stratégie

La logique de base de cette stratégie repose sur les points suivants:

  1. Le montant de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée de la valeur ajoutée.

  2. Vérifiez les situations de croisement entre les SMA à court terme (20 jours) et les SMA à long terme (50 jours, 100 jours, 200 jours).

  3. Lorsque la SMA de 20 jours dépasse la SMA de 50 jours, elle est considérée comme une croix dorée et un signal d'achat est déclenché.

  4. La tendance plus large est déterminée par le fait que les SMA de plus longue durée restent au-dessus des SMA de plus courte durée, c'est-à-dire une SMA de 50 jours > une SMA de 20 jours.

  5. La priorité pour les signaux d'entrée est la suivante: SMA de 20 jours contre SMA de 50 jours > SMA de 20 jours contre SMA de 100 jours > SMA de 20 jours contre SMA de 200 jours.

  6. Le signal de sortie est généré lorsque la SMA à 20 jours traverse à nouveau la SMA à 50 jours.

La stratégie repose principalement sur des croisements SMA pour déterminer la direction de la tendance. Les croix dorées sur les marchés haussiers et les croix de mort sur les marchés baissiers peuvent signaler un début de tendance potentiel.

Les avantages de la stratégie

Les principaux avantages de cette stratégie sont les suivants:

  1. La logique est simple et facile à comprendre et à mettre en œuvre.

  2. Les SMA sont meilleures que les EMA pour filtrer le bruit du marché et identifier la tendance.

  3. L'utilisation de plusieurs SMA de période de temps améliore la fiabilité du signal.

  4. Le réglage de la priorité des signaux d'entrée évite une entrée prématurée.

  5. Les périodes SMA et les couleurs personnalisables permettent une optimisation de la stratégie.

  6. Applicable à plusieurs délais pour différents styles de négociation.

  7. Le système de croisement SMA est très efficace pour déterminer la direction de la tendance majeure.

Risques liés à la stratégie

Certains risques associés à cette stratégie:

  1. Trop de faux signaux peuvent se produire lors de marchés à fourchette avec des croisements fréquents de la SMA.

  2. Les périodes SMA fixes ne peuvent pas s'adapter aux changements du marché, les paramètres doivent être optimisés en fonction de la tendance et de la volatilité.

  3. Les croisements de la SMA à eux seuls ne peuvent pas déterminer une entrée précise, d'autres indicateurs tels que le MACD doivent être intégrés.

  4. Les SMA ont un caractère retardé, les délais d'entrée doivent être optimisés ou des ordres limite doivent être utilisés.

  5. Une mise en œuvre stricte du stop loss est cruciale pour la préservation du capital.

  6. L'impact des coûts de négociation sur la rentabilité devrait être examiné.

Amélioration de la stratégie

Quelques façons d'optimiser cette stratégie:

  1. Optimiser dynamiquement les périodes SMA en fonction des conditions du marché et de l'ATR.

  2. Ajoutez d'autres indicateurs comme MACD, RSI pour le moment de l'entrée.

  3. Ajoutez un filtre de tendance comme ADX pour éviter de faux signaux lors de la consolidation.

  4. Optimiser les méthodes d'arrêt des pertes telles que l'arrêt ATR ou l'arrêt de trail.

  5. Gérer la taille des positions dynamiquement en fonction de la taille du compte.

  6. Tester les paramètres optimaux pour différentes classes d'actifs.

  7. Incorporer plusieurs délais pour assurer la cohérence avec la tendance des délais plus longs.

Conclusion

En résumé, ce simple système de croisement SMA est fiable pour déterminer la direction de la tendance et convient à la plupart des traders. Cependant, il présente des problèmes de retard et peut générer de faux signaux. Nous devrions chercher à améliorer le timing d'entrée, le stop loss, le dimensionnement des positions, etc. pour le rendre robuste dans des environnements de marché changeants.


/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © xyzdesign1989
//@version=5
strategy("SMA crossover buy/sell [SCSM_Algo]", overlay=true, margin_long=3000, margin_short=3000)


BuyCond = ta.crossover(ta.sma(close, 20), ta.sma(close, 50)) and ta.sma(close, 20) > ta.sma(close, 50) and  ta.sma(close, 50) > ta.sma(close, 100) and  ta.sma(close, 100) > ta.sma(close, 200) or (ta.crossover(ta.sma(close, 20), ta.sma(close, 100)) and ta.sma(close, 20) > ta.sma(close, 50))
if (BuyCond)
    strategy.entry("SCSM 🤲 Buy", strategy.long)

SellCond = ta.crossunder(ta.sma(close, 20), ta.sma(close, 50))
if (SellCond)
    strategy.entry("الحمد للہ،Sell", strategy.short)

ma(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) :
     type == "EMA" ? ta.ema(source, length) :
     type == "SMMA (RMA)" ? ta.rma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     type == "VWMA" ? ta.vwma(source, length) :
     na

show_ma1   = input(true   , "MA №1", inline="MA #1")
ma1_type   = input.string("SMA"  , ""     , inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma1_source = input(close  , ""     , inline="MA #1")
ma1_length = input.int(20     , ""     , inline="MA #1", minval=1)
ma1_color  = input(#0929f6, ""     , inline="MA #1")
ma1 = ma(ma1_source, ma1_length, ma1_type)
plot(show_ma1 ? ma1 : na, color = ma1_color, title="MA №1")

show_ma2   = input(true   , "MA №2", inline="MA #2")
ma2_type   = input.string("SMA"  , ""     , inline="MA #2", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma2_source = input(close  , ""     , inline="MA #2")
ma2_length = input.int(50     , ""     , inline="MA #2", minval=1)
ma2_color  = input(#00fb04, ""     , inline="MA #2")
ma2 = ma(ma2_source, ma2_length, ma2_type)
plot(show_ma2 ? ma2 : na, color = ma2_color, title="MA №2")

show_ma3   = input(true   , "MA №3", inline="MA #3")
ma3_type   = input.string("SMA"  , ""     , inline="MA #3", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma3_source = input(close  , ""     , inline="MA #3")
ma3_length = input.int(100    , ""     , inline="MA #3", minval=1)
ma3_color  = input(#131313, ""     , inline="MA #3")
ma3 = ma(ma3_source, ma3_length, ma3_type)
plot(show_ma3 ? ma3 : na, color = ma3_color, title="MA №3")

show_ma4   = input(true   , "MA №4", inline="MA #4")
ma4_type   = input.string("SMA"  , ""     , inline="MA #4", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma4_source = input(close  , ""     , inline="MA #4")
ma4_length = input.int(200    , ""     , inline="MA #4", minval=1)
ma4_color  = input(#f60c0c, ""     , inline="MA #4")
ma4 = ma(ma4_source, ma4_length, ma4_type)
plot(show_ma4 ? ma4 : na, color = ma4_color, title="MA №4")

Plus de