
Strategi pembalikan trend dinamik adalah strategi perdagangan kuantitatif jangka pendek berdasarkan indikator JD Sequential. Strategi ini melakukan peningkatan seperti berikut:
Strategi ini sesuai untuk digunakan dalam jangka masa garis pendek seperti 5 minit, 15 minit, dan dapat menangkap pergerakan harga dan peluang pembalikan jangka pendek dengan berkesan.
Logik teras strategi pembalikan trend dinamik adalah berdasarkan JD Sequential, yang membandingkan tempoh semasa dengan dua tempoh sebelumnya untuk menentukan sama ada harga telah mencapai tahap yang lebih tinggi atau lebih rendah secara berturut-turut, memberikan nombor berurutan 1-7.
Secara khusus, strategi ini mentakrifkan pembolehubah berikut:
Logik untuk menghasilkan isyarat dagangan ialah:
Logik stop loss ialah:
Strategi ini menentukan arah dan kekuatan trend melalui titik tinggi dan rendah dalam masa nyata, dan waktu masuk meter, yang dapat menangkap peluang pembalikan jangka pendek dengan berkesan. Pada masa yang sama, menetapkan garis berhenti untuk mengawal risiko.
Berbanding dengan strategi JD Sequential tradisional, strategi pembalikan trend dinamik mempunyai kelebihan berikut:
Kelebihan utama strategi ini adalah tindak balas yang cepat, yang dapat menangkap dengan berkesan turun naik yang besar yang disebabkan oleh kejadian jangka pendek. Pada masa yang sama, penjanaan isyarat dan hentian algoritma dapat mengurangkan kesan emosi pedagang, dan dengan itu meningkatkan kestabilan, berbanding dengan perdagangan manual sepenuhnya.
Strategi pembalikan trend yang dinamik juga mempunyai risiko:
Untuk mengurangkan risiko di atas, anda boleh mengoptimumkan dalam beberapa aspek:
Terdapat banyak ruang untuk pengoptimuman dalam strategi pembalikan trend yang dinamik, antara lain:
Portfolio tempoh masa berbilang. Ia dapat menentukan arah trend utama dalam tempoh masa yang lebih tinggi, dan mengelakkan perdagangan menentang trend utama.
Gabungan dengan penunjuk lain. Ia boleh digabungkan dengan penunjuk kadar turun naik, penunjuk jumlah pertukaran, dan sebagainya untuk meningkatkan kualiti isyarat.
Penapisan pembelajaran mesin. Menggunakan algoritma pembelajaran mesin untuk membuat penilaian tambahan terhadap isyarat perdagangan, mengurangkan perdagangan yang salah.
Pengoptimuman parameter. Anda boleh mengoptimumkan parameter seperti bilangan kitaran kiraan, tempoh dagangan, peratusan pegangan, dan sebagainya, sesuai dengan keadaan pasaran yang berbeza.
Menambah mekanisme kawalan angin. Menambah kaedah kawalan angin yang lebih kaya seperti berhenti bergerak, kawalan kedudukan, dan lain-lain untuk mengehadkan risiko.
Pengumpulan data pengukuran ulang. Perluasan jumlah sampel pengukuran ulang dan rentang masa, kestabilan parameter ujian.
Strategi pembalikan trend yang dinamik menghasilkan isyarat perdagangan dengan menggunakan 7 peraturan pengiraan indikator JD Sequential untuk menangkap peluang pembalikan jangka pendek dengan menggunakan arah dan kekuatan trend yang lebih tinggi daripada titik rendah dalam masa nyata. Berbanding dengan strategi JD tradisional, strategi ini telah melakukan peningkatan dengan menggunakan penghakiman titik rendah yang tinggi, memendekkan kitaran pengiraan, dan meningkatkan mekanisme penangguhan, untuk mendapatkan isyarat perdagangan yang lebih tepat pada masanya.
Kelebihan utama strategi ini adalah tindak balas yang cepat, sesuai untuk menangkap reversal garis pendek, tetapi terdapat juga risiko seperti perdagangan yang kerap, penghentian kerugian yang radikal. Arah pengoptimuman masa depan termasuk penyesuaian parameter, peningkatan mekanisme kawalan angin, kombinasi kitaran masa yang banyak. Dengan pengoptimuman dan pengulangan yang berterusan, strategi ini dijangka menjadi alat yang kuat untuk menangkap isyarat reversal 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)