O recurso está a ser carregado... Carregamento...

Estratégia de negociação de DEV de desvio-padrão baseada no índice de força relativa RSI e na SMA média móvel simples

Autora:ChaoZhang, Data: 2024-05-28 10:57:06
Tags:RSISMADEV

img

Resumo

Esta estratégia é baseada no índice de força relativa (RSI) e no desvio padrão (DEV) da volatilidade dos preços. Determina os pontos de entrada comparando o preço com as faixas superior e inferior, enquanto usa o RSI como um indicador de filtragem auxiliar. Gerar sinais de entrada longa quando o preço quebra acima da faixa inferior e o RSI está abaixo do limiar de sobrevenda, e sinais de entrada curto quando o preço quebra abaixo da faixa superior e o RSI está acima do limiar de sobrecompra. A estratégia fecha longo quando o preço quebra abaixo da faixa inferior de saída ou o RSI excede o limiar de sobrecompra, e fecha posições curtas quando o preço quebra acima da faixa superior de saída ou o RSI cai abaixo do limiar de sobrevenda. Esta estratégia pode ajustar dinamicamente de acordo com as condições de volatilidade do mercado, mantendo posições durante o tempo de alta volatilidade e perdas quantitativas durante os estados de baixa volatilidade.

Princípio da estratégia

  1. Calcular a média móvel simples (SMA) e o desvio-padrão (DEV) do preço nos últimos períodos longitude.
  2. Construir um canal de volatilidade com SMA como linha central, SMA+ limiarEntradaDEV como faixa superior e limiar SMAEntradaDEV como a banda inferior.
  3. Calcular simultaneamente o indicador RSI do preço de encerramento nos últimos períodos rsiLength.
  4. Quando o preço ultrapassar a faixa inferior e o RSI estiver abaixo do limiar de sobrevenda rsiOversold, gerar um sinal de entrada longo.
  5. Quando o preço ultrapassar a faixa superior e o RSI estiver acima do limiar de sobrecompra rsiOverbought, gerar um sinal de entrada curto.
  6. Construir outro canal de saída mais estreito com SMA como linha central, SMA + limiarExitDEV como faixa superior e limiar SMAExitDEV como a banda inferior.
  7. Ao manter uma posição longa, se o preço ultrapassar a faixa inferior de saída ou o RSI exceder o limiar de sobrecompra, feche a posição longa.
  8. Ao manter uma posição curta, se o preço ultrapassar a faixa superior de saída ou o RSI cair abaixo do limiar de sobrevenda, feche a posição curta.

Análise das vantagens

  1. Usando tanto o comportamento do preço quanto os indicadores de momento para julgamento auxiliar, ele pode efetivamente filtrar sinais falsos.
  2. Ao ajustar dinamicamente a largura do canal com base na volatilidade, a estratégia pode adaptar-se aos diferentes estados do mercado.
  3. Ao estabelecer dois conjuntos de canais, pode reduzir as perdas na fase inicial da inversão de preços e controlar as reduções, enquanto ainda pode manter posições com lucro após a formação de uma tendência.
  4. A lógica do código e as definições dos parâmetros são claras e fáceis de compreender e otimizar.

Análise de riscos

  1. Quando o mercado continua numa tendência unilateral, a estratégia pode cortar perdas demasiado cedo e perder os lucros da tendência.
  2. As definições dos parâmetros têm um impacto significativo no desempenho da estratégia e a otimização dos parâmetros deve ser realizada separadamente para diferentes variedades e prazos.
  3. A estratégia tem melhor desempenho em mercados osciladores e média em mercados em tendência.
  4. Se a volatilidade do activo subjacente mudar drasticamente, as definições dos parâmetros fixos podem tornar-se inválidas.

Direcção de otimização

  1. Tente introduzir indicadores de avaliação da tendência, tais como cruzamento de médias móveis de curto prazo, ADX, etc., para distinguir entre mercados em tendência e oscilantes e utilizar diferentes configurações de parâmetros.
  2. Considerar a utilização de indicadores de volatilidade mais adaptáveis, como o ATR, para ajustar dinamicamente a largura do canal de volatilidade.
  3. Antes de abrir uma posição, efetuar um julgamento de tendência sobre o movimento dos preços para detectar se se encontra numa tendência clara para evitar negociações contrárias à tendência.
  4. Usar algoritmos genéticos, pesquisa em grade e outros métodos para otimizar diferentes combinações de parâmetros e encontrar as melhores configurações de parâmetros.
  5. Considerar a possibilidade de utilizar configurações de parâmetros diferentes para posições longas e curtas para controlar a exposição ao risco.

Resumo

Esta estratégia combina canais de volatilidade e o Índice de Força Relativa para tomar decisões de entrada e saída com base nas flutuações de preços, enquanto se refere ao indicador RSI. Pode capturar melhor as tendências de curto prazo e cortar perdas e obter lucros em tempo hábil. No entanto, o desempenho da estratégia é relativamente sensível às configurações de parâmetros e precisa ser otimizado para diferentes ambientes de mercado e ativos subjacentes. Ao mesmo tempo, considere a introdução de outros indicadores para ajudar a julgar as tendências do mercado, a fim de alavancar plenamente as vantagens desta estratégia.


/*backtest
start: 2024-05-20 00:00:00
end: 2024-05-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tmalvao

//@version=5
strategy("Estratégia de Desvio Padrão com RSI", overlay=true, margin_long=100, margin_short=100)

// Parâmetros
length = input.int(20, title="Período do Desvio Padrão")
thresholdEntry = input.float(1.5, title="Limite de Entrada")
thresholdExit = input.float(0.5, title="Limite de Saída")
rsiLength = input.int(14, title="Período do RSI")
rsiOverbought = input.int(70, title="RSI Overbought")
rsiOversold = input.int(30, title="RSI Oversold")

// Cálculo do Desvio Padrão
price = close
stdDev = ta.stdev(price, length)

// Média Móvel Simples
sma = ta.sma(price, length)

// Limites baseados no Desvio Padrão
upperLimit = sma + thresholdEntry * stdDev
lowerLimit = sma - thresholdEntry * stdDev
exitUpperLimit = sma + thresholdExit * stdDev
exitLowerLimit = sma - thresholdExit * stdDev

// Cálculo do RSI
rsi = ta.rsi(price, rsiLength)

// Condições de Entrada com RSI
longCondition = ta.crossover(price, lowerLimit) and rsi < rsiOversold
shortCondition = ta.crossunder(price, upperLimit) and rsi > rsiOverbought

// Condições de Saída com RSI
exitLongCondition = ta.crossunder(price, exitLowerLimit) or rsi > rsiOverbought
exitShortCondition = ta.crossover(price, exitUpperLimit) or rsi < rsiOversold

// Plotar Linhas
plot(upperLimit, color=color.red, title="Limite Superior")
plot(lowerLimit, color=color.green, title="Limite Inferior")
plot(exitUpperLimit, color=color.orange, title="Limite de Saída Superior")
plot(exitLowerLimit, color=color.blue, title="Limite de Saída Inferior")
plot(sma, color=color.gray, title="SMA")
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)

// Estratégia de Trade
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (exitLongCondition)
    strategy.close("Long")

if (exitShortCondition)
    strategy.close("Short")




Relacionados

Mais.