
Visão geral
Esta estratégia é uma estratégia de negociação quantitativa baseada no cruzamento do indicador de oscilação de preço des-trending (DPO) com a média móvel do índice (EMA). A ideia central da estratégia é capturar mudanças na tendência do mercado, gerando sinais de compra e venda, comparando a relação do DPO com seus EMAs de 4 períodos. A estratégia é especialmente adequada para períodos de tempo maiores de 4 horas ou mais, e é mais eficaz quando se usa um gráfico de deslizamento plano (Heikin Ashi).
Princípio da estratégia
A lógica central da estratégia inclui as seguintes etapas principais:
- Calcule a média móvel simples de 24 períodos (SMA) como uma linha de referência
- Movendo o SMA para a frente por um período de [[length/2+1]] obtém-se o valor do SMA após o deslocamento
- O valor do DPO é obtido com o preço de fechamento menos o SMA após o deslocamento
- Calcule a média móvel do índice de 4 períodos do DPO
- Quando o DPO atravessa a sua EMA de 4 ciclos, gera um sinal de compra
- Quando o DPO atravessa o seu 4 ciclos EMA, gera um sinal de venda
Vantagens estratégicas
- Claridade de sinais: produzir pontos de compra e venda claros através de sinais cruzados, evitando julgamentos subjetivos
- O indicador DPO pode filtrar o ruído do mercado e capturar melhor as principais tendências.
- Menor atraso: usa um ciclo curto (de 4 ciclos) como linha de sinal, capaz de responder mais rapidamente às mudanças do mercado
- Adaptabilidade: a estratégia tem uma certa capacidade de adaptação a diferentes cenários de mercado
- Operação simples: a lógica da estratégia é clara, fácil de entender e executar
Risco estratégico
- Risco de mercado volátil: Sinais falsos frequentes podem ocorrer em um mercado lateral e volátil
- Risco de atraso: Apesar de usar EMAs de curto prazo, há um certo atraso
- Risco de reversão de tendência: pode causar grandes perdas em caso de reversão súbita de uma tendência forte
- Sensibilidade de parâmetros: os efeitos da estratégia são mais sensíveis à seleção de parâmetros de ciclo
- Dependência das condições de mercado: a estratégia pode não funcionar de forma ideal em determinadas condições de mercado
Direção de otimização da estratégia
- Introdução de filtragem de taxa de flutuação: ATR ou outros indicadores de taxa de flutuação podem ser adicionados para filtrar sinais em ambientes de baixa taxa de flutuação
- Aumento da confirmação de tendência: Combinação com outros indicadores de tendência, como o ADX, para confirmar a força da tendência
- Optimizar a configuração de stop loss: pode ajustar a posição de stop loss de acordo com a dinâmica de volatilidade do mercado
- Melhoria do filtro de sinais: adição de confirmação de volume ou outros indicadores técnicos para filtrar falsos sinais
- Adaptação de parâmetros: realização de otimização dinâmica de parâmetros para se adaptar a diferentes circunstâncias de mercado
Resumir
A estratégia de cruzamento de tendências DPO-EMA é uma estratégia de negociação quantitativa de estrutura simples, mas com um efeito significativo. Combinando o indicador de choque de destrendência e a média móvel, a estratégia é capaz de capturar efetivamente as mudanças de tendência do mercado. Embora existam alguns riscos inerentes, a estratégia ainda tem um bom valor de aplicação em campo real com medidas de otimização e gerenciamento de risco razoáveis.
Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("DPO 4,24 Strategy", shorttitle="DPO Strategy", overlay=true)
// Define a fixed lookback period and EMA length
length = 24
ema_length = 4
// Calculate the Simple Moving Average (SMA) of the closing prices
sma = ta.sma(close, length)
// Calculate the shifted SMA value
shifted_sma = sma[length / 2 + 1]
// Calculate the Detrended Price Oscillator (DPO)
dpo = close - shifted_sma
// Calculate the 4-period Exponential Moving Average (EMA) of the DPO
dpo_ema = ta.ema(dpo, ema_length)
// Generate buy and sell signals based on crossovers
buy_signal = ta.crossover(dpo, dpo_ema)
sell_signal = ta.crossunder(dpo, dpo_ema)
// Overlay buy and sell signals on the candlestick chart
plotshape(series=buy_signal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_signal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy entry and exit conditions
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.close("Buy")