A estratégia é uma estratégia de negociação de linhas curtas baseada em indicadores relativamente fracos (RSI). Utiliza o indicador RSI para identificar intervalos de sobrevenda e sobrevenda e, em combinação com a filtragem de falsos sinais de entidades de linha K, executa operações de compra e venda em pontos de inversão. A estratégia busca capturar oportunidades de rebote após o estado de sobrevenda e sobrevenda extrema.
Primeiro, calcule o indicador RSI, escolha o preço de fechamento como fonte de dados de cálculo, o ciclo é definido em 7 dias. Em seguida, configure a linha de super-compra em 30 e o intervalo de super-venda em 70. Quando o RSI atravessa a linha 30 produz um sinal de compra e quando atravessa a linha 70 produz um sinal de venda.
Para filtrar falsos sinais, é necessário que a entidade K seja ampliada para 1 a 3 vezes o tamanho normal para que o sinal de negociação possa ser acionado. Aqui, é usado o RSI 1 a 5 linhas K em sequência no intervalo de sobrecompra e sobrevenda para confirmar o sinal, o multiplicador de amplificação da entidade é definido como 4 vezes.
Quando o RSI produz um sinal de compra quando cinco K-linhas consecutivas são inferiores a 30, se a K-linha subsequente é positiva e a entidade é ampliada mais de 4 vezes, a operação de compra é executada. Quando o RSI produz um sinal de venda quando cinco K-linhas consecutivas são superiores a 70, se a K-linha subsequente é negativa e a entidade é ampliada mais de 4 vezes, a operação de venda é executada.
Para bloquear os lucros, quando a direção da posição coincide com a direção da linha K atual, o ponto de parada de liquidação é ampliado em 2 vezes a entidade.
O RSI é um indicador de melhor identificação de overbought e oversold. Quando as ações estão em uma zona de overbought e oversold, há uma maior probabilidade de reversão no curto prazo, e a zona de oversold geralmente indica um retorno iminente. Esta estratégia pode capturar oportunidades na véspera de uma reversão.
A estratégia de adicionar a amplificação da linha K como condição de filtragem, adicionando posições na véspera do ponto de viragem, para evitar ser enganado pelos falsos sinais do mercado de turbulência.
Requer que o RSI mantenha 1 a 5 linhas K na faixa de sobrevenda para confirmação, evitando ser enganado por linhas K inativas individuais, aumentando a confiabilidade do sinal.
O multiplicador de amplificação da entidade pode ser ajustado de acordo com as diferentes variedades, e as condições podem ser apropriadamente relaxadas para as variedades de alta e baixa, enquanto que as condições podem ser apropriadamente apertadas para as variedades de baixa e baixa, e podem ser livremente ajustadas para as variedades de negociação adequadas.
Esta configuração de parâmetros de estratégia tem um certo grau de limitação, e os parâmetros precisam ser ajustados para diferentes variedades e diferentes períodos. Se um parâmetro for usado constantemente, isso pode causar problemas de sobre-ajuste.
O indicador RSI em si tem um certo grau de atraso, combinado com a amplificação da entidade como condição de filtragem, também pode sair de posição com antecedência. Portanto, a precisão de identificação de pontos de compra e venda geralmente não é particularmente alta.
Em situações de turbulência, o indicador RSI pode frequentemente desencadear um sinal de compra ou venda, resultando em um tempo de posse excessivo. Nesse caso, é necessário ajustar os parâmetros ou suspender a operação da estratégia.
Esta estratégia é uma estratégia de negociação de curto prazo, que precisa ser combinada com estratégias de posse apropriadas, como a eliminação da linha média e o stop loss, para bloquear os lucros e controlar o risco.
É possível testar diferentes combinações de parâmetros do RSI, como o ciclo, a linha de sobrevenda e a linha de filtragem de entes K, otimizando os parâmetros para adaptá-los a diferentes variedades.
Pode-se definir um stop loss móvel ou um stop loss percentual para bloquear o lucro, ou pode-se definir um stop loss baseado no valor do ATR, ou em combinação com o canal Donchain.
Pode-se adicionar condições de filtragem de outros indicadores, como MACD, KDJ, etc., para evitar a produção de sinais errados em caso de ruptura sem efeito. O indicador de volatilidade também pode ser usado para identificar sinais de reversão na tendência.
A linha média é usada para determinar a direção da tendência, considerando os sinais de negociação somente quando a direção da tendência é consistente. A estratégia de suspensão pode ser escolhida em situações de turbulência.
A estratégia de reversão do RSI é, em geral, uma estratégia de negociação típica de linha curta, com certos benefícios e riscos. A principal vantagem é a capacidade de capturar o rebote após o supermercado, enquanto os riscos são principalmente a falta de precisão do indicador de confiança e o tempo excessivo de manutenção de posições em condições de choque.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Noro's FRSI Strategy v1.21", shorttitle = "FRSI str 1.21", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0)
//Settings
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2038, defval = 2018, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit
//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0
//Body
body = abs(close - open)
emabody = ema(body, 30)
//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2
//Trading
if up
strategy.entry("Long", strategy.long, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
sps := 1
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
strategy.close_all()
sps := 0