Estratégia de acompanhamento da reversão do ouro em vários prazos

Autora:ChaoZhang, Data: 2024-01-31 15:01:39
Tags:

img

Resumo

Esta estratégia combina diferentes indicadores técnicos e métodos de negociação para identificar automaticamente tendências, descobrir oportunidades de reversão e realizar negociações de rastreamento eficientes no mercado de ouro.

Princípio da estratégia

A estratégia usa principalmente múltiplos indicadores técnicos como cruzamento de média móvel, bandas de Bollinger, níveis de suporte / resistência, padrões de preço para julgamento de sinais de negociação. Ao determinar a tendência principal, usa uma combinação de média móvel rápida, média móvel lenta, indicadores RSI e MACD para confirmação de múltiplos ângulos para capturar com precisão inversões de tendência. Para entrada específica no mercado, observa a ruptura de bandas de Bollinger, níveis de preço chave e padrões de preço como martelo para gerar sinais de negociação. Ao mesmo tempo, a estratégia também utiliza mecanismos de stop loss e take profit para controlar riscos.

As principais etapas de toda a estratégia podem ser divididas em:

  1. Direção da tendência do juiz: Calcule MA rápido e MA lento, de alta quando MA rápido cruza sobre MA lento, de baixa quando cruza abaixo.

  2. Encontre pontos de entrada específicos: Entrar principalmente através da observação da ruptura das bandas de Bollinger, dos principais níveis de suporte/resistência e dos sinais de padrão de preços.

  3. Configure Stop Loss e Take Profit: Utilize o indicador ATR para calcular o intervalo de stop loss e definir posições de take profit razoáveis.

  4. Filtrar Falsa Falta: Alguns indicadores podem gerar sinais incorretos.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Julgamento de vários ângulos: A combinação de diferentes indicadores permite avaliar o mercado a partir de mais dimensões e evitar a probabilidade de erro de avaliação por um único indicador.

  2. Forte aplicabilidade: A estratégia pode alcançar bons resultados independentemente da negociação intradiária ou de médio a longo prazo.

  3. Flexibilidade: A estratégia contém uma variedade de métodos de negociação que podem adaptar-se às diferentes fases do mercado.

  4. Riscos controláveisO método de avaliação do risco é o seguinte: utilizar o stop loss e o take profit para controlar a exposição ao risco de cada negociação e, assim, o drawdown máximo de toda a estratégia.

Análise de riscos

Os principais riscos desta estratégia incluem:

  1. Probabilidade de julgamento errado: Embora a probabilidade de erro de julgamento seja reduzida através da combinação de múltiplos indicadores, ainda existe alguma probabilidade de erro de julgamento em condições de mercado extremas.

  2. A incerteza da reversãoOs pontos-chave da estratégia para julgar reversões podem não ser suficientes para se tornarem pontos reais de reversão da tendência, incapazes de prever perfeitamente tendências futuras.

  3. Falsa fuga: Eventos de ruptura podem aparecer de repente e podem ser apenas rupturas falsas de curto prazo.

  4. Optimização de parâmetros difícil: A estratégia contém vários parâmetros, que têm uma influência importante nos resultados, mas são difíceis de encontrar o óptimo através de um ajustamento exaustivo.

Orientações de otimização

As principais direcções para otimizar esta estratégia incluem:

  1. Modelo de conjuntoIntroduzir modelos de aprendizagem automática para ajudar a determinar os pesos dos sinais de indicadores e as probabilidades de mercado.

  2. Optimização de parâmetros adaptativos: Introduzir alguns indicadores dinâmicos ou mecanismos de adaptação baseados nas alterações do movimento dos preços para otimizar os parâmetros.

  3. Negociação orientada por eventosIntroduzir alguns fatores orientados por eventos como notícias e anúncios no mercado de ouro como fontes de sinais comerciais.

  4. Combinação coberta pelo modelo: Construir combinações com posições longas e curtas, com modelos de cobertura uns contra os outros, reduzindo assim os riscos de mercado sistemáticos.

Conclusão

Em conclusão, esta estratégia de rastreamento da reversão do ouro integra uma variedade de técnicas de negociação, controla os riscos ao descobrir reversões de tendência e é uma estratégia eficaz adequada para negociação de alta frequência.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("PratikMoney_Gold_Swing_v2.0", overlay=true)

// Trend Following
fastMA = ta.sma(close, 50)
slowMA = ta.sma(close, 200)
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdDivergence = macdLine - signalLine
trendUp = ta.crossover(fastMA, slowMA) and rsiValue > 50 and macdLine > 0 and macdDivergence > 0
trendDown = ta.crossunder(fastMA, slowMA) and rsiValue < 50 and macdLine < 0 and macdDivergence < 0

// Breakout Trading
resistanceLevel = input(1500, title="Resistance Level")
supportLevel = input(1400, title="Support Level")

breakoutUp = close > resistanceLevel and close[1] <= resistanceLevel
breakoutDown = close < supportLevel and close[1] >= supportLevel

// Moving Average Crossovers
shortTermMA = ta.sma(close, 9)
longTermMA = ta.sma(close, 21)

maCrossUp = ta.crossover(shortTermMA, longTermMA)
maCrossDown = ta.crossunder(shortTermMA, longTermMA)

// Bollinger Bands
bbUpper = ta.sma(close, 20) + 2 * ta.stdev(close, 20)
bbLower = ta.sma(close, 20) - 2 * ta.stdev(close, 20)

bbBreakoutUp = close > bbUpper and close[1] <= bbUpper
bbBreakoutDown = close < bbLower and close[1] >= bbLower

// Support and Resistance
bounceFromSupport = close < supportLevel and close[1] >= supportLevel
reversalFromResistance = close > resistanceLevel and close[1] <= resistanceLevel

// Fibonacci Retracement
fibonacciLevel = input(0.618, title="Fibonacci Level")

fibRetraceUp = ta.lowest(low, 50) >= ta.highest(high, 50) * (1 - fibonacciLevel)
fibRetraceDown = ta.highest(high, 50) <= ta.lowest(low, 50) * (1 + fibonacciLevel)

// Price Action Trading
pinBar = close < open and low < close[1] and close > open[1]
engulfing = close < open and close[1] > open and close[2] > open[1] and close > open[2]

priceActionLong = pinBar or engulfing and close > open
priceActionShort = pinBar or engulfing and close < open

// Scalping
scalpLong = ta.change(close) > 0.1
scalpShort = ta.change(close) < -0.1

// Volatility Breakout
atrLevel = input(1.5, title="ATR Multiplier")

volatilityBreakoutUp = close > ta.sma(close, 20) + atrLevel * ta.atr(20)
volatilityBreakoutDown = close < ta.sma(close, 20) - atrLevel * ta.atr(20)

// Strategy Execution
strategy.entry("TrendLong", strategy.long, when=trendUp)
strategy.entry("TrendShort", strategy.short, when=trendDown)

strategy.entry("BreakoutLong", strategy.long, when=breakoutUp)
strategy.entry("BreakoutShort", strategy.short, when=breakoutDown)

strategy.entry("VolatilityLong", strategy.long, when=volatilityBreakoutUp)
strategy.entry("VolatilityShort", strategy.short, when=volatilityBreakoutDown)

strategy.entry("PriceActionLong", strategy.long, when=priceActionLong)
strategy.entry("PriceActionShort", strategy.short, when=priceActionShort)

strategy.entry("ScalpLong", strategy.long, when=scalpLong)
strategy.entry("ScalpShort", strategy.short, when=scalpShort)

// Plotting
plot(supportLevel, color=color.green, title="Support Level")
plot(resistanceLevel, color=color.red, title="Resistance Level")

plot(bbUpper, color=color.blue, title="Upper Bollinger Band")
plot(bbLower, color=color.blue, title="Lower Bollinger Band")

// Plotting Price Action Signals
plotshape(series=priceActionLong, title="Price Action Long", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=priceActionShort, title="Price Action Short", color=color.red, style=shape.triangledown, location=location.abovebar)

// Plotting Scalping Signals
plotshape(series=scalpLong, title="Scalp Long", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=scalpShort, title="Scalp Short", color=color.red, style=shape.triangledown, location=location.belowbar)


Mais.