Stratégie de négociation de tendance moyenne mobile

Auteur:ChaoZhang est là., Date: 2023-10-09 16h02
Les étiquettes:

Résumé

Cette stratégie est une stratégie de trading de tendance basée sur des moyennes mobiles. Elle utilise 3 moyennes mobiles avec des paramètres différents pour générer des signaux de trading. Elle va long lorsque le prix dépasse la moyenne mobile et va court lorsque le prix dépasse la moyenne mobile.

La logique de la stratégie

La stratégie calcule la moyenne mobile ma avec la longueur len à l'aide de la fonction sma. Elle calcule ensuite 3 lignes moyennes mobiles supplémentaires longline1, longline2, longline3 qui sont déplacées respectivement de -4%, -5%, -6% sur la base de ma.

Pour la génération de signaux longs, si la position actuelle est plate, elle va long avec 1 lot lorsque le prix traverse au-dessus de la longline1. Si déjà 1 lot long, elle ajoute 1 lot de plus lorsque le prix traverse au-dessus de la longline2. Si déjà 2 lots long, elle ajoute 1 lot de plus lorsque le prix traverse au-dessus de la longline3. La position longue maximale est de 3 lots.

Pour la génération de signaux courts, s'il est déjà long, il sort de toutes les positions longues lorsque le prix dépasse ma.

L'entrée par étapes permet à la stratégie de suivre la tendance.

Les avantages

  • L'utilisation de moyennes mobiles pour déterminer la direction de la tendance filtre le bruit du marché et permet des profits stables
  • Les entrées longues/courtes par étapes peuvent tirer davantage profit des tendances
  • L'utilisation de moyennes mobiles décalées comme points d'entrée permet de mieux détecter les tendances
  • Tirages relativement faibles, tirage maximal contrôlé autour de 20%

Les risques

  • La tendance pure à suivre la stratégie a tendance à être étouffée pendant les marchés à fourchette
  • Les signaux de retard par rapport aux moyennes mobiles peuvent manquer les points tournants de la tendance
  • Les entrées longues par étapes peuvent entraîner des prix élevés et augmenter le risque
  • Aucun mécanisme de stop loss ne pourrait entraîner de grosses pertes dues à des événements soudains

Solution au risque:

  • Ajouter d'autres indicateurs pour déterminer les points tournants de la tendance
  • Paramètres de moyenne mobile raisonnablement réglés, pas trop longs pour éviter des signaux trop retardés
  • Réduire les lots d'approvisionnement à long terme par étapes pour éviter de courir après des prix élevés
  • Ajouter un stop loss mobile pour limiter les pertes

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Ajouter d' autres indicateurs comme le MACD pour déterminer la force de la tendance

  2. Optimiser les paramètres de moyenne mobile pour trouver la meilleure combinaison

  3. Ajustez la taille et le rapport des lots d'entrée par étapes pour éviter de poursuivre des prix élevés

  4. Ajouter un mécanisme de stop loss en mouvement basé sur ATR

  5. Ajuster dynamiquement la taille de la position en fonction de la volatilité du marché, réduire la taille lorsque la volatilité est élevée

  6. Paramètres d'essai sur différents produits pour trouver le symbole optimal

  7. Développer un module de sortie pour envisager de tirer profit de certains modèles

Résumé

Dans l'ensemble, la stratégie se base sur la direction de la tendance déterminée par les moyennes mobiles et les bénéfices des tendances via des entrées par étapes. Mais elle présente des problèmes de retard et des risques de poursuite de prix élevés. Nous pouvons l'optimiser en ajoutant des indicateurs auxiliaires, en optimisant les paramètres, en ajustant la taille de la position, en ajoutant un stop loss, etc., pour nous adapter aux différentes conditions du marché et obtenir des bénéfices stables.


/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Lenghs")
src = input(ohlc4, title = "MA Source")
longlevel1 = input(-4.0, title = "Long line 1")
longlevel2 = input(-5.0, title = "Long line 2")
longlevel3 = input(-6.0, title = "Long line 3")
needoffset = input(true, title = "Offset")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick

//MA
ma = sma(src, len)
longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult
longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult
longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult

//Lines
offset = needoffset ? 1 : 0
plot(ma, color = color.blue)
plot(longline1, offset = offset, color = color.lime)
plot(longline2, offset = offset, color = color.lime)
plot(longline3, offset = offset, color = color.lime)

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2))
if size > 0
    strategy.entry("TP", strategy.short, 0, limit = ma)
    

Plus de