ADX Trend Breakout Momentum Strategi Perdagangan

ADX DMI MA ATR
Tarikh penciptaan: 2024-11-28 15:44:59 Akhirnya diubah suai: 2024-11-28 15:44:59
Salin: 0 Bilangan klik: 583
1
fokus pada
1617
Pengikut

ADX Trend Breakout Momentum Strategi Perdagangan

Gambaran keseluruhan

Ini adalah strategi perdagangan kuantitatif yang didasarkan pada indikator trend rata-rata (ADX) dan harga penembusan. Strategi ini terutamanya menilai kekuatan trend pasaran dengan memantau nilai indikator ADX dan menggabungkan isyarat penembusan harga untuk menangkap pergerakan pasaran.

Prinsip Strategi

Logik teras strategi merangkumi elemen utama berikut:

  1. Pemantauan Indeks ADX: Indeks ADX digunakan untuk menilai kekuatan trend pasaran, apabila nilai ADX di bawah 17.5 menunjukkan bahawa pasaran mungkin akan membentuk trend baru.
  2. Penilaian harga penembusan: Strategi akan menjejaki harga penutupan tertinggi dalam 34 kitaran terakhir dan mencetuskan isyarat perdagangan apabila harga semasa menembusi tahap rintangan.
  3. Pengurusan masa dagangan: strategi hanya beroperasi dalam masa dagangan yang ditetapkan ((0730-1430) untuk mengelakkan risiko masa kecairan rendah.
  4. Mekanisme kawalan risiko:
    • Tetapkan stop loss dolar tetap untuk mengehadkan kerugian transaksi tunggal
    • Had maksimum 3 urus niaga setiap masa
    • Semua pegangan yang dihapuskan secara automatik pada akhir tempoh dagangan

Kelebihan Strategik

  1. Keupayaan menangkap trend: Menggabungkan indikator ADX dan harga yang pecah, dapat mengenal pasti tahap awal trend pasaran dengan berkesan.
  2. Pengurusan risiko yang baik: merangkumi langkah-langkah kawalan risiko bertingkat seperti penutupan tetap, had jumlah dagangan dan mekanisme penutupan automatik.
  3. Tahap automasi yang tinggi: logik strategi yang jelas, perdagangan automatik sepenuhnya, tanpa campur tangan manusia.
  4. Ketabahan yang tinggi: parameter boleh disesuaikan mengikut keadaan pasaran yang berbeza, seperti jumlah stop loss, kitaran pengembalian dan sebagainya.

Risiko Strategik

  1. Risiko penembusan palsu: Dalam pasaran yang bergolak, penembusan palsu boleh menyebabkan kerugian berterusan.
  2. Kebergantungan parameter: Kesan strategi sangat bergantung kepada tetapan ADX dan kitaran pengulangan.
  3. Sekatan masa: hanya berdagang pada masa tertentu dan mungkin terlepas peluang pada masa lain.
  4. Tetapan Hentikan Kerosakan: Hentikan dolar tetap mungkin tidak fleksibel dalam persekitaran kadar turun naik yang berbeza.

Arah pengoptimuman strategi

  1. Hentian dinamik: disyorkan untuk menukar Hentian Dolar tetap kepada Hentian dinamik berasaskan ATR untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  2. Penapisan persekitaran pasaran: Tambah penapis kadar turun naik, sesuaikan atau hentikan dagangan dalam persekitaran turun naik yang tinggi.
  3. Pengoptimuman kemasukan: boleh dipertimbangkan untuk meningkatkan pengesahan jumlah transaksi, meningkatkan kebolehpercayaan isyarat penembusan.
  4. Penyesuaian parameter dinamik: mekanisme penyesuaian penyesuaian untuk mencapai ADX threshold dan kitaran mundur.

ringkaskan

Ini adalah strategi pengesanan trend yang tersusun dengan jelas dan logik. Dengan menggabungkan indikator ADX dengan harga yang terobosan, peluang trend pasaran ditangkap dalam rangka pengurusan risiko yang berkesan. Walaupun terdapat beberapa ruang untuk pengoptimuman, kerangka asas strategi ini kuat dan sesuai sebagai komponen asas sistem perdagangan kuantitatif.

Kod sumber strategi
/*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")