Tendance à la suite d'une stratégie de négociation de régression basée sur une régression linéaire et une moyenne mobile

Auteur:ChaoZhang est là., Date: 2023-12-18 17h34 et 29h
Les étiquettes:

img

Résumé

Cette stratégie conçoit une tendance simple suivant un système de trading basé sur la ligne de régression linéaire et la ligne moyenne mobile. Elle va longue lorsque la ligne de régression linéaire traverse au-dessus de la moyenne mobile et va courte lorsque la ligne de régression linéaire traverse en dessous. Pendant ce temps, elle utilise la pente de la ligne de régression pour filtrer certains signaux de trading et n'entre que lorsque la direction de la tendance correspond.

Nom de la stratégie

Tendance à la suite de la stratégie de négociation de régression

Principe de stratégie

Les éléments clés de cette stratégie sont les suivants:

  1. Calcul de la moyenne mobile simple de N jours (SMA)
  2. Calculer la ligne de régression linéaire des N derniers jours
  3. Passer long lorsque le prix de clôture dépasse la SMA et est supérieur à la ligne de régression
  4. Aller court lorsque le prix de clôture dépasse la SMA et est inférieur à la ligne de régression
  5. Fixer le prix stop-loss et le prix profit

La ligne de régression linéaire peut bien s'adapter à la direction de la tendance dans les périodes récentes. Elle peut aider à juger de la direction générale de la tendance. Lorsque le prix traverse la ligne SMA, nous devons déterminer si la direction de la ligne de régression linéaire est compatible avec cette rupture. Seulement lorsque les deux directions sont cohérentes, un signal de trading est généré. Cela peut filtrer certaines fausses ruptures.

En outre, la stratégie définit également un mécanisme de stop loss. Lorsque le prix atteint la ligne de stop loss, fermez les positions pour arrêter la perte.

Les avantages de la stratégie

La stratégie présente les avantages suivants:

  1. Combiner l'indicateur de tendance et l'indicateur de rupture pour éviter une fausse rupture et améliorer la qualité du signal
  2. Utilisez la régression linéaire pour déterminer la direction de la tendance pour le filtrage de la tendance, n'allez que long dans la tendance haussière et court dans la tendance baissière
  3. Définir un stop-loss et un profit pour contrôler le risque
  4. Des règles claires et faciles à comprendre
  5. Seulement quelques paramètres à régler sans trop de complexité

Analyse des risques

La stratégie comporte également certains risques:

  1. Plus de signaux de trading erronés peuvent être générés sur le marché à plage
  2. Les paramètres des moyennes mobiles et des périodes de régression nécessitent des tests et une optimisation approfondis, les paramètres incorrects peuvent affecter les performances de la stratégie
  3. Le stop loss peut être rompu dans des conditions de marché extrêmes entraînant de grosses pertes.
  4. Basé uniquement sur des indicateurs techniques sans combiner les facteurs fondamentaux

En ce qui concerne ces risques, nous pouvons optimiser à partir des aspects suivants:

  1. Envisager de suspendre la stratégie ou d'utiliser d'autres indicateurs pour le filtrage sur le marché lié à la plage
  2. Test de retour pour trouver les paramètres optimaux
  3. Optimiser et ajuster dynamiquement la position stop loss
  4. Combiner les données économiques avec d'autres facteurs fondamentaux

Directions d'optimisation

Les principaux aspects pour optimiser davantage la stratégie sont les suivants:

  1. Ajouter d'autres indicateurs auxiliaires pour juger des conditions du marché et éviter les opérations dans des périodes de plage
  2. Optimiser le type de moyenne mobile, tel que la moyenne mobile double, la moyenne mobile triple, etc.
  3. Analyser davantage la pente de la ligne de régression et ajouter des règles de jugement de pente
  4. Incorporer des indicateurs de volatilité pour définir des niveaux de stop loss dynamiques et de prise de profit
  5. Utiliser des méthodes d'apprentissage automatique pour optimiser automatiquement les paramètres

Conclusion

Cette stratégie intègre la fonction de suivi de tendance des moyennes mobiles et la capacité de jugement de tendance de la régression linéaire, formant un système de trading de suivi de tendance relativement simple. Elle peut obtenir de bons résultats sur des marchés à forte tendance. Nous avons encore besoin d'un backtesting et d'une optimisation approfondis des paramètres et des règles, et d'un contrôle approprié des risques.


/*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))



Plus de