Strategi ini adalah sistem perdagangan trend-mengikuti yang menggabungkan penunjuk Supertrend dengan Kaufman Adaptive Moving Average (KAMA). Ia secara dinamik mengenal pasti perubahan trend pasaran, mencari peluang panjang dalam trend menaik, dan menggunakan mekanisme stop-loss yang fleksibel untuk kawalan risiko. Konsep teras bergantung pada keupayaan penentuan arah trend penunjuk Supertrend, digabungkan dengan ciri penyesuaian turun naik pasaran KAMA, untuk menubuhkan kedudukan panjang dalam trend pasaran menaik.
Strategi ini menggunakan sistem pengesahan penunjuk teknikal berganda. Pertama, penunjuk Supertrend mengira arah trend menggunakan ATR dan pekali tersuai, menunjukkan trend menaik apabila garisan penunjuk berada di bawah harga. Kedua, penunjuk KAMA menyesuaikan kepekaan purata bergerak melalui mekanisme adaptif, lebih baik menampung keadaan pasaran yang berbeza. Isyarat kemasukan memerlukan dua keadaan serentak: Supertrend yang menunjukkan trend menaik dan harga di atas garisan KAMA. Begitu juga, isyarat keluar memerlukan pengesahan berganda: Supertrend beralih ke trend menurun dan harga jatuh di bawah garisan KAMA. Mekanisme pengesahan berganda ini secara berkesan mengurangkan isyarat palsu.
Strategi ini membina sistem perdagangan trend yang kukuh dengan menggabungkan penunjuk teknikal Supertrend dan KAMA. Kelebihannya utama terletak pada keupayaan penyesuaian dan kawalan risiko, dengan kebolehpercayaan isyarat perdagangan yang dipertingkatkan melalui pengesahan berganda. Walaupun menghadapi cabaran di pasaran yang bergolak, prestasi keseluruhan strategi dapat ditingkatkan lagi melalui tetapan parameter yang sesuai dan pelaksanaan pengoptimuman. Ia sangat sesuai untuk perdagangan trend jangka menengah hingga panjang dan berprestasi baik di pasaran dengan trend 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")