Stratégie de trading basée sur le canal Super Trend Breakout


Date de création: 2024-02-18 14:19:58 Dernière modification: 2024-02-18 14:19:58
Copier: 2 Nombre de clics: 683
1
Suivre
1617
Abonnés

Stratégie de trading basée sur le canal Super Trend Breakout

Aperçu

La stratégie est basée sur l’indicateur de la chaîne de super-tendance développé. Il combine l’évolution des prix et la direction de la chaîne de super-tendance pour juger de la tendance des cours et émettre des signaux de négociation lorsque la direction de la chaîne de super-tendance est inversée.

Il achète en surabondance lorsque le prix franchit le canal de la super-tendance; il vend à zéro lorsque le prix franchit le canal de la super-tendance. En outre, il dispose d’un mécanisme de suivi des pertes.

Principe de stratégie

Le canal de tendance super est composé d’une voie ascendante et descendante. L’intérieur du canal est la zone de complétion et l’extérieur du canal est la zone de tendance. Il utilise la gamme moyenne de fluctuation réelle multipliée par un multiple pour déterminer la largeur du canal.

Lorsque le prix dépasse la barre supérieure, il y a un signal d’achat. Cela signifie que la nouvelle tendance haussière est lancée. Lorsque le prix dépasse la barre supérieure, il y a un signal de vente. Cela signifie que la nouvelle tendance baissière commence.

La stratégie utilise les indicateurs de la chaîne de super-trend pour déterminer la direction de la tendance principale. Lorsque la direction de la chaîne est inversée, c’est-à-dire lorsque le prix franchit l’orbite de la chaîne, un signal de transaction est émis.

Analyse des avantages

Il s’agit d’une stratégie de percée simple et intuitive qui présente les avantages suivants:

  1. L’utilisation d’un canal de super-tendance pour déterminer la direction des tendances principales et éviter d’être payé par le bruit iB.

  2. Il y a donc plus de temps libre en fonction de la relation entre le prix et le canal.

  3. Il existe des mécanismes clairs de prévention des pertes qui permettent de contrôler efficacement les risques.

  4. La méthode de stop-loss est une méthode de suivi de la tendance qui permet de bloquer le profit au maximum.

Risques et améliorations

Cette stratégie comporte également des risques, principalement:

  1. Les paramètres de la chaîne de super-tendance sont mal configurés et peuvent entraîner de faux signaux.

  2. Les signaux de rupture peuvent être des signaux de reprise à court terme, entraînant des pertes.

  3. La méthode de stop loss est utilisée uniquement pour suivre la tendance et peut entraîner un stop loss prématuré.

Les mesures d’amélioration correspondantes comprennent:

  1. Test des données de différents marchés et paramètres d’optimisation

  2. Combiné à d’autres indicateurs, le signal de filtrage

  3. La structure des prix est utilisée pour évaluer la fiabilité des signaux de rupture.

  4. L’augmentation de la perte de fond pour une meilleure maîtrise des risques.

Résumer

Cette stratégie est globalement une stratégie de suivi de tendance simple et intuitive. Elle utilise les canaux de super-tendance pour déterminer clairement la direction de la tendance et générer des signaux lorsque le canal se retourne.

Les canaux de tendance supérieure sont plus tolérants aux fluctuations de prix que les autres indicateurs. Cependant, il existe une certaine marge de profit dans cette stratégie, qui peut être optimisée en termes de filtrage du signal et de méthodes de stop-loss pour améliorer encore la stabilité.

Code source de la stratégie
/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Supertrend TEST Strategy", overlay = true, format=format.price, precision=2)

Periods = input(title="ATR Period", type=input.integer, defval=4)
src = input(hlc3, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=4.7)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
tp=close
sl=close

atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green )
plotshape(buySignal and showsignals ? up : na, title="Лонг", text="Лонг", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white )
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red )
plotshape(sellSignal and showsignals ? dn : na, title="Шорт", text="Шорт", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white )
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white



if (strategy.position_size > 0)
	tp:=tp[1]
	sl:=up
	strategy.exit("Long_TP/SL","Long",limit=tp, stop=sl)
	
if (strategy.position_size < 0)
	tp:=tp[1]
	sl:=dn
	strategy.exit("Short_TP/SL","Short",limit=tp, stop=sl)



if buySignal 
	tp:=close+(close-up)*0.382
    strategy.entry("Long", strategy.long,  limit=tp, comment=tostring(round(tp)))
if sellSignal
	tp:=close-(dn-close)*0.382
    strategy.entry("Short", strategy.short, limit=tp, comment=tostring(round(tp)))