
Strategi RSI adalah strategi perdagangan otomatis saham yang menggunakan analisis tren dan indikator overbought dan oversold. Strategi ini menggunakan rata-rata bergerak sederhana untuk menentukan arah tren pasar, dan menggabungkan indikator RSI yang relatif kuat untuk mengirimkan sinyal perdagangan untuk menilai dan melacak tren.
Strategi ini terdiri dari tiga bagian utama:
Pengertian tren: menghitung 200 hari rata-rata bergerak sederhana dari tren jangka panjang, menghitung 30 dan 50 hari rata-rata bergerak sederhana dari tren jangka pendek. Ketika bergerak rata-rata jangka pendek melewati rata-rata bergerak jangka panjang sebagai sinyal bullish, turun sebagai sinyal bearish, menilai tren jangka panjang pasar.
Overbought oversold judgment: Perhitungan RSI 14 hari, RSI di atas 80 adalah zona overbought, di bawah 20 adalah zona oversold. Sinyal perdagangan dikirim ketika RSI turun dari zona overbought atau naik dari zona oversold.
Masuk dan keluar: Ketika menilai sinyal overbought dan oversold, jika arah sinyal sesuai dengan penilaian tren, maka masuklah lebih / lebih rendah. Ketika persimpangan emas terjadi antara rata-rata bergerak jangka pendek dan jangka panjang, penilaian tren berbalik, saat ini posisi kosong keluar.
Dengan strategi ini, Anda dapat masuk tepat waktu ketika harga saham berbalik, dan dengan cara ini Anda dapat memfilter sebagian dari perdagangan yang berisik, yang relatif baik dalam pengendalian penarikan balik.
Strategi ini memiliki beberapa keuntungan:
Strategi ini juga memiliki beberapa risiko:
Strategi ini juga dapat dioptimalkan dalam beberapa hal:
Strategi RSI yang melacak tren adalah strategi yang sangat praktis secara keseluruhan, dan dalam kombinasi dengan analisis tren dan indikator overbought dan oversold, memfilter kebisingan pasar hingga tingkat tertentu, membuat sinyal perdagangan lebih akurat dan efektif. Dengan terus mengoptimalkan sarana dan parameter, strategi ini dapat menjadi sistem perdagangan jangka panjang yang stabil dan menguntungkan.
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mattehalen
// INPUT per TIMEFRAME
// 5min = Legnth = 9, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 4, LongMA = 10
// 30min = Legnth = 7, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 10, LongMA = 20
strategy("Mathias & Christer Timeframe RSI", shorttitle="M&C_RSI",overlay=true, process_orders_on_close = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input(9, title="Length", type=input.integer)
src = input(ohlc4, title="Source", type=input.source)
//show4h = input(true, title="show 4h", type=input.bool)
maxLoss = input(3000)
rsiCurrent = rsi(src, len)
//rsi4h = security(syminfo.ticker, "240", rsi(src, len))
rsi4h = rsi(src, len)
//--------------------------------------------------
//MA
trendMAInput = input(200, title="trendMA", type=input.integer)
shortMAInput = input(30, title="shortMA", type=input.integer)
longMAInput = input(50, title="longMA", type=input.integer)
trendMA = ema(close,trendMAInput)
shortMA = ema(close,shortMAInput)
longMA = ema(close,longMAInput)
plot(trendMA, color=color.black, linewidth=5)
plot(shortMA, color=color.red, linewidth=2)
plot(longMA, color=color.green, linewidth=2)
bgcolor(crossunder(shortMA,longMA) ? color.black : na, transp=10)
//--------------------------------------------------
//RSI
BuySignalBarssince = barssince(rsi4h[1]<rsi4h[0] and rsi4h[1]<20)
BuySignal = (rsi4h[1]<rsi4h[0] and rsi4h[1]<20 and BuySignalBarssince[1]>10)
BuySignalOut = crossunder(longMA[1],shortMA[1])
bgcolor(BuySignal ? color.green : na, transp=70)
bgcolor(BuySignalOut ? color.green : na, transp=10)
SellSignalBarssince = barssince(rsi4h[1]>rsi4h[0] and rsi4h[1]>80)
SellSignal = (rsi4h[1]>rsi4h[0] and rsi4h[1]>80 and SellSignalBarssince[1]>10)
SellSignalOut = crossunder(shortMA[1],longMA[1])
bgcolor(SellSignal ? color.red : na, transp=70)
bgcolor(SellSignalOut ? color.red : na, transp=10)
if BuySignal
strategy.close("short", comment = "Exit short")
strategy.entry("long", true)
strategy.exit("Max Loss", "long", loss = maxLoss)
if BuySignalOut
strategy.close("long", comment = "Exit Long")
if SellSignal
// Enter trade and issue exit order on max loss.
strategy.close("long", comment = "Exit Long")
strategy.entry("short", false)
strategy.exit("Max Loss", "short", loss = maxLoss)
if SellSignalOut
// Force trade exit.
strategy.close("short", comment = "Exit short")
//--------------------------------------------------
//ATR
MyAtr = atr(10)
AtrFactor = 10
mySLBuy = close[BuySignalBarssince]
mySLSell = close[SellSignalBarssince]
plotchar(BuySignal, "BuySignal", "⬆", location.belowbar, color.lime,size =size.huge )
plotchar(BuySignalOut, "BuySignalOut", "█", location.belowbar, color.lime,size =size.small)
plotchar(SellSignal, "SellSignal", "⬇", location.abovebar ,color.red,size =size.huge)
plotchar(SellSignalOut, "SellSignalOut", "█", location.abovebar, color.red,size =size.small)