
Strategi berbalik tren yang dinamis adalah strategi perdagangan kuantitatif jangka pendek yang didasarkan pada indikator JD Sequential. Strategi ini dilakukan dengan cara melacak harga secara real-time pada titik tertinggi dan terendah, menilai arah dan intensitas tren saat ini, dan secara efisien menangkap titik balik pasar, dan melakukan penetapan waktu masuk dan keluar. Dibandingkan dengan strategi JD Sequential tradisional, strategi ini membuat perbaikan sebagai berikut:
Strategi ini cocok untuk digunakan pada periode waktu garis pendek seperti 5 menit, 15 menit, dan dapat secara efektif menangkap fluktuasi harga jangka pendek dan peluang reversal.
Logika inti dari strategi reversal tracking tren dinamis didasarkan pada indikator JD Sequential, yang membandingkan periode saat ini dengan dua periode sebelumnya dengan titik tinggi dan rendah, untuk menentukan apakah harga terus-menerus membuat titik tinggi yang lebih tinggi atau titik rendah yang lebih rendah, sehingga memberikan angka berurutan 1-7.
Secara khusus, kebijakan tersebut mendefinisikan variabel-variabel berikut:
Sinyal perdagangan dihasilkan dengan logika:
Stop loss adalah:
Strategi ini menentukan arah dan intensitas tren melalui titik tinggi dan rendah secara real-time, dengan waktu masuk counter, dan dapat secara efektif menangkap peluang reversal jangka pendek. Sementara itu, mengatur garis stop loss untuk mengendalikan risiko.
Dibandingkan dengan strategi JD Sequential tradisional, strategi reversal pelacakan tren dinamis memiliki keuntungan sebagai berikut:
Keuntungan utama dari strategi ini adalah respon yang cepat dan dapat secara efektif menangkap fluktuasi besar yang disebabkan oleh kejadian jangka pendek. Selain itu, dibandingkan dengan perdagangan yang sepenuhnya manual, pembuatan sinyal algoritmik dan stop loss dapat mengurangi dampak emosional pedagang, sehingga meningkatkan stabilitas.
Strategi untuk membalikkan tren dinamika juga memiliki beberapa risiko:
Untuk mengurangi risiko di atas, optimasi dapat dilakukan dalam beberapa hal berikut:
Ada banyak ruang untuk optimasi dalam strategi trend-following dan reversal, yang meliputi:
Portfolio periode waktu yang lebih tinggi dapat menentukan arah tren utama dalam periode waktu yang lebih tinggi, menghindari perdagangan yang bertentangan dengan tren utama.
Kombinasi dengan indikator lain. Dapat dikombinasikan dengan indikator tingkat fluktuasi, indikator volume transaksi, dll, untuk meningkatkan kualitas sinyal.
Filter Pembelajaran Mesin. Menggunakan algoritma pembelajaran mesin untuk penilaian tambahan terhadap sinyal perdagangan, mengurangi perdagangan yang salah.
Optimasi parameter. Anda dapat mengoptimalkan parameter seperti jumlah siklus penghitungan, periode perdagangan, dan persentase kepemilikan posisi, sesuai dengan kondisi pasar yang berbeda.
Menambahkan mekanisme pengendalian risiko. Menambahkan cara pengendalian risiko yang lebih kaya seperti stop loss bergerak, kontrol posisi, dan lain-lain untuk membatasi risiko lebih lanjut.
Pengukuran akumulasi data. Perluasan jumlah sampel pengukuran ulang dan rentang waktu, stabilitas parameter pengujian.
Strategi reversal pelacakan tren dinamis menghasilkan sinyal perdagangan dengan menggunakan 7 aturan hitung indikator JD Sequential untuk menangkap peluang reversal jangka pendek dengan cara menilai arah dan kekuatan tren dari titik rendah yang lebih tinggi secara real-time. Dibandingkan dengan strategi JD tradisional, strategi ini membuat perbaikan seperti menggunakan penilaian titik rendah yang lebih tinggi, mengurangi siklus hitung, dan meningkatkan mekanisme stop loss, yang memungkinkan sinyal perdagangan yang lebih tepat waktu.
Keuntungan utama dari strategi ini adalah respon yang cepat, cocok untuk menangkap reversal garis pendek, tetapi ada juga risiko seperti perdagangan yang sering, stop loss radikal. Arah optimasi di masa depan meliputi penyesuaian parameter, peningkatan mekanisme kontrol risiko, kombinasi siklus waktu yang banyak, dll. Dengan terus-menerus mengoptimalkan dan iterasi, strategi ini diharapkan menjadi alat yang kuat untuk menangkap sinyal reversal jangka pendek secara efisien.
/*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)