Strategi Mengikuti Tren Rata-rata Pergerakan RSI


Tanggal Pembuatan: 2023-11-23 17:13:06 Akhirnya memodifikasi: 2023-11-23 17:13:06
menyalin: 0 Jumlah klik: 626
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Rata-rata Pergerakan RSI

Ringkasan

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.

Prinsip Strategi

Strategi ini terdiri dari tiga bagian utama:

  1. 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.

  2. 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.

  3. 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.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan:

  1. Dengan menggunakan indikator overbought dan oversold, filter noise dan identifikasi titik balik.
  2. Selain itu, pertimbangan arah tren dalam dua periode waktu yang lebih panjang dan lebih pendek, membuat penilaian lebih akurat.
  3. Menggunakan moving average sebagai metode stop loss, Anda dapat mengatur stop loss sesuai dengan tingkat fluktuasi pasar.
  4. Kondisi masuk yang ketat, dapat secara efektif mencegah penembakan palsu.

Risiko dan Solusi

Strategi ini juga memiliki beberapa risiko:

  1. Jika terjadi long-term volatility, maka akan ada banyak trading yang tidak valid. Solusinya adalah dengan menambahkan lebih banyak filter untuk menghindari trading yang tidak berguna.
  2. Ada risiko keterlambatan waktu tertentu. Solusinya adalah mempersingkat parameter periodik rata-rata bergerak secara tepat.
  3. Efek dari sinyal RSI dipengaruhi oleh saham dan pasar. Solusinya adalah menggabungkan lebih banyak faktor seperti bentuk garis K untuk menilai efeknya.

Arah optimasi

Strategi ini juga dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan lebih banyak kondisi filter, seperti jumlah pertukaran, bentuk K-line, dan lain-lain, untuk meningkatkan efektivitas sinyal lebih lanjut.
  2. Mengoptimalkan siklus parameter moving average dan RSI agar lebih sesuai dengan karakteristik saham yang berbeda.
  3. Membangun Moving Average yang dinamis, menyesuaikan parameter secara otomatis sesuai dengan volatilitas pasar dan preferensi risiko.
  4. Menggunakan teknologi yang lebih canggih seperti pembelajaran mesin untuk menilai tren pasar, meningkatkan akurasi penilaian.

Meringkaskan

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.

Kode Sumber Strategi
/*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)