Strategi RSI Moving Average Crossover

Penulis:ChaoZhang, Tanggal: 2023-11-07 15:35:58
Tag:

img

Gambaran umum

RSI Moving Average Crossover Strategy adalah strategi yang sebagian besar digunakan untuk perdagangan cryptocurrency. Ini menerapkan rata-rata bergerak ke indikator RSI dan perdagangan berdasarkan crossover antara RSI dan rata-rata bergerak.

Logika Strategi

Strategi ini pertama-tama menghitung indikator RSI. Indikator RSI mencerminkan kekuatan harga berdasarkan pergerakan naik dan turun selama periode waktu tertentu. RSI di atas 70 dianggap terlalu banyak dibeli, dan di bawah 30 terlalu banyak dijual.

Kemudian, strategi menerapkan rata-rata bergerak ke indikator RSI. Rata-rata bergerak dapat menyaring fluktuasi acak dan menentukan arah tren.

Ketika RSI melintasi di atas rata-rata bergeraknya, itu dianggap sinyal beli. Ketika RSI melintasi di bawah rata-rata bergeraknya, itu dianggap sinyal jual. Perdagangan dilakukan sesuai dengan kedua sinyal ini.

Dalam kode, indikator RSI dengan durasi periode dihitung terlebih dahulu. Kemudian rata-rata bergerak 10 periode ma dari RSI dihitung. Ketika ma melintasi di atas rsi, itu akan membeli. Ketika ma melintasi di bawah rsi, itu akan menjual.

Selain itu, kode memetakan grafik garis untuk rsi dan ma, serta grafik kolom untuk rsi-ma. garis pemisah untuk rsi = 70 dan rsi = 30 juga dipetakan. panah sinyal yang sesuai ditandai pada grafik saat membeli atau menjual.

Analisis Keuntungan

  • RSI dapat menilai kondisi overbought dan oversold. moving average dapat menyaring fluktuasi acak. kombinasi keduanya dapat mengidentifikasi titik pembalikan tren.

  • RSI moving average crossover adalah ide strategi trading yang relatif matang yang dapat menyaring beberapa sinyal palsu.

  • Kode strategi sederhana dan jelas, mudah dimengerti.

  • Strategi ini bekerja dengan baik untuk cryptocurrency dengan tren yang relatif jelas.

Analisis Risiko

  • RSI yang tidak tepat dan parameter rata-rata periode bergerak dapat menghasilkan terlalu banyak sinyal yang salah.

  • Mengandalkan crossover indikator saja tidak bisa sepenuhnya menghindari terjebak.

  • Biaya perdagangan dapat memiliki beberapa dampak pada keuntungan. ukuran posisi perlu dioptimalkan.

  • Volatilitas pasar crypto tinggi.

Untuk mengatasi risiko, parameter dapat disesuaikan untuk mengoptimalkan indikator, ukuran posisi dapat dikurangi, stop loss dapat ditetapkan, dan analisis tren dapat digunakan untuk menyaring sinyal.

Arahan Optimasi

  • Penelitian kombinasi optimal dari RSI dan moving average di bawah parameter periode yang berbeda.

  • Meningkatkan ukuran posisi ketika tren kuat, dan mengurangi ketika tren tidak jelas.

  • Atur stop loss dinamis untuk mengikuti tren.

  • Jelajahi menggabungkan RSI dengan indikator lain untuk membentuk sinyal perdagangan baru.

  • Jelajahi model pembelajaran mesin berdasarkan strategi ini untuk meningkatkan tingkat kemenangan.

Ringkasan

Strategi crossover rata-rata bergerak RSI menggabungkan keuntungan dari indikator tren dan penyaringan, relatif matang dan dapat diandalkan. Logika strategi sederhana dan jelas, dan implementasi kode juga cukup lengkap. Secara keseluruhan ini adalah strategi perdagangan cryptocurrency yang cukup baik. Tetapi setiap strategi membutuhkan optimasi. Ini membutuhkan pengujian dan penyesuaian konstan, dikombinasikan dengan analisis tren, untuk mencapai kinerja strategi yang lebih baik.


/*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)

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













Lebih banyak