
Strategi ini adalah sistem perdagangan mengikuti tren yang menggabungkan indikator Supertrend dengan Kaufman Adaptive Moving Average (KAMA). Strategi ini secara dinamis mengidentifikasi perubahan tren pasar, mencari peluang jangka panjang dalam tren naik, dan menggunakan mekanisme stop-loss yang fleksibel untuk mengendalikan risiko. Ide inti dari strategi ini adalah menggunakan kemampuan penilaian arah tren dari indikator Supertrend, dikombinasikan dengan karakteristik adaptif indikator KAMA terhadap fluktuasi pasar, untuk membangun posisi panjang dalam tren naik pasar.
Strategi ini menggunakan sistem konfirmasi indikator teknis ganda. Pertama, indikator Supertrend menghitung arah tren melalui ATR dan koefisien khusus. Saat garis indikator berada di bawah harga, hal ini mengindikasikan tren naik. Kedua, indikator KAMA menyesuaikan sensitivitas rata-rata pergerakan melalui mekanisme adaptif, yang dapat beradaptasi lebih baik terhadap lingkungan pasar yang berbeda. Sinyal masuk harus memenuhi dua kondisi pada saat yang sama: Supertrend menunjukkan tren naik dan harga berada di atas garis KAMA. Demikian pula, sinyal keluar juga memerlukan konfirmasi ganda: Supertrend berubah menjadi tren turun dan harga turun di bawah garis KAMA. Mekanisme konfirmasi ganda ini secara efektif mengurangi dampak sinyal palsu.
Strategi ini membangun sistem perdagangan mengikuti tren yang kuat dengan menggabungkan dua indikator teknis, Supertrend dan KAMA. Keuntungan utama dari strategi ini adalah kemampuan beradaptasi dan pengendalian risiko, dan keandalan sinyal perdagangan ditingkatkan melalui mekanisme konfirmasi ganda. Meskipun mungkin ada beberapa tantangan di pasar yang fluktuatif, kinerja strategi secara keseluruhan dapat ditingkatkan lebih lanjut melalui pengaturan parameter yang wajar dan penerapan arah pengoptimalan. Strategi ini sangat cocok untuk perdagangan tren jangka menengah dan panjang dan berkinerja lebih baik di lingkungan pasar dengan tren yang jelas.
/*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")