
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.
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.
Untuk risiko, parameter boleh disesuaikan untuk mengoptimumkan kesan indikator, memotong kedudukan dengan sewajarnya, menetapkan garis berhenti, dan memfilter isyarat dengan analisis trend.
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.
/*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)
////////////////////////////////////////////////////////////////////////////////