
Strategi ini memanfaatkan identifikasi tren dari indikator RSI akumulatif untuk melakukan pembelian dan penjualan ketika indikator RSI akumulatif melampaui batas kritis. Strategi ini dapat secara efektif menyaring kebisingan pasar dan mengunci peluang perdagangan tren yang lebih panjang.
Strategi ini terutama didasarkan pada indikator RSI kumulatif untuk membuat keputusan perdagangan. Indikator RSI kumulatif adalah nilai kumulatif dari indikator RSI. Dengan mengatur parameter cumlen, nilai RSI dapat dikumpulkan dalam hari cumlen untuk mendapatkan indikator RSI kumulatif. Indikator ini dapat menyaring kebisingan pasar jangka pendek.
Ketika akumulasi RSI melintasi Bollinger Bands, maka akan dilakukan pembelian dan membuka posisi. Ketika akumulasi RSI melintasi Bollinger Bands, maka akan dilakukan penjualan posisi kosong.
Selain itu, strategi ini juga menambahkan opsi filter tren. Hanya ketika harga lebih tinggi dari 100 hari moving average, yaitu ketika berada di saluran tren naik, maka akan dilakukan pembelian dan membuka posisi. Filter ini dapat menghindari kesalahan perdagangan saat harga bergoyang.
Strategi RSI akumulatif ini secara keseluruhan berjalan dengan lancar, logis dan jelas, dengan memfilter indikator RSI akumulatif secara efektif, meningkatkan penilaian tren, menangkap tren garis tengah dan panjang secara akurat, dan kinerja pelacakan historis yang sangat baik. Namun, masih ada ruang untuk dioptimalkan, dapat dimulai dari pengaturan parameter yang disesuaikan, meningkatkan indikator penilaian, dan kondisi posisi terdepan yang kaya, untuk membuat strategi tren yang lebih kuat dan komprehensif.
/*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()