Strategi Perdagangan Filter ADX Penembusan Tren


Tanggal Pembuatan: 2024-01-04 17:12:30 Akhirnya memodifikasi: 2024-01-04 17:12:30
menyalin: 0 Jumlah klik: 924
1
fokus pada
1621
Pengikut

Strategi Perdagangan Filter ADX Penembusan Tren

Ringkasan

Strategi ini adalah strategi perdagangan short line yang menggunakan indikator ADX untuk menyaring sinyal-sinyal yang akan menerobos. Ketika harga menerobos Bollinger Bollinger Bandwagon dan ADX sedang turun, lakukan shorting; ketika harga menerobos Bollinger Bollinger Bandwagon dan ADX sedang naik, lakukan over. Strategi ini mengatur stop loss dan stop loss sekaligus, perdagangan otomatis.

Prinsip Strategi

Strategi ini menggunakan Bollinger Bollinger Bands sebagai sinyal utama. Bollinger Bands downtrend mewakili dua kali standar perbedaan harga, harga Bollinger Bands breakout biasanya mewakili harga memasuki fase tren yang kuat. Selain itu, untuk menghindari false breakout, strategi ini menambahkan indikator ADX sebagai kondisi penyaringan.

Secara khusus, strategi ini menggunakan panjang 33 siklus untuk menghitung harga penutupan di Brin Belt. Brin Belt adalah 33 siklus SMP dari harga penutupan, dengan dua standar diferensial di atas dan di bawah di tengah. Parameter indikator diatur untuk menjadi kosong ketika harga penutupan turun dan 8 siklus ADX lebih kecil dari 15 siklus ADX; kosong ketika harga penutupan turun dan 8 siklus ADX lebih besar dari 15 siklus ADX.

Analisis Keunggulan

Ini adalah strategi terobosan yang menggabungkan sinyal penyaringan indikator tren dan frekuensi dengan beberapa keuntungan:

  1. Menggunakan pita Brin untuk menilai titik terobosan tren, lebih sesuai dengan kebiasaan sebagian besar pedagang.
  2. Menambahkan filter kondisi ADX dapat mengurangi kerugian yang ditimbulkan oleh false breakout selama goyangan tren.
  3. Operasi strategi sederhana, mudah dipahami dan dioptimalkan.
  4. Stop loss yang diatur secara otomatis, tanpa intervensi manusia, cocok untuk perdagangan algoritmik.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Setting parameter Brinband yang tidak tepat dapat menyebabkan sinyal terlalu sering dan meningkatkan biaya transaksi.
  2. Pengaturan ADX yang tidak tepat juga dapat memfilter beberapa sinyal yang efektif.
  3. Stop loss jarak mungkin terlalu besar, kerugian tunggal berkembang.

Untuk mengurangi risiko ini, kita dapat menyesuaikan parameter Brin band untuk memperkecil jangkauan Brin band; menyesuaikan parameter siklus ADX untuk menghindari sinyal over-filtering; memperkecil jarak stop loss dengan tepat untuk mengendalikan kerugian tunggal. Tentu saja, semua optimasi ini harus diuji ulang untuk menghindari over-fit.

Arah optimasi

Strategi ini masih bisa dioptimalkan lebih jauh:

  1. Anda dapat menguji data dari berbagai pasar untuk mencari kombinasi parameter yang optimal.
  2. Anda dapat menggunakan indikator lain untuk memfilter sinyal lebih lanjut, seperti volume transaksi, Moving Average, dan sebagainya.
  3. Metode pembelajaran mesin dapat digunakan untuk mengoptimalkan parameter secara otomatis.
  4. Stop loss dan stall dapat dipertimbangkan.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi penyaringan terobosan yang sederhana dan praktis. Dengan menilai tren melalui Brin Belt, sinyal penyaringan ADX, dapat menghindari kebisingan pasar yang bergoyang hingga batas tertentu, menangkap peluang tren. Ada banyak ruang untuk pengoptimalan yang layak untuk diuji dan ditingkatkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hizbullah XAUUSD Sniper", overlay=true)

Price = close

Length = input(33)
Mult = input(2)
Basis = sma(Price, Length)
StdDev = Mult * stdev(Price, Length)
Upper = Basis + StdDev
Lower = Basis - StdDev

ADX_Length = input(4)
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
SmoothedTrueRange = sma(TrueRange, ADX_Length)
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedDirectionalMovementPlus = sma(DirectionalMovementPlus, ADX_Length)
SmoothedDirectionalMovementMinus = sma(DirectionalMovementMinus, ADX_Length)
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus)*100
SmoothedADX1 = ema(DX, input(8))
SmoothedADX2 = ema(DX, input(15))

Condition1 = crossunder(Price, Upper) and SmoothedADX1 < SmoothedADX2

Take_Profit = input(800)
Stop_Loss = input(400)

strategy.entry("ShortEntry", true, when = Condition1)
strategy.exit("ShortExit", "ShortEntry", profit = Take_Profit, loss = Stop_Loss)