Strategi ini terutamanya menggunakan penunjuk ADX untuk menilai trend dan menggabungkan purata bergerak MA dan EMA dengan tetapan parameter yang berbeza untuk membina strategi penjejakan trend yang panjang sahaja. Apabila ADX naik, ia menunjukkan arah panjang. Apabila harga memecahkan MA dan EMA ke atas, buka kedudukan panjang. Apabila ADX jatuh atau harga jatuh di bawah MA atau EMA, tutup kedudukan.
Strategi ini terutamanya menggunakan ADX untuk menilai trend dan kekuatan pasaran. ADX mengira tahap dan arah perubahan harga untuk menentukan kewujudan dan kekuatan trend. Apabila ADX naik, ini bermakna ia sedang dalam trend menaik. Apabila ADX jatuh, ini bermakna trend itu melemah.
Strategi ini juga menggunakan dua purata bergerak, MA dan EMA, dengan tetapan parameter yang berbeza sebagai penghakiman tambahan. Mereka dapat menapis secara berkesan keacakan harga dan menunjukkan arah trend utama harga. Apabila harga naik dan memecahkan MA dan EMA, ia adalah isyarat panjang. Apabila harga jatuh dan memecahkan, ia adalah isyarat penutupan.
Menggabungkan ciri-ciri ADX dan purata bergerak, strategi ini membina isyarat perdagangan untuk menilai arah trend: pergi panjang apabila ADX meningkat dan harga memecahkan MA dan EMA menaik, dan menutup kedudukan apabila ADX jatuh atau harga memecahkan MA / EMA. Ia melaksanakan strategi pengesanan trend panjang sahaja.
Kelebihan utama strategi ini ialah:
Terdapat juga beberapa risiko:
Penyelesaian:
Strategi ini boleh dioptimumkan dari aspek berikut:
Secara umum, ini adalah strategi pengesanan trend yang menggunakan ADX untuk menilai kekuatan trend dan dua purata bergerak sebagai penapis tambahan. Ia berkesan mengawal kejadian perdagangan yang tidak sah dan mencapai kesan mengesan trend. Ini adalah strategi yang agak stabil. Dengan beberapa pengoptimuman, kestabilan dan hasil strategi dapat ditingkatkan lagi.
/*backtest start: 2023-01-22 00:00:00 end: 2024-01-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("ADX, MA, and EMA Long Strategy - ADX Trending Up", shorttitle="ADX_MA_EMA_Long_UpTrend", overlay=true) adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") maPeriod = input(50, title="MA Period") emaPeriod = input(50, title="EMA Period") dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) maValue = sma(close, maPeriod) emaValue = ema(close, emaPeriod) longCondition = sig > sig[1] and close > maValue and close > emaValue if (longCondition) strategy.entry("Long", strategy.long) exitCondition = sig < sig[1] or close < maValue or close < emaValue if (exitCondition) strategy.close("Long") plot(maValue, color=color.blue, title="MA") plot(emaValue, color=color.orange, title="EMA") plot(sig, color=color.red, title="ADX")