O recurso está a ser carregado... Carregamento...

Estratégia de negociação do VWAP

Autora:ChaoZhang, Data: 2024-04-29 14:20:39
Tags:EMAVWAP

img

Resumo

Esta estratégia é uma estratégia de negociação baseada em EMA, VWAP e volume. A ideia principal é gerar sinais de abertura quando o preço de fechamento quebra o VWAP e EMA, e o volume de negociação é maior do que o volume da vela anterior dentro de um determinado tempo de negociação. Também define stop loss e take profit, bem como condições para fechar posições dentro de um determinado período de tempo.

Princípio da estratégia

  1. Calcular os indicadores EMA e VWAP.
  2. Determine se está dentro do horário de negociação especificado.
  3. Condição de entrada longa: o preço de fechamento é superior ao VWAP e à EMA, o volume é superior ao da vela anterior e o preço de fechamento é superior ao preço de abertura.
  4. Condição de entrada curta: o preço de fechamento é inferior ao VWAP e à EMA, o volume é maior que a vela anterior e o preço de abertura é maior que o preço de fechamento.
  5. Condição de saída longa: o preço de fechamento cai abaixo do VWAP ou da EMA, atinge os níveis de stop loss ou take profit ou atinge a hora de saída especificada.
  6. Condição de saída curta: o preço de fechamento ultrapassa o VWAP ou a EMA, atinge os níveis de stop loss ou take profit ou atinge a hora de saída especificada.

Vantagens da estratégia

  1. Considera simultaneamente a tendência dos preços (EMA), o justo valor de mercado (VWAP) e o volume de negociação, tornando as condições de abertura mais rigorosas, o que ajuda a melhorar a taxa de ganho da estratégia.
  2. Ele define stop loss e take profit para controlar riscos e bloquear lucros.
  3. Limita o tempo de negociação e o tempo de saída para evitar riscos durante as horas de não negociação e a detenção durante a noite.

Riscos estratégicos

  1. A estratégia pode não ter um bom desempenho num mercado volátil, uma vez que avanços e retrações frequentes podem levar a múltiplas aberturas e encerramentos, aumentando os custos de transação e o deslizamento.
  2. O nível de stop loss é fixo, que pode ser acionado prematuramente quando o mercado flutua violentamente, causando perdas significativas para a estratégia.
  3. A estratégia não considera a profundidade real do mercado e o estado das ordens, que podem enfrentar problemas como deslizamento e falhas de abertura em negociações reais.

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

  1. Considerar a adição de mais condições de filtragem, como os indicadores ATR e RSI, para confirmar ainda mais a força da tendência e do ímpeto.
  2. Os níveis de stop loss e take profit podem ser definidos de forma dinâmica, por exemplo seguindo o ATR ou o stop loss percentual, para se adaptarem às diferentes volatilidades do mercado.
  3. Otimizar parâmetros, tais como comprimento da EMA, fonte VWAP, níveis de stop loss e take profit, etc., para melhorar a estabilidade e rentabilidade da estratégia.
  4. Considerar a possibilidade de acrescentar uma gestão de posições, como o ajustamento do volume de abertura em função da volatilidade ou do rácio de capital, para controlar o risco global.

Resumo

Ao considerar de forma abrangente as tendências de preços, o valor justo do mercado e o volume de negociação, esta estratégia negocia dentro de um tempo de negociação específico. Embora a stop loss, take profit e o tempo de negociação limitado sejam definidos, ainda precisa prestar atenção a riscos como mercados voláteis e deslizamento na aplicação real. No futuro, a robustez e rentabilidade da estratégia podem ser melhoradas adicionando mais condições de filtragem, otimizando parâmetros e gerenciando posições.


/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true)

// Inputs
emaLength = input.int(21, title="EMA Length")
vwapSource = input.source(defval=hlc3, title='VWAP Source')
stopLossPoints = input.float(100, title="Stop Loss (points)")
targetPoints = input.float(200, title="Target (points)")
session = input("0950-1430", title='Only take entry during')
exit = input(defval='1515-1525', title='Exit Trade')

tradein = not na(time(timeframe.period, session))
exit_time = not na(time(timeframe.period, exit))

// Calculate indicators
ema = ta.ema(close, emaLength)
vwapValue = ta.vwap(vwapSource)

// Entry Conditions
longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein
shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein

// Exit Conditions
longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time
shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time

// Plotting
plot(vwapValue, color=color.blue, title="VWAP")
plot(ema, color=color.green, title="EMA")

// Strategy
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if longExitCondition
    strategy.close('Long', immediately=true)

if shortExitCondition
    strategy.close("Short", immediately=true)


Relacionados

Mais.