Strategi Crossover Rata-rata Pergerakan RSI


Tanggal Pembuatan: 2023-11-07 15:35:58 Akhirnya memodifikasi: 2023-11-07 15:35:58
menyalin: 0 Jumlah klik: 1005
1
fokus pada
1621
Pengikut

Strategi Crossover Rata-rata Pergerakan RSI

Ringkasan

Strategi RSI Average Line Crossover adalah strategi yang diterapkan untuk perdagangan cryptocurrency. Strategi ini menerapkan moving average pada indikator RSI dan mengirimkan sinyal beli dan jual berdasarkan perpotongan RSI dengan moving average-nya.

Prinsip Strategi

Strategi ini pertama-tama menghitung indikator RSI. Indikator RSI didasarkan pada perubahan turun naik dalam jangka waktu tertentu, yang mencerminkan kekuatan harga. RSI lebih besar dari 70 adalah zona overbought, dan lebih kecil dari 30 adalah zona oversold.

Strategi ini kemudian menerapkan moving average berdasarkan indikator RSI. Moving average dapat menyaring fluktuasi acak dan menentukan arah tren. Di sini, RSI Moving Average ditetapkan untuk 10 siklus.

Ketika RSI di atas melewati rata-rata bergeraknya, dianggap sebagai sinyal beli; ketika RSI di bawah melewati rata-rata bergeraknya, dianggap sebagai sinyal jual. Berdagang berdasarkan kedua sinyal tersebut.

Dalam kode, pertama-tama menghitung indikator RSI untuk siklus panjang. Kemudian menghitung rata-rata bergerak dari 10 siklus RSI ma. Ketika ma melewati rsi, beli; ketika ma melewati rsi, jual.

Selain itu, kode ini juga memetakan diagram linier rsi, ma, dan diagram kolom rsi-ma. Garis pemisah rsi = 70, rsi = 30 dipetakan. Dan tanda panah sinyal yang sesuai ditandai pada diagram ketika membeli dan menjual.

Analisis Keunggulan Strategi

  • Indikator RSI dapat menilai overbought dan oversold, dan rata-rata bergerak dapat memfilter fluktuasi acak, yang dapat ditemukan pada titik-titik pergeseran tren.
  • RSI Average Line Crossover adalah strategi perdagangan yang lebih matang yang dapat memfilter beberapa sinyal palsu.
  • Kode strategi ini sederhana, jelas, dan mudah dipahami. Fungsi pemetaan lengkap, sehingga sinyal perdagangan dapat dilihat dengan jelas.
  • Strategi ini bekerja lebih baik untuk mata uang kripto yang lebih jelas tren.

Analisis Risiko Strategi

  • RSI dan Moving Average menggunakan parameter periodik yang tidak tepat, yang dapat menyebabkan terlalu banyak sinyal yang salah.
  • Hanya mengandalkan crossover tidak dapat sepenuhnya menghindari kecurangan.
  • Biaya transaksi akan berdampak pada keuntungan. Perlu optimasi manajemen posisi.
  • Pasar cryptocurrency sangat berfluktuasi, perlu waspada terhadap risiko kerugian.

Untuk risiko, parameter dapat disesuaikan untuk mengoptimalkan efek indikator, mengurangi posisi dengan tepat, mengatur garis stop loss, dan bekerja dengan analisis tren untuk memfilter sinyal.

Arah optimasi strategi

  • Kombinasi optimal RSI dan garis rata-rata yang dapat dipelajari dengan parameter periode yang berbeda
  • Anda dapat meningkatkan posisi jika tren kuat, dan mengurangi posisi jika tren tidak jelas
  • Anda dapat mengatur stop loss dinamis, dan stop loss mengikuti tren.
  • Indikator lain dapat dieksplorasi dalam kombinasi dengan RSI untuk membentuk sinyal perdagangan baru
  • Model pembelajaran mesin yang didasarkan pada strategi ini dapat dieksplorasi untuk meningkatkan tingkat keberhasilan strategi

Meringkaskan

Strategi RSI linear crossover menggabungkan keunggulan indikator tren dan indikator filter, relatif matang dan dapat diandalkan. Logika strategi ini sederhana dan mudah dimengerti, implementasi kode juga lebih lengkap, secara keseluruhan merupakan strategi perdagangan cryptocurrency yang lebih baik. Tetapi setiap strategi memiliki tempat yang perlu dioptimalkan, perlu tes terus menerus dan penyesuaian, serta penilaian tren, untuk mendapatkan efek strategi yang lebih baik.

Kode Sumber Strategi
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI w MA Strategy", shorttitle="RSI w MA Strategy", overlay=false, initial_capital=10000, currency='USD',process_orders_on_close=true)

//TIME FRAME AND BACKGROUND CONTROL/////////////////////////////////////////////
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(01, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2022, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   color.teal : na
//bgcolor(testPeriodBackgroundColor, transp=50)
testPeriod() => true
////////////////////////////////////////////////////////////////////////////////

src = close, len = input(27, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
window = input(10, "RSI MA Window")
ma = sma(rsi,window)
plot(rsi, color=color.orange)
colorr= ma > rsi ? color.red : color.green
plot(ma,color=colorr)
band1 = hline(70)
band0 = hline(30)
fill(band1, band0, color=color.purple, transp=90)
diff = rsi - ma

plot(diff,style= plot.style_columns,transp=50,color = colorr)

plotshape(crossunder(rsi,ma)?rsi:na,title="top",style=shape.triangledown,location=location.absolute,size=size.tiny,color=color.red,transp=0)
plotshape(crossover(rsi,ma)?rsi:na,title="bottom",style=shape.triangleup,location=location.absolute,size=size.tiny,color=color.lime,transp=0)

buySignal = crossover(rsi,ma)
sellSignal = crossunder(rsi,ma)

//TRADE CONTROL/////////////////////////////////////////////////////////////////
if testPeriod()
    if buySignal
        strategy.close("Short", qty_percent = 100, comment = "Close Short")
        strategy.entry("Long", strategy.long, qty=.1)

    if sellSignal
        strategy.close("Long", qty_percent = 100, comment = "Close Long")
        strategy.entry("Short", strategy.short, qty=.1)

////////////////////////////////////////////////////////////////////////////////