
Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan berbagai indikator, terutama menggunakan pengakuan volume transaksi dan sinergi indikator momentum untuk menangkap peluang terobosan pasar. Strategi ini mengintegrasikan indikator akumulasi volume transaksi (OBV), volume transaksi bersih (Net Volume), indikator relatif kuat (RSI) dan indikator arus kas (MFI), dengan indikator moving average (EMA) untuk mengkonfirmasi tren, dan mengadopsi mekanisme stop loss yang dinamis untuk mengoptimalkan titik keluar, yang secara efektif menyeimbangkan kemampuan untuk menghasilkan keuntungan dan pengendalian risiko.
Menurut data retrospektif, strategi ini mencapai tingkat kemenangan 83,20% selama periode waktu 15 menit selama 12 bulan terakhir, dengan rata-rata keuntungan per transaksi sebesar 746,18 USDT, dan transaksi tunggal terbaik sebesar 65,654 USDT, dengan total 381 transaksi yang diselesaikan. Data ini menunjukkan bahwa strategi ini memiliki stabilitas dan potensi keuntungan yang cukup dalam lingkungan perdagangan frekuensi tinggi.
Logika inti dari strategi ini didasarkan pada mekanisme konfirmasi gabungan dari beberapa indikator, dan prinsip operasionalnya adalah sebagai berikut:
Syarat masukSistem ini terutama menangkap peluang berganda dan memicu sinyal beli ketika semua kondisi berikut terpenuhi:
Mekanisme KeluarSistem Tracking Dynamic Stop Loss dengan Triple Protection:
Komposisi indikator teknis:
Mekanisme konfirmasi bertingkat ini memastikan kualitas sinyal masuk, sementara stop loss pelacakan dinamis secara efektif mengunci keuntungan dan mengendalikan risiko.
Sebuah analisis mendalam dari struktur kode dan logika dari strategi ini dapat disimpulkan sebagai keuntungan yang signifikan:
Konfirmasi sinyal multi-dimensiGabungan tiga dimensi harga, volume transaksi dan momentum sangat mengurangi probabilitas sinyal palsu. Keandalan sinyal masuk meningkat secara signifikan ketika OBV, volume transaksi bersih, RSI dan MFI memenuhi persyaratan secara bersamaan.
Perlakuan harga yang didukung oleh volume transaksi: Dengan verifikasi ganda OBV dan volume transaksi bersih, memastikan bahwa perubahan harga didukung oleh volume transaksi yang cukup, dan menghindari perangkap “terjun tanpa volume”.
Dinamika Intelligent Stop LossStrategi ini tidak menggunakan stop loss tetap, tetapi secara otomatis menyesuaikan posisi stop loss berdasarkan perilaku harga. Metode ini dapat memberikan ruang yang cukup bagi harga untuk berfluktuasi sambil melindungi dana.
Kontrol bertingkat risikoDengan adanya tiga tingkat mekanisme pemicu, pelacakan, dan kerugian maksimum, manajemen risiko yang lebih halus dapat dilakukan untuk mencegah kerugian besar akibat kegagalan mekanisme perlindungan tunggal.
Adaptasi perdagangan frekuensi tinggiOptimalisasi untuk jangka waktu 15 menit, kemampuan untuk menangkap fluktuasi dalam sehari, memanfaatkan fluktuasi sentimen pasar jangka pendek untuk menciptakan peluang perdagangan berganda.
Kinerja kemenangan yang stabil:83.20% keberhasilan menunjukkan bahwa strategi ini memiliki kualitas sinyal yang konsisten, yang sangat penting untuk keberlanjutan jangka panjang dari strategi perdagangan kuantitatif.
Meskipun strategi ini bekerja dengan sangat baik, analisis kode masih memungkinkan kita untuk mengidentifikasi risiko potensial sebagai berikut:
Kecenderungan fluktuatifStrategi ini bergantung pada cukup banyak pergerakan pasar untuk memicu mekanisme tracking stop loss. Dalam lingkungan yang rendah volatilitas, ini dapat menyebabkan kepemilikan jangka panjang dan tidak dapat mengunci keuntungan secara efektif. Solusi: Anda dapat menambahkan mekanisme penutupan berbasis waktu, atau menyesuaikan parameter bias pemicu selama gelombang rendah.
Rata-rata kerugian lebih besarData retrospektif menunjukkan bahwa rata-rata kerugian ((-30,713 USDT) jauh lebih besar daripada rata-rata keuntungan ((7,097 USDT), meskipun peluang menang sangat tinggi, beberapa kerugian besar dapat berdampak buruk pada kinerja keseluruhan. *Solusi*Anda dapat mempertimbangkan untuk mengatur kontrol kerugian maksimum yang lebih ketat, atau menambahkan lebih banyak kondisi penyaringan pertandingan.
Faktor keuntungan rendahFaktor keuntungan 0,231 menunjukkan bahwa ada ruang untuk pengoptimalan dalam perbandingan risiko-keuntungan. *Solusi*Reevaluasi strategi stop loss, mungkin perlu mengurangi rasio kerugian maksimum atau menambah mekanisme penguncian keuntungan parsial.
Kecenderungan satu arahStrategi ini bertujuan untuk mengoptimalkan beberapa peluang, yang mungkin tidak akan berjalan dengan baik di pasar yang terus turun. *Solusi*Pertimbangkan kondisi shorting yang telah didefinisikan dalam kode aktivasi tetapi tidak digunakan, atau tambahkan filter tren pasar secara keseluruhan.
Parameter SensitivitasTiga parameter kunci untuk melacak stop loss (penggeseran yang dipicu, penggeseran yang dilacak, dan kerugian maksimum) secara signifikan mempengaruhi kinerja strategi, dan pengaturan parameter yang tidak tepat dapat menyebabkan penarikan prematur atau kerugian yang berlebihan. Solusi: melakukan analisis sensitivitas parameter, menentukan kisaran parameter yang optimal, dan mempertimbangkan untuk menyesuaikan parameter ini berdasarkan dinamika volatilitas pasar.
Berdasarkan analisis mendalam dari kode kebijakan, berikut adalah beberapa arah optimasi yang mungkin:
Penyesuaian parameter adaptasi: Strategi saat ini menggunakan parameter tracking stop loss yang tetap, dan dapat dipertimbangkan untuk menyesuaikan secara dinamis dengan volatilitas pasar (misalnya indikator ATR) untuk memicu bias dan melacak bias. Meningkatkan bias di pasar yang berfluktuasi tinggi dan mengurangi bias di pasar yang berfluktuasi rendah, membuat strategi lebih cocok untuk lingkungan pasar yang berbeda.
Filter intensitas tren meningkat: Menambahkan penilaian kekuatan tren ke dalam kondisi masuk, seperti menambahkan ADX (Indeks Kecenderungan Rata-rata), dan masuk hanya ketika tren cukup kuat, untuk menghindari over-trading di pasar konsolidasi. Hal ini dapat secara efektif mengurangi sinyal false breakout.
Mekanisme masuk dan keluar: Modifikasi kode untuk mengimplementasikan batch build dan batch clear, misalnya membagi dana menjadi 3 bagian, masuk 1 / 3 jika memenuhi persyaratan dasar, masuk 3 kali jika kondisi lebih kuat, dan keluar 3 kali. Ini dapat mengoptimalkan harga penyimpanan rata-rata dan mengurangi tekanan untuk memilih waktu.
Integrasi analisis lingkungan pasar: Menambahkan penilaian lingkungan pasar pada periode waktu yang lebih tinggi, misalnya menilai arah tren pada grafik 1 jam atau 4 jam, melakukan sinyal 15 menit hanya jika ada dukungan tren yang lebih besar, meningkatkan kualitas sinyal.
Memaksimalkan Faktor Profit: Menambahkan beberapa mekanisme penguncian keuntungan, misalnya ketika keuntungan mencapai proporsi tertentu, menghapus sebagian dari posisi yang mengunci keuntungan, dan sisanya terus menggunakan tracking stop loss. Ini dapat menyeimbangkan tingkat kemenangan yang tinggi dan memperbaiki kontradiksi rasio untung rugi rata-rata.
Menambahkan strategi shorting: Kondisi shorting yang telah didefinisikan dalam kode aktivasi, dan optimasi khusus untuk strategi shorting, sehingga strategi dapat mempertahankan kinerja yang stabil di berbagai lingkungan pasar.
Filter waktu: Menambahkan kondisi penyaringan waktu untuk menghindari periode-periode yang dikenal rendah likuiditasnya atau tinggi volatilitasnya, seperti sebelum dan sesudah terbitnya data ekonomi besar, untuk mengurangi risiko yang ditimbulkan oleh kondisi-kondisi yang tidak normal.
Strategi pemecahan volume multi-indikator ini dengan cerdik menggabungkan analisis volume transaksi, indikator dinamis, dan konfirmasi tren untuk membangun sistem perdagangan yang logis. Kelebihannya adalah memanfaatkan konfirmasi sinyal multi-dimensi untuk meningkatkan kualitas masuk, sementara manajemen risiko yang dinamis dilakukan melalui mekanisme penarikan stop loss yang adaptif.
Meskipun tingkat keberhasilan yang tinggi sebesar 83,20 persen sangat mengesankan, namun kerugian rata-rata lebih besar dari keuntungan rata-rata menunjukkan bahwa strategi ini masih memiliki ruang untuk perbaikan dalam pengendalian risiko. Dengan menerapkan langkah-langkah optimasi yang disarankan, terutama penyesuaian parameter dinamis, operasi batch, dan penguncian sebagian keuntungan, strategi ini diharapkan dapat secara signifikan meningkatkan rasio pengembalian risiko secara keseluruhan sambil mempertahankan tingkat keberhasilan yang tinggi.
Bagi trader kuantitatif yang berpengalaman, strategi ini memberikan kerangka kerja yang solid untuk penyesuaian yang disesuaikan dengan preferensi risiko pribadi dan prinsip-prinsip pengelolaan dana. Yang paling penting, pedagang harus memahami prinsip-prinsip logis di balik strategi ini, dan tidak hanya memperhatikan kinerja yang terdeteksi di masa lalu, karena lingkungan pasar selalu berubah.
/*backtest
start: 2025-06-07 00:00:00
end: 2025-07-04 08:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("BullFinder_15M_OBV_RSI_MFI", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === Göstergeler ===
// OBV
obv = ta.cum(math.sign(ta.change(close)) * volume)
obvMA = ta.sma(obv, 21)
// Net Volume
netVol = request.security(syminfo.tickerid, "1", volume - volume[1])
// RSI & MFI
rsi = ta.rsi(close, 14)
mfi = ta.mfi(hlc3, 14)
ema21 = ta.ema(close, 21)
// === Trailing Stop Parametreleri ===
trigger_offset = input.float(0.35, "Trigger Offset (%)") / 100
trail_offset = input.float(0.3, "Trail Offset (%)") / 100
max_loss = input.float(3.0, "Max Loss (%)") / 100
// === Durum Değişkenleri ===
var float highestPrice = na
var bool trailActive = false
// === GİRİŞ KOŞULLARI ===
// Long (Aynı kaldı)
longCond = obv > obvMA and netVol > 0 and rsi > 45 and mfi < 50
// Short (Genişletildi - v2.9)
shortCond1 = rsi > 70 and obv < obv[1] and netVol < 0 and close < close[1] // Reversal
shortCond2 = rsi > 65 and mfi > 80 and close < ema21 // Weak Pullback
shortCond = shortCond1 or shortCond2
// === Giriş Emirleri ===
if longCond
strategy.entry("Long", strategy.long)
highestPrice := close
trailActive := false
if shortCond
// strategy.entry("Short", strategy.short)
highestPrice := close
trailActive := false
// === Long Trailing Stop ===
if strategy.position_size > 0
highestPrice := math.max(highestPrice, high)
triggerPrice = strategy.opentrades.entry_price(0) * (1 + trigger_offset)
lossLevel = strategy.opentrades.entry_price(0) * (1 - max_loss)
trailLevel = highestPrice * (1 - trail_offset)
if not trailActive and close > triggerPrice
trailActive := true
if (trailActive and close < trailLevel) or close < lossLevel
strategy.close("Long")
// === Short Trailing Stop ===
if strategy.position_size < 0
highestPrice := math.min(highestPrice, low)
triggerPrice = strategy.opentrades.entry_price(0) * (1 - trigger_offset)
lossLevel = strategy.opentrades.entry_price(0) * (1 + max_loss)
trailLevel = highestPrice * (1 + trail_offset)
if not trailActive and close < triggerPrice
trailActive := true
if (trailActive and close > trailLevel) or close > lossLevel
strategy.close("Short")
// === ALERT ŞARTLARI ===
alertcondition(longCond, title="BullFinder Long Signal", message="BullFinder: Long Entry on {{ticker}} at {{close}}")