
Strategi ini menggunakan indikator RSI dan rata-rata bergerak cepat dan lambat untuk menentukan waktu untuk membeli dan menjual. Ketika RSI naik 5 poin dan berada di bawah 70, dan ketika rata-rata bergerak selama 9 hari melewati rata-rata bergerak selama 50 hari, lakukan lebih banyak; dan ketika rata-rata bergerak selama 9 hari melewati rata-rata bergerak selama 50 hari, posisi kosong.
Strategi ini terutama menggunakan kombinasi indikator RSI dan moving average. RSI dapat menunjukkan apakah saham atau mata uang digital terlalu tinggi atau terlalu rendah. Ketika RSI di bawah 30 dianggap oversold, dan ketika di atas 70 dianggap overbought. Strategi ini menggunakan indikator RSI untuk menentukan apakah berada di daerah oversold untuk memutuskan kapan saatnya untuk membeli.
Moving average digunakan secara luas untuk menentukan arah tren. Moving average yang cepat dapat menangkap perubahan harga lebih cepat, sedangkan moving average yang lambat dapat memfilter terobosan palsu. Ketika moving average yang lambat dipotong di atas moving average yang cepat, berarti mulai memasuki tren naik; sebaliknya, turun berarti memasuki tren turun.
Keuntungan terbesar dari strategi ini adalah bahwa dengan indikator RSI untuk menentukan apakah ada daerah oversold, menghindari buy tinggi; dan menggunakan cepat dan lambat rata-rata bergerak filter palsu terobosan, mengunci arah tren, dapat memperoleh tingkat keuntungan yang lebih tinggi.
Strategi ini juga menambahkan kondisi RSI naik 5 poin secara berturut-turut untuk menghindari pembelian yang tidak perlu di zona overbought. Selain itu, strategi ini menggunakan beberapa metode perdagangan posisi untuk mengurangi risiko kerugian dalam satu perdagangan.
Risiko terbesar dari strategi ini adalah bahwa indikator RSI dan moving average dapat mengalami lag. Ketika harga berubah drastis, sinyal mereka dapat tertinggal, menyebabkan risiko membeli posisi tinggi atau menjual posisi rendah.
Untuk mencegah risiko ini, strategi ini menambahkan rata-rata bergerak cepat, memanfaatkan fitur yang lebih cepat merespons perubahan harga untuk mengurangi kemungkinan keterlambatan. Selain itu, perdagangan posisi sebagian juga dapat mengurangi kerugian perdagangan tunggal.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Uji parameter indikator RSI untuk berbagai periode untuk menemukan kombinasi parameter yang optimal
Uji lebih banyak kombinasi rata-rata bergerak cepat dan lambat untuk mendapatkan filter yang lebih baik
Optimalkan ukuran posisi, uji parameter posisi yang berbeda
Meningkatkan kondisi stop loss untuk mengunci keuntungan
Strategi ini sangat cocok untuk perdagangan tren secara keseluruhan. Menghindari daerah oversold melalui indikator RSI, bekerja dengan rata-rata bergerak cepat untuk menentukan arah tren dan resistensi pendukung yang penting.
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
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/
// © Coinrule
//@version=5
strategy("RSI with Slow and Fast MA Crossing Strategy (by Coinrule)",
overlay=true,
initial_capital=10000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0
// RSI
length = input(14)
vrsi = ta.rsi(close, length)
// Moving Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)
increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
strategy.entry("Long", strategy.long)
// Moving Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)
condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)
strategy.close('Long', when = condition and timePeriod)