Sumber dimuat naik... memuat...

ADX Trend Breakout Momentum Strategi Dagangan

Penulis:ChaoZhang, Tarikh: 2024-11-28 15:44:59
Tag:ADXDMIMAATR

img

Ringkasan

Ini adalah strategi dagangan kuantitatif berdasarkan Indeks Arah Purata (ADX) dan penembusan harga. Strategi ini terutamanya memantau nilai penunjuk ADX untuk menilai kekuatan trend pasaran dan menggabungkan isyarat penembusan harga untuk menangkap momentum pasaran. Strategi ini beroperasi dalam sesi dagangan tertentu dan melaksanakan pengurusan risiko melalui stop-loss dan had perdagangan harian.

Prinsip Strategi

Logik teras merangkumi elemen utama berikut:

  1. Pemantauan ADX: Menggunakan penunjuk ADX untuk menilai kekuatan trend, dengan nilai ADX di bawah 17.5 menunjukkan pembentukan trend baru yang berpotensi.
  2. Pengesanan Penembusan Harga: Mengesan harga penutupan tertinggi selama 34 tempoh yang lalu, mencetuskan isyarat perdagangan apabila harga semasa melanggar rintangan ini.
  3. Pengurusan Sesi: Bekerja hanya semasa jam dagangan yang ditetapkan (0730-1430) untuk mengelakkan tempoh kecairan yang rendah.
  4. Mekanisme Kawalan Risiko:
    • Stop-loss dolar tetap untuk mengehadkan kerugian perdagangan tunggal
    • Had maksimum 3 dagangan setiap sesi
    • Penutupan kedudukan automatik pada akhir sesi

Kelebihan Strategi

  1. Keupayaan Pengambilan Trend: Mengenali tahap-tahap awal trend dengan berkesan melalui indikator ADX dan kombinasi harga.
  2. Pengurusan Risiko Komprehensif: Pelbagai langkah kawalan risiko termasuk stop-loss tetap, had perdagangan, dan mekanisme penutupan automatik.
  3. Automasi Tinggi: Logik strategi yang jelas membolehkan perdagangan automatik sepenuhnya tanpa campur tangan manual.
  4. Kebolehsesuaian yang kuat: Parameter boleh diselaraskan untuk keadaan pasaran yang berbeza.

Risiko Strategi

  1. Risiko pecah palsu: Mungkin mengalami hentian berturut-turut di pasaran yang berbeza.
  2. Kebergantungan Parameter: Keberkesanan strategi sangat bergantung kepada ambang ADX dan tetapan tempoh melihat kembali.
  3. Sekatan Masa: Perdagangan hanya semasa sesi tertentu boleh kehilangan peluang.
  4. Konfigurasi Stop-Loss: Hentian dolar tetap mungkin kurang fleksibiliti dalam persekitaran turun naik yang berbeza.

Arahan pengoptimuman

  1. Stop-Loss Dinamik: Cadangkan pelaksanaan berhenti dinamik berasaskan ATR untuk keadaan turun naik pasaran yang berbeza.
  2. Penapis persekitaran pasaran: Tambah penapis turun naik untuk menyesuaikan atau menghentikan perdagangan dalam persekitaran turun naik yang tinggi.
  3. Pengoptimuman kemasukan: Pertimbangkan menambah pengesahan jumlah untuk meningkatkan kebolehpercayaan isyarat pecah.
  4. Penyesuaian Parameter Dinamik: Melaksanakan mekanisme penyesuaian adaptif untuk ambang ADX dan tempoh melihat kembali.

Ringkasan

Ini adalah strategi trend-mengikuti yang terstruktur dengan logik yang jelas. Ia menangkap trend pasaran dengan menggabungkan penunjuk ADX dengan penembusan harga di bawah rangka kerja pengurusan risiko yang berkesan. Walaupun terdapat ruang untuk pengoptimuman, asas strategi ini kukuh dan sesuai sebagai komponen asas sistem perdagangan kuantitatif. Pedagang dinasihatkan untuk menjalankan pengujian balik dan pengoptimuman parameter yang menyeluruh sebelum perdagangan langsung, dan membuat peningkatan khusus berdasarkan keadaan pasaran.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HuntGatherTrade
// ========================
// NQ 30 minute, ES 30 minute

//@version=5
strategy("ADX Breakout", overlay=false, initial_capital=25000, default_qty_value=1)

// ===============================
// Input parameters
// ===============================
stopLoss = input(1000.0, title="Stop Loss ($)", group="Exits")
session = input("0730-1430:1234567", group="Trade Session")
highestLB = input(34, title="Highest lookback window", group="Indicator values")

// ===============================
// Trade Session Handling
// ===============================
t = time(timeframe.period, session)

// Reset numTrades at the start of each session
var int numTrades = 0
is_new_session = ta.change(time("D")) != 0
if is_new_session
    numTrades := 0

// ===============================
// Entry Conditions
// ===============================
[plusDI, minusDI, adxValue] = ta.dmi(50, 14)
entryCondition = (close >= ta.highest(close, highestLB)[1]) and (adxValue < 17.5) and (strategy.position_size == 0) and (numTrades < 3) and not na(t)

// ===============================
// 7. Execute Entry
// ===============================
var float stopPricePlot = na

if entryCondition
    entryPrice = close + syminfo.mintick
    strategy.entry("Long Entry", strategy.long, stop=entryPrice)
    //stopPrice = strategy.position_avg_price - (stopLoss / syminfo.pointvalue)
    //strategy.exit("Stop Loss", "Long Entry", stop=stopPrice)
    numTrades += 1

if (strategy.position_size > 0) and (strategy.position_size[1] == 0)
    stopPoints = stopLoss / syminfo.pointvalue
    stopPrice = strategy.position_avg_price - stopPoints
    stopPrice := math.round(stopPrice / syminfo.mintick) * syminfo.mintick
    strategy.exit("Stop Loss", from_entry="Long Entry", stop=stopPrice)


if ta.change(strategy.opentrades) == 1
    float entryPrice = strategy.opentrades.entry_price(0)
    stopPricePlot := entryPrice - (stopLoss / syminfo.pointvalue)

if ta.change(strategy.closedtrades) == 1
    stopPricePlot   := na

plot(stopPricePlot, "Stop-loss level", color.red, 1, plot.style_linebr)

// ===============================
// Exit at End of Session
// ===============================
if na(t) and strategy.position_size != 0
    strategy.close_all(comment="End of Day Exit")

Berkaitan

Lebih lanjut