
Cette stratégie est un système de trading de suivi de tendance qui combine l’indicateur Supertrend avec la moyenne mobile adaptative de Kaufman (KAMA). La stratégie identifie de manière dynamique les changements dans les tendances du marché, recherche des opportunités longues dans une tendance à la hausse et utilise un mécanisme de stop-loss flexible pour contrôler les risques. L’idée principale de la stratégie est d’utiliser la capacité de jugement de la direction de la tendance de l’indicateur Supertrend, combinée aux caractéristiques adaptatives de l’indicateur KAMA aux fluctuations du marché, pour établir des positions longues dans la tendance à la hausse du marché.
La stratégie utilise un système de confirmation à double indicateur technique. Tout d’abord, l’indicateur Supertrend calcule la direction de la tendance grâce à l’ATR et à un coefficient personnalisé. Lorsque la ligne de l’indicateur est inférieure au prix, cela indique une tendance à la hausse. Deuxièmement, l’indicateur KAMA ajuste la sensibilité de la moyenne mobile grâce à un mécanisme adaptatif, qui peut mieux s’adapter aux différents environnements de marché. Le signal d’entrée doit remplir deux conditions en même temps : Supertrend indique une tendance à la hausse et le prix est au-dessus de la ligne KAMA. De même, le signal de sortie nécessite également une double confirmation : la Supertrend se transforme en tendance baissière et le prix tombe en dessous de la ligne KAMA. Ce mécanisme de double confirmation réduit efficacement l’impact des faux signaux.
Cette stratégie construit un système de trading robuste de suivi de tendance en combinant les deux indicateurs techniques, Supertrend et KAMA. Les principaux avantages de la stratégie sont son adaptabilité et ses capacités de contrôle des risques, et la fiabilité des signaux de trading est améliorée grâce à un mécanisme de double confirmation. Bien qu’il puisse y avoir certains défis dans un marché volatil, la performance globale de la stratégie peut être encore améliorée grâce à des paramètres raisonnables et à la mise en œuvre de directions d’optimisation. Cette stratégie est particulièrement adaptée au trading de tendance à moyen et long terme et fonctionne mieux dans un environnement de marché avec des tendances claires.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Supertrend + KAMA Long Strategy", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)
// User-defined inputs for date range
startDate = input(timestamp("2018-01-01 00:00:00"), title="Start Date")
endDate = input(timestamp("2069-12-31 23:59:59"), title="End Date")
inDateRange = true
// Inputs for KAMA and Supertrend
kamaLength = input.int(21, title="KAMA Length", minval=1)
atrPeriod = input.int(10, title="Supertrend ATR Length", minval=1)
factor = input.float(3.0, title="Supertrend Factor", minval=0.01, step=0.01)
//------------------------- Kaufman Moving Average Adaptive (KAMA) -------------------------
xPrice = close
xvnoise = math.abs(xPrice - xPrice[1])
Length = kamaLength
nfastend = 0.666
nslowend = 0.0645
nsignal = math.abs(xPrice - xPrice[Length])
float nnoise = 0.0
for i = 0 to Length - 1
nnoise := nnoise + xvnoise[i]
nefratio = nnoise != 0.0 ? nsignal / nnoise : 0.0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
var float nAMA = na
nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
plot(nAMA, color=color.blue, linewidth=2, title="Kaufman KAMA")
//------------------------- Supertrend Calculation -------------------------
[stValue, dirValue] = ta.supertrend(factor, atrPeriod)
upTrend = dirValue < 0
downTrend = dirValue >= 0
plot(dirValue < 0 ? stValue : na, "Up Trend", color=color.green, style=plot.style_linebr)
plot(dirValue >= 0 ? stValue : na, "Down Trend", color=color.red, style=plot.style_linebr)
//------------------------- Strategy Logic -------------------------
// Entry condition: Supertrend is in uptrend AND price is above KAMA
canLong = inDateRange and upTrend and close > nAMA
// Exit condition (Take Profit): Supertrend switches to downtrend AND price is below KAMA
stopLoss = inDateRange and downTrend and close < nAMA
if canLong
strategy.entry("Long", strategy.long)
label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.normal)
if stopLoss
strategy.close("Long", comment="Stop Loss")
label.new(bar_index, high, "STOP LOSS", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.normal)
//------------------------- Alerts -------------------------
alertcondition(canLong, title="Long Entry", message="Supertrend + KAMA Long Signal")
alertcondition(stopLoss, title="Stop Loss", message="Supertrend switched to Downtrend and Price below KAMA")