
Die Strategie nutzt die Identifizierung von Trends in den kumulierten RSI-Indikatoren, um Kauf- und Verkaufsaktionen durchzuführen, wenn der kumulierte RSI-Indikator die kritische Schwelle überschreitet. Die Strategie filtert effektiv Marktlärm und sperrt Trend-Handelsmöglichkeiten in den längeren Linien.
Die Strategie basiert hauptsächlich auf dem kumulativen RSI-Indikator für die Handelsentscheidung. Der kumulative RSI-Indikator ist der kumulative Wert des RSI-Indikators. Durch die Einstellung des Parameters cumlen können die RSI-Werte in cumlen Tagen kumuliert werden, um den kumulativen RSI-Indikator zu erhalten.
Wenn der kumulative RSI-Indikator über die Bollinger-Band-Operation aufsteigt, wird ein Kauf-Operation durchgeführt. Wenn der kumulative RSI-Indikator unter der Bollinger-Band-Operation untersteigt, wird ein Leer-Operation durchgeführt. Die Bollinger-Band-Operation wird durch mehrjährige historische Daten berechnet und ist der Referenzpreis für dynamische Änderungen.
Die Strategie hat außerdem eine Trendfilter-Option hinzugefügt. Der Kauf wird nur dann getätigt, wenn der Preis über dem 100-Tage-Moving-Average liegt, also im Aufwärtskanal des Trends. Dieser Filter verhindert falsche Transaktionen bei Preisschwankungen.
Die kumulative RSI-Breakthrough-Strategie funktioniert flüssig und logisch klar. Durch die kumulative RSI-Indikatoren wird eine effektive Wave-Schleifen, eine erhöhte Trendentscheidung, eine genaue Erfassung der mittleren und langen Trends und eine hervorragende historische Rückmeldung durchgeführt. Es gibt jedoch noch Optimierungsmöglichkeiten, um eine robustere und umfassendere Trendstrategie zu entwickeln, indem man die Parameter-Einstellungen anpasst, die Urteilskennzahlen erhöht und die Pivot-Konditionen bereichert.
/*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()