
Esta estrategia combina el indicador KDJ y el indicador RSI para determinar el momento de comprar y vender. Emite una señal de negociación cuando el indicador KDJ y el indicador RSI emiten una señal de compra/venta.
La estrategia utiliza el cruce de los indicadores KDJ y RSI para determinar el momento de comprar y vender.
Concretamente, cuando la línea J de KDJ cruza la línea K desde abajo se considera una señal de compra, mientras que cuando la línea J cruza la línea K desde arriba se considera una señal de venta. Esto significa que las acciones se compran cuando pasan de un estado de sobreventa a un estado de sobreventa y se venden cuando pasan de un estado de sobreventa a un estado de sobreventa.
Al mismo tiempo, la estrategia se combina con el indicador RSI para determinar si una señal es fuerte o débil. Un RSI menor a 30 es un sobreventa y un RSI mayor a 70 es un sobreventa. Cuando KDJ emite una señal de compra, la fiabilidad de la señal de compra aumenta si el indicador RSI también se muestra como una venta.
En resumen, la estrategia emite señales de negociación en las siguientes situaciones:
Las señales de compra:
La señal de venta:
La combinación de los indicadores KDJ y RSI hace que las señales de negociación sean más confiables.
El indicador KDJ determina el estado de sobrecompra y el indicador RSI determina el estado de debilidad, los dos se combinan para capturar mejor el punto de inflexión.
La combinación de varias condiciones de compra/venta para evitar perder oportunidades por un solo indicador.
El RSI tiene una configuración de parámetros de tres grupos de parámetros de 6, 12 y 24 períodos, que se aplican a diferentes niveles de ciclo, lo que hace que la estrategia sea más amplia.
Tanto el KDJ como el RSI pueden presentar falsas señales, lo que provoca operaciones innecesarias.
Las condiciones de transacción múltiple aumentan la complejidad de las operaciones estratégicas y requieren una verificación cuidadosa.
La estrategia también requiere pruebas de optimización en diferentes mercados y ajustes en los parámetros.
Se puede probar la adición de otros indicadores, como líneas de Brin, para fortalecer las señales de negociación.
Los parámetros de los indicadores KDJ y RSI se pueden optimizar para que se ajusten mejor a diferentes niveles de ciclo.
El riesgo puede ser controlado mediante el aumento de los parámetros de pérdida.
Se puede agregar un mecanismo de suspensión automática de pérdidas.
La estrategia combina las ventajas de los indicadores KDJ y RSI, y mejora la precisión de las señales de negociación al determinar el momento de comprar y vender a través de la cruz de los indicadores dobles. Al mismo tiempo, los indicadores RSI combinados con diferentes parámetros determinan el estado de la carencia, lo que hace que la estrategia sea más amplia. La estrategia evita eficazmente el riesgo de falsas señales que un solo indicador puede traer.
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © innocentChart76064
//@version=5
strategy(title = "buy/sell KDJ RSI", overlay=true)
//Define KDJ parameter
kdj_length = input(9, title = "KDJ length")
signal = input(3,title="signal")
// Calculate KDJ values
bcwsma(s,l,m) =>
_bcwsma = float(na)
_s = s
_l = l
_m = m
_bcwsma := (_m*_s+(_l-_m)*nz(_bcwsma[1]))/_l
_bcwsma
c = close
h = ta.highest(high, kdj_length)
l = ta.lowest(low,kdj_length)
RSV = 100*((c-l)/(h-l))
kdj_k = bcwsma(RSV, signal, 1)
kdj_d = bcwsma(kdj_k, signal, 1)
kdj_j = 3 * kdj_k-2 * kdj_d
//Define RSI parameter
rsi_length_1 = input(6)
rsi_length_2 = input(12)
rsi_length_3 = input(24)
price = close
//Calculate RSI values
rsi_1 = ta.rsi(price, rsi_length_1)
rsi_2 = ta.rsi(price, rsi_length_2)
rsi_3 = ta.rsi(price, rsi_length_3)
// Trading conditions
longCondition = ta.crossover(kdj_j,kdj_k) and rsi_1 > rsi_2 or ta.crossover(kdj_j,kdj_k) and ta.crossover(rsi_1,rsi_3) or ta.crossover(rsi_1,rsi_3) and rsi_1<40
shortCondition = ta.crossunder(kdj_j,kdj_k) and rsi_1 < rsi_2 or ta.crossunder(kdj_j,kdj_k) and ta.crossunder(rsi_1,rsi_3) or ta.crossunder(rsi_1,rsi_3) and rsi_1>60
// Enter long trade
strategy.entry("Long", strategy.long, when=longCondition)
// Enter short trade
strategy.entry("Short", strategy.short, when=shortCondition)