Estratégia de negociação quantitativa baseada no indicador RSI e no padrão de engulfing

Autora:ChaoZhang, Data: 2024-01-03 11:24:08
Tags:

img

Resumo

O nome desta estratégia é RSI e Engulfing Pattern Quantitative Trading Strategy. A ideia principal desta estratégia é identificar tendências de mercado usando tanto o indicador RSI quanto os padrões de engulfing para gerar sinais de compra e venda.

Quando o indicador RSI mostra extremos e padrões de engulfamento aparecem, acreditamos que é uma oportunidade para estabelecer posições.

Estratégia lógica

Em primeiro lugar, definimos os parâmetros do indicador RSI, incluindo a duração do período do RSI (geralmente 9 ou 14), nível de sobrecompra (geralmente 70) e nível de sobrevenda (geralmente 30).

Em seguida, identificamos padrões de engulfamento para determinar se uma grande vela alta ou baixa engulfou a vela anterior.

Depois disso, se o RSI mostrar extremos de sobrecompra ou sobrevenda e um engulfamento de alta ou baixa aparecer, os sinais de compra ou venda são acionados.

Vantagens da estratégia

Esta estratégia combina o indicador de tendência RSI e o indicador de padrão englobando padrões para julgar de forma abrangente as tendências do mercado, que tem uma maior eficácia de confirmação em comparação com as estratégias de indicador único, e pode filtrar sinais de negociação ruidosos de forma eficaz.

O indicador RSI avalia os estados de sobrecompra e sobrevenda com muita precisão e clareza, enquanto as características de volume de preços implícitas nos padrões de engulfing podem verificar ainda mais a fiabilidade das inversões de tendência.

Esta estratégia permite captar oportunamente as oportunidades de reversão decorrentes dos extremos de sobrecompra e sobrevenda, evitando perdas comerciais desnecessárias durante as consolidações.

Riscos da Estratégia

O maior risco desta estratégia é que a probabilidade de indicador RSI e padrões de engulfamento mostrando sinais errados não é baixa. O indicador RSI é propenso a distorções e divergências. E a identificação de padrões de engulfamento pode ser manipulada ajustando parâmetros como o tamanho da janela do gráfico de velas.

Além disso, a possibilidade de oscilação e consolidação não pode ser completamente descartada quando aparecem sinais de reversão. O mercado pode ter retrações ou até mesmo reversões no curto prazo após as posições serem estabelecidas.

Para reduzir os riscos, precisamos otimizar as configurações de parâmetros do indicador RSI para encontrar a melhor combinação de parâmetros. Além disso, a seleção de instrumentos de negociação com forte representação e liquidez também é muito importante. Depois de estabelecer posições, precisamos controlar adequadamente o tamanho da posição e definir um stop loss oportuno.

Orientações para a otimização da estratégia

Esta estratégia pode ser melhorada nos seguintes aspectos:

  1. Incorporar mais indicadores, como o KDJ e o MACD, para formar um sistema de verificação de múltiplos indicadores para melhorar a precisão do sinal.

  2. Considerar fatores como a liquidez, a volatilidade e o custo de transação dos instrumentos de negociação e selecionar os mais adequados para reduzir os custos de negociação e os riscos de deslizamento.

  3. Usar métodos de aprendizagem de máquina para treinar e otimizar parâmetros.

  4. Adicionar estratégias de stop loss e proteger os lucros através de stop loss móvel, MA stop loss etc.

Conclusão

Esta estratégia utiliza os pontos fortes do indicador RSI e padrões de engulfamento, e projeta um sistema de negociação quantitativo que leva em conta tanto o julgamento da tendência quanto a verificação de características.


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Lesson 6", shorttitle="RSI Swing Signals", overlay=true)

// Get user input
rsiSource = input(title="RSI Source", type=input.source, defval=close)
rsiLength = input(title="RSI Length", type=input.integer, defval=9)
rsiOverbought = input(title="RSI Overbought Level", type=input.integer, defval=60)
rsiOversold = input(title="RSI Oversold Level", type=input.integer, defval=25)

// Get RSI value
rsiValue = rsi(rsiSource, rsiLength)
rsiOB = rsiValue >= rsiOverbought
rsiOS = rsiValue <= rsiOversold

// Identify engulfing candles
bullishEC = close > open[1] and close[1] < open[1]
bearishEC = close < open[1] and close[1] > open[1]

// Define entry and exit conditions
longCondition = (rsiOS or rsiOS[1]) and bullishEC
shortCondition = (rsiOB or rsiOB[1]) and bearishEC

// Plot signals to chart
plotshape(longCondition, title="Long", location=location.belowbar, color=color.green, transp=0, style=shape.triangleup, text="Long")
plotshape(shortCondition, title="Short", location=location.abovebar, color=color.red, transp=0, style=shape.triangledown, text="Short")

// Strategy entry and exit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Define exit conditions
longExitCondition = crossover(rsiValue, 60) // You can customize this exit condition
shortExitCondition = crossunder(rsiValue, 40) // You can customize this exit condition

// Strategy exit
strategy.exit("ExitLong", from_entry="Long", when=longExitCondition)
strategy.exit("ExitShort", from_entry="Short", when=shortExitCondition)

// Send out an alert if this candle meets our conditions
alertcondition(longCondition or shortCondition, title="RSI Trade Alert!", message="RSI Swing Signal for XXX")


Mais.