
Inti dari strategi ini didasarkan pada indikator yang dikembangkan oleh Andrew Abraham dalam artikel yang diterbitkan dalam jurnal Trend Trading Journal, TASC, pada bulan September 1998. Indikator ini menggunakan rentang rata-rata fluktuasi nyata dan saluran harga untuk menentukan arah tren pasar, dan digabungkan dengan indikator MACD untuk memfilter sinyal perdagangan yang bertujuan untuk menangkap tren garis tengah.
Strategi ini pertama-tama menghitung rata-rata bergerak tertimbang dari rentang pergerakan rata-rata 21 hari (ATR) sebagai rentang pergerakan acuan. Kemudian menghitung harga tertinggi dan terendah selama 21 hari terakhir dan membandingkan harga penutupan K-line saat ini dengan batas atas dan bawah dari rentang pergerakan acuan untuk melihat apakah harga telah menembus saluran dan dengan demikian menentukan arah tren.
Secara khusus, batas atas saluran didefinisikan sebagai harga tertinggi selama 21 hari terakhir dikurangi 3 kali ATR acuan, dan batas bawah saluran adalah harga minimum selama 21 hari terakhir ditambah 3 kali ATR acuan. Ketika harga penutupan lebih tinggi dari batas atas saluran, penilaian sebagai tren bullish; Ketika harga penutupan lebih rendah dari batas bawah saluran, penilaian sebagai tren bullish.
Dalam menentukan arah tren, strategi ini juga memperkenalkan penyaringan pada indikator MACD. Untuk menghindari kehilangan titik beli, sinyal beli hanya dihasilkan ketika garis pilar MACD benar.
Strategi ini dikombinasikan dengan penilaian tren dan penyaringan indikator, yang dapat secara efektif menentukan arah tren garis panjang di pasar, dan menghindari tertipu oleh fluktuasi pasar jangka pendek. Keuntungan spesifiknya adalah sebagai berikut:
Strategi ini juga memiliki beberapa risiko, terutama dalam hal berikut:
Dalam hal ini, risiko dapat dikurangi dengan pengaturan parameter yang dioptimalkan, pengukuran posisi yang ketat, dan penghentian kerugian yang tepat waktu.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Kombinasi parameter Length atau Multiplier yang berbeda dapat diuji untuk menemukan kombinasi parameter yang menghasilkan hasil terbaik berdasarkan data pengukuran ulang.
Anda dapat menguji RSI, KDJ, dan indikator lainnya untuk memfilter sinyal dan melihat apakah Anda dapat meningkatkan tingkat pengembalian.
Parameter dapat disesuaikan secara dinamis sesuai dengan kondisi pasar, misalnya dengan melebarkan ruang saluran yang tepat saat tren jelas, dan memperketat ruang saluran yang tepat saat gempa.
Strategi ini secara keseluruhan merupakan strategi pelacakan tren yang relatif stabil. Ini menggabungkan metode saluran harga untuk menentukan arah tren dan sinyal penyaringan indikator MACD, yang dapat secara efektif menilai tren garis panjang di pasar, menghasilkan keuntungan yang stabil. Dengan pengoptimalan parameter, manajemen risiko, dan koreksi yang tepat, strategi ini dapat menjadi bagian penting dari sistem perdagangan kuantitatif.
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melihtuna
//@version=1
strategy("Trend Trader Strategy with MACD", overlay=true)
// === Trend Trader Strategy ===
Length = input(21),
Multiplier = input(3, minval=1)
MacdControl = input(true, title="Control 'MACD Histogram is positive?' when Buy condition")
avgTR = wma(atr(1), Length)
highestC = highest(Length)
lowestC = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = iff(close > hiLimit and close > loLimit, hiLimit,
iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos = iff(close > ret, 1,
iff(close < ret, -1, nz(pos[1], 0)))
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(ret, color= blue , title="Trend Trader Strategy with MACD")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true
// === MACD ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdCond= MacdControl ? histLine[0] > 0 ? true : false : true
strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond)
strategy.entry("SELL", strategy.short, when = window() and pos == -1)