RSI-Doppelspur-Breakthrough-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-08 10:28:26
Tags:

img

Übersicht

Die Strategie trägt den Namen RSI Dual-Track Breakthrough Strategy. Sie nutzt die doppelten Spuren des RSI-Indikators zum Urteilen, um das Ziel zu erreichen, niedrig zu kaufen und hoch zu verkaufen. Wenn der RSI-Indikator unter den festgelegten unteren Track (Standard 40) fällt, wird er als Kaufsignal betrachtet. Wenn der RSI10 zu diesem Zeitpunkt kleiner als der RSI14 ist, bestätigt er den Kauf weiter; wenn der RSI-Indikator über den festgelegten oberen Track (Standard 70) steigt, gilt er als Verkaufssignal. Wenn der RSI10 zu diesem Zeitpunkt größer als der RSI14 ist, bestätigt er den Verkauf weiter. Die Strategie legt auch die Mechanismen des Stop-Loss- und Take-Profit-Bewegens fest.

Strategieprinzip

Die Kernlogik dieser Strategie besteht darin, die doppelten Spuren des RSI-Indikators für das Urteilen zu verwenden. Der RSI-Indikator ist im Allgemeinen auf 14 Perioden festgelegt, die die Stärke und Schwäche der Aktie in den letzten 14 Tagen darstellen. Diese Strategie fügt RSI10 als Hilfsurteilsindikator hinzu.

Wenn der RSI14 unter die Spur 40 bricht, wird angenommen, dass der Aktienkurs die schwache Seite durchbrochen hat und es eine Chance auf einen Support-Rebound geben kann. Wenn der RSI10 zu diesem Zeitpunkt unter dem RSI14 liegt, bedeutet dies, dass der kurzfristige Trend immer noch nach unten ist, was das Verkaufssignal weiter bestätigen kann. Wenn also RSI14 <= 40 und RSI10 erreicht wird, wird ein Kaufsignal generiert.

Wenn der RSI14 über die Spur 70 bricht, wird angenommen, dass der Aktienkurs in ein kurzfristig starkes Gebiet eingetreten ist und es eine Chance auf eine Pullback-Anpassung geben kann. Wenn der RSI10 zu diesem Zeitpunkt größer als der RSI14 ist, bedeutet dies, dass der kurzfristige Trend nach oben geht, was das Kaufsignal weiter bestätigen kann. Wenn also RSI14 >= 70 und RSI10> RSI14 erreicht wird, wird ein Verkaufssignal generiert.

Die Kombination von RSI14 und RSI10 bildet somit die Kernlogik der Dual-Track-Strategie.

Vorteile der Strategie

  1. Die Kombination von zwei RSI-Indikatoren kann Handelssignale genauer erfassen
  2. Die Einführung eines beweglichen Stop-Loss-Mechanismus kann den Verlust rechtzeitig reduzieren und den maximalen Drawdown kontrollieren.
  3. Die Einrichtung des Take-Profit-Ausgangsmechanismus ermöglicht den Ausstieg, wenn der Zielgewinn erreicht wird, und vermeidet eine profitierende Retrace

Risiken der Strategie

  1. Der RSI-Indikator ist anfällig für falsche Signale und Verluste können nicht vollständig vermieden werden
  2. Wenn der Stop-Loss-Punkt zu nahe eingestellt ist, kann er bald ausgenommen werden, wenn er zu groß eingestellt ist, ist es schwierig, Risiken zu kontrollieren.
  3. In abnormalen Marktbedingungen wie Gap kann es auch zu Verlusten führen.

Um diese Strategie voll auszunutzen, können die RSI-Parameter richtig angepasst werden, die Stop-Loss-Position sollte streng kontrolliert werden, überhäufige Operationen vermieden und eine stetige Rentabilität angestrebt werden.

Richtungen der Optimierung der Strategie

  1. Es sollten andere Indikatoren für die Validierung von Kombinationen wie KDJ, MACD usw. berücksichtigt werden.
  2. Angabe der RSI-Parameter je nach den Merkmalen der verschiedenen Produkte
  3. Setzen Sie dynamischen Stop-Loss auf der Grundlage von Indikatoren wie ATR, um die Stop-Position rechtzeitig anzupassen
  4. Automatische Optimierung der RSI-Parameter durch maschinelles Lernen

Zusammenfassung

Diese Strategie macht Urteile auf der Grundlage der Doppelspur-Idee des RSI und filtert bis zu einem gewissen Grad einige laute Signale aus. Aber keine einzelne Indikatorstrategie kann perfekt sein, der RSI-Indikator neigt dazu, irrezuführen und sollte vorsichtig betrachtet werden. Diese Strategie beinhaltet bewegliche Stop-Loss- und Take-Profit-Mechanismen, um Risiken zu kontrollieren, was essentiell ist. Zukünftige Optimierungen könnten fortgesetzt werden, um Strategieparameter und Stop-Loss-Methoden intelligenter und dynamischer zu machen.


/*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


Mehr