Estratégia de reversão de pivô

Autora:ChaoZhang, Data: 23 de janeiro de 2023
Tags:

Resumo

A Estratégia de Reversão de Pivot é uma estratégia de negociação de breakout que combina o conceito de níveis de suporte e resistência de pivot.

Estratégia lógica

A estratégia primeiro calcula os preços mais altos e mais baixos durante um período especificado (por exemplo, 4 barras) como os níveis de resistência e suporte do pivô.

  1. Utilize a função pivothigh para calcular o preço mais alto para a resistência do pivot swh
  2. Utilize a função pivotlow para calcular o preço mais baixo para o suporte pivot
  3. Vai curto (stratégia.curto) quando os preços quebrar acima da resistência do pivô swh
  4. Ir longo (estratégia. longo) quando os preços ultrapassarem o suporte do pivô

A lógica da estratégia é simples e clara - tomar posições reversas quando os preços quebram os níveis pivot.

Análise das vantagens

A estratégia de reversão do pivô tem várias vantagens:

  1. A ideia de estratégia é simples e fácil de entender para iniciantes.
  2. O uso de níveis pivot para determinar a inversão da tendência é robusto contra o ruído do mercado a curto prazo.
  3. Apenas a negociação em breakouts pivotal evita frequências excessivas de negociação.
  4. O controlo das horas de negociação ajuda a evitar riscos durante a noite.
  5. O código conciso é fácil de otimizar.

Análise de riscos

Há também alguns riscos a ter em conta:

  1. Os níveis de pivô não garantem uma previsão perfeita da tendência e são possíveis falhas.
  2. Os sinais pivotal podem causar uma entrada prematura. Outros indicadores devem confirmar o sinal de negociação.
  3. Não considera o regime de mercado nem as características individuais das existências, que conduzem a riscos sistémicos.
  4. Apoio e resistência turvas aumentam a probabilidade de falha nas fuga.

Para controlar os riscos, as otimizações recomendadas incluem o uso de stop loss móveis para seguir a tendência principal, emparelhar ações com as condições de mercado e reduzir as taxas de falha de ruptura.

Orientações de otimização

Tendo em conta os riscos, as futuras otimizações podem centrar-se em:

  1. Otimizar parâmetros de pivô como aumentar o período de cálculo para melhorar a taxa de sucesso.

  2. Adicionar stop loss móvel para seguir a tendência principal e reduzir os riscos de reversão.

  3. Incorporar outros indicadores, como o MACD, para confirmar a tendência e evitar falhas.

  4. Classificação das unidades populacionais por características e definição de parâmetros únicos.

  5. Otimizar os horários de negociação para diferentes mercados como ações dos EUA e Hong Kong.

  6. Considerando a tendência geral do mercado para a negociação selectiva.

Conclusão

Em geral, a estratégia de reversão pivot é uma ótima estratégia de ruptura simples para iniciantes aprenderem. Ela identifica os níveis de reversão de forma limpa usando pontos pivot. Embora existam riscos, a otimização de parâmetros, stop loss, horas de negociação e a incorporação de indicadores podem transformá-la em uma robusta estratégia de negociação de curto prazo.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Pivot Reversal Strategy", overlay=true)

// === BACKTEST RANGE ===
FromMonth = input(defval = 2, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)


leftBars = input(4)
rightBars = input(2)

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)
    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)
    strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mais.