Strategi pembalikan tren berdasarkan indikator ADX


Tanggal Pembuatan: 2023-09-13 17:02:31 Akhirnya memodifikasi: 2023-09-13 17:02:31
menyalin: 3 Jumlah klik: 915
1
fokus pada
1617
Pengikut

Strategi ini disebut strategi pembalikan tren berdasarkan indikator ADX. Strategi ini menggunakan indikator ADX untuk menilai kekuatan tren dan menangkap peluang pembalikan saat overbought dan oversold.

ADX menunjukkan indeks tren rata-rata yang mencerminkan kekuatan tren. Nilai ADX yang lebih tinggi menunjukkan tren yang lebih kuat. Ketika ADX lebih besar dari 25, dianggap ada tren yang lebih jelas.

DMI terdiri dari dua baris yaitu DI+ dan DI-。 DI+ menunjukkan tren naik saat naik, DI- menunjukkan tren turun saat naik。

Logika perdagangan dari strategi ini:

  1. Ketika ADX di atas 45, dianggap sebagai tren yang sangat kuat.

  2. Pada saat ini jika DI+ lebih rendah dari DI-, maka dianggap sebagai oversold, dan ada peluang untuk membalikkan tren dan melakukan lebih banyak.

  3. Sebaliknya, jika DI- lebih rendah dari DI +, itu dianggap sebagai overbought, dan ada kesempatan untuk membalikkan, kosong.

  4. Setelah berbalik, berhentilah tepat waktu.

Keuntungan dari strategi ini adalah menggunakan ADX untuk menentukan titik balik tren yang kuat, nilai ADX yang tinggi dapat secara efektif memfilter sinyal palsu dari pasar yang bergoyang. Namun, parameter ADX perlu dioptimalkan, dan strategi stop loss juga penting.

Secara keseluruhan, indikator ADX lebih baik dalam menentukan waktu untuk membalikkan tren yang kuat. Namun, pedagang masih perlu memperhatikan lebih banyak faktor, ADX hanya sebagai salah satu indikator penilaian tambahan.

Kode Sumber Strategi
/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='DMI swings',title='DMI swings', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true        // create function "within window of time"

[pos_dm, neg_dm, avg_dm] = dmi(14, 14)

//Entry 
strategy.entry(id="long", long = true, when = avg_dm > 45 and pos_dm < neg_dm and window())

//Exit
strategy.close("long", when = avg_dm > 45 and pos_dm > neg_dm and window())