Este artigo irá analisar em detalhes uma estratégia de negociação de reversão baseada em pontos de pivô.
A estratégia baseia-se principalmente em dois indicadores: Pivot High e Pivot Low.pivothigh()
epivotlow()
Para calcular os pontos de pivô, os períodos para a esquerda e para a direita precisam ser definidos; esta estratégia usa 4 períodos para a esquerda e 2 períodos para a direita.
Quando o preço mais alto do último período é inferior ao pico de pivô do período anterior, ele sinaliza uma oportunidade de reversão. Se as posições anteriores foram curtas, as posições longas devem agora ser consideradas para capitalizar a reversão. Da mesma forma, quando o preço mais baixo do último período é superior ao pico mais baixo anterior, as posições longas existentes devem considerar a reversão para curto.
Especificamente, a lógica principal é:
A maior vantagem desta estratégia é a identificação de pontos potenciais de reversão da tendência, o que é crucial para os traders de reversão.
Além disso, a estratégia tem condições para entradas longas e curtas, cobrindo diferentes situações de mercado para evitar oportunidades perdidas.
Em resumo, esta é uma estratégia de reversão muito prática.
Apesar dos esforços para reduzir falsos sinais, qualquer estratégia baseada em breakout inevitavelmente enfrenta problemas como sinais prematuros ou atrasados. Isso pode resultar em planejar uma entrada longa, mas o mercado já se invertiu, ou planejar um curto, mas uma corrida alta de repente irrompe. Essa incapacidade de prever perfeitamente reversões é uma limitação inerente da análise técnica.
Além disso, os pontos de pivô também não podem garantir níveis de suporte/resistência perfeitos. A má sorte pode resultar em uma parada de perda logo antes do nível de suporte real. Tal incerteza em torno de zonas-chave não pode ser totalmente evitada.
Optimização do período. Os períodos atuais esquerda/direita são definidos em 4 e 2. Estes podem servir como valores iniciais e ser otimizados para cada mercado.
Adicione filtros com outros indicadores. Por exemplo, combine com o volume para considerar apenas quebra como válida quando acompanhada de volume crescente. Isso ajuda a evitar quebra falsas.
A zona de buffer pode ser ajustada dinamicamente com base na volatilidade do mercado.
Operar apenas na direção da tendência. Atualmente, as condições longas/cortas são paralelas. Uma otimização é apenas longa em tendências de alta e curta em tendências de baixa com base em um filtro de tendência.
Em resumo, esta é uma estratégia de reversão simples, mas prática. Identificar pontos pivô durante um período e monitorar avanços de preços forma a ideia central para detectar potenciais reversões de tendência. As condições paralelas longo / curto maximizam as oportunidades, enquanto as perdas de parada gerenciam o risco.
A lógica da estratégia é direta e fácil de implementar. Os parâmetros também são intuitivos para iniciantes. Outras otimizações podem melhorar o desempenho para adoção.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Pivot Reversal Strategy", overlay=true) leftBars = input(4) rightBars = input(2) // backtesting date range from_day = input(defval = 1, title = "From Day", minval = 1) from_month = input(defval = 3, title = "From Month", minval = 1) from_year = input(defval = 2018, title = "From Year", minval = 1970) to_day = input(defval = 1, title = "To Day", minval = 1) to_month = input(defval = 1, title = "To Month", minval = 1) to_year = input(defval = 2100, title = "To Year", minval = 1970) time_cond = (time > timestamp(from_year, from_month, from_day, 00, 00)) and (time < timestamp(to_year, to_month, to_day, 23, 59)) swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) 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]) if (le and time_cond) strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick) 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]) if (se and time_cond) strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)