Stratégie de trading Ethereum basée sur la supertrend


Date de création: 2024-01-08 14:35:37 Dernière modification: 2024-01-08 14:35:37
Copier: 0 Nombre de clics: 726
1
Suivre
1617
Abonnés

Stratégie de trading Ethereum basée sur la supertrend

Aperçu

La stratégie est basée sur l’indicateur de super-tendance, combiné à l’ATR pour définir dynamiquement une ligne de stop-loss afin de profiter de la forte tendance de l’Ethereum. Il peut être exécuté sur la paire de négociation ETH/USD de l’échange Coinbase.

Principe de stratégie

La stratégie utilise un indicateur de suivi de tendance classique et un indicateur de tendance super pour juger de la direction de la tendance. L’indicateur de tendance super est composé de deux courbes, respectivement:

  1. La tendance à la hausse est une ligne de stop-loss, qui détient plus d’options pendant une période de tendance à la baisse.
  2. La ligne d’arrêt-perte de la tendance à la baisse, qui détient des billets d’avion pendant la baisse.

Il y a une position à vide lorsque le prix passe d’une tendance à la hausse à une tendance à la baisse; une position à plusieurs têtes lorsque le prix passe d’une tendance à la baisse à une tendance à la hausse.

En outre, la stratégie utilise également l’indicateur ATR pour ajuster dynamiquement la position de la ligne de stop. Plus précisément, la position de la ligne de stop à la hausse est la moyenne des prix les plus élevés et les plus bas moins ATR multiplié par un facteur; la position de la ligne de stop à la baisse est la moyenne des prix les plus élevés et les plus bas plus ATR multiplié par un facteur.

Si le prix revient à la ligne de rupture de la perte après l’émission du signal d’entrée, un arrêt de perte est effectué.

Avantages stratégiques

Il s’agit d’une stratégie de suivi de tendances plus mature qui présente les avantages suivants:

  1. L’utilisation d’indicateurs de tendance super est plus fiable pour déterminer la direction de la tendance.
  2. L’application de l’ATR permet de régler automatiquement la ligne de freinage et de contrôler efficacement le risque;
  3. La logique de la stratégie est simple et claire, facile à comprendre et à modifier.
  4. Le marché de la monnaie numérique est très volatile.

Risque stratégique

Cette stratégie comporte aussi des risques:

  1. La probabilité d’erreur de jugement dans les indicateurs de tendance supérieure, qui peut entraîner des pertes inutiles;
  2. Le stop ATR peut être trop radical et être stoppé par une inversion de prix.
  3. Les marchés de la monnaie numérique sont plus volatiles et plus susceptibles d’être bloqués.
  4. Les frais de transaction sont plus élevés sur les échanges, ce qui affecte les bénéfices finaux.

Pour réduire les risques mentionnés ci-dessus, il est possible d’ajuster le coefficient ATR de manière appropriée ou de filtrer les signaux de transaction en combinaison avec d’autres indicateurs. La position de stop-loss peut également être considérée comme un certain niveau de protection.

Orientation de l’optimisation de la stratégie

Il y a encore de la place pour optimiser cette stratégie:

  1. L’introduction d’autres combinaisons d’indicateurs permettrait d’améliorer la précision du signal.
  2. Les valeurs optimales pour le coefficient ATR et le paramètre de longueur peuvent être étudiées.
  3. Il est possible de définir un stop loss ratio pour ajuster dynamiquement la taille de la position.
  4. L’efficacité de la stratégie peut être testée sur un plus grand nombre de paires de crypto-monnaies.

Résumer

Cette stratégie est une stratégie de suivi de tendance éprouvée et fiable dans son ensemble. Elle utilise des indicateurs de super-tendance pour déterminer la direction de la tendance et utilise l’ATR pour ajuster la position de stop-loss pour contrôler le risque tout en profitant.

Code source de la stratégie
/*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")