
A estratégia permite identificar automaticamente tendências no mercado de ouro, encontrar oportunidades de reversão e realizar operações de acompanhamento de alta eficiência, usando uma combinação de diferentes indicadores técnicos e métodos de negociação. A estratégia se aplica a vários períodos de tempo, obtendo excelentes resultados tanto na linha curta quanto na linha média do dia.
A estratégia baseia-se principalmente no julgamento de sinais de negociação com base em vários indicadores técnicos, como cruzamentos de equilíbrio, bandas de Brin, resistência de suporte e forma de preço. Ao julgar a tendência maior, a combinação de confirmação de múltiplos ângulos, como a média móvel rápida, a média móvel lenta, os indicadores RSI e MACD, capta com precisão a reversão da tendência.
O processo de estratégia pode ser dividido em três etapas principais:
Avaliar as grandes tendênciasCalculação de MA rápido, MA lento, quando o MA rápido atravessa o MA lento como um bullish, quando o MA rápido atravessa o bearish. Em combinação com os indicadores RSI e MACD.
Procure por pontos de entrada específicosA entrada ocorre principalmente através da observação da faixa de Brin, da ruptura de pontos de resistência de suporte-chave e de sinais de configuração de preços.
Configuração de Stop Loss: Calcule a amplitude de parada através do indicador ATR e defina uma posição de parada razoável.
Filtragem de Falso Avanço: alguns indicadores podem apresentar sinais errados, filtrando através da combinação de vários indicadores.
A estratégia tem as seguintes vantagens:
Julgar de várias maneirasO uso de uma combinação de diferentes indicadores permite avaliar o mercado em mais dimensões, evitando a probabilidade de um único indicador ser mal avaliado.
AplicávelA estratégia pode ser bem-sucedida tanto em transações intradiárias quanto em transações de longo prazo.
Flexível e variávelA estratégia inclui uma variedade de métodos de negociação que podem ser adaptados a diferentes fases do mercado.
Riscos controladosO principal objetivo da estratégia de controle é: controlar cada abertura de risco por meio de stop loss e stop-loss, com o máximo de retração da estratégia de controle em geral.
A estratégia tem os seguintes riscos:
Probabilidade de erro no indicadorApesar de reduzir a probabilidade de erro de cálculo através de combinações de indicadores, ainda há uma certa probabilidade de erro de cálculo em situações extremas. Este é um risco que é difícil de evitar completamente na negociação de indicadores técnicos.
Inversão de incertezaA estratégia pode não ser suficiente para ser um verdadeiro ponto de viragem de tendência e não pode prever perfeitamente a tendência futura. Isso requer o controle do risco através do stop loss.
Risco de Falso BreakoutEventos de ruptura podem ser brechas falsas de curta duração, se ocorrerem de forma súbita. Isso precisa ser julgado por meio de observações de um quadro de tempo e de uma configuração de preços em níveis maiores.
Dificuldade de otimização de parâmetrosA estratégia contém vários parâmetros, e os diferentes parâmetros têm uma influência importante nos resultados, mas é difícil de ajustar para encontrar o parâmetro otimizado. Isso precisa ser mitigado por meio do equilíbrio de vários indicadores e manter os parâmetros estáveis.
A estratégia pode ser melhorada principalmente nas seguintes direções:
Integração de modelosIntrodução de modelos de aprendizagem de máquina para auxiliar na determinação do peso dos sinais de indicadores e probabilidade de mercado.
Optimização de parâmetros de adaptaçãoOtimizar os parâmetros através da introdução adequada de alguns indicadores dinâmicos ou mecanismos de adaptação baseados em variações de preços.
Transações impulsionadas por eventosA introdução de fatores baseados em eventos, notícias e outros como fonte de sinais de negociação no mercado de ouro.
Portfólio de cobertura do modeloA construção de portfólios com posições longas e curtas, com cobertura entre os diferentes modelos, pode reduzir o risco sistêmico do mercado.
Em geral, a integração da estratégia de rastreamento de inversão de ouro usa vários métodos de negociação para controlar o risco ao mesmo tempo em que detecta uma reversão de tendência, uma estratégia eficaz para a negociação de alta frequência. Com a expansão adicional da fonte de sinal e a introdução de mecanismos de adaptação e modelo de gerenciamento de risco, a estratégia também tem um grande espaço de otimização, com a expectativa de obter lucros excedentários mais duradouros e estáveis.
/*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)