Strategi ini menggunakan indikator RSI untuk mengidentifikasi tren dan kondisi overbought / oversold. Dikombinasikan dengan EMA untuk menentukan arah tren saat ini, ia membuka posisi terbalik ketika arah tren konsisten dengan sinyal RSI untuk menerapkan perdagangan reversi rata-rata.
Gunakan indikator EMA untuk menentukan arah tren saat ini. Di atas EMA mendefinisikan tren naik sementara di bawah EMA mendefinisikan tren turun.
Gunakan indikator RSI untuk mengidentifikasi kondisi overbought/oversold. RSI di atas 60 adalah zona overbought dan di bawah 40 adalah zona oversold.
Ketika uptrend dan RSI di bawah 40, sinyal beli dipicu.
Ketika sinyal beli/jual dipicu, harga mengambil keuntungan dan stop loss ditetapkan berdasarkan persentase tertentu dari harga masuk.
Bila ukuran posisi lebih besar dari 0, take profit order ditempatkan. Bila ukuran posisi kurang dari 0, stop loss order ditempatkan.
Strategi ini secara wajar menggabungkan EMA dan RSI untuk mengidentifikasi tren dan kondisi overbought/oversold, menghindari perdagangan terhadap tren.
Pendekatan reversi rata-rata menangkap rotasi jangka pendek untuk keuntungan.
Mengambil keuntungan dan titik stop loss membantu mengunci keuntungan dan mengendalikan risiko.
Logika yang sederhana dan jelas, mudah dimengerti dan diterapkan, cocok untuk pemula.
Parameter seperti periode EMA dan RSI dapat dioptimalkan untuk produk dan lingkungan pasar yang berbeda.
Risiko pembalikan gagal. pembalikan jangka pendek mungkin gagal, mengakibatkan kerugian.
Risiko tren yang tidak jelas EMA mungkin gagal mengidentifikasi tren yang jelas di berbagai pasar, menghasilkan sinyal yang salah.
Stop loss triggered risk. Stop loss yang diatur terlalu dekat dapat diaktifkan secara tak terduga.
Risiko overfitting. Optimasi yang berlebihan pada data historis mungkin tidak berlaku untuk perdagangan langsung.
Risiko frekuensi perdagangan yang tinggi. perdagangan yang terlalu sering menimbulkan biaya transaksi yang signifikan.
Mengoptimalkan EMA dan RSI parameter untuk menemukan kombinasi terbaik melalui backtesting.
Tambahkan filter untuk menghindari sinyal yang salah dalam pasar yang bervariasi.
Optimalkan rasio take profit/stop loss untuk mengunci keuntungan. Stop loss seharusnya tidak terlalu luas.
Tambahkan aturan ukuran posisi seperti pecahan tetap untuk mengendalikan kerugian perdagangan tunggal.
Menggabungkan indikator lain seperti MACD, KD untuk meningkatkan akurasi sinyal atau menggunakan model multivariate.
Backtest pada data hidup dan terus-menerus mengoptimalkan untuk kondisi pasar terbaru.
Strategi ini mengimplementasikan pendekatan reversi rata-rata jangka pendek berdasarkan EMA dan RSI, dengan logika yang jelas dari identifikasi tren dan deteksi overbought / oversold. Ini mengatur mengambil keuntungan dan menghentikan kerugian untuk mengendalikan risiko sambil mendapatkan keuntungan dari rotasi jangka pendek. Kesederhanaan dan kejelasan adalah keuntungannya. Optimasi lebih lanjut dapat menghasilkan hasil backtest yang baik. Tetapi risiko seperti pembalikan yang gagal dan pasar berkisar harus dicatat untuk perdagangan langsung. Secara keseluruhan, ini memberikan ide perdagangan jangka pendek yang sederhana dan praktis bagi pemula untuk belajar.
/*backtest start: 2023-10-24 00:00:00 end: 2023-10-31 00:00:00 period: 5m basePeriod: 1m 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/ // © Sarahann999 //@version=5 strategy("RSI Strategy", shorttitle="RSI", overlay= false) //Inputs long_entry = input(true, title='Long Entry') short_entry = input(true, title='Short Entry') emaSettings = input(100, 'EMA Length') ema = ta.ema(close,emaSettings) rsi = ta.rsi(close,14) //Conditions uptrend = close > ema downtrend = close < ema OB = rsi > 60 OS = rsi < 40 buySignal = uptrend and OS and strategy.position_size == 0 sellSignal = downtrend and OB and strategy.position_size == 0 //Calculate Take Profit Percentage longProfitPerc = input.float(title="Long Take Profit", group='Take Profit Percentage', minval=0.0, step=0.1, defval=1) / 100 shortProfitPerc = input.float(title="Short Take Profit", minval=0.0, step=0.1, defval=1) / 100 // Figure out take profit price 1 longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // Make inputs that set the stop % 1 longStopPerc = input.float(title="Long Stop Loss", group='Stop Percentage', minval=0.0, step=0.1, defval=1.5) / 100 shortStopPerc = input.float(title="Short Stop Loss", minval=0.0, step=0.1, defval=1.5) / 100 // Figure Out Stop Price longStopPrice = strategy.position_avg_price * (1 - longStopPerc) shortStopPrice = strategy.position_avg_price * (1 + shortStopPerc) // Submit entry orders if buySignal and long_entry strategy.entry(id="Long", direction=strategy.long, alert_message="Enter Long") if sellSignal and short_entry strategy.entry(id="Short", direction=strategy.short, alert_message="Enter Short") //Submit exit orders based on take profit price if (strategy.position_size > 0) strategy.exit(id="Long TP/SL", limit=longExitPrice, stop=longStopPrice, alert_message="Long Exit 1 at {{close}}") if (strategy.position_size < 0) strategy.exit(id="Short TP/SL", limit=shortExitPrice, stop=shortStopPrice, alert_message="Short Exit 1 at {{close}}") //note: for custom alert messages to read, "{{strategy.order.alert_message}}" must be placed into the alert dialogue box when the alert is set. plot(rsi, color= color.gray) hline(40, "RSI Lower Band") hline(60, "RSI Upper Band")