
Strategi ini menggunakan pengiktirafan trend pada indikator RSI yang berkumpul untuk melakukan pembelian dan penjualan apabila nilai RSI yang berkumpul melampaui paras kritikal. Strategi ini dapat menyaring bunyi pasaran dengan berkesan dan mengunci peluang perdagangan yang lebih lama.
Strategi ini membuat keputusan perdagangan berdasarkan RSI kumulatif. RSI kumulatif adalah nilai kumulatif RSI. Dengan menetapkan parameter cumlen, nilai RSI dalam hari cumlen boleh dikumpulkan untuk mendapatkan RSI kumulatif.
Apabila penunjuk RSI berkumpul melintasi jalur Bollinger Band, operasi pembelian dan bukaan dilakukan; apabila penunjuk RSI berkumpul melintasi jalur Bollinger Band, operasi penjualan dilakukan. Jalur Bollinger Band dihitung melalui data sejarah selama bertahun-tahun, adalah harga rujukan perubahan dinamik.
Selain itu, strategi ini menambah pilihan penapis trend. Pembelian dan pembukaan hanya dilakukan apabila harga lebih tinggi daripada purata bergerak 100 hari, iaitu di saluran kenaikan trend. Penapis ini dapat mengelakkan perdagangan yang salah ketika harga bergoyang.
Keseluruhan operasi strategi RSI yang terkumpul berjalan lancar, logiknya jelas, dengan penyaringan yang berkesan oleh indikator RSI yang terkumpul, meningkatkan penilaian trend, menangkap trend garis tengah dan panjang dengan tepat, prestasi pengkajian semula sejarah yang sangat baik. Namun, masih ada ruang untuk pengoptimuman, boleh bermula dari penyesuaian parameter, menambah indikator penilaian, dan kaya dengan keadaan kedudukan rata, untuk membina strategi trend yang lebih kuat dan menyeluruh.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @version=5
// Author = TradeAutomation
strategy(title="Cumulative RSI Strategy", shorttitle="CRSI Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_contract, commission_value=.0035, slippage = 1, margin_long = 75, initial_capital = 25000, default_qty_type=strategy.percent_of_equity, default_qty_value=110)
// Cumulative RSI Indicator Calculations //
rlen = input.int(title="RSI Length", defval=3, minval=1)
cumlen = input(3, "RSI Cumulation Length")
rsi = ta.rsi(close, rlen)
cumRSI = math.sum(rsi, cumlen)
ob = (100*cumlen*input(94, "Oversold Level")*.01)
os = (100*cumlen*input(20, "Overbought Level")*.01)
// Operational Function //
TrendFilterInput = input(false, "Only Trade When Price is Above EMA?")
ema = ta.ema(close, input(100, "EMA Length"))
TrendisLong = (close>ema)
plot(ema)
// Backtest Timeframe Inputs //
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year", defval=2010, minval=1950, maxval=2100)
endDate = input.int(title="End Date", defval=1, minval=1, maxval=31)
endMonth = input.int(title="End Month", defval=1, minval=1, maxval=12)
endYear = input.int(title="End Year", defval=2099, minval=1950, maxval=2100)
InDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))
// Buy and Sell Functions //
if (InDateRange and TrendFilterInput==true)
strategy.entry("Long", strategy.long, when = ta.crossover(cumRSI, os) and TrendisLong, comment="Buy", alert_message="buy")
strategy.close("Long", when = ta.crossover(cumRSI, ob) , comment="Sell", alert_message="Sell")
if (InDateRange and TrendFilterInput==false)
strategy.entry("Long", strategy.long, when = ta.crossover(cumRSI, os), comment="Buy", alert_message="buy")
strategy.close("Long", when = ta.crossover(cumRSI, ob), comment="Sell", alert_message="sell")
if (not InDateRange)
strategy.close_all()