Estratégia de sinal longo e curto com base no indicador QQE e no indicador RSI

RSI QQE
Data de criação: 2024-05-27 15:17:45 última modificação: 2024-05-27 15:17:45
cópia: 0 Cliques: 830
1
focar em
1617
Seguidores

Estratégia de sinal longo e curto com base no indicador QQE e no indicador RSI

Visão geral

A estratégia baseia-se no indicador QQE e no indicador RSI, construindo um intervalo de sinal de plurivolar, calculando a média móvel e a amplitude de oscilação dinâmica do indicador RSI. Quando o indicador RSI se eleva, ele gera um sinal de plurivolar e, quando ele desce, ele gera um sinal de breakout. A principal idéia da estratégia é aproveitar as características de tendência do indicador RSI e as características de flutuação do indicador QQE para capturar mudanças de tendência e oportunidades de flutuação no mercado.

Princípio da estratégia

  1. Calcule a média móvel lisa do indicador RSI, RsiMa, como base para avaliar a tendência.
  2. Calcule o desvio absoluto AtrRsi do indicador RSI e sua média móvel MaAtrRsi, como base para julgar a oscilação.
  3. A amplitude de oscilação dinâmica dar é calculada com base no fator QQE e combinada com RsiMa para construir longband e shortband entre os sinais de espaço múltiplo.
  4. Para julgar a relação entre o indicador RSI e o intervalo de sinal de hiato, quando o indicador RSI produz um sinal de hiato quando atravessa a banda longa e um sinal de hiato quando atravessa a banda curta.
  5. Comércio de acordo com o sinal de vazio, compra de posição quando o sinal de vazio é acionado e compra de posição quando o sinal de vazio é acionado.

Vantagens estratégicas

  1. A combinação das características do RSI e do QQE permite capturar melhor as tendências do mercado e as oportunidades de flutuação.
  2. A amplitude de oscilação dinâmica é usada para construir intervalos de sinalização que se adaptam às variações na taxa de flutuação do mercado.
  3. A suavização do índice RSI e a amplitude de oscilação reduzem a interferência de ruído e a frequência de negociação.
  4. A lógica é clara, com menos parâmetros, o que é adequado para uma maior otimização e melhoria.

Risco estratégico

  1. A estratégia pode não funcionar de forma ideal em mercados de baixa volatilidade e de baixa volatilidade.
  2. A falta de um mecanismo de parada de prejuízos definido pode levar a um maior risco de retração em caso de uma reversão súbita do mercado.
  3. A configuração dos parâmetros tem um grande impacto na performance da estratégia e precisa ser ajustada de acordo com diferentes mercados e variedades.

Direção de otimização da estratégia

  1. Introdução de mecanismos de perda definidos, como perda de percentual fixa, perda de ATR, etc., para controlar o risco de retirada.
  2. Optimizar a configuração de parâmetros, que podem ser encontrados através de algoritmos genéticos, busca de grades e outros métodos de combinação de parâmetros otimizados.
  3. Considere a introdução de outros indicadores, como volume de transações, volume de posições, para enriquecer os sinais de negociação e aumentar a estabilidade da estratégia.
  4. Para mercados de choque, pode-se considerar a introdução de uma lógica de negociação de alcance ou operação de banda, aumentando a adaptabilidade da estratégia.

Resumir

A estratégia é baseada em indicadores RSI e QQE para construir sinais multi-espaço, com características de captura de tendência e captura de oscilação. A lógica da estratégia é clara, com poucos parâmetros, e é adequada para otimização e melhoria.

Código-fonte da estratégia
/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=4
// modified by swigle
// thanks colinmck

strategy("QQE signals bot", overlay=true)


RSI_Period = input(14, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(4.236, title='Fast QQE Factor')
ThreshHold = input(10, title="Thresh-hold")

src = close
Wilders_Period = RSI_Period * 2 - 1

Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE

longband = 0.0
shortband = 0.0
trend = 0

DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband

// Find all the QQE Crosses

QQExlong = 0
QQExlong := nz(QQExlong[1])
QQExshort = 0
QQExshort := nz(QQExshort[1])
QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0
QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0

//Conditions

qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na
qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na

// Plotting

plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny)
plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny)

// trade

//if qqeLong > 0
strategy.entry("buy long", strategy.long, 100, when=qqeLong)
    
if qqeShort > 0
    strategy.close("buy long")
    // strategy.exit("close_position", "buy long", loss=1000)
    // strategy.entry("sell", strategy.short, 1, when=strategy.position_size > 0)