Stratégie de rupture de SuperTrend

Auteur:ChaoZhang est là., Date: 2024-02-28 18:12:47 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie génère des signaux de négociation lorsque le prix sort du canal tendance haussière / tendance baissière formé par l'indicateur SuperTrend.

La logique de la stratégie

La stratégie calcule d'abord l'indicateur ATR comme mesure de la volatilité des prix, puis le combine avec la moyenne des prix les plus élevés, les plus bas et les prix de clôture pour calculer les bandes supérieures et inférieures. Lorsque le prix dépasse la bande inférieure pendant une tendance haussière, un signal d'achat est généré. Lorsque le prix dépasse la bande supérieure pendant une tendance baissière, un signal de vente est déclenché. Cela forme un canal de tendance haussière / baissière adaptatif qui suit les tendances des prix.

Après être entré sur le marché, la stratégie définit des cibles de profit et des cibles de stop-loss.

Analyse des avantages

Le plus grand avantage de cette stratégie est son excellente capacité de suivi des tendances. Le canal adaptatif peut capturer rapidement les changements de tendance. L'utilisation de l'ATR fournit également une certaine assurance de la négociation avec l'élan. En outre, l'objectif de profit et le mécanisme de stop loss donnent un contrôle clair du risque / récompense.

Analyse des risques

Un risque majeur est qu'il puisse générer des coups de fouet excessifs pendant les marchés à plage, car le prix traverse constamment les bandes.

Pour réduire ces risques, des paramètres tels que la période ATR ou le multiplicateur de canal pourraient être optimisés pour mieux s'adapter à la tendance réelle.

Des possibilités d'amélioration

La stratégie peut être améliorée sous plusieurs aspects:

  1. Optimiser les paramètres ATR pour mieux refléter la dynamique réelle de la volatilité.

  2. Testez différents multiplicateurs pour optimiser la largeur du canal.

  3. Ajouter d'autres indicateurs comme filtres sur les entrées, par exemple le MACD pour un meilleur timing.

  4. Optimiser l'objectif de profit et les niveaux de stop-loss pour maximiser les rendements ajustés au risque.

  5. Considérez d'autres objectifs comme le ratio Sharpe ou le facteur de profit pour évaluer la qualité globale.

Résumé

La stratégie tire parti du modèle de rupture de canal adaptatif pour atteindre une grande capacité de suivi des tendances. Elle dispose également de mécanismes de contrôle des risques clairs. Avec un ajustement supplémentaire des paramètres et une amélioration de la logique, elle a le potentiel de fonctionner encore mieux dans diverses conditions de marché et classes d'actifs.


/*backtest
start: 2024-02-26 00:00:00
end: 2024-02-26 20:20:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Input parameters
atr_length = input.int(10, title="ATR Length")
multiplier = input.float(3.0, title="Multiplier")

target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")

// Calculate ATR and Supertrend
atr = ta.atr(atr_length)
upper_band = hlc3 + (multiplier * atr)
lower_band = hlc3 - (multiplier * atr)
is_uptrend = close > lower_band
is_downtrend = close < upper_band
trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend)

// Strategy logic
long_condition = is_uptrend and trend_changed
short_condition = is_downtrend and trend_changed

// Plot Supertrend
plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr)
plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr)

// Strategy entry and exit
if long_condition
    strategy.entry("Long", strategy.long)
if short_condition
    strategy.entry("Short", strategy.short)

// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points

// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)


Plus de