A estratégia de negociação do Awesome Oscillator Double Stochastic Filtered Divergence identifica potenciais oportunidades de compra e venda através da detecção de divergências entre o Awesome Oscillator (AO) e a ação do preço, filtradas pelas condições de sobrecompra e sobrevenda do Stochastic Oscillator
A estratégia consiste nos seguintes elementos:
Calculo do oscilador impressionante (AO): AO é a diferença entre as SMAs de 5 períodos e 34 períodos do ponto médio (HL2) para identificar a dinâmica do ímpeto do mercado.
Oscilador estocástico: Usado para medir o impulso e os pontos de reversão potenciais, comparando o preço de fechamento com a faixa de preços durante um período.
Logic de Detecção de Divergência: Simplificado para quando o preço está se movendo em uma direção, enquanto AO se move na direção oposta.
Filtragem estocástica: sinais filtrados pela condição estocástica de sobrecompra para venda e sobrevenda para compra.
Planeamento de sinais: sinais confirmados após filtragem traçados no gráfico como formas.
Regras de entrada: entrada longa em sinal de alta confirmado, entrada curta em sinal de baixa confirmado.
A estratégia combina seguir tendências e identificar reversões, com sinais fiáveis.
AO ajuda a identificar mudanças de tendência de curto prazo, a divergência com o preço fornece fonte de sinal confiável.
Os filtros estocásticos evitam sinais falsos sem confirmação de sobrecompra/supervenda.
A combinação de indicadores proporciona uma avaliação robusta do mercado e uma fiabilidade.
Sinais e regras de entrada claros, fácil implementação.
Seleção e parâmetros razoáveis dos indicadores, bom backtest e desempenho em tempo real.
Os riscos potenciais incluem:
A detecção de divergência simplista corre o risco de julgar erroneamente os sinais.
As configurações de parâmetros estáticos podem ter um desempenho inferior em condições de mercado em mudança.
A filtragem estocástica pode perder algumas oportunidades lucrativas.
Não existem mecanismos rigorosos de controlo de perdas para as posições abertas.
Áreas de otimização adicional:
Melhorar a lógica de identificação de sinais de divergência para sinais de maior qualidade.
Teste diferentes combinações de parâmetros para encontrar parâmetros ótimos.
Incorporar estratégias de stop loss para controlar a queda em negócios individuais.
Otimizar as regras de dimensionamento de entrada e gestão de posições abertas.
Introduzir aprendizado de máquina para a otimização de parâmetros dinâmicos e lógica.
Adicionar mais fontes de dados para a condução de fatores multivariados.
A estratégia de Divergência Filtrada Estocástica Dupla AO combina efetivamente o seguimento da tendência e a identificação de reversão através da divergência AO e da filtragem estocástica. Regras claras, bons resultados de backtest, com forte potencial prático.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fixed AO Divergence Strategy", shorttitle="Fixed AO+Stoch", overlay=true) // Calculate Awesome Oscillator ao() => ta.sma(hl2, 5) - ta.sma(hl2, 34) aoVal = ao() // Stochastic Oscillator stochK = ta.stoch(close, high, low, 14) stochD = ta.sma(stochK, 3) // Simplify the divergence detection logic // For educational purposes, we will define a basic divergence detection mechanism // Real-world application would require more sophisticated logic // Detect bullish and bearish divergences based on AO and price action bullishDivergence = (close > close[1]) and (aoVal < aoVal[1]) bearishDivergence = (close < close[1]) and (aoVal > aoVal[1]) // Stochastic Overbought/Oversold conditions stochOverbought = (stochK > 80) and (stochD > 80) stochOversold = (stochK < 20) and (stochD < 20) // Filtered signals confirmedBullishSignal = bullishDivergence and stochOversold confirmedBearishSignal = bearishDivergence and stochOverbought // Plot signals plotshape(series=confirmedBullishSignal, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bullish Divergence", text="BUY") plotshape(series=confirmedBearishSignal, style=shape.triangledown, location=location.abovebar, color=color.red, title="Bearish Divergence", text="SELL") // Strategy Entry if (confirmedBullishSignal) strategy.entry("Long", strategy.long, comment="Long Entry") if (confirmedBearishSignal) strategy.entry("Short", strategy.short, comment="Short Entry")