
Esta estratégia combina o indicador KDJ com o indicador RSI para determinar quando comprar e vender. Ele emite um sinal de negociação quando o indicador KDJ e o indicador RSI emitem sinais de compra/venda.
A estratégia usa um cruzamento do indicador KDJ com o indicador RSI para determinar o momento de compra e venda.
Especificamente, quando a linha J do KDJ atravessa a linha K do lado de baixo, é considerado um sinal de compra, e quando a linha J atravessa a linha K do lado de cima, é considerado um sinal de venda. Isso significa que o estoque é comprado quando passa de um estado de sobrevenda para um estado de sobrecompra e vendido quando passa de um estado de sobrecompra para um estado de sobrevenda.
Ao mesmo tempo, a estratégia combina o indicador RSI para avaliar sinais de força e fraqueza. RSI menor que 30 é um excesso de venda, RSI maior que 70 é um excesso de compra. Quando o KDJ emite um sinal de compra, a credibilidade do sinal de compra é reforçada se o indicador RSI também é exibido como um excesso de venda.
Em suma, a estratégia emite sinais de negociação quando:
Sinais de compra:
A venda de sinais:
A combinação do indicador KDJ com o indicador RSI torna os sinais de negociação mais confiáveis.
O KDJ é usado para avaliar a tendência de sobrevenda e o RSI é usado para avaliar a tendência de fraqueza.
Combinação de várias condições de compra/venda para evitar a perda de oportunidades por causa de um único indicador.
Os parâmetros do RSI são configurados em três grupos de parâmetros de 6, 12 e 24 períodos, que se aplicam a diferentes níveis de período, o que torna a estratégia mais abrangente.
Tanto o KDJ quanto o RSI podem apresentar falsos sinais, o que pode levar a negociações desnecessárias.
As condições de transação múltiplos aumentam a complexidade das operações estratégicas e requerem uma verificação cuidadosa.
A estratégia também precisa ser testada e otimizada em diferentes mercados, e os parâmetros precisam ser ajustados.
Pode-se testar a adição de outros indicadores, como linhas de Brin, para reforçar os sinais de negociação.
Os parâmetros do indicador KDJ e do indicador RSI podem ser otimizados para que sejam mais adequados a diferentes níveis de ciclo.
O risco pode ser controlado por padrões mais altos de suspensão de perdas.
Pode ser adicionado um mecanismo de parada automática.
A estratégia combina os benefícios do indicador KDJ e do indicador RSI, aumentando a precisão do sinal de negociação através do cruzamento de indicadores duplos para determinar a hora de compra e venda. Ao mesmo tempo, o indicador RSI combinado com diferentes parâmetros determina o estado de hiato, tornando a estratégia mais abrangente. A estratégia evita efetivamente o risco de falso sinal que um único indicador pode trazer.
/*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)