
Esta estratégia usa o princípio de compra-venda do indicador RSI, combinando o RSI de vários períodos para julgar e realizar operações inter-ciclo. A estratégia julga o sinal de compra-venda de acordo com a configuração de ciclo do RSI e usa a média móvel do RSI para filtrar e evitar sinais errados. Quando o RSI atravessa sua média móvel, gera um sinal de compra e, quando atravessa, produz um sinal de venda, formando um típico método de operação de cruzamento de linha média.
A estratégia gera sinais de negociação principalmente através do julgamento de overbought e oversold do indicador RSI. O indicador RSI representa um índice relativamente forte. Sua fórmula de cálculo é: RSI = 100 - (100 / (1 + RS)), em que RS é o rácio entre o valor médio de fechamento e o valor médio de fechamento em um período de tempo. O índice RSI varia entre 0 e 100, sendo geralmente considerado abaixo de 30 como um oversold e acima de 70 como um oversold.
Esta estratégia define um alto parâmetro de sobrecompra e um baixo parâmetro de sobreventa, que são julgados como overbought quando o RSI é superior ao sobrecompra e como oversold quando o RSI é inferior ao sobreventa. A estratégia define o valor padrão de sobrecompra em 70 e o valor padrão de sobreventa em 30.
Para gerar sinais de compra e venda, a estratégia usa a média móvel do indicador RSI para filtrar. Quando o indicador RSI atravessa sua média móvel, gera um sinal de compra Es_compra, e quando atravessa sua média móvel, gera um sinal de venda Es_venta.
Depois de gerar os sinais de compra e venda, a estratégia abre posições para negociações de alta ou baixa. Além disso, a estratégia também configura um stop loss e um stop loss, “%”, para evitar que os perdas se expandam e bloqueiem os lucros.
O indicador RSI é usado para avaliar a tendência de sobrecompra e de sobrevenda, evitando a tendência de alta e baixa.
Aplicar a média móvel do RSI para filtragem e evitar falsos sinais.
Combinando a configuração de períodos múltiplos com o indicador RSI, permite um sinal de negociação mais estável.
Configurar mecanismos de prevenção de danos para controlar os riscos.
A lógica da estratégia é simples e clara, fácil de entender e modificar.
Parâmetros personalizáveis para diferentes variedades e períodos.
O indicador RSI está atrasado e pode ter perdido o melhor momento para a reversão de preços.
As médias móveis atrasam os sinais de negociação e não conseguem capturar a reversão da tendência.
A configuração de parâmetros de sobrevenda fixa não é suficientemente flexível e precisa ser ajustada para diferentes períodos e variedades.
A configuração inadequada do Stop Loss Limit pode levar a perdas ou perda de lucro.
A posição em aberto de um único trader não permite que os fundos sejam utilizados para a negociação de diferença de preço.
Combinado com outros indicadores, como MACD, KD e outros, para determinar o sinal de negociação.
Aplicação de uma média móvel adaptada para acompanhar tendências.
Configure o parâmetro de compra e venda dinâmicos, ajustando-se à volatilidade do mercado.
Otimização de algoritmos de stop loss, como o rastreamento de stop loss.
Aumentar o mecanismo de gerenciamento de posições e ajustar as posições de acordo com a dinâmica do tamanho do capital.
Adicionar filtros de tendências para evitar a frequência de negociações em mercados turbulentos.
Fazer um retestamento dos parâmetros de otimização e escolher a combinação de parâmetros mais adequada.
Esta estratégia baseia-se em um indicador RSI de overbought e oversold, que usa a média móvel para filtrar e gerar sinais de negociação, para realizar uma típica forma de negociação inter-ciclo. A estratégia tem uma estrutura lógica clara e configuração de parâmetros, que pode ser aplicada a diferentes variedades e períodos por meio do ajuste de parâmetros. É uma estratégia de negociação inter-ciclo confiável e eficaz.
/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 3m
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/
// © samuelkanneman
//@version=4
strategy("RSI KANNEMAN")
//////Entrada///////
i_startTime = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from")
i_endTime = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading")
sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 )
sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 )
l1=hline(sobrecompra)
l2=hline(sobreventa, color=color.purple)
periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 )
periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 )
var SL =0.0
var TP=0.0
StopLoss = input(2.0, title="SL %", step=0.2)
TakeProfit = input(5.0, title="TP %", step=0.2)
//////Proceso///////
mi_rsi=rsi(close,periodos)
mm_rsi=sma(mi_rsi,periodos_media)
Es_compra= crossover(mm_rsi,sobreventa)
Es_venta= crossunder(mm_rsi,sobrecompra)
comprado= strategy.position_size > 0
vendido = strategy.position_size < 0
//time to test
dateFilter = true
//timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0)
// long
if (not comprado and Es_compra and dateFilter )
// realizar long
cantidad = strategy.equity/hlc3
strategy.entry ("compra", strategy.long , cantidad)
SL := close*(1-(StopLoss/100))
TP := close*(1+(TakeProfit/100))
if close >= TP
strategy.close ("compra" , comment="Salto TP")
if (comprado and Es_venta )
strategy.close ("compra" , comment="Sobre Venta")
if close <= SL
strategy.close ("compra" , comment="Salto SL")
// short
if (not vendido and Es_venta and dateFilter )
// realizar short
cantidad = strategy.equity/hlc3
strategy.entry ("venta", strategy.short , cantidad)
SL := close*(1+(StopLoss/100))
TP := close*(1-(TakeProfit/100))
if close <= TP
strategy.close ("venta" , comment="Salto TP")
if (vendido and Es_compra )
strategy.close ("venta" , comment="Sobre Compra")
if close >= SL
strategy.close ("venta" , comment="Salto SL")
///////Salida//////
fill(l1,l2)
plot(mi_rsi)
plot(mm_rsi, color=color.yellow)
bgcolor(Es_compra ? color.blue : na , transp=0)
bgcolor(Es_venta ? color.red : na , transp=0)
// 1d 70 22 5 4 3 15 6 meses
//1h 70 20 6 4 5 7 1 mese
//15m 70 20 5 4 4 7 1 semana