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.
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.
A estratégia é muito simples e intuitiva, não requer habilidades de previsão, apenas rastreamento de quebras de pontos pivot.
A estratégia pode responder em tempo hábil quando a tendência muda, ajustando as posições para evitar ficar preso.
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.
A estratégia fornece principalmente a tendência seguindo. pode ser facilmente combinado com outras estratégias de tempo para melhorar os retornos globais.
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.
Os investidores precisam de certas habilidades para lidar com os golpes e evitar ficarem presos.
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.
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.
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.
Pode definir um requisito de magnitude mínima para a ruptura para evitar quebras falsas menores.
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.
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.
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)