
Strategi perdagangan kuantitatif yang disebut “Multi-timeframe Dynamic Trend Judging System” adalah sistem komprehensif yang menggabungkan berbagai indikator teknis, yang menggabungkan beberapa elemen seperti indeks pergerakan rata-rata (EMA) crossover, indeks relative strength (RSI), volume perdagangan rata-rata (VWAP) dan indeks arah rata-rata (ADX) untuk membuat keputusan perdagangan. Strategi ini, melalui analisis beberapa kerangka waktu, menggabungkan indikator tren dan dinamika, secara efektif mengidentifikasi area overbought dan oversold di pasar dan menilai aliran dana lembaga, sangat cocok untuk perdagangan dan operasional tren berbalik dalam jangka pendek.
Prinsip inti dari strategi ini didasarkan pada pengesahan koordinat dari indikator pasar multi-level. Pertama, sistem menghitung indeks moving average (EMA) dari dua periode yang berbeda, yaitu EMA periode pendek (9) dan EMA periode panjang (21), untuk mengidentifikasi arah tren dan titik pergeseran tren potensial. Kedua, sistem memperoleh data RSI (14) dari jangka waktu 15 menit, memperkenalkan analisis lintas-frame waktu untuk mengkonfirmasi status pergerakan harga. Ketiga, sistem menggunakan VWAP dari jangka waktu saat ini sebagai indikator acuan untuk keterlibatan dana institusional, dan menetapkan margin margin perbedaan antara VWAP dan garis rata-rata (0,1%) untuk memfilter sinyal perdagangan.
Secara khusus, persyaratan masuk short-term harus dipenuhi secara bersamaan: EMA jangka pendek di bawah EMA jangka panjang (disingkat cross-up), RSI 15 menit lebih besar dari 30 (tidak oversold), VWAP secara signifikan di bawah dua EMA (setidaknya 0,1%), yang menunjukkan adanya tekanan jual dan sentimen downside dari lembaga. Sementara persyaratan masuk multiple saat ini hanya membutuhkan RSI 15 menit di bawah 30 (disingkat oversold), belum bergabung dengan filter EMA dan VWAP.
Selain itu, strategi ini juga memperkenalkan filter ADX yang dapat dipilih, dengan menghitung nilai ADX secara manual (default length 14) dan menetapkan threshold minimum (default 20) untuk memastikan bahwa hanya diperdagangkan dalam tren yang jelas. Pengguna dapat mengaktifkan atau menonaktifkan filter ADX, meningkatkan fleksibilitas strategi. Strategi ini juga mendukung pilihan arah perdagangan dengan memasukkan parameter (“Long”, “Short” atau “Both”), sehingga lebih mudah untuk menyesuaikan dengan sistem perdagangan otomatis seperti robot OKX atau peringatan TradingView.
Konfirmasi multisensorEmpat indikator: EMA crossover, dinamika RSI, aliran dana lembaga VWAP, dan intensitas tren ADX, membentuk mekanisme konfirmasi sinyal perdagangan bertingkat, yang secara signifikan meningkatkan keandalan sinyal.
Analisis multi-frame waktuDengan memperkenalkan data RSI pada jangka waktu 15 menit, strategi ini dapat mengevaluasi dinamika pasar dari perspektif yang lebih besar, mengurangi titik buta yang mungkin ditimbulkan oleh analisis jangka waktu tunggal.
Perspektif dana lembagaMenggunakan kesenjangan antara VWAP dan EMA sebagai indikator keterlibatan dana institusional, perspektif institusional ini memungkinkan strategi untuk lebih mengidentifikasi tekanan pasar yang sebenarnya dan area dukungan.
Fleksibel mode operasi: Dengan parameter tradeDirection, pengguna dapat memilih hanya melakukan lebih banyak, hanya melakukan lebih sedikit atau berdagang dua arah sesuai dengan kondisi pasar atau preferensi pribadi, tanpa perlu memelihara beberapa versi strategi.
Filter tren dinamisFilter ADX yang dapat dipilih membantu strategi untuk melakukan perdagangan hanya dalam tren yang jelas, secara efektif mengurangi sinyal palsu di pasar yang bergoyang, sambil mempertahankan fleksibilitas untuk menonaktifkan filter ini.
Integrasi Manajemen RisikoStrategi ini memiliki mekanisme stop loss dan stop loss yang terintegrasi (dengan titik harga tetap) yang dikombinasikan dengan kondisi RSI overbought and oversold sebagai sinyal keluar untuk membentuk sebuah lingkaran penutupan perdagangan yang lengkap.
Kode yang efisienStrategi: Struktur kode yang jelas, logis modular, proses komputasi yang efisien, mudah untuk pemeliharaan dan optimalisasi lebih lanjut.
Kondisi multigratis tidak sempurnaLogika overdo strategi saat ini hanya didasarkan pada kondisi oversold RSI <30, kurangnya EMA crossover dan filter VWAP, yang dapat menyebabkan masuk lebih awal atau overdo lebih sering dalam tren turun yang berkelanjutan, meningkatkan risiko kerugian.
Pengaturan stop loss tetapStrategi: menggunakan stop loss yang dinamis berdasarkan persentase atau volatilitas, dengan stop loss yang menggunakan nilai tetap (stop loss 100 atau stop loss 200), yang mungkin tidak cukup fleksibel dalam lingkungan fluktuasi yang berbeda, mungkin stop loss terlalu longgar pada periode fluktuasi tinggi, dan mungkin stop loss terlalu ketat pada periode fluktuasi rendah.
Tidak ada kontrol frekuensi transaksiKurangnya strategi. Opentrades == 0 penilaian dapat menyebabkan masuk berulang ketika sinyal berturut-turut dipicu, membentuk posisi yang tumpang tindih, secara tidak sengaja meningkatkan celah risiko.
Kompleksitas perhitungan ADXPerhitungan ADX secara manual meningkatkan kompleksitas kode, meskipun berfungsi dengan baik, tetapi kurang dapat dipertahankan, dan jika terjadi penyimpangan perhitungan dapat menyebabkan penilaian tren yang salah.
VWAP batas batas tetap: 0.1% VWAP fixed margin threshold mungkin tidak berlaku untuk semua kondisi pasar, mungkin terlalu longgar di pasar yang berfluktuasi tinggi, mungkin terlalu ketat di pasar yang berfluktuasi rendah.
Kurangnya analisis sensitivitas pengembalian: Kode tidak menunjukkan hasil optimasi parameter atau analisis sensitivitas, tidak dapat menentukan apakah kombinasi parameter saat ini (seperti EMA 9⁄21, RSI 14, ADX 14⁄20) adalah optimal.
Mungkin ada penundaan waktuRequest.security dapat memperkenalkan keterlambatan data dalam beberapa kasus, terutama di pasar yang bergerak cepat, yang mempengaruhi akurasi waktu transaksi.
Memperbaiki logika multi-entryFilter silang antara kondisi VWAP dan EMA untuk menambahkan gambar multi-strategi, yaitu meminta VWAP secara signifikan lebih tinggi dari dua EMA (misalnya 0,1%) dan EMA jangka pendek untuk memakai EMA jangka panjang, sehingga simetri logika multi-ruang, meningkatkan kualitas sinyal multi-strategi.
Tambahkan kontrol frekuensi transaksiOpentrades == 0 untuk mencegah penumpukan posisi yang disebabkan oleh sinyal berturut-turut, dan untuk mengendalikan risiko yang lebih baik.
Pengaturan Stop Loss Dinamis: Berdasarkan rata-rata true amplitude (ATR) secara dinamis menyesuaikan level stop loss dan stop loss, membuat manajemen risiko lebih sesuai dengan kondisi pasar yang bergejolak saat ini, menggantikan pengaturan poin tetap saat ini.
Mengoptimalkan perhitungan ADX: Pertimbangkan untuk menggunakan fungsi ta.adx ((() built-in TradingView untuk menggantikan perhitungan manual, menyederhanakan kode dan meningkatkan pemeliharaan, sambil menambahkan penilaian arah ADX (((+ hubungan DI dengan -DI) untuk lebih menyempurnakan arah tren.
Dinamis VWAP kesenjangan: Merancang VWAP Gap Threshold sebagai parameter dinamis berdasarkan volatilitas pasar, misalnya terkait dengan ATR, sehingga kondisi penyaringan dapat beradaptasi dengan lingkungan pasar yang berbeda.
Tambahkan filter waktu transaksiUntuk menghindari risiko slippage dan fluktuasi yang tidak terduga pada saat low liquidity atau pengumuman berita penting.
Konsistensi tren dalam beberapa kerangka waktuPertimbangkan untuk menambahkan frame waktu yang lebih tinggi (misalnya 1 jam atau 4 jam) untuk menentukan arah tren, dan hanya berdagang ketika tren pada beberapa frame waktu konsisten, untuk mengurangi sinyal palsu lebih lanjut.
Masukkan konfirmasi volume transaksi: Meningkatkan indikator volume transaksi yang dikonfirmasi, seperti volume transaksi yang diperlukan ketika EMA melintas secara signifikan lebih tinggi dari rata-rata periode sebelumnya, meningkatkan keandalan sinyal perubahan tren.
Sistem penilaian tren dinamis multi-frame adalah strategi kuantitatif komprehensif yang menggabungkan berbagai alat analisis teknis untuk memberikan sinyal masuk dan keluar yang relatif andal kepada pedagang melalui mekanisme multiple confirmation EMA crossover, momentum RSI, aliran dana lembaga VWAP, dan kekuatan tren ADX. Strategi ini berfokus pada analisis gabungan dari perilaku dana lembaga dan sentimen ritel, serta fitur pelacakan tren dan perdagangan reversal.
Meskipun strategi berkinerja baik dalam koordinasi multi-indikator dan fleksibilitas, namun masih ada masalah seperti kondisionalitas yang tidak sempurna, manajemen risiko yang tetap, dan kemungkinan masuk berulang. Kinerja dan stabilitas strategi diharapkan ditingkatkan secara signifikan dengan meningkatkan multi-logika, menerapkan manajemen risiko dinamis, menambahkan kontrol frekuensi perdagangan, mengoptimalkan perhitungan ADX, merancang nilai terendah VWAP dinamis, dan memperkenalkan langkah-langkah pengoptimalan seperti penyaringan waktu perdagangan dan persyaratan konsistensi multi-frame time frame.
Secara keseluruhan, strategi ini mewakili desain sistem perdagangan yang komprehensif dan fleksibel, yang memberikan para pedagang alat yang secara teoritis dapat beradaptasi dengan berbagai lingkungan pasar dengan mempertimbangkan indikator teknis, struktur harga, sentimen pasar, dan perilaku institusi secara komprehensif. Dengan optimasi yang disarankan, strategi ini berpotensi menjadi sistem perdagangan yang lebih baik dan lebih efisien.
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MinhPhan MA Crossover Strategy RSI 15m + ADX Toggle", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.001)
// === Inputs ===
shortLen = input.int(9, title="Short EMA")
longLen = input.int(21, title="Long EMA")
useAdxFilter = input.bool(true, title="Enable ADX Filter?")
adxLen = input.int(14, title="ADX Length")
adxThresh = input.float(20, title="Min ADX to Trade")
// === EMAs ===
shortMA = ta.ema(close, shortLen)
longMA = ta.ema(close, longLen)
// === VWAP ===
vwap = ta.vwap
// === RSI from 15-minute timeframe ===
rsi_15m = request.security(syminfo.tickerid, "15", ta.rsi(close, 14))
// === Manual ADX Calculation ===
upMove = high - high[1]
downMove = low[1] - low
plusDM = na(upMove) or upMove <= downMove or upMove < 0 ? 0 : upMove
minusDM = na(downMove) or downMove <= upMove or downMove < 0 ? 0 : downMove
tr = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
smoothedTR = ta.rma(tr, adxLen)
smoothedPlusDM = ta.rma(plusDM, adxLen)
smoothedMinusDM = ta.rma(minusDM, adxLen)
plusDI = 100 * smoothedPlusDM / smoothedTR
minusDI = 100 * smoothedMinusDM / smoothedTR
dx = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adx = ta.rma(dx, adxLen)
isTrending = useAdxFilter ? adx > adxThresh : true // ADX toggle logic
// === VWAP Gap Filter ===
gapThreshold = 0.001
vwapBelowEMAs =
(shortMA - vwap) / shortMA > gapThreshold and
(longMA - vwap) / longMA > gapThreshold
// === Direction Control ===
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])
allowLong = tradeDirection == "Long" or tradeDirection == "Both"
allowShort = tradeDirection == "Short" or tradeDirection == "Both"
// === Entry Conditions ===
if (allowLong and rsi_15m < 30 and isTrending)
strategy.entry("Long", strategy.long)
if (allowShort and rsi_15m > 30 and ta.crossunder(shortMA, longMA) and vwapBelowEMAs and isTrending)
strategy.entry("Short", strategy.short)
// === Exit Conditions ===
if (strategy.position_size > 0 and rsi_15m > 70)
strategy.exit("Exit Long", from_entry="Long", loss=100, profit=200)
if (strategy.position_size < 0 and rsi_15m < 30)
strategy.exit("Exit Short", from_entry="Short", loss=100, profit=200)
// === Plots ===
plot(shortMA, color=color.blue, title="Short EMA")
plot(longMA, color=color.red, title="Long EMA")
plot(vwap, title="VWAP", color=color.purple, linewidth=2)
plot(adx, title="ADX", color=color.orange)
hline(adxThresh, "ADX Threshold", color=color.gray, linestyle=hline.style_dashed)