Stratégie de trading de suivi de tendance basée sur la régression linéaire et les moyennes mobiles


Date de création: 2023-12-18 17:34:29 Dernière modification: 2023-12-18 17:34:29
Copier: 4 Nombre de clics: 890
1
Suivre
1621
Abonnés

Stratégie de trading de suivi de tendance basée sur la régression linéaire et les moyennes mobiles

Aperçu

La stratégie est basée sur une ligne de régression linéaire et des moyennes mobiles. La stratégie est conçue pour un système de suivi de la tendance simple.

Nom de la stratégie

Stratégie de trading de régression suivant la tendance

Principe de stratégie

La stratégie comprend les éléments clés suivants:

  1. Calculer une moyenne mobile simple (SMA) sur N jours
  2. Calculer la ligne de régression linéaire du dernier jour N
  3. Faire plus lorsque le prix de clôture traverse la ligne SMA et est au-dessus de la ligne de reprise
  4. Faire une prise de position lorsque le prix de clôture traverse la ligne SMA et est en dessous de la ligne de reprise
  5. Définition des prix de stop-loss et de stop-loss

Une ligne de régression linéaire est une bonne adaptation de la direction de la tendance au cours d’une période récente. Elle peut être utilisée pour aider à déterminer la direction de la tendance globale. Lorsque le prix franchit la ligne SMA, nous devons déterminer plus en détail si la direction de la ligne de régression linéaire correspond à cette rupture.

En outre, la stratégie a également un mécanisme de stop-loss. Lorsque le prix touche la ligne de stop-loss, la position de placement est arrêtée. Il y a également un stop-loss, qui bloque une partie des bénéfices.

Avantages stratégiques

Cette stratégie présente les avantages suivants:

  1. Combinaison d’un indicateur de tendance et d’un indicateur de rupture pour éviter les fausses ruptures et améliorer la qualité du signal
  2. Utilisez la régression linéaire pour déterminer la direction de la tendance, filtrez la tendance, faites plus lorsque la tendance est à la hausse et faites moins lorsque la tendance est à la baisse
  3. Des mécanismes d’arrêt et de freinage ont été mis en place pour contrôler les risques
  4. Les règles sont claires, faciles à comprendre et à appliquer
  5. Il suffit d’ajuster quelques paramètres, pas besoin de trop compliquer

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. La plupart des signaux de trading erronés sont générés dans des conditions de choc.
  2. Les paramètres de la moyenne mobile et du cycle de régression nécessitent des tests répétés et une optimisation, et une mauvaise configuration peut affecter la performance de la stratégie.
  3. Les pertes de suspension dans des conditions extrêmes pourraient être plus importantes en cas de percée.
  4. Basé uniquement sur des indicateurs techniques, sans combiner les facteurs fondamentaux

Nous pouvons optimiser ces risques de plusieurs façons:

  1. En cas de choc, envisagez de mettre en pause votre stratégie ou de filtrer avec d’autres indicateurs.
  2. Les paramètres sont testés en répétition pour trouver les paramètres optimaux.
  3. Optimisation et réglage dynamique des positions de stop loss
  4. Des facteurs fondamentaux comme les données économiques

Direction d’optimisation

Cette stratégie peut être optimisée principalement dans les domaines suivants:

  1. Ajouter d’autres indicateurs auxiliaires pour évaluer la situation du marché et éviter de négocier dans des conditions de choc
  2. Optimiser les combinaisons de types de moyennes mobiles, comme les moyennes mobiles doubles ou triples
  3. Une analyse plus approfondie de l’inclinaison de la ligne de régression, ajoutant des règles de jugement de l’inclinaison
  4. Combiné à un indicateur de volatilité, réglez la position de stop-loss dynamique
  5. Optimiser automatiquement les paramètres à l’aide de l’apprentissage automatique

Résumer

La stratégie intègre la fonction de suivi de tendance des moyennes mobiles et la fonction de jugement de tendance de la régression linéaire, formant un système de trading de suivi de tendance relativement simple et facile à utiliser. Dans les marchés où la tendance est évidente, la stratégie peut obtenir de meilleurs résultats.

Code source de la stratégie
/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Regression Trading Strategy", shorttitle="RTS", overlay=true)

// Input parameters
n = input(14, title="SMA Period")
stop_loss_percentage = input(2, title="Stop Loss Percentage")
take_profit_percentage = input(2, title="Take Profit Percentage")

// Calculate the SMA
sma = sma(close, n)

// Linear regression function
linear_regression(src, length) =>
    sumX = 0.0
    sumY = 0.0
    sumXY = 0.0
    sumX2 = 0.0
    for i = 0 to length - 1
        sumX := sumX + i
        sumY := sumY + src[i]
        sumXY := sumXY + i * src[i]
        sumX2 := sumX2 + i * i
    slope = (length * sumXY - sumX * sumY) / (length * sumX2 - sumX * sumX)
    intercept = (sumY - slope * sumX) / length
    line = slope * length + intercept
    line

// Calculate the linear regression
regression_line = linear_regression(close, n)

// Plot the SMA and regression line
plot(sma, title="SMA", color=color.blue)
plot(regression_line, title="Regression Line", color=color.red)

// Trading strategy conditions
long_condition = crossover(close, sma) and close > regression_line
short_condition = crossunder(close, sma) and close < regression_line

// Exit conditions
stop_loss_price = close * (1 - stop_loss_percentage / 100)
take_profit_price = close * (1 + take_profit_percentage / 100)

// Plot entry and exit points on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=crossunder(close, stop_loss_price), title="Stop Loss", location=location.abovebar, color=color.red, style=shape.labeldown, text="SL")
plotshape(series=crossover(close, take_profit_price), title="Take Profit", location=location.belowbar, color=color.green, style=shape.labelup, text="TP")

// Strategy orders
strategy.entry("Long", strategy.long, when = long_condition)
strategy.entry("Short", strategy.short, when = short_condition)
strategy.exit("Exit", from_entry = "Long", when = crossover(close, stop_loss_price) or crossover(close, take_profit_price))
strategy.exit("Exit", from_entry = "Short", when = crossunder(close, stop_loss_price) or crossunder(close, take_profit_price))