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.
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")