Estratégia de negociação VWAP com base no canal de preço


Data de criação: 2024-02-19 14:25:18 última modificação: 2024-02-19 14:25:18
cópia: 0 Cliques: 782
1
focar em
1617
Seguidores

Estratégia de negociação VWAP com base no canal de preço

Visão geral

Esta estratégia é conhecida como o Price Channel VWAP Trading Strategy, uma estratégia baseada no canal de preços para realizar transações VWAP. A ideia principal da estratégia é: dentro do canal de preços, usar a linha média do indicador VWAP e sua linha de canal de desvio para cima e para baixo para determinar o ponto de compra e venda.

Princípio da estratégia

A estratégia calcula o preço médio de transação a preços atuais através do indicador VWAP. O VWAP representa o preço médio, que é o valor médio entre o valor de transação e o volume de transação. O indicador VWAP reflete o desvio entre o preço atual e o preço médio de transação histórico.

A estratégia usa a média do indicador VWAP e sua linha de canal de desvio. A proporção da linha de canal de desvio é definida por meio dos parâmetros longlevel1 e shortlevel1. Quando o preço quebra a linha de canal de desvio, abra uma lista de negociação de acordo com a porcentagem de posição do parâmetro lotsizelong; Quando o preço quebra a linha de canal de desvio, abra uma lista de negociação de acordo com a porcentagem de posição do parâmetro lotsizeshort.

A configuração de parâmetros da estratégia reflete o conceito de negociação de canal. Os usuários podem ajustar a largura do canal e o tamanho da proporção de posição de acordo com suas preferências, permitindo diferentes níveis de frequência de negociação.

Análise de vantagens

A estratégia de negociação tem as seguintes vantagens:

  1. Utilizando o indicador VWAP para avaliar os centros de valor, pode capturar a direção dominante do mercado
  2. Transações dentro de corredores, evitando interferência de ruído e tornando as operações mais claras
  3. Operação de portfólio de canais em diferentes níveis, implantação em lotes, redução de riscos
  4. A operação de regresso foi interrompida em tempo hábil para evitar perdas causadas por uma rápida reversão.

Como o indicador VWAP pode refletir bem o nível médio dos preços, baseando-se em sua linha de corredor, pode efetivamente bloquear o centro de valor, evitando ser desviado por bandas de flutuação de curto prazo. Ao mesmo tempo, a combinação de diferentes canais de parâmetros, construção em lotes, pode efetivamente controlar o risco, evitar que o risco unilateral se concentre em explosão de posição. Finalmente, a perda causada pela reversão de preços pode ser reduzida por um retorno a tempo de parada para a posição de equilíbrio perto da linha de equilíbrio VWAP.

Análise de Riscos

A estratégia também apresenta alguns riscos que devem ser lembrados:

  1. Indicadores VWAP insensíveis a transações de alta frequência e não refletem anormalidades de preços extremos
  2. A configuração incorreta dos parâmetros de largura de canal pode levar a negociações excessivamente radicais
  3. Regressar a uma posição de equilíbrio operacional pode levar a perdas em celas se for muito amplo

O indicador VWAP não é sensível a flutuações de negociação de alta frequência, e ainda pode desencadear sinais de negociação e perdas desnecessários se houver uma explosão extrema ou uma anomalia de curto prazo. Além disso, se os parâmetros de canal forem configurados com demasiada flexibilidade, será fácil criar sinais de invalidez de penetração de preços. Finalmente, se a posição de equilíbrio de operação de retorno for configurada de forma muito ampla, poderá perder o melhor tempo de parada e travar perdas.

A contra-medida é o ajuste razoável dos parâmetros de avaliação, o ajuste apropriado dos parâmetros do canal; ao mesmo tempo, em combinação com outros indicadores, julgar as anomalias de preço, evitar o acompanhamento cego; e, finalmente, avaliar a otimização dos parâmetros de diferentes níveis de canal e de regressão, para obter um melhor efeito de parada.

Direção de otimização

A estratégia pode ser otimizada em várias direções:

  1. Aumentar a hierarquia de canais e otimizar o conjunto de parâmetros
  2. A eficácia da ruptura combinada com o volume de transações
  3. Aumentar a estratégia de stop loss e definir o stop loss de retração

É possível adicionar mais níveis de corredores e otimizar os parâmetros de combinação para obter um efeito de negociação mais estável. Além disso, é possível adicionar regras de julgamento de volume de negociação, evitando que o salto de preço inativo cause perdas de negociação. Finalmente, também é possível definir regras de parada de perda, quando a perda de posição atinge uma certa proporção, para controlar efetivamente o risco.

Resumir

Esta estratégia combina o indicador VWAP com o canal de preços, permitindo uma estratégia de negociação relativamente estável. A configuração dos parâmetros da estratégia é flexível e o usuário pode ajustá-la de acordo com suas próprias preferências. A estratégia pode determinar efetivamente a direção central do valor, alcançando um efeito de lucro estável através da combinação de parâmetros e da construção de estoques.

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

//@version=4
strategy(title = "VWAP Bands Backtest", shorttitle = "VWAP Bands Backtest", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
lotsizelong = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot long, %")
lotsizeshort = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot short, %")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
shortlevel1 = input(1.0, title = "Short line 1")
longlevel1 = input(-1.0, title = "Long line 1")
needoffset = input(true, title = "Offset")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
truetime = true

//VWAP
ma = vwap(hlc3)

//Levels
longline1 = long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
shortline1 = short1? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close


//Lines
colorlong1 = long1 ? color.lime : na
colorshort1 = short1 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")


//Trading
lotlong = 0.0
lotshort = 0.0
lotlong := size == 0 ? (strategy.equity / close) * (lotsizelong / 100) : lotlong[1]
lotshort := size == 0 ? (strategy.equity / close) * (lotsizeshort / 100) : lotshort[1]


if ma > 0
    if lotlong > 0
        lotslong = 0.0
        lotslong := strategy.position_size > 0 ? round(strategy.position_size / lotlong) : 0.0
        strategy.entry("L1", strategy.long, lotlong, limit = longline1, when = (lotslong == 0 and long1 and truetime))
    if lotshort > 0
        lotsshort = 0.0
        lotsshort := strategy.position_size < 0 ? round(strategy.position_size / lotshort) : 0.0
        strategy.entry("S1", strategy.short, lotshort, limit = shortline1, when = (lotsshort == 0 and short1 and truetime))
if strategy.position_size > 0
    strategy.exit("TPL", "L1", limit = ma)
if strategy.position_size < 0
    strategy.exit("TPS", "S1", limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("L1")
    strategy.cancel("S1")
    strategy.cancel("TPL")
    strategy.cancel("TPS")