Pemecahan Trend Strategi Dagangan Penapis ADX


Tarikh penciptaan: 2024-01-04 17:12:30 Akhirnya diubah suai: 2024-01-04 17:12:30
Salin: 0 Bilangan klik: 582
1
fokus pada
1234
Pengikut

Pemecahan Trend Strategi Dagangan Penapis ADX

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan garis pendek yang menggunakan indikator ADX untuk menyaring isyarat penembusan. Apabila harga menembusi Bollinger Bollinger dan ADX turun, tutup; apabila harga menembusi Bollinger Bollinger dan ADX naik, lakukan lebih banyak.

Prinsip Strategi

Strategi ini menggunakan Bollinger Bollinger Bands sebagai isyarat pecah utama. Bollinger Bands ke bawah mewakili dua kali ganda perbezaan piawai harga, dan harga memecahkan Bollinger Bands biasanya mewakili harga memasuki tahap trend yang kuat. Selain itu, untuk mengelakkan pecah palsu, strategi ini menambah ADX sebagai syarat penapis.

Khususnya, strategi ini menggunakan harga penutupan dengan panjang 33 kitaran untuk mengira Brin Belt. Garis lintasan tengah Brin Belt adalah purata bergerak sederhana 33 kitaran harga penutupan, dengan dua perbezaan piawai di atas dan di bawah lintasan tengah.

Analisis kelebihan

Ini adalah strategi terobosan yang menggabungkan isyarat penapisan trend dan frekuensi dengan beberapa kelebihan:

  1. Menggunakan Brinband untuk menilai trend breakout point, lebih sesuai dengan kebiasaan kebanyakan peniaga.
  2. Menambah penapis syarat ADX dapat mengurangkan kerugian akibat penembusan palsu semasa pergerakan tren.
  3. Strategi yang mudah difahami dan dioptimumkan.
  4. Penangguhan kerugian yang ditetapkan secara automatik, tanpa campur tangan manusia, sesuai untuk perdagangan algoritma.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Tetapan parameter Brinband yang tidak betul boleh menyebabkan isyarat terlalu kerap dan meningkatkan kos urus niaga.
  2. ADX yang tidak betul juga boleh menapis beberapa isyarat yang berkesan.
  3. Jarak hentian mungkin terlalu besar dan kerugian tunggal berkembang.

Untuk mengurangkan risiko ini, kita boleh menyesuaikan parameter pita Brin, mengurangkan ruang lingkup pita Brin; menyesuaikan parameter kitaran ADX, mengelakkan isyarat yang berlebihan; mengurangkan jarak stop loss dengan sewajarnya, mengawal kerugian tunggal. Sudah tentu, semua pengoptimuman ini perlu disahkan melalui pengujian ulang, untuk mengelakkan overfit.

Arah pengoptimuman

Strategi ini masih boleh dioptimumkan lagi:

  1. Ia boleh menguji data dari pasaran yang berbeza untuk mencari kombinasi parameter yang optimum.
  2. Anda boleh menggabungkannya dengan indikator lain untuk menapis lebih lanjut, seperti jumlah dagangan, purata bergerak, dan sebagainya.
  3. Kaedah pembelajaran mesin boleh digunakan untuk mengoptimumkan parameter secara automatik.
  4. Penangguhan dinamik dan penghentian boleh dipertimbangkan.

ringkaskan

Strategi ini secara keseluruhannya adalah strategi penapisan terobosan yang mudah dan praktikal. Dengan menilai trend melalui jalur Brin, isyarat penapisan ADX dapat mengelakkan kebisingan pasaran yang bergolak dan menangkap peluang trend.

Kod 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)