Strategi Reversal Momentum Breakout adalah strategi perdagangan kuantitatif yang menghasilkan sinyal perdagangan menggunakan pembalikan harga dan indikator momentum. Berdasarkan teori
Logika inti dari strategi ini adalah untuk mengidentifikasi titik pembalikan pasar dengan menghitung harga tertinggi dan terendah selama jendela retrospeksi tertentu (misalnya 20 hari).
Menghitung harga tertinggi (window_high) dan harga terendah (window_low) selama 20 hari terakhir.
Jika tinggi hari ini lebih tinggi dari maksimum 20 hari terakhir (atas 20 hari baru), masukkan periode pemantauan pembalikan tinggi dan atur penghitung menjadi 5 hari.
Jika tidak terjadi tinggi baru, kurangi penghitung dengan 1 setiap hari.
Logika penilaian untuk harga terendah adalah sama. Jika terendah baru terjadi, masukkan periode pemantauan pembalikan rendah.
Posisi panjang dan pendek diambil dalam periode pemantauan pembalikan.
Strategi ini juga menetapkan waktu awal perdagangan untuk menghindari menghasilkan sinyal pada data historis.
Strategi Reversal Momentum Breakout memiliki keuntungan utama berikut:
Menangkap peluang pembalikan, cocok untuk tren pembalikan. Pasar sering menunjukkan beberapa tingkat pembalikan setelah tren naik atau turun yang berkelanjutan. Strategi ini bertujuan untuk menangkap titik balik ini.
Pelacakan harga tertinggi dan terendah melalui jendela dapat secara sensitif mengidentifikasi tren pembalikan harga dan waktu.
Periode pemantauan pembalikan menghindari sinyal palsu. Sinyal dihasilkan hanya di sekitar titik pembalikan kunci, menyaring beberapa kebisingan.
Memungkinkan posisi panjang dan pendek. Bergantian antara panjang dan pendek mengikuti arah pasar.
Logika yang relatif sederhana, mudah diimplementasikan. Terutama bergantung pada harga dan indikator momentum sederhana, mudah untuk kode.
Risiko utama dari strategi ini meliputi:
Prediksi pembalikan yang tidak akurat. Strategi dapat menimbulkan kerugian jika tren pasar ke arah.
Tren pasar secara keseluruhan tidak dipertimbangkan. Pembalikan saham individu tidak selalu mewakili pembalikan pasar. Analisis pasar harus digabungkan.
Penarikan yang berpotensi besar. Penarikan dapat berkembang tanpa pembalikan yang sebenarnya.
Data yang cocok bias. kinerja mungkin berbeda secara signifikan dari backtest.
Periode jendela, parameter counter dll mempengaruhi stabilitas.
Metode pengendalian risiko yang sesuai termasuk mengoptimalkan stop loss, menggabungkan faktor pasar, menyesuaikan kombinasi parameter dan memverifikasi stabilitas.
Arah optimasi utama meliputi:
Masukkan indikator pasar. Menilai kekuatan pasar untuk menghindari lingkungan gambar besar yang tidak menguntungkan.
Pilihan saham multi-faktor. Pilih saham dengan fundamental yang kuat dan overvaluation.
Optimasi parameter. Sesuaikan periode jendela dan parameter counter untuk menemukan kombinasi parameter yang optimal.
Tambahkan strategi stop loss misalnya trailing stop, volatility stop untuk mengontrol maximum drawdown.
Meningkatkan keakuratan prediktif pembelajaran mesin dari pembalikan harga.
Strategi Reversal Momentum Breakout mengidentifikasi peluang pembalikan dengan melacak harga dan momentum. Ini bereaksi secara sensitif dan mengidentifikasi tren pembalikan dan waktu. Tetapi memiliki risiko yang membutuhkan optimasi dan pengendalian risiko yang tepat. Secara keseluruhan, ketika dipahami dan dioptimalkan secara menyeluruh, ini dapat membentuk komponen yang efektif dari sistem perdagangan kuantitatif.
/*backtest start: 2023-02-16 00:00:00 end: 2024-02-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("New Highs and Lows Momentum Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) window = input.int(20, title="New Highs and Lows Window", minval=1) decay = input.int(5, title="Decay", minval=1) startDate = input(timestamp("1 Jan 2023"), title = "Start Date") allowShort = input.bool(false, title = "Allow shorting") var int highDecayCounter = 0 var bool isHighPeriod = false var int lowDecayCounter = 0 var bool isLowPeriod = false inTradeWindow = true window_high = ta.highest(close, window) window_low = ta.lowest(low, window) // Logic for Highs if window_high > ta.highest(close, window)[1] highDecayCounter := decay isHighPeriod := true else if highDecayCounter > 0 highDecayCounter := highDecayCounter - 1 else isHighPeriod := false // Logic for Lows if window_low < ta.lowest(low, window)[1] lowDecayCounter := decay isLowPeriod := true else if lowDecayCounter > 0 lowDecayCounter := lowDecayCounter - 1 else isLowPeriod := false // Strategy Execution if inTradeWindow if isHighPeriod and highDecayCounter == decay strategy.entry("Long", strategy.long) if isHighPeriod and highDecayCounter == 0 strategy.close("Long") if isLowPeriod and lowDecayCounter == decay and allowShort strategy.entry("Short", strategy.short) if isLowPeriod and lowDecayCounter == 0 and allowShort strategy.close("Short") // Plotting plot(window_high, color=color.green) plot(window_low, color=color.red)