Basé sur une stratégie de croisement à double moyenne mobile


Date de création: 2024-03-11 12:06:22 Dernière modification: 2024-03-11 12:06:22
Copier: 0 Nombre de clics: 646
1
Suivre
1617
Abonnés

Basé sur une stratégie de croisement à double moyenne mobile

Aperçu de la stratégie

La stratégie de croisement bi-médian est une stratégie classique de suivi de la tendance. Elle utilise des moyennes mobiles de deux périodes différentes pour capturer la tendance du marché, produisant des signaux de multiplication lorsque la moyenne rapide traverse la moyenne lente sur la moyenne rapide et des signaux de blanchiment lorsque la moyenne lente traverse la moyenne rapide sous la moyenne rapide. L’idée centrale de cette stratégie est que la moyenne rapide est plus sensible aux changements de prix et réagit plus rapidement aux changements de tendance du marché, tandis que la moyenne lente réagit à la tendance à long terme du marché.

Principe de stratégie

Le code de la stratégie utilise deux moyennes mobiles, une moyenne rapide (la période 14 par défaut) et une moyenne lente (la période 28 par défaut). Les types de moyennes mobiles peuvent être choisis parmi les moyennes mobiles simples (SMA), les moyennes mobiles indicielles (EMA), les moyennes mobiles pondérées (WMA) et les moyennes mobiles relatives (RMA).

La logique principale de la stratégie est la suivante:

  1. Calculer les valeurs de la moyenne rapide et de la moyenne lente
  2. Si vous traversez la moyenne rapide sur la moyenne rapide, vous générez un signal de plus, ouvrez plus de positions
  3. Si la courbe rapide traverse la courbe moyenne lente et permet le shorting (allowShorting=true), un signal de shorting est généré et une position de shorting est ouverte
  4. Si la courbe rapide traverse la courbe lente et ne permet pas de faire de la courbe courte (allowShorting=false), les positions multiples sont annulées.

Grâce à cette logique, la stratégie peut suivre les principales tendances du marché, en tenant des positions à plusieurs têtes dans une tendance à la hausse, en tenant des positions à vide ou en attendant des positions à vide dans une tendance à la baisse. La période et le type de la ligne de parité peuvent être ajustés et optimisés en fonction des différents marchés et types de transactions.

Avantages stratégiques

  1. La logique est simple, claire, facile à comprendre et à mettre en œuvre.
  2. Appliqué à un marché tendanciel, capte efficacement les tendances à moyen et long terme du marché
  3. Paramètres réglables pour différents marchés et types de transactions
  4. La flexibilité d’options de blanchiment peut varier en fonction des caractéristiques du marché et des préférences personnelles.
  5. La moyenne mobile est un indicateur classique de l’analyse technique, largement utilisé et vérifié.

Risque stratégique

  1. Dans un marché en crise, les croisements de niveau fréquents peuvent entraîner des transactions fréquentes et augmenter les coûts de transaction.
  2. Le choix de la moyenne rapide trop courte ou la moyenne lente trop longue peut entraîner un retard du signal et la perte du meilleur moment de négociation.
  3. Stratégie: éventuelles pertes consécutives lorsque la tendance du marché évolue
  4. Paramètres de périodes moyennes fixes qui peuvent ne pas s’adapter aux changements dynamiques du marché

Les mesures suivantes peuvent être prises pour contrer ces risques:

  1. Optimiser les paramètres de cycle de la moyenne en fonction des caractéristiques du marché et choisir la longueur de la moyenne rapide et lente appropriée
  2. En cas de choc, on peut envisager d’ajouter des conditions de filtrage telles que le filtrage ATR ou le filtrage à angle de croix uniforme.
  3. Réalisez un stop-loss raisonnable et maîtrisez le risque d’une seule transaction
  4. Évaluation périodique de la rétrospective et adaptation des paramètres stratégiques en fonction de l’évolution du marché

Optimisation de la stratégie

  1. L’introduction de plus d’indicateurs techniques, tels que le MACD, le RSI, etc., pour construire une stratégie multi-facteurs et améliorer la précision du signal
  2. Optimiser la gestion des positions, en tenant compte de facteurs tels que l’ATR ou la volatilité, et en ajustant dynamiquement la taille des positions
  3. En cas de choc, envisagez d’introduire des indicateurs de tendance tels que l’ADX pour éviter les échanges fréquents
  4. Utilisez des algorithmes d’apprentissage ou d’optimisation pour trouver automatiquement la combinaison optimale de paramètres

Ces optimisations permettent d’améliorer l’adaptabilité et la stabilité des stratégies et de mieux s’adapter aux différentes conditions du marché. Cependant, il convient de noter qu’une optimisation excessive peut entraîner une suradaptation des stratégies et une mauvaise performance dans le monde réel.

Résumer

La stratégie de croisement bi-équilibré est une stratégie de suivi de tendance classique, qui génère un signal de négociation par la croisement de moyennes mobiles à deux périodes différentes. Sa logique est simple et facile à mettre en œuvre, elle s’applique aux marchés tendance. Cependant, dans les marchés instables, il peut y avoir des transactions fréquentes et des pertes continues.

Code source de la stratégie
/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © z4011

//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) 

float fastMA = switch fastMAType
    "Simple" => ta.sma(close, fastMALength)
    "Exponential" => ta.ema(close, fastMALength)
    "Weighted" => ta.wma(close, fastMALength)
    "Relative" => ta.rma(close, fastMALength)

plot(fastMA, color = color.aqua, linewidth = 2)

float slowMA = switch slowMAType
    "Simple" => ta.sma(close, slowMALength)
    "Exponential" => ta.ema(close, slowMALength)
    "Weighted" => ta.wma(close, slowMALength)
    "Relative" => ta.rma(close, slowMALength)

plot(slowMA, color = color.blue, linewidth = 2)


longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
    strategy.entry("Short", strategy.short)

closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
    strategy.close("Long", "Close")