
Strategi ini terutama menggunakan indikator ADX untuk menentukan tren dan membangun moving average yang menggabungkan MA dan EMA dengan dua pengaturan parameter yang berbeda. Strategi pelacakan tren hanya melakukan lebih banyak.
Strategi ini terutama menggunakan ADX untuk menilai tren dan kekuatan pasar. ADX menilai keberadaan dan kekuatan tren dengan menghitung tingkat dan arah perubahan harga. Ketika ADX naik, itu menunjukkan bahwa tren sedang naik; Ketika ADX turun, itu menunjukkan bahwa tren sedang melemah.
Strategi ini menggunakan MA dan EMA bergerak rata-rata dengan dua pengaturan parameter yang berbeda untuk penilaian tambahan. Mereka dapat secara efektif menghapus keacakan harga dan menunjukkan arah tren utama harga.
Strategi ini menggabungkan karakteristik ADX dan Moving Average untuk membangun sinyal perdagangan yang menentukan arah tren: ADX naik dan melakukan over-open saat harga menembus garis MA dan EMA ke atas, ADX turun atau harga jatuh saat MA / EMA berada di posisi terendah, dan strategi ini hanya melakukan over-trend.
Strategi ini memiliki beberapa keuntungan utama:
Strategi ini juga memiliki beberapa risiko:
Solusi yang sesuai:
Strategi ini juga dapat dioptimalkan dalam beberapa hal:
Strategi ini secara keseluruhan adalah strategi pelacakan multi-trend yang menggunakan ADX untuk menilai kekuatan tren dan membantu membangun sinyal filter dengan dua rata-rata bergerak. Ini secara efektif mengendalikan terjadinya perdagangan yang tidak efektif, mencapai efek dari pelacakan tren, dan merupakan strategi multi-trend yang lebih stabil. Dengan beberapa penyesuaian optimasi, stabilitas dan tingkat pengembalian strategi dapat ditingkatkan lebih lanjut.
/*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")