Stratégie de croisement des moyennes mobiles

Auteur:ChaoZhang est là., Date: 2024-01-23 15:20:16 Je vous en prie.
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading basée sur des signaux croisés de moyenne mobile.

La logique de la stratégie

Lorsque le prix monte et dépasse la ligne de la moyenne mobile de 45 jours, un signal d'achat est généré. Après avoir maintenu la position pendant 8 jours, un signal de vente est généré.

Les principes de logique spécifiques sont les suivants:

  1. Calculez la moyenne mobile à 45 jours.
  2. Lorsque le prix de clôture dépasse la ligne de la moyenne mobile, un signal d'achat est généré pour aller long.
  3. Détenir la position pendant 8 jours de négociation après l'entrée sur le marché.
  4. Fermez la position longue après 8 jours et générez un signal de vente.
  5. Si plus tard, le prix de clôture dépasse à nouveau la ligne de la moyenne mobile, régénérez un signal d'achat pour rouvrir une position longue.

Ce qui précède constitue la logique de base de cette stratégie.

Les avantages

Cette stratégie présente les avantages suivants:

  1. Les règles commerciales sont simples et claires, faciles à comprendre et à mettre en œuvre.
  2. Utilise la fonction de suivi des tendances des moyennes mobiles pour capturer efficacement les tendances à moyen et long terme.
  3. La période de détention de 8 jours est suffisamment longue pour suivre les tendances et suffisamment courte pour réduire les pertes dans le temps.
  4. Les règles relatives à la réintroduction sur le marché sont claires, ce qui contribue à limiter la fréquence des transactions.

Les risques

Il y a quelques risques avec cette stratégie:

  1. Le retard des moyennes mobiles pourrait entraîner des entrées tardives et des sorties prématurées.
  2. La période de détention fixe et les paramètres de l'AM peuvent ne pas s'adapter à l'évolution des conditions du marché.
  3. La fréquence des échanges pourrait être trop élevée, ce qui augmenterait les coûts et les dérapages.
  4. Les signaux de rupture peuvent produire de faux signaux entraînant des coups de fouet.

Les solutions:

  1. Optimiser les paramètres MA pour réduire le retard.
  2. Augmenter la période de rétention ou utiliser des arrêts de suivi pour mieux suivre les tendances.
  3. Ajoutez des filtres utilisant d'autres indicateurs tels que MACD ou KDJ pour confirmer les signaux.
  4. Améliorez les règles de réentrée pour contrôler la fréquence.

Les domaines d'amélioration

Les principaux domaines d'amélioration sont les suivants:

  1. Optimiser les paramètres de l'AM pour trouver les meilleures combinaisons, par exemple des AM de 15 jours, 30 jours ou 60 jours.

  2. Optimiser la période de conservation pour déterminer la durée optimale, par exemple 5 jours, 10 jours, 15 jours.

  3. Ajouter des arrêts de suivi pour suivre les tendances et contrôler les risques, par exemple des arrêts d'essai ou des arrêts ATR.

  4. Ajoutez des filtres utilisant d'autres indicateurs tels que MACD, KDJ pour réduire les faux signaux.

  5. Améliorer les règles de réintégration afin d'éviter une survente, par exemple en imposant des périodes de réflexion.

  6. L'efficacité des tests sur différents marchés et instruments.

Résumé

En résumé, cette stratégie de croisement de MA est un système de suivi de tendance simple et pratique. Elle tire parti de la capacité de suivi de tendance des MA et combine les pannes de prix pour générer des signaux commerciaux. Les avantages sont qu'elle est facile à mettre en œuvre tandis que les inconvénients sont des coupes occasionnelles. La stratégie peut être encore améliorée grâce à l'optimisation des paramètres et à l'ajout d'autres indicateurs comme filtres.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Calculate the 45-day moving average
ma_length = 45
ma = ta.sma(close, ma_length)

// Track position entry and entry bar
var bool in_long_position = na
var int entry_bar = na
var int exit_bar = na

// Entry condition: Close price crosses above the 45-day moving average to enter the position
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1])
    in_long_position := true
    entry_bar := bar_index

// Exit condition: Close the position after holding for 8 trading days
if (in_long_position and bar_index - entry_bar >= 8)
    in_long_position := false
    exit_bar := bar_index

// Re-entry condition: Wait for price to cross over the 45-day moving average again
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8))
    in_long_position := true
    entry_bar := bar_index

// Execute long entry and exit
if (in_long_position)
    strategy.entry("Long", strategy.long)

if (not in_long_position)
    strategy.close("Long")

Plus de