Trend Mengikuti Purata Pergerakan Strategi RSI


Tarikh penciptaan: 2023-11-23 17:13:06 Akhirnya diubah suai: 2023-11-23 17:13:06
Salin: 0 Bilangan klik: 626
1
fokus pada
1617
Pengikut

Trend Mengikuti Purata Pergerakan Strategi RSI

Gambaran keseluruhan

Strategi RSI bergerak mengikut trend adalah strategi perdagangan automatik saham yang menggunakan analisis trend dan indikator overbought dan oversold pada masa yang sama. Strategi ini menggunakan purata bergerak sederhana untuk menentukan arah trend pasaran, dan menggabungkan indikator ((RSI) yang agak kuat untuk menghantar isyarat perdagangan untuk menilai dan menjejaki trend.

Prinsip Strategi

Strategi ini terdiri daripada tiga bahagian utama:

  1. Penghakiman trend: mengira purata bergerak mudah 200 hari untuk trend jangka panjang, mengira purata bergerak mudah 30 dan 50 hari untuk trend jangka pendek. Apabila purata bergerak jangka pendek melintasi purata bergerak jangka panjang sebagai isyarat bullish, melintasi isyarat bearish, menilai trend jangka pendek jangka panjang di pasaran.

  2. Pertimbangan overbought/oversold: Mengira RSI 14 hari, RSI lebih tinggi daripada 80 adalah kawasan overbought, dan lebih rendah daripada 20 adalah kawasan oversold. Isyarat perdagangan dikeluarkan apabila RSI turun dari kawasan overbought atau naik dari kawasan oversold.

  3. Masuk dan keluar: Apabila menilai isyarat overbought dan oversold, masuklah jika sama dengan arah isyarat trend. Apabila persilangan emas berlaku antara purata bergerak jangka pendek dan jangka panjang, penilaian trend berbalik, ketika itu keluar dari posisi kosong.

Dengan strategi ini, anda boleh masuk tepat pada masanya apabila harga saham berbalik, dan dengan cara ini anda dapat menyaring sebahagian daripada perdagangan bising, dan anda boleh mengawal penarikan balik.

Analisis kelebihan

Strategi ini mempunyai beberapa kelebihan:

  1. Menggabungkan penilaian trend dan indikator overbought dan oversold, ia menapis bunyi bising dan mengenal pasti titik-titik perubahan.
  2. Pada masa yang sama mempertimbangkan arah trend dalam kedua-dua tempoh masa yang panjang dan pendek, penghakiman lebih tepat.
  3. Menggunakan purata bergerak sebagai kaedah berhenti, anda boleh menetapkan titik berhenti berdasarkan tahap turun naik pasaran.
  4. Syarat kemasukan yang ketat dapat menghalang penembusan palsu.

Risiko dan Penyelesaian

Strategi ini mempunyai beberapa risiko:

  1. Jika pasaran bergolak untuk jangka masa yang panjang, ia akan membuka banyak dagangan tidak sah. Penyelesaian adalah dengan menambah lebih banyak syarat penapis untuk mengelakkan dagangan yang tidak berguna.
  2. Terdapat risiko ketinggalan masa tertentu. Penyelesaian adalah dengan cara yang sesuai untuk mempersingkat parameter kitaran purata bergerak.
  3. Kesan isyarat RSI akan dipengaruhi oleh saham dan pasaran. Penyelesaian adalah menggabungkan lebih banyak faktor untuk menilai kesannya, seperti bentuk garis K.

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dalam beberapa aspek:

  1. Menambah lebih banyak syarat-syarat gelombang filter, seperti jumlah pertukaran, bentuk K-line, dan lain-lain, untuk meningkatkan lagi keberkesanan isyarat.
  2. Mengoptimumkan kitaran parameter purata bergerak dan RSI untuk menjadikannya lebih sesuai dengan ciri-ciri saham yang berbeza.
  3. Membangunkan purata bergerak dinamik yang menyesuaikan parameter secara automatik mengikut turun naik pasaran dan keutamaan risiko.
  4. Menggunakan teknologi yang lebih maju seperti pembelajaran mesin untuk menilai trend pasaran, meningkatkan ketepatan penilaian.

ringkaskan

Strategi RSI purata bergerak yang mengikuti trend adalah strategi yang sangat praktikal secara keseluruhan, dan menggabungkan analisis trend dan indikator overbought dan oversold, memfilter ke tahap tertentu dari bunyi pasaran, menjadikan isyarat perdagangan lebih tepat dan berkesan. Dengan cara dan parameter yang terus dioptimumkan, strategi ini dapat menjadi sistem perdagangan jangka panjang yang stabil dan menguntungkan.

Kod 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)