
Esta estrategia se llama estrategia de ruptura de dos vías basada en el indicador RSI. Utiliza la combinación de dos vías del indicador RSI para juzgar y alcanzar un precio bajo. Se considera una señal de compra cuando el indicador RSI está por debajo de la línea baja establecida (default 40) y se confirma la compra si el RSI10 es menor que el RSI14 y se considera una señal de venta cuando el indicador RSI está por encima de la línea alta establecida (default 70) y se confirma la venta si el RSI10 es superior al RSI14.
La lógica central de esta estrategia es usar el doble rango del indicador RSI para juzgar. El indicador RSI generalmente se configura con 14 ciclos, lo que representa la fortaleza o debilidad de las acciones en los últimos 14 días. Esta estrategia agrega el RSI10 como indicador de juicio auxiliar.
Cuando el RSI 14 rompe la órbita de 40, se considera que el precio de las acciones cae por debajo de la debilidad, y es posible que se forme una oportunidad de rebote de soporte. En este momento, si el RSI 10 es menor que el RSI 14, lo que indica que la tendencia a corto plazo sigue a la baja, se puede confirmar aún más la señal bajista.
Cuando el RSI 14 rompe la órbita de 70, se considera que el precio de las acciones entra en la zona de fuerza a corto plazo, y es posible que haya una oportunidad de reajuste hacia atrás. En este momento, si el RSI 10 es mayor que el RSI 14, lo que indica que la tendencia a corto plazo continúa hacia arriba, se puede confirmar aún más la señal bajista. Por lo tanto, se produce una señal de venta cuando se cumple el RSI 14 > = 70 y el RSI 10 > el RSI 14.
Así, la combinación de los RSI14 y RSI10 constituye la lógica central de la estrategia de dos vías.
Para aprovechar al máximo esta estrategia, se pueden ajustar adecuadamente los parámetros del RSI, controlar estrictamente las posiciones de stop loss, evitar operaciones demasiado densas y buscar una rentabilidad estable y duradera.
Esta estrategia se basa en el pensamiento de dos vías del RSI para juzgar, y en cierta medida filtra parte de la señal de ruido. Sin embargo, ninguna estrategia de indicador individual puede ser perfecta, el RSI es susceptible a ser engañosa, y debe ser vista con precaución.
/*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