
Strategi ini menggabungkan indikator tren DMI ((Indikator Mobilitas Arah) dan ADX ((Indikator Tren Rata-rata) untuk mengidentifikasi tren kuat di pasar dan menangkap peluang perdagangan. Strategi ini menentukan arah tren melalui persilangan garis + DI dan -DI dari DMI, sambil menggunakan indikator ADX untuk mengukur kekuatan tren, dan hanya masuk ke perdagangan ketika tren jelas. Ini adalah sistem perdagangan pelacakan tren yang lengkap, yang mencakup sinyal tempat, fitur manajemen risiko seperti stop loss dan stop loss.
Logika inti dari strategi ini mencakup elemen-elemen kunci berikut:
Tindakan penanggulangan:
Strategi DMI+ADX crossover adalah strategi pelacakan tren klasik yang mencari peluang perdagangan di pasar tren yang kuat dengan menggabungkan indikator arah dan kekuatan. Strategi ini memiliki logika yang jelas, kontrol risiko yang baik, kepraktisan yang baik, dan skalabilitas. Dengan pengoptimalan dan perbaikan berkelanjutan, strategi dapat beradaptasi dengan lebih baik dengan berbagai lingkungan pasar, meningkatkan efektivitas perdagangan.
/*backtest
start: 2024-02-19 00:00:00
end: 2024-10-25 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("DMI + ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=250)
// Nastavenie parametrov
adxLength = input.int(14, title="ADX Length")
adxSmoothing = input.int(14, title="ADX Smoothing")
dmiLength = input.int(14, title="DMI Length")
adxThreshold = input.float(25.0, title="ADX Threshold")
stopLossPerc = input.float(1.0, title="Stop Loss (%)")
takeProfitPerc = input.float(2.0, title="Take Profit (%)")
// Výpočet DMI a ADX pomocou ta.dmi
[plusDI, minusDI, adxValue] = ta.dmi(dmiLength, adxSmoothing)
// Nákupné podmienky
longCondition = ta.crossover(plusDI, minusDI) and adxValue > adxThreshold
if (longCondition)
strategy.entry("Long", strategy.long)
// Predajné podmienky
shortCondition = ta.crossunder(plusDI, minusDI) and adxValue > adxThreshold
if (shortCondition)
strategy.entry("Short", strategy.short)
// Definovanie Stop a Limit pre Long pozíciu
longStop = strategy.position_avg_price * (1 - stopLossPerc / 100)
longLimit = strategy.position_avg_price * (1 + takeProfitPerc / 100)
if (strategy.position_size > 0)
strategy.exit("Long Exit", "Long", stop=longStop, limit=longLimit)
// Definovanie Stop a Limit pre Short pozíciu
shortStop = strategy.position_avg_price * (1 + stopLossPerc / 100)
shortLimit = strategy.position_avg_price * (1 - takeProfitPerc / 100)
if (strategy.position_size < 0)
strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortLimit)
// Vizualizácia indikátorov na grafe
plot(adxValue, title="ADX", color=color.blue)
hline(adxThreshold, "ADX Threshold", color=color.gray)
plot(plusDI, title="+DI", color=color.green)
plot(minusDI, title="-DI", color=color.red)