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

Estratégia de negociação de ouro VWAP MACD SMO

Autora:ChaoZhang, Data: 2023-10-20 16:23:33
Tags:

img

Resumo

A estratégia de negociação do VWAP MACD SMO é uma estratégia completa projetada para o mercado do ouro usando um gráfico de tempo de 12 horas.

Estratégia lógica

A estratégia usa o VWAP mensalmente como o principal indicador de tendência. O VWAP representa o preço médio da transação e mensalmente significa que o intervalo de tempo para calcular o VWAP é o mês passado. Se o fechamento atual estiver acima do VWAP mensal, ele indica a tendência de alta atual; se o fechamento estiver abaixo do VWAP mensal, isso significa que a tendência está em baixa.

O oscilador SMO é usado para determinar a atual situação de sobrecompra e sobrevenda. Ele consiste em um componente de ciclo longo e um componente de ciclo curto. Quando o oscilador está acima de 0, ele indica condições de sobrecompra e, quando abaixo de 0, representa sobrevenda.

O histograma MACD pode determinar a direção do momento. Quando a coluna se rompe, representa o momento está se fortalecendo para ir longo; quando a coluna se rompe, significa que o momento está enfraquecendo para considerar ir curto.

De acordo com estes três indicadores, as regras específicas da estratégia de negociação podem ser estabelecidas:

Entrada longa: quando o fechamento está acima do VWAP mensal, o histograma MACD se rompe e o oscilador SMO está acima de 0. Entrada curta: quando o fechamento está abaixo do VWAP mensal, o histograma MACD se descompõe e o oscilador SMO está abaixo de 0.

Os lucros obtidos e os stop loss são fixados com base nas percentagens de entrada.

Análise das vantagens

A estratégia combina vários prazos e indicadores para determinar eficazmente a direção e a força da tendência, com as seguintes vantagens:

  1. O VWAP mensal pode determinar a direcção da tendência primária para evitar a negociação contra tendência.
  2. O histograma MACD pode capturar mudanças de momento de forma oportuna.
  3. O oscilador SMO avalia as condições de sobrecompra e sobrevenda, o que é útil para entrar em pontos de reversão potenciais.
  4. A combinação de múltiplos indicadores pode verificar-se mutuamente e melhorar a fiabilidade do sinal.
  5. Percentagens de lucro e stop loss personalizáveis para controlar riscos.

Análise de riscos

Embora a estratégia seja concebida de forma razoável, ainda existem alguns riscos a ter em conta:

  1. O VWAP é sensível aos whipssaws, que podem gerar sinais errados.
  2. A definição inadequada dos parâmetros MACD aumenta a probabilidade de falhas.
  3. Os parâmetros inadequados da OMC podem também conduzir a uma avaliação errada das zonas de sobrecompra e sobrevenda.
  4. As configurações excessivas de take profit e stop loss não podem controlar efetivamente a perda única.

Para controlar os riscos acima, os parâmetros VWAP e MACD devem ser otimizados razoavelmente sem intervalos muito amplos.

Orientações de otimização

A estratégia pode também ser otimizada nos seguintes aspectos:

  1. Adicionar uma confirmação de volume, como o desvio de volume da MA.
  2. Incorporar indicadores de volatilidade como o ATR para ajustar o dimensionamento das posições com base na volatilidade do mercado.
  3. Adicionar o mecanismo de iluminação em níveis elevados para evitar perdas de lucros.
  4. Teste diferentes estratégias de take profit e stop loss, como trailing stop loss, stop loss adaptativo, etc.
  5. Adicionar módulo de verificação do modelo para filtrar sinais anormais.

Conclusão

A estratégia Gold VWAP MACD SMO combina múltiplos indicadores para determinar a tendência e as condições de sobrecompra / sobrevenda, que podem efetivamente capturar oportunidades de médio a longo prazo no ouro. Embora existam alguns riscos, eles podem ser controlados através da otimização de parâmetros e gerenciamento de riscos. A estratégia tem uma escalabilidade muito forte e pode ser otimizada modularmente com base nas necessidades reais.


/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 4h
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/
// © exlux99

//@version=4
// strategy("VWAP Gold strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 10000, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.005)


source = input(low)


//vwap monthly
timeframeM = time("M")
beginningM = na(timeframeM[1]) or timeframeM > timeframeM[1]

sumsourceM = source * volume
sumVolM = volume
sumsourceM := beginningM ? sumsourceM : sumsourceM + sumsourceM[1]
sumVolM := beginningM ? sumVolM : sumVolM + sumVolM[1]
vwapMonthly= sumsourceM / sumVolM

//macd
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)


fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma
signal =  ema(macd, signal_length)
hist = macd - signal


//SMO
longlen = input(22, minval=1, title="Long Length SMO")
shortlen = input(6, minval=1, title="Short Length SMO")
siglen = input(5, minval=1, title="Signal Line Length SMO")
erg = tsi(close, shortlen, longlen)
sig = ema(erg, siglen)
osc = erg - sig


shortCondition =  close < vwapMonthly and hist < hist[1] and osc < 0
longCondition =  close > vwapMonthly and hist> hist[1] and osc > 0

tplong=input(0.085, step=0.005, title="Take profit % for long")
sllong=input(0.03, step=0.005, title="Stop loss % for long")
tpshort=input(0.05, step=0.005, title="Take profit % for short")
slshort=input(0.025, step=0.005, title="Stop loss % for short")

strategy.entry("long",1,when=longCondition)
strategy.entry("short",0,when=shortCondition)

strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT',  alert_message = 'closeshort')
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT',  alert_message = 'closeshort')




Mais.