Strategi RSI Moving Average Crossover

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

img

Ringkasan

RSI Moving Average Crossover Strategy adalah strategi yang kebanyakannya digunakan untuk perdagangan mata wang kripto. Ia menggunakan purata bergerak kepada penunjuk RSI dan perdagangan berdasarkan persilangan antara RSI dan purata bergerak.

Logika Strategi

Strategi ini pertama kali mengira penunjuk RSI. Penunjuk RSI mencerminkan kekuatan harga berdasarkan pergerakan ke atas dan ke bawah dalam jangka masa tertentu. RSI di atas 70 dianggap terlalu banyak dibeli, dan di bawah 30 terlalu banyak dijual.

Kemudian, strategi menerapkan purata bergerak kepada penunjuk RSI. purata bergerak boleh menapis turun naik rawak dan menentukan arah trend. Di sini purata bergerak RSI 10 tempoh ditetapkan.

Apabila RSI melintasi di atas purata bergerak, ia dianggap isyarat beli. Apabila RSI melintasi di bawah purata bergerak, ia dianggap isyarat jual. Dagangan dijalankan mengikut kedua-dua isyarat ini.

Dalam kod, penunjuk RSI dengan tempoh panjang dikira terlebih dahulu. Kemudian purata bergerak 10 tempoh ma RSI dikira. Apabila ma melintasi di atas rsi, ia akan membeli. Apabila ma melintasi di bawah rsi, ia akan menjual.

Di samping itu, kod ini memetakan carta garis untuk rsi dan ma, serta carta lajur untuk rsi-ma. Garis pembahagian untuk rsi = 70 dan rsi = 30 juga dipetakan. Panah isyarat yang sepadan ditandakan pada carta semasa membeli atau menjual.

Analisis Kelebihan

  • RSI boleh menilai keadaan overbought dan oversold. purata bergerak boleh menapis turun naik rawak. Gabungan kedua-duanya boleh mengenal pasti titik pembalikan trend.

  • RSI Moving Average Crossover adalah idea strategi perdagangan yang agak matang yang boleh menapis beberapa isyarat palsu.

  • Kod strategi adalah mudah dan jelas, mudah difahami.

  • Strategi ini berfungsi dengan baik untuk mata wang kripto dengan trend yang agak jelas.

Analisis Risiko

  • RSI yang tidak betul dan parameter purata bergerak tempoh boleh menghasilkan terlalu banyak isyarat yang salah.

  • Bergantung hanya pada persimpangan penunjuk tidak dapat sepenuhnya mengelakkan terperangkap.

  • Kos dagangan boleh memberi kesan kepada keuntungan. saiz kedudukan perlu dioptimumkan.

  • Volatiliti tinggi dalam pasaran kripto.

Untuk menangani risiko, parameter boleh diselaraskan untuk mengoptimumkan penunjuk, saiz kedudukan boleh dikurangkan, stop loss boleh ditetapkan, dan analisis trend boleh digunakan untuk menapis isyarat.

Arahan pengoptimuman

  • Penyelidikan gabungan RSI dan purata bergerak yang optimum di bawah parameter tempoh yang berbeza.

  • Meningkatkan saiz kedudukan apabila trend kuat, dan mengurangkan apabila trend tidak jelas.

  • Tetapkan stop loss dinamik untuk mengikuti trend.

  • Terokai menggabungkan RSI dengan penunjuk lain untuk membentuk isyarat perdagangan baru.

  • Meneroka model pembelajaran mesin berdasarkan strategi ini untuk meningkatkan kadar kemenangan.

Ringkasan

Strategi crossover purata bergerak RSI menggabungkan kelebihan trend dan penapisan penunjuk, agak matang dan boleh dipercayai. Logik strategi adalah mudah dan jelas, dan pelaksanaan kod juga cukup lengkap. Secara keseluruhan ia adalah strategi perdagangan cryptocurrency yang cukup baik. Tetapi setiap strategi memerlukan pengoptimuman. Ia memerlukan ujian dan penyesuaian berterusan, digabungkan dengan analisis trend, untuk mencapai prestasi 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 lanjut