Estratégia de Crossover de Média Móvel Dupla

EMA SMA
Data de criação: 2024-05-17 15:48:04 última modificação: 2024-05-17 15:48:04
cópia: 0 Cliques: 661
1
focar em
1617
Seguidores

Estratégia de Crossover de Média Móvel Dupla

Visão geral

A estratégia de cruzamento de dupla equilíbrio é uma estratégia de negociação clássica de acompanhamento de tendências. A estratégia usa duas médias móveis, uma média móvel rápida e outra média móvel lenta. Quando a média móvel rápida atravessa a média móvel lenta de cima para baixo, é conhecida como “cruzamento de ouro”, indicando que uma tendência ascendente pode ser formada, e uma posição maior é aberta. Quando a média móvel rápida atravessa a média móvel lenta de cima para baixo, é conhecida como “cruzamento de morte”, indicando que uma tendência descendente pode ser formada e uma posição vazia é aberta.

Princípio da estratégia

O núcleo da estratégia é usar as características de tendência e os sinais de cruzamento das médias móveis para determinar a direção da tendência e a hora de abrir uma posição. Primeiro, configure os parâmetros para o ciclo de médias móveis rápidas (default 50) e médias móveis lentas (default 200) e escolha entre SMA ou EMA. Em seguida, calcule as duas médias móveis para determinar o cruzamento:

  1. Quando a média móvel rápida atravessa a média móvel lenta para cima ((crossover do ouro), se não houver uma posição atual, abra mais posições e, ao mesmo tempo, defina o preço de stop loss ((calculado de acordo com a porcentagem de stop loss)).
  2. Quando a média móvel rápida atravessa a média móvel lenta para baixo (cruzamento de morte), se não houver uma posição atual, a posição é fechada e o preço de parada é definido.
  3. Se já houver várias posições, se o cruzamento de mortes ocorrer, a posição será liquidada.
  4. Se já houver uma posição de cabeça vazia, a posição será liquidada quando ocorrer o cruzamento do ouro. Abrir posições e estabelecer um stop-loss através de sinais de cruzamento de médias móveis para capturar a tendência de médio e longo prazo dos preços de forma a acompanhar a tendência.

Vantagens estratégicas

  1. A lógica é simples e clara, fácil de entender e de implementar, e é a base da estratégia de acompanhamento de tendências.
  2. O cruzamento de duas médias móveis de períodos diferentes permite um melhor entendimento da formação e reversão de tendências.
  3. Suporte para os dois tipos de médias móveis SMA e EMA, com flexibilidade de escolha.
  4. O sistema de stop loss foi criado para reduzir o risco de perda.
  5. O estilo “trend-following” é adequado para capturar tendências de médio e longo prazo.

Risco estratégico

  1. A escolha incorreta dos parâmetros (como a escolha incorreta do ciclo da média móvel) pode causar frequência de sinal ou atraso no julgamento de tendências.
  2. A rápida e turbulenta situação pode levar a transações frequentes e fracas.
  3. A maior retração pode ocorrer quando a tendência se inverte ou termina.
  4. A parada de percentual fixo pode não ser um bom controle de risco.

Direção de otimização da estratégia

  1. Optimizar os parâmetros, incluindo o ciclo da média móvel, a porcentagem de parada, etc., para melhorar a estabilidade e a relação de risco de ganho.
  2. Pode-se considerar a introdução de indicadores relacionados à volatilidade, como o ATR, para ajustar dinamicamente a posição de parada.
  3. A partir da confirmação de tendências, as posições podem ser abertas imediatamente, em vez de serem abertas no momento do cruzamento, ou adicionadas a outros indicadores de confirmação de tendências para auxiliar o julgamento e aumentar a precisão da captação de tendências.
  4. A estratégia de gerenciamento de capital, como a acumulação e a diminuição de posições, pode ser melhorada.
  5. Considere a combinação com outros sinais para formar uma estratégia multifatorial.

Resumir

A estratégia de cruzamento de dupla equilíbrio é uma estratégia de acompanhamento de tendências simples e clássica, que determina a direção da tendência e o momento de abertura de posição através da interseção de duas médias móveis de diferentes períodos, adequadas para capturar tendências de médio e longo prazo. No entanto, os parâmetros fixos podem ter um desempenho instável em um ambiente de mercado em mudança e precisam de melhorias adicionais, como parâmetros de otimização, melhorias de stop loss, introdução de sinais, entre outros, para se tornar uma estratégia de negociação relativamente robusta.

Código-fonte da estratégia
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)

//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length") 
maSlowLength  = input(200, title="Quick MA Length") 
useSma        = input(true, title="Use SMA? If false, EMA is used.")

maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow  = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)

stop_loss_percentage = input(2.0, title="Stop Loss (%)")

var float longStopLevel = na
var float shortStopLevel = na

bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross  = ta.crossunder(maQuick, maSlow)

//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------

if(strategy.position_size == 0)
    // Golden cross, enter a long position
    if(isGoldenCross)
        strategy.entry("Buy", strategy.long)
        longStopLevel := close - close * stop_loss_percentage/100.0
        strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
    // Death cross, enter short position
    else if(isDeathCross)
        strategy.entry("Sell", strategy.short)
        shortStopLevel := close + close * stop_loss_percentage/100.0
        strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)

//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
    // Close long position on death cross
    if(strategy.position_size > 0 and isDeathCross)
        strategy.close("Buy")
    
    // Close short position on golden cross
    else if(strategy.position_size < 0 and isGoldenCross)
        strategy.close("Sell")

//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)