
Cette stratégie, combinée à l’indicateur SuperTrend et à l’indicateur DEMA, permet de suivre une tendance. Elle génère un signal d’achat lorsque le prix dépasse la hauteur et un signal de vente lorsque le prix descend. Elle est utilisée pour filtrer les faux signaux de l’indicateur DEMA.
La stratégie est basée sur l’indicateur SuperTrend pour déterminer la direction de la tendance des prix. L’indicateur SuperTrend, combiné à l’indicateur ATR, permet de déterminer efficacement la tendance des prix.
Pour filtrer les signaux de désinformation, la stratégie intègre également l’indicateur DEMA. Un signal d’achat n’est généré que lorsque le prix dépasse la trajectoire ascendante et est au-dessus de la ligne DEMA; un signal de vente n’est généré que lorsque le prix est descendu et est au-dessous de la ligne DEMA. Cela peut filtrer efficacement les faux signaux dans les marchés volatiles.
Plus précisément, la logique des signaux de transaction de cette stratégie est la suivante:
Grâce à cette logique de conception, il est possible d’opérer dans des conditions de tendance et d’éviter de fréquenter les positions dans des marchés instables.
Comment gérer les risques:
Cette stratégie peut être optimisée dans les domaines suivants:
Optimisation des paramètres de l’indicateur SuperTrend. Il est possible de tester différents paramètres de la période ATR pour trouver la meilleure combinaison de paramètres.
Optimisation des paramètres de l’indicateur DEMA. Différents paramètres peuvent être testés pour déterminer le meilleur paramétrage.
Il est possible de régler le stop loss en fonction de la valeur ATR, afin d’éviter un stop loss excessif.
Il est possible d’ajouter la confirmation d’autres indicateurs aux points critiques, afin d’éviter les signaux de désinformation. Par exemple, la confirmation d’un indicateur d’augmentation de la quantité d’énergie au point de basculement de la tendance.
Optimisation de la gestion des positions. Les positions peuvent être ajustées en fonction de la volatilité du marché et de la dynamique de la situation des risques.
Cette stratégie intègre les avantages de l’indicateur SuperTrend et de l’indicateur DEMA, et permet de réaliser une stratégie de trading quantitative basée sur le suivi de la tendance et le filtrage des signaux. Il y a beaucoup de place pour l’optimisation de la stratégie. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées par des mesures telles que l’optimisation des paramètres, le mécanisme de stop-loss et le filtrage des signaux.
/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Krish\'s Supertrend Strategy', overlay=true)
// Supertrend Settings
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.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.new(color.green, 0))
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.new(color.green, 0))
plotshape(buySignal and showsignals ? up : na, title='Buy', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
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.new(color.red, 0))
plotshape(sellSignal and showsignals ? dn : na, title='Sell', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
// DEMA Settings
dema_length = 200
dema = ta.ema(close, dema_length)
// Long and Short Conditions
longCondition = buySignal and close > dema
shortCondition = sellSignal and close < dema
// Strategy Entry and Exit
strategy.entry('Long', strategy.long, when=longCondition)
strategy.entry('Short', strategy.short, when=shortCondition)
strategy.close('Long', when=ta.change(trend) or close < dema)
strategy.close('Short', when=ta.change(trend) or close > dema)
// Plotting
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
fill(mPlot, upPlot, title='UpTrend Highlighter', color=longFillColor, transp=90)
fill(mPlot, dnPlot, title='DownTrend Highlighter', color=shortFillColor, transp=90)
// Alerts (using plotshape for alerts in strategies)
plotshape(buySignal, title='SuperTrend Buy', color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(sellSignal, title='SuperTrend Sell', color=color.new(color.red, 0), style=shape.triangledown, size=size.small)
changeCond = trend != trend[1]
plotshape(changeCond, title='SuperTrend Direction Change', color=color.new(color.yellow, 0), style=shape.triangleup, size=size.small)