Stratégie de croisement de moyenne mobile simple

Auteur:ChaoZhang est là., Date: 21 septembre 2023 à 10h47
Les étiquettes:

Résumé

Cette stratégie se base sur la croix dorée et la croix morte de 3 moyennes mobiles simples. Elle va long lorsque la SMA rapide traverse au-dessus de la SMA moyenne et la SMA moyenne traverse au-dessus de la SMA lente; elle va court lorsque le croisement inverse se produit.

La logique de la stratégie

  1. Mettre en place 3 SMA avec des périodes différentes: rapide, moyenne, lente
  2. Aller long lorsque la SMA rapide traverse au-dessus de la SMA moyenne et la moyenne au-dessus de la SMA lente
  3. Aller court lorsque la SMA rapide traverse le niveau inférieur à la SMA moyenne et le niveau inférieur à la SMA lente
  4. Peut régler le délai d'entrée pour éviter les fausses fuites
  5. Sortie lorsque le signal de croisement inverse est déclenché

Plus précisément, il utilise les croisements entre 3 SMA de différentes périodes pour le commerce. La SMA rapide représente la tendance à court terme, la SMA moyenne représente la tendance à moyen terme et la SMA lente représente la tendance à long terme. Lorsque les trois SMA se croisent à la hausse en séquence, cela indique une tendance haussière à long. Lorsque le croisement à la baisse se produit, cela indique une tendance à la baisse à court terme.

Analyse des avantages

  1. L'utilisation de 3 SMA améliore la précision directionnelle
  2. Une entrée retardée évite de fausses fuites et d'être pris au piège.
  3. Une logique simple et intuitive, facile à comprendre.
  4. réglage flexible des paramètres SMA pour différents cycles
  5. Suivre la tendance évite les risques de contre-tendance

Analyse des risques

  1. Réservation à long terme dans les risques de long cycle
  2. Le croisement SMA a un certain retard, peut manquer les meilleurs points d'entrée
  3. Requiert une optimisation du paramètre SMA, sinon les signaux peuvent être inexacts
  4. La détention à long terme entraîne des risques au jour le jour

Les risques peuvent être gérés par la dimensionnement des positions, l'optimisation de la SMA, des stratégies de stop loss, etc.

Directions d'optimisation

  1. Testez différentes périodes SMA pour trouver des paramètres optimaux
  2. Évaluer le délai d'entrée pour filtrer les signaux
  3. Introduction d'un stop loss adapté à l'action réelle du prix
  4. Préférence des paramètres d'étude pour différents produits
  5. Testez les règles d'addition de réentrée et de pyramide pour optimiser la rétention

Résumé

Cette stratégie détient des positions basées sur 3 croisements de SMA pour déterminer la direction de la tendance. Les avantages sont des signaux clairs simples et la configuration; les inconvénients sont des signaux en retard et la dépendance des paramètres. Les performances peuvent être améliorées et les risques contrôlés grâce à l'optimisation des paramètres, stop loss, etc.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © DaynTrading

//@version=4
// strategy(
//      title="Simple Moving Average Cross",
//      overlay=true,
//      initial_capital=5000,
//      default_qty_type=strategy.percent_of_equity,
//      default_qty_value=2,
//      commission_type=strategy.commission.percent,
//      commission_value=0.075,
//      pyramiding=0
//      )

sma_top_input = input(title="SMA Top", type=input.integer, defval=20)
sma_mid_input = input(title="SMA Mid", type=input.integer, defval=50)
sma_low_input = input(title="SMA Low", type=input.integer, defval=200)

bars_long = input(title="Long: After trigger, how many bars to wait?", type=input.integer, defval=5)
bars_short = input(title="Short: After trigger, how many bars to wait?", type=input.integer, defval=5)

sma_top = sma(close, sma_top_input)
sma_mid = sma(close, sma_mid_input)
sma_low = sma(close, sma_low_input)

long = sma_top > sma_mid and sma_mid > sma_low
short = sma_top < sma_mid and sma_mid < sma_low

long_condition = long and long[bars_long] and not long[bars_long + 1]
short_condition = short and short[bars_short] and not short[bars_short + 1]

close_long = sma_top < sma_mid and sma_mid < sma_low and not long[bars_long + 1]
close_short = sma_top > sma_mid and sma_mid > sma_low and not short[bars_short + 1]

plot(sma_top, title="SMA Top", color=#95f252, linewidth=2)
plot(sma_mid, title="SMA Mid", color=#FF1493, linewidth=2)
plot(sma_low, title="SMA Low", color=#6a0dad, linewidth=2)

strategy.entry("LongPosition", strategy.long, when = long_condition)
strategy.entry("ShortPosition", strategy.short, when = short_condition)
    
strategy.close("LongPosition", when = close_short)
strategy.close("ShortPosition", when = close_long)

Plus de