A estratégia de negociação MACD baseada no EVWMA


Data de criação: 2024-01-22 10:50:25 Última modificação: 2024-01-22 10:50:25
Reprodução: 0 O número de cliques: 297
1
Preocupados
1105
Observadores

基于EVWMA的MACD交易策略

Resumo

A estratégia é uma estratégia de negociação MACD baseada em uma média móvel ponderada por volume de transações (EVWMA).

Princípios estratégicos

O indicador EVWMA integra a informação de transação no cálculo da média móvel, permitindo que a média móvel reflita com mais precisão as mudanças de preço. A estratégia de construção de linhas rápidas e linhas lentas é baseada no cálculo da EVWMA. Os parâmetros da linha rápida são mais sensíveis para capturar as mudanças de preço a curto prazo; os parâmetros da linha lenta são mais robustos para filtrar parte do ruído.

Análise de vantagens

A maior vantagem da estratégia é que utiliza o poder do indicador EVWMA, o que torna a configuração dos parâmetros estratégicos do MACD mais estável e os sinais de negociação mais claros. Em comparação com uma simples média móvel, a EVWMA consegue entender melhor as tendências de mudanças no mercado. Isso torna a estratégia mais adaptável e pode funcionar de forma estável em vários ambientes de mercado.

Análise de riscos

O principal risco da estratégia é que o MACD em si é atrasado e não consegue capturar a reversão do preço em tempo hábil. Além disso, a configuração dos parâmetros do EVWMA também afeta o desempenho da estratégia. Se os parâmetros da linha lenta forem configurados incorretamente, o sinal de negociação pode ser distorcido, afetando a lucratividade.

Para reduzir o risco, os parâmetros devem ser ajustados apropriadamente para que o diferencial entre a linha rápida e a linha lenta seja moderado. O histograma pode ajudar a determinar se é necessário ajustar. Além disso, uma estratégia de stop loss pode ser projetada para evitar perdas excessivas em uma única moeda.

Optimização

A estratégia pode ser optimizada principalmente em alguns aspectos:

  1. A tecnologia de configuração de parâmetros adaptativos permite que os parâmetros do EVWMA sejam ajustados automaticamente de acordo com o ambiente do mercado, garantindo a clareza dos sinais de negociação.

  2. O aumento do mecanismo de parada de perdas permite controlar eficazmente as perdas individuais.

  3. Em combinação com outros indicadores, os sinais de erro são filtrados. Por exemplo, em combinação com o volume de negócios, os sinais são gerados quando os preços variam significativamente.

  4. Optimização da seleção de pontos de entrada. A estratégia atual é abrir um negócio quando o MACD cruza o eixo zero. Pode-se testar se a mudança para um puxão de profundidade é mais adequada.

Resumo

Esta estratégia aproveita as vantagens do indicador EVWMA para construir uma estratégia MACD simples e prática. É mais estável e mais adaptável. Há também problemas de atraso do MACD em si. Podemos melhorar a estratégia para torná-la mais estável em termos de otimização de parâmetros de adaptação, stop loss, design de filtragem de sinal e outros.

Código de origem da estratégia
                
                    /*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("QuantNomad - EVWMA MACD Strategy", shorttitle = "EVWMA MACD", overlay = false)

// Inputs
fast_sum_length = input(10, title = "Fast Sum Length",  type = input.integer)
slow_sum_length = input(20, title = "Slow Sum Length",  type = input.integer)
signal_length   = input(9,  title = "Signal Smoothing", type = input.integer, minval = 1, maxval = 50)

// Calculate Volume Period
fast_vol_period = sum(volume, fast_sum_length)
slow_vol_period = sum(volume, slow_sum_length)

// Calculate EVWMA
fast_evwma = 0.0
fast_evwma := ((fast_vol_period - volume) * nz(fast_evwma[1], close) + volume * close) / (fast_vol_period)

// Calculate EVWMA
slow_evwma = 0.0
slow_evwma := ((slow_vol_period - volume) * nz(slow_evwma[1], close) + volume * close) / (slow_vol_period)

// Calculate MACD
macd   = fast_evwma - slow_evwma
signal = ema(macd, signal_length)
hist   = macd - signal

// Plot 
plot(hist,   title = "Histogram", style = plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #EF5350) ), transp=0 )
plot(macd,   title = "MACD",      color = #0094ff, transp=0)
plot(signal, title = "Signal",    color = #ff6a00, transp=0)

// Strategy
strategy.entry("Long",   true, when = crossover(fast_evwma, slow_evwma))
strategy.entry("Short", false, when = crossunder(fast_evwma, slow_evwma))
                
            
Mais informações