A estratégia combina uma estratégia de reversão de pontos de resistência de suporte e um indicador de resistência relativamente forte (RSI), examinando os sinais do indicador RSI quando se formam pontos de resistência de suporte para encontrar oportunidades de reversão de tendência potencial.
A estratégia começa por calcular os principais níveis de resistência de suporte, ou seja, olhando para várias linhas K na esquerda e na direita, obtendo o nível de suporte mais alto e o nível de resistência mais baixo. Quando o nível de resistência de suporte é formado, verifique mais se o valor do RSI corresponde aos requisitos de sobrevenda.
Os detalhes do código são os seguintes:
A estratégia tem as seguintes vantagens:
Verificação de tendência: O RSI pode filtrar brechas falsas para evitar entradas erradas em ajustes temporários
Controle de risco: Stop loss em torno da resistência de suporte crítico, favorável ao controle de risco
Compatível com diferentes variedades e períodos de tempo
Implementação simples: menos configuração de indicadores e parâmetros, fácil de implementar
Baixa exigência de dados: apenas a OHLC é necessária e a qualidade dos dados é baixa
A estratégia também apresenta os seguintes riscos:
Risco de fracasso do nível de resistência de suporte: quando o mercado está em uma mudança drástica, o nível de resistência de suporte original pode ser quebrado, levando ao fracasso da estratégia. O risco pode ser reduzido ajustando o parâmetro para alargar adequadamente o alcance do nível de resistência de suporte.
Risco de dispersação do RSI: Em situações de turbulência, o RSI pode se dispersar e o overbought e o overbought são julgados ineficazes. Os parâmetros do RSI podem ser ajustados adequadamente ou condições adicionais podem ser adicionadas para validar o sinal do RSI.
O stop loss é coberto pelo risco: durante a execução da tendência, o stop loss pode ser rompido, o que aumenta os prejuízos. A distância de stop loss pode ser adequadamente relaxada, mas é necessário equilibrar o lucro da tendência e o controle do risco.
Risco de retração: a estratégia é executada de forma gradual, e pode ocorrer uma certa retração quando a tendência se inverte. A retração pode ser controlada por meio de gerenciamento de risco.
A estratégia pode ser melhorada em vários aspectos:
Otimizar os parâmetros de cálculo do ponto de resistência de suporte, melhorar a precisão de localização. Pode testar diferentes perspectivas de esquerda e direita ou adicionar filtros condicionais, etc.
Otimizar os parâmetros do RSI, melhorando a precisão da determinação de um excesso de compra e venda. Pode testar diferentes comprimentos de RSI, bem como a localização da linha de compra e venda.
Adicionar condições de verificação adicionais para evitar a cobertura em situações de choque. Por exemplo, a combinação de indicadores de taxa de flutuação.
Otimizar a estratégia de parada de perda para obter um equilíbrio entre a busca de lucro e o controle do risco. Pode-se introduzir métodos de parada de perda dinâmica, como trailing stop.
Introdução de um stop loss baseado em análise estatística, definindo um limite de stop loss com base em dados históricos.
Combinação de vários períodos de tempo para a verificação, usando a interconfirmação de vários períodos para aumentar a taxa de vitória.
A sequência usa o nível de resistência de suporte e o indicador RSI para identificar potenciais reviravoltas de tendência e encontrar melhores momentos de entrada em pontos-chave. Comparado ao uso de indicadores técnicos como resistência de suporte ou RSI sozinhos, a estratégia pode melhorar a sistematização e a estabilidade.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-07 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Pivot Point Reversal + RSI Strategy", shorttitle = 'PP + RSI Strategy', overlay=true)
////////////
// Inputs //
leftBars = input(3, title = 'PP - Left Bars')
rightBars = input(3, title = 'PP - Right Bars')
rsi_length = input(14, title = "RSI - Length")
rsi_long = input(70, title = "RSI - Overbought level")
rsi_short = input(30, title = "RSI - Overold level")
//////////////////
// Calculations //
// Pivot Points
swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)
// Pivot High
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])
// Pivot Low
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
// RSI
rsi = rsi(close, 14)
//////////////
// STRATEGY //
if (le and rsi[rightBars] < rsi_long )
strategy.entry("PivRevLE", strategy.long, comment = "PivRSI Long", stop = hprice + syminfo.mintick)
if (se and rsi[rightBars] > rsi_short)
strategy.entry("PivRevSE", strategy.short, comment = "PivRSI Short", stop = lprice - syminfo.mintick)