Die Strategie trägt den Namen
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
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
Die Kombination von RSI14 und RSI10 bildet somit die Kernlogik der Dual-Track-Strategie.
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.
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