
Sistem perdagangan indikator multi-swing adalah strategi perdagangan kuantitatif yang didasarkan pada analisis teknis, yang intinya bergantung pada identifikasi titik tinggi dan rendah yang bergoyang untuk menentukan perubahan tren pasar. Strategi ini membangun tingkat stop loss yang dilacak secara dinamis dengan melacak harga tertinggi dan terendah dalam periode N terakhir.
Logika inti dari strategi ini berkisar pada pelacakan level stop loss (TSL), yang diimplementasikan sebagai berikut:
Tingkat harga kunci dalam siklus perhitungan:
ta.highest(high, no)Hitung harga tertinggi dari no siklus terakhir (res)ta.lowest(low, no)Hitung harga minimum dari no siklus terakhir ((sup))Menentukan posisi harga relatif terhadap titik tinggi dan rendah di periode sebelumnya:
Konstruksi Tracking Stop Loss Level (TSL):
Menciptakan sinyal perdagangan:
Melakukan transaksi:
Sistem ini juga mencakup komponen visual seperti tanda titik jual beli, garis K dan latar belakang yang berubah warna, dan garis horizontal yang menampilkan harga buka posisi secara real-time, yang meningkatkan pengalaman visual dari proses perdagangan.
Trend Capture: Dengan menghitung harga tertinggi dan terendah secara dinamis, dapat secara efektif menangkap perubahan tren pasar dan beradaptasi dengan fluktuasi dalam siklus pasar yang berbeda.
Tingkat otomatisasi yang tinggi: Sistem secara otomatis melakukan identifikasi sinyal beli dan jual dan eksekusi transaksi, mengurangi intervensi manusia dan pengaruh emosional.
Mekanisme perdagangan dua arah: mendukung perdagangan multihead dan headless, memungkinkan peluang keuntungan di pasar naik dan turun.
Manajemen risiko internal: Tracking Stop Loss Levels (TSL) pada dasarnya dirancang untuk menyertakan fitur stop loss, yang membatasi kerugian maksimum pada satu transaksi.
Umpan balik perdagangan visual: Melalui antarmuka grafis, sinyal perdagangan dan harga pembukaan posisi ditampilkan dengan jelas, sehingga memudahkan pedagang untuk memantau dan menilai kinerja strategi secara real-time.
Fleksibilitas parameter: Dengan menyesuaikan parameter siklus berayun ((no), dapat disesuaikan dengan karakteristik pasar dalam periode waktu yang berbeda, dapat diterapkan dari garis pendek hingga garis panjang menengah.
Sinyal yang jelas: Sistem memberikan sinyal ganda teks dan visual, mengurangi kemungkinan kesalahan operasi.
Performa buruk di pasar bergoyang: Dalam pasar bergoyang horizontal, strategi ini dapat menghasilkan sinyal palsu yang sering terjadi, yang menyebabkan stop loss berkelanjutan.
Titik geser dan risiko keterlambatan eksekusi: Dalam perdagangan langsung, mungkin ada perbedaan waktu antara generasi sinyal dan eksekusi pesanan, yang menyebabkan harga transaksi aktual menyimpang dari harga yang ideal.
Keterbatasan manajemen posisi tetap: Strategi saat ini menggunakan satuan tetap ((qty = 1) untuk perdagangan, kurangnya mekanisme untuk menyesuaikan ukuran posisi berdasarkan volatilitas pasar atau ukuran akun.
Sensitivitas parameter: Kinerja strategi sangat bergantung pada pengaturan parameter siklus berayun ((no), yang mungkin memerlukan nilai parameter yang berbeda dalam lingkungan pasar yang berbeda.
Kecenderungan untuk menanggapi keadaan darurat yang lemah: Dalam perubahan harga yang cepat yang disebabkan oleh berita besar atau peristiwa black swan, tingkat stop loss mungkin tidak dapat disesuaikan dengan tepat dan menyebabkan kerugian yang lebih besar.
Metode untuk mengurangi risiko ini meliputi: pengakuan sinyal dalam kombinasi dengan indikator lain, pelaksanaan manajemen posisi dinamis, pengaturan batas stop loss maksimum, parameter yang disesuaikan dengan volatilitas, dan parameter strategi yang diperiksa dan dioptimalkan secara berkala.
volatility = ta.atr(14) / close * 100 // 计算波动率百分比
position_size = strategy.equity * 0.01 / volatility // 根据波动率调整仓位
rsi = ta.rsi(close, 14)
valid_buy = Buy and rsi < 70 // 避免在超买区域买入
valid_sell = Sell and rsi > 30 // 避免在超卖区域卖出
Parameter penyesuaian diri: parameter siklus ayunan yang disesuaikan berdasarkan dinamika volatilitas pasar (no), menggunakan nilai yang lebih kecil dalam lingkungan fluktuasi rendah, menggunakan nilai yang lebih besar dalam lingkungan fluktuasi tinggi.
Menambahkan target laba: menetapkan target laba berdasarkan ATR atau level dukungan / resistensi, mengunci sebagian keuntungan ketika pasar bergerak cukup jauh ke arah yang menguntungkan.
Filter waktu: Tambahkan batasan jendela waktu perdagangan untuk menghindari periode pasar yang kurang likuiditas atau bergejolak.
Mekanisme pengendalian penarikan: menerapkan mekanisme penarikan yang didasarkan pada persentase penarikan hak dan kepentingan akun, yang menghentikan perdagangan ketika kerugian berturut-turut mencapai batas yang ditentukan.
Konfirmasi multi-siklus: Menggabungkan arah tren dari siklus waktu yang lebih tinggi, hanya membuka posisi di arah yang konsisten dengan tren siklus yang lebih tinggi, meningkatkan tingkat kemenangan.
Hal ini dapat secara signifikan meningkatkan keandalan dan adaptasi strategi, terutama dalam perubahan lingkungan pasar yang berbeda untuk memberikan pengembalian yang lebih baik untuk penyesuaian risiko.
Multiple Swing Indicator Trading System adalah strategi perdagangan otomatisasi berbasis analisis teknis yang menangkap perubahan tren pasar dan melakukan perdagangan dua arah multi-saluran dengan secara dinamis melacak tingkat stop loss (TSL). Strategi ini berkinerja baik di pasar dengan tren yang jelas, mampu secara efektif melacak pergerakan harga dan mengelola posisi secara otomatis.
Keunggulan inti dari strategi ini adalah mekanisme penciptaan sinyal yang sederhana dan efektif dan fungsi manajemen risiko yang dibangun, terutama untuk perdagangan tren jangka pendek dan menengah. Namun, strategi ini mungkin menghadapi tantangan dengan sinyal palsu yang sering terjadi di pasar yang bergoyang dan perlu dioptimalkan lebih lanjut untuk meningkatkan adaptasi dalam berbagai lingkungan pasar.
Strategi ini dapat lebih meningkatkan pengembalian dan stabilitas penyesuaian risiko dengan menerapkan langkah-langkah optimasi seperti manajemen posisi dinamis, konfirmasi sinyal multi-indikator, dan penyesuaian parameter adaptif. Untuk pedagang kuantitatif, sistem otomatisasi yang didasarkan pada aturan yang jelas ini memberikan kerangka kerja yang andal untuk mengurangi gangguan emosional dan menjaga disiplin perdagangan.
Pada akhirnya, keberhasilan strategi ini tergantung pada pengaturan parameter yang disesuaikan dengan baik oleh pedagang dan pemahaman tentang karakteristik pasar. Disarankan untuk melakukan retrospeksi sejarah yang memadai dan verifikasi perdagangan analog sebelum menerapkannya di pasar.
/*backtest
start: 2024-05-06 00:00:00
end: 2025-03-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Accurate Swing Trading System with Auto Entry (Long & Short)", overlay=true)
// Parameters
no = input.int(3, title="Swing")
Barcolor = input.bool(true, title="Barcolor")
Bgcolor = input.bool(false, title="Bgcolor")
// Calculate TSL (Trailing Stop Level)
res = ta.highest(high, no)
sup = ta.lowest(low, no)
avd = close > res[1] ? 1 : close < sup[1] ? -1 : 0
avn = ta.valuewhen(avd != 0, avd, 0)
tsl = avn == 1 ? sup : res
// Define Buy and Sell Conditions
Buy = ta.crossover(close, tsl)
Sell = ta.crossunder(close, tsl)
plotshape(Buy, "BUY", shape.labelup, location.belowbar, color.green, text="BUY", textcolor=color.black)
plotshape(Sell, "SELL", shape.labeldown, location.abovebar, color.red, text="SELL", textcolor=color.black)
// Plot TSL
colr = close >= tsl ? color.green : close <= tsl ? color.red : na
plot(tsl, color=colr, linewidth=3, title="TSL")
barcolor(Barcolor ? colr : na)
bgcolor(Bgcolor ? colr : na)
// Alerts
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")
// Automatic Entry & Exit with 1 Unit
if (Buy)
strategy.entry("Long", strategy.long, qty=1) // Enter long with 1 unit
strategy.close("Short") // Close any open short positions
alert("Buy Signal - Entry Long", alert.freq_once_per_bar_close)
alert("Buy Entry Sound", alert.freq_once_per_bar_close)
if (Sell)
strategy.entry("Short", strategy.short, qty=1) // Enter short with 1 unit
strategy.close("Long") // Close any open long positions
alert("Sell Signal - Entry Short", alert.freq_once_per_bar_close)
alert("Sell Entry Sound", alert.freq_once_per_bar_close)
// Plotting lines for open trades
var float long_price = na
var float short_price = na
// For Long Position: Plot the entry line at the price of the open position
if (strategy.opentrades > 0)
if (strategy.opentrades.entry_id(0) == "Long" and not na(strategy.opentrades.entry_price(0)))
long_price := strategy.opentrades.entry_price(0)
if (strategy.opentrades.entry_id(0) == "Short" and not na(strategy.opentrades.entry_price(0)))
short_price := strategy.opentrades.entry_price(0)
plot(long_price, color=color.green, style=plot.style_line, linewidth=2, title="Long Entry Line", offset=-1)
plot(short_price, color=color.red, style=plot.style_line, linewidth=2, title="Short Entry Line", offset=-1)