Estratégia de Supertendência de Pivot em vários prazos

Autora:ChaoZhang, Data: 2024-01-31 17:29:37
Tags:

img

Resumo

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.

Estratégia lógica

Esta estratégia baseia-se principalmente em dois indicadores:

  1. 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.

  2. 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.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. Projeto de quadros de tempo múltiplos: ciclos longos e intermediários determinam as principais tendências, enquanto ciclos curtos determinam entradas específicas.

  2. A linha do meio do pivô fornece uma opção para fechar metade da posição, bloqueando algum lucro enquanto garante negociações vencedoras.

  3. As bandas médias de alcance verdadeiro fornecem níveis claros de stop loss.

  4. A estratégia tem poucos parâmetros, fácil de otimizar para as melhores combinações de parâmetros.

  5. Evitar o máximo o risco de falhas.

Análise de riscos

A estratégia apresenta também alguns riscos:

  1. Riscos de stop loss mais elevados durante a alta volatilidade do mercado.

  2. A linha do meio pode frequentemente desencadear uma perda de parada durante as consolidações de mercado.

  3. As selecções de parâmetros incorretas podem resultar em negociações demasiado poucas ou demasiado frequentes.

  4. As rupturas recentes dos pontos pivot podem revelar-se falsas.

Orientações de otimização

A estratégia pode ser otimizada a partir dos seguintes aspectos:

  1. Combine mais filtros como volume e Bandas de Bollinger para evitar sinais falsos.

  2. Otimizar os períodos de Pivot Points e ATR para encontrar as melhores combinações de parâmetros.

  3. Configure uma zona tampão à volta da linha do meio para evitar disparos frequentes.

  4. Adicionar filtros de tendência adequados para garantir o funcionamento de acordo com as principais tendências.

Conclusão

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()

Mais.