Alpha RSI breakout trading strategy adalah strategi trading breakout yang didasarkan pada indikator RSI. Strategi ini menggunakan indikator RSI untuk mengidentifikasi kondisi overbought dan oversold dan dikombinasikan dengan moving average untuk menentukan arah tren.
Strategi ini terutama didasarkan pada logika berikut:
Ketika RSI melebihi ambang overbought (default 70), aset dianggap overbought dan perdagangan short dibuka.
Ketika RSI melintasi di bawah ambang oversold (default 30), aset dianggap oversold dan perdagangan panjang dibuka.
Rata-rata bergerak SMA digunakan untuk menentukan tren utama. Perdagangan hanya dilakukan ketika tren setuju dengan sinyal RSI.
Secara khusus, strategi ini mencakup:
Input untuk periode SMA (default 200), periode RSI (default 14), level entry RSI (default 34), level stop loss (default 30), level take profit (default 50).
Perhitungan nilai SMA dan RSI.
Posisi panjang dimasukkan ketika RSI melintasi di atas level entry dan close berada di atas SMA.
Setelah membuka long, stop loss diperbarui ke posisi terendah dari close sebelumnya.
Posisi panjang ditutup ketika: a) RSI turun di bawah stop loss; b) RSI mencapai take profit; c) Close turun di bawah stop loss.
Hanya perdagangan panjang, tidak pendek.
Strategi ini mengidentifikasi titik pembalikan dengan tingkat overbought/oversold RSI dan memasuki saat-saat kontra-trend yang tepat setelah konfirmasi arah tren utama.
Dibandingkan dengan strategi rata-rata bergerak sederhana, strategi ini memiliki keuntungan berikut:
RSI lebih baik dalam mengidentifikasi titik pembalikan melalui tingkat overbought/oversold.
Perdagangan dilakukan hanya ketika tren sesuai dengan sinyal RSI, mengurangi sinyal palsu.
Mekanisme stop loss dan take profit secara aktif mengelola risiko dan pengembalian.
Stop trailing mengunci lebih banyak keuntungan karena harga bergerak menguntungkan.
Aturan sederhana dan jelas, mudah dipahami bagi pemula.
Strategi ini juga memiliki beberapa risiko yang perlu dicatat:
RSI masih bisa memberikan sinyal palsu. Filter lain seperti volume dapat ditambahkan.
Parameter entri tetap, stop loss, take profit mungkin tidak sesuai dengan semua aset dan kondisi pasar.
Biaya perdagangan tidak dipertimbangkan, spread dan komisi mempengaruhi keuntungan.
Meninggalkan kesempatan untuk menyingkat, bisa menambahkan aturan singkat.
Pertimbangkan aturan manajemen modal yang tepat, misalnya risiko maksimum per perdagangan.
Beberapa cara strategi dapat ditingkatkan:
Tambahkan filter lain seperti volume anomali.
Dinamis mengoptimalkan parameter melalui metode pembelajaran mesin.
Tambahkan aturan shorting untuk menangkap downtrends.
Pertimbangkan biaya perdagangan, mengoptimalkan parameter dengan spesifik aset.
Tambahkan modul manajemen modal, misalnya batas risiko per perdagangan.
Optimasi backtest untuk kombinasi parameter untuk efisiensi yang lebih baik.
Strategi RSI Breakout menggabungkan strategi tren dan pembalikan. Ini mengidentifikasi pembalikan sambil mengendalikan risiko. Meskipun dapat ditingkatkan untuk pasar yang kompleks, ini menyediakan model referensi sederhana untuk pembelajaran strategi kuantum. Dengan optimasi yang tepat, ini bisa menjadi strategi mekanis yang menguntungkan.
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © abdllhatn //@version=5 // strategy("Alpha RSI Breakout Strategy", overlay=true, initial_capital=10000, default_qty_value=100) // Inputs sma_length = input(200, title="SMA Length") rsi_length = input(14, title="RSI Length") rsi_entry = input(34, title="RSI Entry Level") rsi_stop_loss = input(30, title="RSI Stop Loss Level") rsi_take_profit = input(50, title="RSI Take Profit Level") // Indicators sma_value = ta.sma(close, sma_length) rsi_value = ta.rsi(close, rsi_length) var bool trailing_stop_activate = false var float trailingStop = na var float lastClose = na // Conditions longCondition = ta.crossover(rsi_value, rsi_entry) and close > sma_value if (longCondition) strategy.entry("Buy", strategy.long) trailingStop := na lastClose := na trailing_stop_activate := false if (strategy.position_size > 0) if (na(lastClose) or close < lastClose) lastClose := close trailingStop := close if (rsi_value >= rsi_take_profit) trailing_stop_activate := true if (trailing_stop_activate and not na(trailingStop) and close < trailingStop) strategy.close("Buy") if (rsi_value <= rsi_stop_loss) strategy.close("Buy") if (not trailing_stop_activate and rsi_value >= rsi_take_profit) strategy.close("Buy") if (trailing_stop_activate and rsi_value >= rsi_take_profit) strategy.close("Buy") // Plot plot(sma_value, color=color.red, linewidth=2) plot(rsi_value, color=color.blue, linewidth=2)