Stratégie de négociation de rupture de Supertrend

Auteur:ChaoZhang est là., Date: 2024-02-18 14:19:58 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie est développée sur la base de l'indicateur Supertrend. Elle combine l'action des prix et la direction du canal Supertrend pour juger des tendances du marché et générer des signaux de trading lorsque la direction du canal change.

Lorsque le prix franchit le canal de Supertrend, allez long; lorsque le prix franchit le canal inférieur de Supertrend, allez court.

La logique de la stratégie

Le canal de Supertrend se compose d'un rail supérieur et d'un rail inférieur. La zone à l'intérieur du canal est la zone de consolidation et la zone à l'extérieur est la zone de tendance. Il utilise la plage moyenne réelle multipliée par un facteur pour déterminer la largeur du canal.

Lorsque le prix franchit la barre supérieure depuis le bas, c'est un signal d'achat. Cela signifie qu'une nouvelle tendance haussière commence. Lorsque le prix franchit la barre inférieure depuis le haut, c'est un signal de vente. Cela signifie qu'une nouvelle tendance à la baisse commence.

La stratégie utilise l'indicateur Supertrend pour juger de la direction de la tendance principale. Lorsque la direction du canal change, c'est-à-dire lorsque le prix traverse les rails du canal, des signaux de trading sont générés. Ensuite, utilisez un stop loss de suivi de tendance pour verrouiller les bénéfices.

Analyse des avantages

Il s'agit d'une stratégie de rupture relativement simple et intuitive.

  1. Utilisez les canaux de Supertrend pour déterminer la direction de la tendance principale et éviter les transactions bruyantes.

  2. Suivez la tendance, jugez les opportunités longues et courtes en fonction de la relation entre le prix et le canal.

  3. Il dispose d'un mécanisme de stop loss clair pour contrôler efficacement les risques.

  4. La méthode de stop loss est le suivi de la tendance stop loss, qui peut maximiser le verrouillage des bénéfices.

Risques et améliorations

Cette stratégie comporte également certains risques, notamment:

  1. Des paramètres incorrects du Supertrend peuvent entraîner de faux signaux.

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

  3. La méthode d'arrêt des pertes consiste uniquement en un suivi de tendance, ce qui peut entraîner un arrêt prématuré des pertes.

Les mesures d'amélioration correspondantes comprennent:

  1. Tester les données provenant de différents marchés et optimiser les paramètres.

  2. Les signaux filtrés en combinaison avec d'autres indicateurs.

  3. Jugez de la fiabilité des signaux de rupture combinés à la structure des prix.

  4. Augmenter le stop loss en arrière-plan pour contrôler davantage les risques.

Résumé

En général, cette stratégie est une stratégie de suivi de tendance relativement simple et intuitive. Elle utilise les canaux Supertrend pour déterminer clairement la direction de la tendance et génère des signaux lorsque le canal change de direction.

Comparé à d'autres indicateurs, le canal Supertrend a une meilleure tolérance aux fluctuations de prix. Mais il y a encore une marge de profit pour cette stratégie. Il peut être optimisé en termes de filtrage des signaux et de méthodes de stop loss pour améliorer davantage la stabilité.


/*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)))




Plus de