Strategi Trend RSI Dua Arah yang Ekstrem
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.
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.
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.
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.
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.
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()