Estratégia de compra e venda VWAP e Super Trend

VWAP ATR
Data de criação: 2024-06-03 10:45:14 última modificação: 2024-06-03 10:45:14
cópia: 0 Cliques: 1114
1
focar em
1617
Seguidores

Estratégia de compra e venda VWAP e Super Trend

Visão geral

A estratégia combina o VWAP (preço médio ponderado por volume de transação) e o Supertrend Indicator. Para julgar o sinal de compra e venda, é comparado a posição relativa do preço com o VWAP e a direção do Supertrend Indicator. Quando o preço atravessa o VWAP e a Supertrend é positiva, um sinal de compra é gerado; Quando o preço atravessa o VWAP e a Supertrend é negativa, um sinal de venda é gerado.

Princípio da estratégia

  1. Para calcular o indicador VWAP, use a função ta.vwap, que permite personalizar o comprimento do VWAP.
  2. Calcule o indicador de super tendência, usando a função ta.supertrend, que permite personalizar o período e o múltiplo do ATR.
  3. Os preços atuais estão acima do VWAP e a tendência é positiva.
  4. Os preços atuais são abaixo do VWAP e a direção da tendência é negativa.
  5. Registre o estado do sinal anterior, evitando que o sinal de sincronização ocorra em sequência. Um novo sinal de transação só será gerado se o sinal atual for diferente do sinal anterior.

Vantagens estratégicas

  1. A combinação dos dois indicadores VWAP e Supertrends permite um julgamento mais abrangente das tendências do mercado e dos potenciais pontos de inflexão.
  2. O indicador VWAP leva em consideração o volume de transações, o que permite refletir melhor a realidade do mercado.
  3. Os indicadores de tendências super têm a característica de rastrear tendências e filtrar oscilações, ajudando a capturar as principais tendências.
  4. A redução da frequência de transações e dos custos de transação é possível por meio de mecanismos que evitam a repetição de sinais.

Risco estratégico

  1. A estratégia pode gerar mais falsos sinais quando o mercado está mais flutuante ou a tendência é incerta.
  2. O desempenho da estratégia depende da escolha dos parâmetros VWAP e Supertrend, e diferentes configurações de parâmetros podem levar a resultados diferentes.
  3. A estratégia não contempla a gestão de riscos e o controle de posições, e a aplicação prática requer a combinação de outras medidas para controlar os riscos.

Direção de otimização da estratégia

  1. Adicionar mecanismos de confirmação de tendência, como o uso de linhas médias ou outros indicadores de tendência, para filtrar ainda mais os sinais.
  2. Optimizar a seleção de parâmetros para encontrar a melhor combinação de comprimento de VWAP, ATR e multiplicadores através da análise de dados históricos.
  3. Introduzir medidas de gerenciamento de risco, como a criação de stop-loss e stop-loss, para controlar o risco de transações individuais.
  4. Considere a inclusão de estratégias de gerenciamento de capital, como proporção fixa ou fórmula de Kelly, para otimizar o tamanho da posição.

Resumir

O VWAP e a estratégia de compra e venda de supertrends buscam capturar de forma abrangente as tendências do mercado e os potenciais pontos de inflexão, combinando dois tipos diferentes de indicadores. A lógica da estratégia é clara, fácil de implementar e otimizar.

Código-fonte da estratégia
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="VWAP and Super Trend Buy/Sell Strategy", shorttitle="VWAPST", overlay=true)


//===== VWAP =====
showVWAP = input.bool(title="Show VWAP", defval=true, group="VWAP")
VWAPSource = input.source(title="VWAP Source", defval=hl2, group="VWAP")
VWAPrice = ta.vwap(VWAPSource)
plot(showVWAP ? VWAPrice : na, color=color.teal, title="VWAP", linewidth=2)


//===== Super Trend =====
showST = input.bool(true, "Show SuperTrend Indicator", group="Super Trend")
Period = input.int(title="ATR Period", defval=10, group="Super Trend")
Multiplier = input.float(title="ATR Multiplier", defval=2.0, group="Super Trend")


// Super Trend ATR
Up = hl2 - (Multiplier * ta.atr(Period))
Dn = hl2 + (Multiplier * ta.atr(Period))
var float TUp = na
var float TDown = na
TUp := na(TUp[1]) ? Up : close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := na(TDown[1]) ? Dn : close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
var int Trend = na
Trend := na(Trend[1]) ? 1 : close > TDown[1] ? 1 : close < TUp[1] ? -1 : Trend[1]


Tsl = Trend == 1 ? TUp : TDown
linecolor = Trend == 1 ? color.green : color.red
plot(showST ? Tsl : na, color=linecolor, style=plot.style_line, linewidth=2, title="SuperTrend")


// Buy/Sell Conditions
var bool previousBuysignal = false
var bool previousSellsignal = false


buysignal = not previousBuysignal and Trend == 1 and close > VWAPrice
sellsignal = not previousSellsignal and Trend == -1 and close < VWAPrice


// Ensure the signals are not repetitive
if (buysignal)
    previousBuysignal := true
    previousSellsignal := false
else if (sellsignal)
    previousBuysignal := false
    previousSellsignal := true


// Execute buy and sell orders
if (buysignal)
    strategy.entry("Buy", strategy.long)
if (sellsignal)
    strategy.entry("Sell", strategy.short)


// Plot Buy/Sell Labels
//plotshape(buysignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.normal)
//plotshape(sellsignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.normal)