Strategi Pembalikan Trend Pengesanan Dinamik

Penulis:ChaoZhang, Tarikh: 2024-01-16 15:35:18
Tag:

img

Ringkasan

Strategi Pembalikan Pengesanan Trend Dinamik adalah strategi perdagangan kuantitatif jangka pendek berdasarkan penunjuk JD Sequential. Dengan mengesan harga tertinggi dan terendah dalam masa nyata, strategi ini menentukan arah trend semasa dan momentum untuk menangkap titik pembalikan pasaran dengan cekap untuk masa kemasukan dan keluar. Berbanding dengan strategi JD Sequential tradisional, strategi ini membuat penambahbaikan berikut:

  1. Gunakan harga tinggi dan rendah dan bukannya harga dekat untuk menentukan trend, yang boleh menangkap perubahan harga lebih cepat.
  2. Bilangan kaunter maksimum adalah 7 bukannya 9, yang membolehkan penjanaan isyarat perdagangan yang lebih cepat.
  3. Tambah pilihan untuk garis sokongan / rintangan dan pembalikan 5 sebagai stop loss.

Strategi ini sesuai untuk bingkai masa jangka pendek seperti carta 5 minit dan 15 minit, yang dapat menangkap turun naik harga jangka pendek dan peluang pembalikan dengan berkesan.

Logika Strategi

Logik teras Strategi Pembalikan Pengesanan Trend Dinamik adalah berdasarkan kepada penunjuk berturut-turut JD. Dengan membandingkan harga tinggi dan rendah tempoh semasa dengan dua tempoh sebelumnya, penunjuk ini menentukan sama ada kenaikan tinggi atau penurunan rendah berturut-turut telah berlaku, dan menghasilkan pengiraan berturut-turut dari 1 hingga 7. Apabila pengiraan terkumpul menjadi 7, isyarat perdagangan dihasilkan.

Khususnya, pembolehubah berikut ditakrifkan dalam strategi:

  • sp_up: benar apabila harga tinggi semasa melebihi harga tinggi 2 tempoh lalu
  • sp_dn: benar apabila harga rendah semasa jatuh di bawah harga rendah 2 tempoh lalu
  • sp_ct: kiraan semasa, peningkatan dengan 1 setiap kali sp_up atau sp_dn adalah benar, dengan maksimum 7
  • sp_com: benar apabila kiraan sama dengan 7
  • sp_usr: harga pertengahan pada kiraan 7 dan sp_up, berfungsi sebagai rintangan menaik
  • sp_dsr: harga pertengahan pada kiraan 7 dan sp_dn, berfungsi sebagai sokongan ke bawah

Logik untuk penjanaan isyarat perdagangan adalah:

  • Isyarat panjang: sp_com adalah benar dan sp_dn adalah benar, menunjukkan penyelesaian kiraan dan aliran menurun
  • Isyarat pendek: sp_com adalah benar dan sp_up adalah benar, menunjukkan penyelesaian kiraan dan aliran menaik

Logik stop loss adalah:

  • Long SL: pengubahsuaian kiraan kepada 5 (sp_up true) atau harga melintasi di atas sp_usr
  • SL pendek: pembalikan kiraan kepada 5 (sp_dn benar) atau harga melintasi di bawah sp_dsr

Dengan membandingkan tinggi / rendah dalam masa nyata untuk menentukan arah trend dan kekuatan, bersama-sama dengan masa masuk berdasarkan kiraan, strategi ini dapat menangkap peluang pembalikan jangka pendek dengan berkesan.

Analisis Kelebihan

Berbanding dengan strategi JD Sequential tradisional, Strategi Pembalikan Pengesanan Trend Dinamik mempunyai kelebihan berikut:

  1. Penggunaan perbandingan tinggi / rendah lebih cepat daripada harga dekat dalam menangkap trend, dan kiraan 7 menghasilkan isyarat lebih cepat daripada kiraan 9.
  2. Mekanisme stop loss yang dipertingkatkan. Penambahan pembalikan 5 dan sokongan / rintangan stop loss membolehkan kawalan risiko yang lebih baik.
  3. Konfigurasi yang fleksibel. Pilihan untuk termasuk stop loss dan memaparkan kiraan separa menambah fleksibiliti.
  4. Sesuai untuk perdagangan jangka pendek. Isyarat frekuensi tinggi digabungkan dengan stop loss yang betul sesuai dengan bingkai masa jangka pendek.

Kelebihan utama strategi ini adalah tindak balasnya yang cepat, yang dapat menangkap turun naik yang besar yang disebabkan oleh peristiwa jangka pendek.

Analisis Risiko

Strategi pembalikan trend dinamik juga membawa beberapa risiko:

  1. Peningkatan kos dagangan daripada perdagangan frekuensi tinggi.
  2. Cenderung kepada isyarat palsu. Membandingkan tinggi dan rendah di pasaran yang berbeza sering boleh mencetuskan perdagangan dan kerugian yang tidak dibenarkan.
  3. Perhentian yang berpotensi agresif. Perhentian keras terdedah kepada lonjakan dan mesti diselaraskan dengan tepat pada masanya.

Untuk mengurangkan risiko di atas, strategi boleh dioptimumkan dalam aspek berikut:

  1. Mengurangkan saiz kedudukan untuk menggunakan modal yang lebih rendah setiap perdagangan.
  2. Hentikan perdagangan semasa pasaran yang bergelora/berpeluh untuk mengelakkan perdagangan yang tidak berkesan.
  3. Menggunakan hentian belakang atau hentian melarikan diri untuk mengurangkan kemungkinan terperangkap.

Arahan pengoptimuman

Terdapat ruang yang cukup untuk Strategi Pembalikan Trend Dynamic Tracking untuk dioptimumkan lebih lanjut, terutamanya dalam arah berikut:

  1. Kombinasi pelbagai jangka masa. Tentukan arah trend utama pada jangka masa yang lebih tinggi untuk mengelakkan perdagangan terhadapnya.

  2. Gabungan dengan penunjuk lain: memasukkan metrik turun naik, data jumlah dan lain-lain untuk meningkatkan kualiti isyarat.

  3. Pembelajaran mesin untuk pengesahan tambahan. Gunakan algoritma AI / ML sebagai penilaian tambahan pada isyarat perdagangan untuk mengurangkan perdagangan yang salah.

  4. Penyesuaian parameter. Mengoptimumkan parameter seperti tempoh kiraan, sesi dagangan, saiz kedudukan dan lain-lain untuk menyesuaikan keadaan pasaran yang berbeza.

  5. Memperluas mekanisme kawalan risiko. Memperkenalkan teknik pengurusan risiko yang lebih canggih seperti hentian adaptif, saiz kedudukan dan lain-lain untuk lebih menyekat risiko.

  6. Penilaian strategi melalui backtesting. Memperluaskan saiz sampel dan jangka masa untuk backtest untuk mengukur ketahanan parameter.

Kesimpulan

Strategi Pembalikan Pengesanan Trend Dinamik menangkap peluang pembalikan jangka pendek melalui perbandingan masa nyata harga tertinggi dan terendah untuk menentukan arah dan kekuatan trend, di samping peraturan 7-count dalam penunjuk berurutan JD untuk masa perdagangan.

Kekuatan utama strategi ini terletak pada tindak balas cepat yang sesuai untuk perdagangan pembalikan jangka pendek. Pada masa yang sama, risiko seperti frekuensi perdagangan yang tinggi dan berhenti agresif wujud. Arahan pengoptimuman masa depan termasuk penyesuaian parameter, peningkatan kawalan risiko, kombinasi pelbagai jangka masa dll. Melalui pengoptimuman dan pengulangan berterusan, strategi ini berpotensi menjadi alat yang kuat untuk menangkap isyarat pembalikan jangka pendek dengan cekap.


/*backtest
start: 2023-12-16 00:00:00
end: 2024-01-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @NeoButane 7 Dec. 2018
// JD Aggressive Sequential Setup
// Not based off official Tom DeMarke documentation. As such, I have named the indicator JD instead oF TD to reflect this, and as a joke.
//
// Difference vs. TD Sequential: faster trade exits and a unique entry. Made for low timeframes.
// - Highs or lows are compared instead of close.
// - Mirrors only the Setup aspect of TD Sequential (1-9, not to 13)
// - Count maxes out at 7 instead of 9. Also part of the joke if I'm going to be honest here

// v1 - Release - Made as a strategy, 7 count
//    . S/R on 7 count
//   .. Entry on 7 count
//  ... Exit on 5 count or S/R cross

//@version=3
title = "JD Aggressive Sequential Setup"
vers  = " 1.0 [NeoButane]"
total = title + vers
strategy(total, total, 1, 0)

xx        = input(true, "Include S/R Crosses Into Stop Loss")
show_sp   = input(true, "Show Count 1-4")
sp_ct     = 0
inc_sp(x) => nz(x) == 7 ? 1 : nz(x) + 1
sp_up     = high > high[2]
sp_dn     = low < low[2]
sp_col    = sp_up ? green : red
sp_comCol = sp_up ? red : green
sp_ct    := sp_up ? (nz(sp_up[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : sp_dn ? (nz(sp_dn[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : na
sp_com    = sp_ct == 7
sp_sr     = valuewhen(sp_ct == 5, close, 0)
sp_usr    = valuewhen(sp_ct == 7 and sp_up, sma(hlc3, 2), 0)
sp_usr   := sp_usr <= sp_usr[1] * 1.0042 and sp_usr >= sp_usr[1] * 0.9958 ? sp_usr[1] : sp_usr
sp_dsr    = valuewhen(sp_ct == 7 and sp_dn, sma(hlc3, 2), 0)
sp_dsr   := sp_dsr <= sp_dsr[1] * 1.0042 and sp_dsr >= sp_dsr[1] * 0.9958 ? sp_dsr[1] : sp_dsr
locc = location.abovebar
plotchar(show_sp and sp_ct == 1, 'Setup: 1', '1', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 2, 'Setup: 2', '2', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 3, 'Setup: 3', '3', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 4, 'Setup: 4', '4', locc, sp_col, editable=false)
plotshape(sp_ct == 5, 'Setup: 5', shape.xcross, locc, sp_comCol, 0, 0, '5', sp_col)
plotshape(sp_ct == 6, 'Setup: 6', shape.circle, locc, sp_comCol, 0, 0, '6', sp_col)
plotshape(sp_ct == 7, 'Setup: 7', shape.circle, locc, sp_comCol, 0, 0, '7', sp_col)
// plot(sp_sr, "5 Count Support/Resistance", gray, 2, 6)
plot(sp_usr, "7 Count Resistance", maroon, 2, 6)
plot(sp_dsr, "7 Count Support", green, 2, 6)

long  = (sp_com and sp_dn)
short = (sp_com and sp_up)
sl_l  = xx ? crossunder(close, sp_dsr) or (sp_ct == 5 and sp_up) or short : (sp_ct == 5 and sp_up) or short
sl_s  = xx ? crossover(close, sp_usr) or (sp_ct == 5 and sp_dn) or long : (sp_ct == 5 and sp_dn) or long

strategy.entry('L', 1, when = long)
strategy.close('L', when = sl_l)
strategy.entry('S', 0, when = short)
strategy.close('S', when = sl_s)

Lebih lanjut