
Diese Strategie nennt sich RSI-basierte Doppelschienen-Breakout-Strategie. Die Strategie nutzt die Doppelschienen-Kombination der RSI-Indikatoren, um zu beurteilen, ob ein niedriger Kauf oder ein hoher Verkauf möglich ist. Wenn der RSI-Indikator unter der eingestellten niedrigen Bahn liegt (default 40), wird dies als Kaufsignal betrachtet, wobei der Kauf weiter bestätigt wird, wenn der RSI10 unter dem RSI14 liegt. Wenn der RSI-Indikator über der eingestellten hohen Bahn liegt (default 70), wird dies als Verkaufssignal betrachtet, wobei der Verkauf weiter bestätigt wird, wenn der RSI10 über dem RSI14 liegt.
Die Kernlogik dieser Strategie besteht darin, die Doppelschienen des RSI zu nutzen. Der RSI ist in der Regel auf 14 Perioden eingestellt, die die Stärken und Schwächen von Aktien in den letzten 14 Tagen darstellen. Die Strategie enthält den RSI10 als Hilfsindikator.
Wenn der RSI 14 die 40-Bahn überschreitet, wird angenommen, dass der Aktienpreis die Schwäche überschreitet und möglicherweise eine Möglichkeit für eine Unterstützung besteht. Wenn der RSI 10 zu diesem Zeitpunkt kleiner als der RSI 14 ist, kann die kurzfristige Tendenz nach unten weiter bestätigt werden.
Wenn der RSI 14 über 70 geht, wird angenommen, dass die Aktienkurse in die kurzfristige starke Zone eintreten. Es besteht die Möglichkeit, eine Rückkorrektur vorzunehmen. Wenn der RSI 10 größer als der RSI 14 ist, kann der Blick auf eine weitere Aufwärtsentwicklung der kurzfristigen Tendenz bestätigt werden.
Die Kombination von RSI14 und RSI10 bildet somit die Kernlogik der Doppelschienenstrategie.
Um die Strategie zu nutzen, können die RSI-Parameter entsprechend angepasst werden, die Stop-Loss-Position streng kontrolliert werden, zu intensive Operationen vermieden werden und nach einer stabilen und dauerhaften Profitabilität gesucht werden.
Diese Strategie basiert auf der Doppelschienenidee des RSI und filtert zum Teil die Geräusche. Keine einzelne Indikatorstrategie kann jedoch perfekt sein, der RSI ist leicht zu täuschen und sollte mit Vorsicht betrachtet werden. Die Strategie enthält einen mobilen Stop-and-Stop-Mechanismus, um das Risiko zu kontrollieren, was sehr notwendig ist.
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 1m
basePeriod: 1m
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/
// © DojiEmoji
//@version=4
strategy("[KL] RSI 14 + 10 Strategy",overlay=true)
backtest_timeframe_start = input(defval = timestamp("01 Jan 2015 13:30 +0000"), title = "Backtest Start Time", type = input.time)
//backtest_timeframe_end = input(defval = timestamp("19 Mar 2021 19:30 +0000"), title = "Backtest End Time", type = input.time)
TARGET_PROFIT_MODE = input(false,title="Exit when Risk:Reward met")
REWARD_RATIO = input(3,title="Risk:[Reward] (i.e. 3) for exit")
// Trailing stop loss {
TSL_ON = input(true,title="Use trailing stop loss")
var entry_price = float(0)
ATR_multi_len = 26
ATR_multi = input(2, "ATR multiplier for stop loss")
ATR_buffer = atr(ATR_multi_len) * ATR_multi
plotchar(ATR_buffer, "ATR Buffer", "", location = location.top)
risk_reward_buffer = (atr(ATR_multi_len) * ATR_multi) * REWARD_RATIO
take_profit_long = low > entry_price + risk_reward_buffer
take_profit_short = low < entry_price - risk_reward_buffer
var bar_count = 0 //number of bars since entry
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
stop_loss_price := max(stop_loss_price, close - trailing_SL_buffer)
// plot TSL line
trail_profit_line_color = color.green
showLine = strategy.position_size == 0
if showLine
trail_profit_line_color := color.black
stop_loss_price := close - trailing_SL_buffer
plot(stop_loss_price,color=trail_profit_line_color)
// }
// RSI
RSI_LOW = input(40,title="RSI entry")
RSI_HIGH = input(70,title="RSI exit")
rsi14 = rsi(close, 14)
rsi10 = rsi(close, 10)
if true// and time <= backtest_timeframe_end
buy_condition = rsi14 <= RSI_LOW and rsi10 < rsi14
exit_condition = rsi14 >= RSI_HIGH and rsi10 > rsi14
//ENTRY:
if strategy.position_size == 0 and buy_condition
entry_price := close
trailing_SL_buffer := ATR_buffer
stop_loss_price := close - ATR_buffer
strategy.entry("Long",strategy.long, comment="buy")
bar_count := 0
else if strategy.position_size > 0
bar_count := bar_count + 1
//EXIT:
// Case (A) hits trailing stop
if TSL_ON and strategy.position_size > 0 and close <= stop_loss_price
if close > entry_price
strategy.close("Long", comment="take profit [trailing]")
stop_loss_price := 0
else if close <= entry_price and bar_count
strategy.close("Long", comment="stop loss")
stop_loss_price := 0
bar_count := 0
// Case (B) take targeted profit relative to risk
if strategy.position_size > 0 and TARGET_PROFIT_MODE
if take_profit_long
strategy.close("Long", comment="take profits [risk:reward]")
stop_loss_price := 0
bar_count := 0
// Case (C)
if strategy.position_size > 0 and exit_condition
if take_profit_long
strategy.close("Long", comment="exit[rsi]")
stop_loss_price := 0
bar_count := 0