
Die RSI-Breakout-Strategie ist eine quantitative Handelsstrategie, die auf einem relativ starken Index (RSI) basiert. Die Strategie erzeugt Handelssignale, wenn der RSI-Indikator diese Grenzen überschreitet, indem er die Schwellenwerte des RSI über die Kauf- und Verkaufszonen setzt, d. h. wenn der RSI unter 30 liegt und wenn der RSI über 70 liegt.
Die RSI-Breakthrough-Strategie basiert auf dem RSI-Indikator, um überkaufte und überverkaufte Aktien zu beurteilen. Der RSI spiegelt die jüngste Stärke und Schwäche einer Aktie wider, indem er die durchschnittlichen Zuwachs- und Rückgänge einer Aktie in einer bestimmten Periode berechnet. Im Allgemeinen wird ein RSI unter 30 als überkauft und über 70 als überkauft angesehen.
Die Strategie setzt zuerst die Über- und Überkauflinie des RSI auf, wobei die 30 und 70 als Default eingestuft werden. Dann wird die Funktionsweise der RSI-Linie in Echtzeit überwacht. Wenn der RSI von oben nach unten über den 70er-Hürde geht, wird ein Verkaufssignal erzeugt.
Auf diese Weise versucht die Strategie, die Kurswendepunkte während der Aktienfluktuation zu erfassen und die Position bei Überkauf und Überverkauf zeitnah zu korrigieren, um zu überkaufen und zu verkaufen.
Die RSI-Breakthrough-Strategie hat folgende Vorteile:
Der RSI-Indikator ist einfach zu berechnen und zu verstehen. Sie müssen nur die oberen und unteren Grenzen der eingestellten Schwellung beobachten, um den RSI-Indikator zu durchbrechen. Wenn der Indikator durchbrochen wird, können Sie handeln, ohne komplizierte Handelsregeln.
Die Strategie extrahiert Handelssignale aus dem RSI-Indikator, ohne menschliche Intervention und Urteilsvermögen, und ermöglicht die einfache Automatisierung des Handels. Die Überkauf-Überverkauf-Signale des RSI wirken besser, und die Strategie-Retrospektion zeigt erhebliche Gewinne.
Der Händler kann die RSI-Parameter flexibel anpassen, z. B. die Marginalwerte für Überkauf und Überverkauf anpassen, um sie an die Eigenschaften verschiedener Aktien und Marktsituationen anzupassen.
Die RSI-Breakthrough-Strategie birgt auch Risiken, wie z. B.:
Eine Whipsaw kann leicht entstehen. Wenn der Indikator schwankt, wird häufig ein Durchbruchsignal ausgelöst. Die Strategie erzeugt zu viele unwirksame Geschäfte, die zu einem stabilen Gewinn führen. Die Parameter können entsprechend angepasst werden, um einige Schwankungen zu filtern.
Die RSI erzeugt Handelssignale nur aus Überkauf und Überverkauf und ist schwach in der Beurteilung großer Trends. Die Strategie kann leicht in den Schwankungen eingesperrt werden. Die Strategie kann mit den Trendindikatoren gefiltert werden, um einen Gegenhandel zu vermeiden.
Das Risiko eines Rückzugs ist höher. Der RSI zeigt oft eine mehrseitige Abweichung, d.h. die Preise steigen weiter, während der RSI nach unten geht.
Die RSI-Breakthrough-Strategie kann in folgenden Dimensionen optimiert werden:
Es werden mehrere Indikatoren berücksichtigt, um die Einschränkungen eines einzigen RSI-Indikators zu vermeiden. Zum Beispiel wird der Trend des Marktes in Kombination mit einem Moving Average-Indikator beurteilt oder ein Kombinationsfilter für Handelssignale mit einem starken Indikator und einem Transaktionsvolumen-Indikator verwendet.
Optimierung der RSI-Parameter zur Steigerung der Strategie-Stabilität. Dies beinhaltet die Anpassung der Überkauf-Überverkauf-Schwelle, die Einstellung der Dauer der Handelssignale usw. Die Optimierung der RSI-Parameter durch Testing filtert eine große Anzahl von ungültigen Signalen aus.
Setzen Sie Stop-Loss-Konditionen, um das Risiko zu kontrollieren, z. B. Setzen Sie einen Prozentsatz oder eine Punktstop-Kondition. Vermeiden Sie, dass einzelne Verluste einen zu großen Einfluss auf die Gesamtergebnisse haben.
Die RSI-Break-Strategie ist eine quantitative Strategie, die die Überkauf-Überverkauf-Phänomenen nutzt. Die Strategie-Signal ist einfach, klar, vollständig quantifiziert und anpassbar. Es besteht jedoch ein gewisses Whipsaw-Risiko und Rücknahme-Risiko.
/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bunghole 2021
strategy(title="My New Strategy", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true)
//// Stoploss and Take Profit Parameters
// Enable Long Strategy
enable_long_strategy = input(true, title="Enable Long Strategy", group="SL/TP For Long Strategy",inline="1")
long_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_stoploss_percentage = (close * (long_stoploss_value / 100)) / syminfo.mintick
long_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_takeprofit_percentage = (close * (long_takeprofit_value / 100)) / syminfo.mintick
// Enable Short Strategy
enable_short_strategy = input(true, title="Enable Short Strategy", group="SL/TP For Short Strategy",inline="3")
short_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group= "SL/TP For Short Strategy",inline="4")
short_stoploss_percentage = (close * (short_stoploss_value / 100)) / syminfo.mintick
short_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Short Strategy",inline="4")
short_takeprofit_percentage = (close * (short_takeprofit_value / 100)) / syminfo.mintick
// Plot Stoploss & Take Profit Levels
long_stoploss_price = strategy.position_avg_price * (1 - long_stoploss_value/100)
long_takeprofit_price = strategy.position_avg_price * (1 + long_takeprofit_value/100)
short_stoploss_price = strategy.position_avg_price * (1 + short_stoploss_value/100)
short_takeprofit_price = strategy.position_avg_price * (1 - short_takeprofit_value/100)
plot(enable_long_strategy and not enable_short_strategy ? long_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Long SL Level")
plot(enable_long_strategy and not enable_short_strategy ? long_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Long TP Level")
plot(enable_short_strategy and not enable_long_strategy ? short_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Short SL Level")
plot(enable_short_strategy and not enable_long_strategy ? short_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Short TP Level")
// Date Range
start_date = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31, group="Date Range")
start_month = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
start_year = input(title="Start Year", type=input.integer, defval=1804, minval=1800, maxval=3000, group="Date Range")
end_date = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=3, group="Date Range")
end_month = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
end_year = input(title="End Year", type=input.integer, defval=2077, minval=1800, maxval=3000, group="Date Range")
in_date_range = (time >= timestamp(syminfo.timezone, start_year, start_month, start_date, 0, 0)) and (time < timestamp(syminfo.timezone, end_year, end_month, end_date, 0, 0))
//// Inputs **This is where you enter your indicators for your strategy. For example, I added the RSI indicator.**
//RSI
rsi = rsi(close, 14)
rsi_over_sold = rsi < 30
rsi_over_bought = rsi > 70
//// Strategy **This is where you create your strategy. For example, We have or buy and sell signals.**
// Creating Long and Short Strategy
buy_signal = rsi_over_sold
sell_signal = rsi_over_bought
// Long Strategy
if buy_signal and in_date_range and enable_long_strategy == true
strategy.entry("Long", true, when=buy_signal, alert_message="Open Long Position")
strategy.exit("Long SL/TP", from_entry="Long", loss=long_stoploss_percentage, profit=long_takeprofit_percentage, alert_message="Your Long SL/TP Limit As Been Triggered.")
strategy.close("Long", when=sell_signal, alert_message="Close Long Position")
// Short Strategy
if sell_signal and in_date_range and enable_short_strategy == true
strategy.entry("Short", false, when = sell_signal, alert_message="Open Short Position")
strategy.exit("Short SL/TP", from_entry="Short", loss=short_stoploss_percentage, profit=short_takeprofit_percentage, alert_message="Your Short SL/TP Limit As Been Triggered.")
strategy.close("Short", when=buy_signal, alert_message="Close Short Position")