Estratégia de ruptura do ponto pivô

Autora:ChaoZhang, Data: 2023-09-27 16:35:26
Tags:

Resumo

A estratégia de ruptura do ponto pivô é uma estratégia de tendência que compra ações quando o preço ultrapassa a resistência recente e vende quando o preço ultrapassa o suporte recente para capturar mudanças de tendência.

Estratégia lógica

A estratégia calcula os pontos médios do preço mais alto e o preço mais baixo durante um período como as linhas de resistência e suporte recentes.

Especificamente, ele calcula o ponto médio do preço mais alto nos últimos N1 dias como a linha de resistência, e o ponto médio do preço mais baixo nos últimos N2 dias como a linha de suporte. No lado longo, se o preço mais alto de hoje quebra acima da linha de resistência recente, um sinal de compra é acionado. No lado curto, se o preço mais baixo de hoje quebra abaixo da linha de suporte recente, um sinal de venda é acionado. Os investidores podem personalizar o N1 e o N2 para ajustar a sensibilidade da estratégia.

A estratégia é simples e direta, não requer previsão de mercado, apenas rastreando breakouts de pontos pivô para capturar tendências.

Análise das vantagens

  • Simples e fáceis de operar, adequados a todos os investidores

A estratégia é muito simples e intuitiva, não requer habilidades de previsão, apenas rastreamento de quebras de pontos pivot.

  • Captura eficazmente as alterações de tendência e ajusta as posições em conformidade

A estratégia pode responder em tempo hábil quando a tendência muda, ajustando as posições para evitar ficar preso.

  • Parâmetros personalizáveis para ajustar a flexibilidade da estratégia

Os investidores podem personalizar o número de dias para olhar para a esquerda e para a direita, o que ajusta a sensibilidade da estratégia.

  • Fácil de combinar com outras estratégias de versatilidade

A estratégia fornece principalmente a tendência seguindo. pode ser facilmente combinado com outras estratégias de tempo para melhorar os retornos globais.

Análise de riscos

  • Efeito de atraso potencial

A estratégia precisa de algum acúmulo de dados para identificar mudanças de tendência, o que pode causar certos atrasos nos sinais.

  • Risco de falhas

Os investidores precisam de certas habilidades para lidar com os golpes e evitar ficarem presos.

  • Recursos mais elevados

A estratégia segue totalmente as tendências, portanto tem riscos de retirada relativamente grandes. Os investidores precisam considerar sua própria tolerância ao risco.

  • Necessidade de controlar a frequência do comércio

Os parâmetros excessivamente sensíveis podem levar a uma frequência excessiva de negociação. É necessário ajustar adequadamente os parâmetros para controlar o número de negociações. O período mínimo de detenção também pode ajudar a reduzir a frequência.

Orientações de otimização

  • Optimize a regulação dos parâmetros

Pode testar e otimizar os N dias para o mais alto e o mais baixo para encontrar o melhor mix de parâmetros a longo prazo.

  • Adicionar força de fuga

Pode definir um requisito de magnitude mínima para a ruptura para evitar quebras falsas menores.

  • Adicionar outros indicadores como filtros

Pode adicionar outros indicadores técnicos como RSI, KD etc. Se o breakout se alinhar com as divergências do indicador, os sinais são mais eficazes.

  • Melhorar o dimensionamento da posição

Pode dimensionar posições dinamicamente com base nas condições do mercado para controlar o risco. Pode parar as coberturas para evitar grandes perdas. Também pode ajustar o tamanho com base na força das tendências em curso.

Conclusão

A estratégia de breakout de ponto pivô capta tendências simplesmente através de quebras de ponto pivô, adequado para uma ampla gama de investidores. Suas vantagens são a simplicidade e efetivamente capturar as mudanças de tendência, mas também tem alguns problemas de atraso, riscos e grandes drawdowns. Ajustar parâmetros, adicionar filtros e melhorar o dimensionamento da posição pode melhorar a estabilidade da estratégia.


/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EduardoMattje

//@version=5
strategy("Pivot Point Breakout", "PPB", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, process_orders_on_close=true)

// Constants

var L_PIVOT_HIGH = "Pivot high"
var L_PIVOT_LOW = "Pivot low"

var LEFT = "Left"
var RIGHT = "Right"

var BOTH = "Both"
var LONG = "Long"
var SHORT = "Short"

var DATES = "Date selection"
var DATES_TOOLTIP = "Change it to limit the trades for the given time interval.\n\nLeave it to disable this behaviour."

// Inputs

var orderDirection = input.string(LONG, "Order direction", options=[BOTH, LONG, SHORT])

var leftHigh = input.int(3, LEFT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)
var rightHigh = input.int(3, RIGHT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)

var leftLow = input.int(3, LEFT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)
var rightLow = input.int(3, RIGHT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)

var startDate = input(0, "Starting date", group=DATES)
var endDate = input(0, "Final date", group=DATES)

//

var float lastHigh = na
var float lastLow = na

lowPivot = ta.pivotlow(leftLow, rightLow)
highPivot = ta.pivothigh(leftHigh, rightHigh)

f_updateLevels(pivot_) => 
    var float pastLevel = na
    
    if not na(pivot_)
        pastLevel := pivot_
    
    pastLevel
    
lastLow := f_updateLevels(lowPivot)
lastHigh := f_updateLevels(highPivot)

// Validates the time interval

validTrade =  true

// Orders

if high > lastHigh
    strategy.entry("Long", strategy.long, when=orderDirection != SHORT and validTrade)
    strategy.close("Short", when=orderDirection == SHORT)
if low < lastLow
    strategy.entry("Short", strategy.short, when=orderDirection != LONG and validTrade)
    strategy.close("Long", when=orderDirection == LONG)
    
// Plots

plot(lastLow, "Last pivot low", color.red, offset=1)
plot(lastHigh, "Last pivot high", color.teal, offset=1)

plotshape(lowPivot, "Pivot low", location=location.belowbar, color=color.red, offset=-rightLow)
plotshape(highPivot, "Pivot high", color=color.teal, offset=-rightHigh)


Mais.