Esta estratégia combina o indicador Pivot Points e Bandas de True Range Médio para implementar um sistema de rastreamento de tendências em vários prazos.
Esta estratégia baseia-se principalmente em dois indicadores:
Pontos pivô: Calcular a média dos preços mais altos, mais baixos e de fechamento durante um determinado período para determinar pontos pivô superiores e inferiores.
Bandas médias de alcance verdadeiro: Calcule a faixa média de alcance verdadeiro durante um determinado período e mova a faixa do meio para cima e para baixo para formar um canal.
A lógica específica de negociação é a seguinte:
Quando o preço atravessa o canal do Real Intervalo Médio, tome posições longas ou curtas ao longo da direção de quebra. Quando o preço retornar ao canal, feche posições. Também, quando o preço atravessar o ponto de pivô superior, tome posição longa; quando o preço atravessar o ponto de pivô inferior, tome posição curta.
A estratégia também introduz o conceito de linha média de pivô.Quando a linha média for quebrada, é possível fechar metade da posição para obter algum lucro e controlar o risco.
A estratégia apresenta as seguintes vantagens:
Projeto de quadros de tempo múltiplos: ciclos longos e intermediários determinam as principais tendências, enquanto ciclos curtos determinam entradas específicas.
A linha do meio do pivô fornece uma opção para fechar metade da posição, bloqueando algum lucro enquanto garante negociações vencedoras.
As bandas médias de alcance verdadeiro fornecem níveis claros de stop loss.
A estratégia tem poucos parâmetros, fácil de otimizar para as melhores combinações de parâmetros.
Evitar o máximo o risco de falhas.
A estratégia apresenta também alguns riscos:
Riscos de stop loss mais elevados durante a alta volatilidade do mercado.
A linha do meio pode frequentemente desencadear uma perda de parada durante as consolidações de mercado.
As selecções de parâmetros incorretas podem resultar em negociações demasiado poucas ou demasiado frequentes.
As rupturas recentes dos pontos pivot podem revelar-se falsas.
A estratégia pode ser otimizada a partir dos seguintes aspectos:
Combine mais filtros como volume e Bandas de Bollinger para evitar sinais falsos.
Otimizar os períodos de Pivot Points e ATR para encontrar as melhores combinações de parâmetros.
Configure uma zona tampão à volta da linha do meio para evitar disparos frequentes.
Adicionar filtros de tendência adequados para garantir o funcionamento de acordo com as principais tendências.
Em geral, esta é uma estratégia de rastreamento de tendências muito prática. Resolve as dificuldades comuns de stop loss dos sistemas de tendências e alcança a negociação de tendências controlada pelo risco. É uma estratégia altamente recomendada. Com otimizações e melhorias adequadas, seu desempenho pode ser ainda melhorado.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h 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/ // © LonesomeTheBlue //@version=4 strategy("Pivot Point SuperTrend [Backtest]", overlay = true) prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50) Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1) Pd=input(defval = 10, title = "ATR Period", minval=1) usecenter = input(defval = false, title="Use Center Line to Close Entry for 50%") showpivot = input(defval = false, title="Show Pivot Points") showcl = input(defval = false, title="Show PP Center Line") float ph = na float pl = na ph := pivothigh(prd, prd) pl := pivotlow(prd, prd) plotshape(ph and showpivot, text="H", style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd) plotshape(pl and showpivot, text="L", style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd) float center = na center := center[1] float lastpp = ph ? ph : pl ? pl : na if lastpp if na(center) center := lastpp else center := (center * 2 + lastpp) / 3 Up = center - (Factor * atr(Pd)) Dn = center + (Factor * atr(Pd)) float TUp = na float TDown = na Trend = 0 TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1) Trailingsl = Trend == 1 ? TUp : TDown linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na plot(Trailingsl, color = linecolor , linewidth = 2, title = "PP SuperTrend") plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na, transp = 0) bsignal = Trend == 1 and Trend[1] == -1 ssignal = Trend == -1 and Trend[1] == 1 if bsignal strategy.entry("Buy", true, 2, comment = "Buy") if ssignal strategy.entry("Sell", false, 2, comment = "Sell") if strategy.position_size == 2 and center > hl2 and usecenter strategy.close("Buy", qty_percent = 50, comment = "close buy entry for 50%") if strategy.position_size == -2 and center < hl2 and usecenter strategy.close("Sell", qty_percent = 50, comment = "close sell entry for 50%") if change(Trend) strategy.close_all()