Strategi ini menggunakan penunjuk RSI Kumulatif untuk mengenal pasti trend dan membuat keputusan membeli dan menjual apabila nilai RSI kumulatif memecahkan paras ambang utama.
Strategi ini terutamanya berdasarkan kepada penunjuk RSI Kumulatif untuk keputusan perdagangan. Penunjuk RSI Kumulatif adalah pengumpulan nilai RSI. Dengan menetapkan parameter cumlen, nilai-nilai RSI selama hari-hari cumlen yang lalu dijumlahkan untuk memperoleh penunjuk RSI Kumulatif. Penunjuk ini dapat menapis bunyi pasaran jangka pendek.
Apabila penunjuk RSI Kumulatif melintasi di atas rel atas Bollinger Band, kedudukan panjang akan dibuka. Apabila RSI Kumulatif melintasi di bawah rel bawah Bollinger Band, kedudukan terbuka akan ditutup. rel Bollinger Band dikira secara dinamik berdasarkan data sejarah selama bertahun-tahun.
Selain itu, pilihan penapis trend ditambahkan. Perdagangan panjang hanya akan dibuka apabila harga di atas Purata Bergerak 100 hari, yang bermaksud ia berada dalam saluran trend menaik. Penapis ini mengelakkan perdagangan yang salah semasa turun naik pasaran.
Strategi penembusan RSI Kumulatif mempunyai aliran logik yang lancar dan dengan tepat mengenal pasti trend jangka menengah hingga panjang dengan menapis dengan RSI Kumulatif dan menambah penilaian trend. Hasil ujian balik adalah luar biasa dalam dekad yang lalu. Masih ada ruang untuk penambahbaikan dalam bidang seperti penyesuaian parameter, menambah penunjuk, memperkaya keadaan keluar untuk menjadikan strategi lebih mantap. Konsep baru ini bernilai penerokaan dan penerapan lanjut.
/*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()