Analisis Strategi RSI Cepat

Penulis:ChaoZhang, Tarikh: 2023-12-04 14:40:02
Tag:

img

Nama Strategi

Strategi Trend RSI Dua Arah yang Ekstrem

Ringkasan

Strategi ini menggunakan penunjuk RSI untuk menentukan trend harga dengan cepat. Ia mempunyai kedua-dua keupayaan panjang dan pendek untuk menangkap tahap harga jangka pendek yang lebih cepat.

Prinsip Strategi

Strategi ini menggunakan penunjuk RSI yang lebih baik untuk menilai status harga yang terlalu banyak dibeli dan terlalu banyak dijual, digabungkan dengan penapisan badan lilin untuk mengurangkan bunyi bising. Ia pergi lama atau pendek apabila RSI berada di zon terlalu banyak dibeli atau terlalu banyak dijual dan saiz badan lilin lebih besar daripada 1/3 daripada saiz badan purata. Ia menutup kedudukan apabila lilin membalikkan arah dan RSI menarik kembali ke tahap yang lebih selamat selepas isyarat perdagangan mencetuskan.

Analisis Kelebihan

Strategi ini bertindak balas dengan cepat dan dapat menangkap trend jangka pendek yang lebih cepat. Sementara itu, penapisan badan membantu mengurangkan bunyi bising dan mengelakkan ditipu oleh pecah palsu. Ia sesuai dengan produk volatiliti tinggi dan dapat mencapai pulangan yang lebih tinggi.

Analisis Risiko

Strategi ini agak sensitif terhadap perubahan harga, mudah disesatkan oleh isyarat palsu di pasaran. Juga, kerugian berhenti boleh mencetuskan kerap di pasaran turun naik yang tinggi. Kita boleh melonggarkan julat kerugian berhenti dan mengoptimumkan parameter RSI untuk menurunkan kebarangkalian isyarat palsu.

Arahan pengoptimuman

Kami boleh menguji parameter berkala yang berbeza dari penunjuk untuk mengoptimumkan strategi dan mencari kombinasi parameter terbaik. Juga, menggabungkan penunjuk lain seperti peraturan Perdagangan Penyu boleh membantu lebih lanjut dalam menapis isyarat. Latihan ambang RSI yang lebih baik melalui kaedah pembelajaran mesin juga boleh menjadi percubaan yang berbaloi.

Ringkasan

Secara keseluruhan, ini adalah strategi jangka pendek yang cekap dan responsif. Dengan beberapa parameter dan pengoptimuman model, ia mempunyai potensi untuk meningkatkan kestabilan dan keuntungan.


/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.1", shorttitle = "Fast RSI str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Source")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
uplimit = 100 - limit
dnlimit = limit

//Body
body = abs(close - open)
emabody = ema(body, 30) / 3

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up = bar == -1 and fastrsi < dnlimit and body > emabody
dn = bar == 1 and fastrsi > uplimit and body > emabody
exit = ((strategy.position_size > 0 and fastrsi > dnlimit) or (strategy.position_size < 0 and fastrsi < uplimit)) and body > emabody

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()

Lebih lanjut