
Strategi ini, yang diberi nama strategi pelacakan tren yang didasarkan pada indikator ADX dan MACD, menggunakan indikator tren rata-rata ((ADX) untuk menentukan arah dan kekuatan tren, dan digabungkan dengan sinyal multihead dari indikator agregat rata-rata bergerak ((MACD) untuk melakukan perdagangan pelacakan tren. Strategi ini akan membangun posisi multihead atau kosong ketika ADX menunjukkan adanya tren yang kuat dan MACD mengirimkan sinyal perdagangan.
Strategi ini menilai arah dan kekuatan tren pasar dengan menghitung ADX dan + DI, - DI kurva. Ketika + DI kurva melewati - DI kurva adalah pasar multihead, dan ketika - DI kurva melewati + DI kurva adalah pasar kosong. Tidak cukup dengan itu, ketika nilai ADX lebih besar dari 20, menunjukkan tren cukup kuat, yang kemudian digabungkan dengan MACD indikator diferensial ((macdline) dan nilai sinyal ((signalline) sinyal mati garpu emas, membeli dan menjual barang-barang tersebut, untuk melakukan perdagangan yang mengikuti tren.
Secara khusus, logika sinyal perdagangan strategi adalah:
Sinyal multihead: ketika +DI> -DI dan MACD garis diferensial dari bawah ke atas melintasi garis sinyal Sinyal kosong: ketika -DI> +DI dan garis diferensial MACD melintasi garis sinyal dari atas ke bawah
Menurut logika ini, strategi ini dapat menangkap waktu masuk yang lebih baik dalam tren yang kuat.
Keuntungan terbesar dari strategi ini adalah bahwa ia mempertimbangkan kedua faktor ini, yaitu penilaian tren dan penentuan waktu masuk, sehingga memungkinkan pedagang untuk menemukan titik masuk yang lebih baik ketika ada kecenderungan yang kuat di pasar, yang sangat meningkatkan stabilitas dan profitabilitas sistem.
Selain itu, strategi ini juga memperkenalkan logika stop loss. Strategi ini akan secara aktif menghentikan kerugian ketika kerugian posisi melebihi harga stop loss yang ditentukan pengguna, dan secara efektif mengontrol kerugian dari perdagangan individu. Ini juga merupakan fitur utama dari strategi ini.
Meskipun ada beberapa keuntungan dari strategi ini, ada beberapa risiko yang perlu diperhatikan:
sinyal perdagangan yang terdiri dari ADX dan MACD, yang dalam kondisi pasar tertentu mungkin tidak valid atau menghasilkan sinyal yang salah, sehingga menyebabkan kerugian yang tidak perlu;
Harga Stop Loss yang ditentukan oleh pengguna dapat ditembus, menyebabkan kerugian yang lebih besar dari yang diharapkan;
Dalam pasar reversal, strategi dapat menghasilkan terlalu banyak transaksi yang tidak valid dan mengorbankan biaya transaksi.
Untuk mengurangi risiko ini, disarankan untuk mengoptimalkan pengaturan parameter ADX dan MACD, dan menerapkan strategi pengelolaan dana yang ketat, sambil menyesuaikan logika stop loss untuk menyesuaikan dengan situasi pasar yang berbeda.
Strategi ini memiliki beberapa ruang untuk optimasi:
Lebih banyak indikator dapat diperkenalkan untuk menghasilkan sinyal perdagangan yang lebih kuat, misalnya, dalam kombinasi dengan indikator volatilitas yang membatasi perdagangan;
Parameter ADX dan MACD dapat dioptimalkan secara otomatis melalui metode pembelajaran mesin;
Adaptive Stop Loss Mechanism (ASM) dapat dibuat untuk mengidentifikasi pergerakan harga stop loss yang mengikuti pergerakan pasar.
Dengan cara ini, diharapkan dapat meningkatkan stabilitas dan profitabilitas strategi tersebut.
Secara keseluruhan, strategi pelacakan tren yang didasarkan pada indikator ADX dan MACD, dengan keunggulan untuk menilai arah tren, menemukan waktu masuk yang optimal, dan mengatur logika stop loss, adalah sistem perdagangan yang layak dipertimbangkan. Dengan pengoptimalan parameter dan pengendalian risiko, strategi ini dapat memperoleh laba atas investasi yang baik. Namun, pedagang masih harus waspada terhadap potensi risiko yang ada di dalamnya dan tetap memperhatikan perubahan lingkungan pasar.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("TUE ADX/MACD Confluence V1.0", overlay=true)
showsignals = input(true, title="Show BUY/SELL Signals")
showcandlecolors = input(true, title="Show Candle Colors")
length = input(14, title="ADX Length")
smoothing = input(10, title="ADX Smoothing")
macdsource = input(close, title="MACD Source")
macdfast = input(12, title="MACD Fast Length")
macdslow = input(26, title="MACD Slow Length")
macdsignal = input(9, title="MACD Signal Length")
colorup = input(color.green, title="Up Candle Color")
colordown = input(color.red, title="Down Candle Color")
/////////////////////////////////////////////////////////////////////////////////////////////// ADX AND MACD CALC
[diplus, diminus, adx] = ta.dmi(length, smoothing)
[macdline, signalline, histline] = ta.macd(macdsource, macdfast, macdslow, macdsignal)
//////////////////////////////////////////////////////////////////////////////////////////////TRADE CALC
longcheck = diplus > diminus and macdline > signalline
shortcheck = diminus > diplus and signalline > macdline
int trade = 0
//Open from nothing
if trade == 0 and longcheck
trade := 1
else if trade == 0 and shortcheck
trade := -1
//Reversal
else if trade == 1 and shortcheck
trade := -1
else if trade == -1 and longcheck
trade := 1
//Keep status quo until crossover
else
trade := trade[1]
//////////////////////////////////////////////////////////////////////////////////////////////PLOT
colors = longcheck ? colorup : shortcheck ? colordown : color.white
plotcandle(open, high, low, close, color = showcandlecolors ? colors : na)
plotshape(trade[1] != 1 and trade == 1 and showsignals, style=shape.labelup, text='BUY', textcolor=color.white, color=color.green, size=size.small, location=location.belowbar)
plotshape(trade[1] != -1 and trade == -1 and showsignals, style=shape.labeldown, text='SELL', textcolor=color.white, color=color.red, size=size.small, location=location.abovebar)
///////////////////////////////////////////////////////////////////////////////////////////// ALERTS
// Add Stop Loss
stopLossPrice = input(100, title="Stop Loss Price")
if trade == 1
strategy.entry("Long", strategy.long)
if trade == -1
strategy.entry("Short", strategy.short)
if trade == 1 and close < close[1] - stopLossPrice
strategy.close("LongExit")
if trade == -1 and close > close[1] + stopLossPrice
strategy.close("ShortExit")