Stratégie SuperTrend pour le trading Ethereum

Auteur:ChaoZhang est là., Date: 2024-01-08 14h35: 37
Les étiquettes:

img

Résumé

Cette stratégie est basée sur l'indicateur SuperTrend et utilise l'ATR pour définir dynamiquement des lignes de stop loss afin de profiter des fortes tendances d'Ethereum.

La logique de la stratégie

La stratégie utilise un indicateur classique de suivi de tendance - l'indicateur SuperTrend pour déterminer la direction de la tendance.

  1. ligne de stop-loss à tendance haussière pour maintenir des positions longues en tendance haussière;
  2. Ligne d'arrêt des pertes de tendance à la baisse pour maintenir des positions courtes dans les tendances à la baisse.

Lorsque le prix passe d'une tendance haussière à une tendance baissière, ouvrez une position courte.

En outre, la stratégie utilise l'indicateur ATR pour ajuster dynamiquement la ligne d'arrêt de perte. Plus précisément, la position de la ligne d'arrêt de perte de tendance haussière est la moyenne du plus haut et du plus bas bas moins ATR multiplié par un coefficient; la position de la ligne d'arrêt de perte de tendance baissière est la moyenne du plus haut et du plus bas plus ATR multiplié par un coefficient. Cela permet d'ajuster le stop loss en fonction de la volatilité du marché.

Après que les signaux d'entrée soient déclenchés, si le prix dépasse la ligne de stop loss, arrêtez la perte.

Les avantages

Il s'agit d'une tendance relativement mûre qui suit une stratégie présentant les avantages suivants:

  1. Utiliser l'indicateur SuperTrend pour déterminer de manière fiable la direction de la tendance;
  2. Appliquer un système d'arrêt des pertes adaptatif ATR pour contrôler efficacement les risques;
  3. logique stratégique simple et claire, facile à comprendre et à modifier;
  4. Rentable sur le marché des crypto-monnaies à forte volatilité.

Les risques

Cette stratégie comporte également certains risques:

  1. La probabilité d'un mauvais jugement de l'indicateur SuperTrend peut entraîner des pertes inutiles;
  2. L'ATR stop loss peut être trop agressif, arrêté par des renversements de prix;
  3. La volatilité élevée sur les marchés des crypto-monnaies augmente la probabilité d'un stop loss;
  4. Des frais de transaction plus élevés sur certaines bourses ont des répercussions sur la rentabilité finale.

Pour atténuer les risques susmentionnés, le coefficient ATR peut être ajusté ou des filtres avec d'autres indicateurs peuvent être ajoutés.

Directions d'amélioration

Des améliorations supplémentaires sont possibles:

  1. Mettre en place davantage d'indicateurs pour améliorer la précision du signal;
  2. recherche de valeurs optimales pour la longueur et le coefficient ATR;
  3. Mettre en œuvre une dimensionnement dynamique des positions basé sur le rapport risque/rendement;
  4. Testez l'efficacité de la stratégie sur plus de paires de crypto-trades.

Conclusion

Dans l'ensemble, il s'agit d'une stratégie de suivi de tendance mature et fiable. Il utilise l'indicateur SuperTrend pour déterminer la direction de la tendance et adapte le stop loss avec ATR pour contrôler les risques tout en profitant. La stratégie fonctionne bien pour les crypto-monnaies à forte volatilité comme Ethereum.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4 
strategy("SuperTrend Strategy", 
     overlay=true, 
     initial_capital=2e3, 
     process_orders_on_close=true, 
     commission_type=strategy.commission.percent, 
     commission_value=0.1 
     ) 
  
length = input(title="ATR Period", type=input.integer, defval=21) 
mult = input(title="ATR Multiplier", type=input.float, step=.25, defval=6.2) 
wicks = input(title="Take Wicks into Account ?", type=input.bool, defval=false) 
  
useDate = input(title="Start from Specific Date ?", defval=false) 
yearStart = input(title="Start Year", defval=2019) 
monthStart = input(title="Start Month", minval=1, maxval=12, defval=1) 
dayStart = input(title="Start Day", minval=1, maxval=31, defval=1) 
  
startTime = timestamp(yearStart, monthStart, dayStart, 0, 0) 
startFrom = useDate ? time(timeframe.period) >= startTime : true 
  
atr = mult * ta.atr(length) 
  
longStop = hl2 - atr 
longStopPrev = nz(longStop[1], longStop) 
longStop := (wicks ? low[1] : close[1]) > longStopPrev ? math.max(longStop, longStopPrev) : longStop 
  
shortStop = hl2 + atr 
shortStopPrev = nz(shortStop[1], shortStop) 
shortStop := (wicks ? high[1] : close[1]) < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop 
  
dir = 1 
dir := nz(dir[1], dir) 
dir := dir == -1 and (wicks ? high : close) > shortStopPrev ? 1 : dir == 1 and (wicks ? low : close) < longStopPrev ? -1 : dir 
  
longColor = color.green 
shortColor = color.red 
  
plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=2, color=longColor) 
plotshape(dir == 1 and dir[1] == -1 ? longStop : na, title="Long Start", location=location.absolute, style=shape.circle, size=size.tiny, color=longColor, transp=0) 
  
plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=2, color=shortColor) 
plotshape(dir == -1 and dir[1] == 1 ? shortStop : na, title="Short Start", location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor, transp=0) 
  
longCondition = dir[1] == -1 and dir == 1 
if longCondition and startFrom 
    strategy.entry("Long", strategy.long, stop=longStop) 
else 
    strategy.cancel("Long") 
  
shortCondition = dir[1] == 1 and dir == -1 
if shortCondition and startFrom 
    strategy.entry("Short", strategy.short, stop=shortStop) 
else 
    strategy.cancel("Short")
    

Plus de