RSI Moving Average Crossover Strategy


Tarikh penciptaan: 2023-11-07 15:35:58 Akhirnya diubah suai: 2023-11-07 15:35:58
Salin: 0 Bilangan klik: 1008
1
fokus pada
1621
Pengikut

RSI Moving Average Crossover Strategy

Gambaran keseluruhan

Strategi rsi rata-rata adalah strategi yang digunakan untuk perdagangan mata wang kripto. Strategi ini menggunakan purata bergerak untuk indikator rsi dan menghantar isyarat beli dan jual berdasarkan persilangan rsi dengan purata bergeraknya.

Prinsip Strategi

Strategi ini mula mengira RSI. RSI adalah berdasarkan perubahan turun naik dalam jangka masa tertentu, yang mencerminkan kekuatan harga. RSI lebih besar daripada 70 adalah kawasan yang lebih baik untuk membeli, dan lebih kecil daripada 30 adalah kawasan yang lebih baik untuk menjual.

Kemudian, strategi ini menggunakan purata bergerak berdasarkan indikator RSI. Purata bergerak dapat menyaring turun naik rawak dan menentukan arah trend. Di sini, purata bergerak RSI selama 10 kitaran ditetapkan.

Apabila RSI berada di atas rata-rata bergeraknya, ia dianggap sebagai isyarat membeli; apabila RSI berada di bawah rata-rata bergeraknya, ia dianggap sebagai isyarat menjual. Berdagang berdasarkan kedua-dua isyarat tersebut.

Dalam kod, mula-mula mengira indikator RSI untuk tempoh panjang. Kemudian mengira purata bergerak RSI untuk tempoh 10 ma. Apabila ma melewati rsi, beli; apabila ma melewati rsi, jual.

Di samping itu, kod ini juga memetakan grafik garis rsi, ma, dan grafik tiang rsi-ma. Garis pemisah rsi = 70, rsi = 30 dipetakan. Dan tanda panah isyarat yang sesuai di carta apabila membeli dan menjual.

Analisis kelebihan strategi

  • RSI boleh menilai overbought dan oversold, dan moving average boleh menyaring turun naik rawak, dan kedua-duanya boleh digunakan untuk mencari titik perubahan trend.
  • RSI Average Line Cross adalah strategi perdagangan yang lebih matang yang boleh menyaring beberapa isyarat palsu.
  • Kod strategi ini mudah difahami dan mudah difahami.
  • Strategi ini lebih berkesan untuk mata wang kripto yang lebih jelas trendnya.

Analisis risiko strategi

  • RSI dan purata bergerak menggunakan parameter kitaran yang tidak betul, yang boleh menyebabkan terlalu banyak isyarat yang salah.
  • Hanya bergantung pada penyambungan indikator tidak dapat mengelakkan sepenuhnya daripada terikat. Ia perlu digabungkan dengan analisis trend.
  • Kos dagangan akan memberi kesan kepada keuntungan. Perlu mengoptimumkan pengurusan kedudukan.
  • “Pertumbuhan pasaran kripto boleh menjadi lebih ketara apabila ia bertukar kepada mata wang digital”, katanya.

Untuk risiko, parameter boleh disesuaikan untuk mengoptimumkan kesan indikator, memotong kedudukan dengan sewajarnya, menetapkan garis berhenti, dan memfilter isyarat dengan analisis trend.

Arah pengoptimuman strategi

  • Kombinasi RSI dan garis purata yang terbaik boleh dikaji dengan parameter kitaran yang berbeza
  • Anda boleh meningkatkan kedudukan anda apabila trendnya kuat dan mengurangkan kedudukan anda apabila trendnya tidak jelas.
  • Anda boleh menetapkan hentian dinamik untuk hentian trend.
  • Indikator lain boleh dijelajahi untuk digabungkan dengan RSI untuk membentuk isyarat perdagangan baru
  • Model pembelajaran mesin berdasarkan strategi ini boleh diterokai untuk meningkatkan peluang kemenangan strategi

ringkaskan

Strategi rsi rsi yang menggabungkan kelebihan indikator trend dan indikator penapis, agak matang dan boleh dipercayai. Logik strategi ini mudah difahami, pelaksanaan kodnya juga lebih lengkap, secara keseluruhan merupakan strategi perdagangan cryptocurrency yang lebih baik. Tetapi strategi apa pun mempunyai tempat yang perlu dioptimumkan, perlu terus diuji dan disesuaikan, dan disokong oleh penilaian trend, untuk mendapatkan kesan strategi yang lebih baik.

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

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