Strategi ini dinamakan
ADX bermaksud Indeks Arah Purata, yang mencerminkan kekuatan trend. Semakin tinggi nilai ADX, semakin kuat trend. ADX di atas 25 menunjukkan trend yang signifikan ada.
DMI merangkumi garis DI + dan DI-. DI + di atas DI- menunjukkan trend menaik, sementara DI- di atas DI + menandakan trend menurun.
Logik perdagangan adalah:
Apabila ADX melebihi 45, trend dianggap sangat curam.
Jika DI+ di bawah DI- maka, ia menandakan keadaan oversold dan peluang pembalikan trend, pergi lama.
Sebaliknya, jika DI- adalah di bawah DI+, ia menunjukkan keadaan overbought dan peluang pembalikan untuk pergi pendek.
Ambil keuntungan tepat pada masanya selepas pembalikan.
Kelebihan adalah menggunakan ADX untuk menentukan titik pembalikan trend yang kuat. Nilai ADX yang tinggi menapis isyarat palsu dari pasaran yang berbeza dengan berkesan. Tetapi parameter ADX memerlukan pengoptimuman, dan stop loss juga penting.
Kesimpulannya, ADX mahir mengukur masa pembalikan trend yang kuat. Tetapi peniaga masih perlu menonton lebih banyak faktor, menggunakan ADX sebagai satu petunjuk tambahan.
/*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())