La stratégie de rupture de ligne moyenne est une stratégie de trading quantitative typique qui suit les tendances.
La stratégie calcule d'abord la moyenne mobile simple de N jours (défaut de 50 jours) SMA, puis calcule l'écart-type StdDev du prix basé sur la SMA pour ce cycle. Avec la SMA comme axe central et les rails supérieur et inférieur comme 2 fois la StdDev, le canal d'écart-type est construit. Lorsque le prix dépasse le rail supérieur, allez court; lorsque le prix tombe en dessous du rail inférieur, allez long.
Après avoir pénétré sur le marché, la stratégie définit des points de stop loss et de take profit. Plus précisément, après avoir passé long, la ligne de stop loss est le prix de clôture au moment de l'entrée (100 - pourcentage de stop loss); après avoir passé court, la ligne de take profit est le prix de clôture au moment de l'entrée (100 + pourcentage de take profit).
La stratégie présente les avantages suivants:
Une forte capacité de suivi des tendances. L'utilisation de canaux d'écart type peut suivre dynamiquement les fluctuations du marché.
Une forte capacité de contrôle du retrait.
Implémentation simple. Économise beaucoup d'optimisation de paramètres et est très facile à mettre en œuvre.
La stratégie comporte également certains risques:
Les stratégies de suivi des tendances sont sujettes à des pertes puis à des renversements.
Risque de sensibilité des paramètres: le choix de paramètres tels que la moyenne mobile de la période et le multiplicateur d'écart type aura un impact plus important sur la performance de la stratégie.
Les paramètres de stop loss sont trop agressifs pour causer des pertes supplémentaires.
Les solutions aux risques correspondants sont les suivantes:
Combiner les indicateurs de volatilité pour éviter les fausses ruptures.
Optimiser les paramètres pour trouver la combinaison optimale.
Ajustez le mécanisme de stop loss pour éviter une agression excessive.
Il reste encore des possibilités d'optimisation de la stratégie:
Utilisez des moyennes mobiles multiples pour la vérification afin d'éviter des courbes trop sensibles.
Incorporer d'autres indicateurs tels que le MACD pour juger des tendances et des divergences.
Introduire des algorithmes d'apprentissage automatique pour optimiser dynamiquement les paramètres.
Dans l'ensemble, la stratégie de percée de régression moyenne mobile est une stratégie de trading quantitative très pratique. Elle présente les avantages de suivre les tendances et de contrôler les retraits, sa mise en œuvre est simple et répond aux besoins du trading quantitatif. Dans le même temps, l'attention doit également être accordée à des questions telles que la sélection des paramètres et les paramètres de stop loss.
/*backtest start: 2023-02-16 00:00:00 end: 2024-02-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Standard Deviation Bands with Buy/Sell Signals", overlay=true) // Input for the number of standard deviations deviationMultiplier = input.float(2.0, title="Standard Deviation Multiplier") // Input for the length of the moving average maLength = input.int(50, title="Moving Average Length") // Input for the stop loss percentage stopLossPercentage = input.float(12, title="Stop Loss Percentage") // Calculate the moving average sma = ta.sma(close, maLength) // Calculate the standard deviation of the price priceDeviation = ta.stdev(close, maLength) // Calculate the upper and lower bands upperBand = sma + (priceDeviation * deviationMultiplier) lowerBand = sma - (priceDeviation * deviationMultiplier) // Plot the bands plot(upperBand, color=color.green, title="Upper Band") plot(lowerBand, color=color.red, title="Lower Band") // Plot the moving average plot(sma, color=color.blue, title="SMA", linewidth=2) // Buy Signal buyCondition = ta.crossover(close, lowerBand) sellCondition = ta.crossunder(close, upperBand) // Calculate stop loss level stopLossLevelBuy = close * (1 - stopLossPercentage / 100) stopLossLevelSell = close * (1 + stopLossPercentage / 100) // Create Buy and Sell Alerts alertcondition(buyCondition, title="Buy Signal", message="Buy Signal - Price Crossed Below Lower Band") alertcondition(sellCondition, title="Sell Signal", message="Sell Signal - Price Crossed Above Upper Band") // Plot Buy and Sell Arrows on the chart plotshape(buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal Arrow") plotshape(sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal Arrow") // Exit Long and Short Positions var float stopLossBuy = na var float stopLossSell = na if ta.crossover(close, sma) stopLossBuy := stopLossLevelBuy if ta.crossunder(close, sma) stopLossSell := stopLossLevelSell strategy.entry("Buy", strategy.long, when = buyCondition) strategy.exit("Stop Loss/Take Profit Buy", from_entry = "Buy", stop = stopLossBuy) strategy.entry("Sell", strategy.short, when = sellCondition) strategy.exit("Stop Loss/Take Profit Sell", from_entry = "Sell", stop = stopLossSell)