La estrategia se llama
La lógica central de esta estrategia es utilizar las dos pistas del indicador RSI para el juicio. El indicador RSI generalmente se establece en 14 períodos, representando la fortaleza y debilidad de la acción en los últimos 14 días.
Cuando el RSI14 se rompe por debajo de la pista de 40, se cree que el precio de la acción ha roto el lado débil y puede haber una posibilidad de rebote de soporte. En este momento, si el RSI10 es menor que el RSI14, significa que la tendencia a corto plazo sigue bajando, lo que puede confirmar aún más la señal de venta.
Cuando el RSI14 rompe por encima de la pista de 70, se cree que el precio de la acción ha entrado en un área fuerte a corto plazo y puede haber una posibilidad de un ajuste de retroceso. En este momento, si el RSI10 es mayor que el RSI14, significa que la tendencia a corto plazo continúa hacia arriba, lo que puede confirmar aún más la señal de compra.
Por lo tanto, el juicio combinado de RSI14 y RSI10 constituye la lógica central de la estrategia de doble vía.
Para aprovechar plenamente esta estrategia, los parámetros del RSI se pueden ajustar adecuadamente, la posición de stop loss debe controlarse estrictamente, evitar operaciones demasiado frecuentes y buscar una rentabilidad constante.
Esta estrategia hace un juicio basado en la idea de doble vía de RSI y filtra algunas señales ruidosas hasta cierto punto. Pero ninguna estrategia de indicador individual puede ser perfecta, el indicador RSI es propenso a engañar y debe ser visto con precaución. Esta estrategia incorpora mecanismos de stop loss móviles y take profit para controlar los riesgos, lo cual es esencial.
/*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