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

MA SMA
Data de criação: 2024-04-30 17:33:09 última modificação: 2024-04-30 17:33:09
cópia: 1 Cliques: 644
1
focar em
1617
Seguidores

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

Visão geral

A estratégia usa duas médias móveis ((MA) para gerar um sinal de negociação. Quando o MA de menor período atravessa o MA de maior período de baixo para cima, gera um sinal de compra; Quando o MA de menor período atravessa o MA de maior período de cima para baixo, gera um sinal de venda. A estratégia define simultaneamente um período de negociação (de 8h a 20h UTC) e um ponto de parada (de 150 pontos).

Princípio da estratégia

  1. Calcule a média móvel de dois períodos diferentes (default 5 e 20 períodos).
  2. O MA de curto período pode ser usado como um sinal de compra/venda para determinar se o MA de curto período está subindo/descendo do MA de longo período.
  3. Configure o intervalo de negociação entre as 8h e as 20h UTC, e execute negociações apenas nesse intervalo.
  4. Para confirmar a tendência, julgue se as 4 linhas K mais recentes fecharam acima/abaixo da MA.
  5. Se você cumprir as condições de compra/venda, abra uma posição e estabeleça um limite de 150 pontos.

Vantagens estratégicas

  1. O uso de MAs com dois períodos diferentes permite capturar a tendência de forma eficiente e é adequado para mercados em tendência.
  2. Estabelecer um período de negociação pode evitar a negociação em momentos de baixa liquidez e reduzir o risco.
  3. Ao julgar se as 4 linhas K mais recentes estão fechadas acima/abaixo da MA, pode-se confirmar a tendência e melhorar a confiabilidade do sinal.
  4. Estabelecer um ponto de paragem fixo para bloquear os lucros e controlar os riscos.

Risco estratégico

  1. Em mercados turbulentos, essa estratégia pode gerar sinais errôneos frequentemente, resultando em prejuízos.
  2. Os pontos de paragem fixos podem limitar a margem de lucro da estratégia.
  3. A estratégia não tem um stop-loss, o que pode significar um risco maior de uma rápida reversão.

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

  1. Pode-se considerar a introdução de mais indicadores técnicos, como RSI, MACD, etc., para melhorar a confiabilidade do sinal.
  2. Pode-se otimizar a configuração do ponto de parada de parada, como o uso de parada de parada dinâmica ou parada de parada baseada em ATR.
  3. A segunda confirmação de sinais de negociação pode ser combinada com informações sobre a estrutura microscópica do mercado, como o fluxo de pedidos.
  4. Pode-se tomar diferentes configurações de parâmetros para diferentes estados de mercado (trend / oscilação), aumentando a adaptabilidade da estratégia.

Resumir

A estratégia é baseada em uma cruz de duas médias móveis de diferentes períodos para gerar sinais de negociação e é adequada para mercados em tendência. O risco pode ser controlado até certo ponto por meio da configuração de períodos de negociação e pontos de parada fixos. No entanto, a estratégia pode não funcionar bem em mercados turbulentos e pontos de parada fixos podem limitar o espaço de ganho da estratégia.

Código-fonte da estratégia
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average Crossover Strategy", overlay=true)

// User-defined moving average periods
ma1Periods = input(5, title="First Moving Average Periods")
ma2Periods = input(20, title="Second Moving Average Periods")

// Calculate moving averages
ma1 = sma(close, ma1Periods)
ma2 = sma(close, ma2Periods)

// Plot moving averages
plot(ma1, color=color.red, linewidth=2, title="First Moving Average")
plot(ma2, color=color.blue, linewidth=2, title="Second Moving Average")

// Detect crossovers and crossunders
bullishCross = crossover(ma1, ma2)
bearishCross = crossunder(ma1, ma2)

// Define trading hours (8 AM to 2 PM UTC)
startHour = 8
endHour = 20
utcHour = hour(time, "UTC")
isMarketOpen = true

// Define profit target
profitTarget = 150

// Check if the price has closed above/below the MA for the past 4 bars
aboveMa = close[4] > ma1[4] and close[3] > ma1[3] and close[2] > ma1[2] and close[1] > ma1[1]
belowMa = close[4] < ma1[4] and close[3] < ma1[3] and close[2] < ma1[2] and close[1] < ma1[1]

// Create buy and sell signals
if (bullishCross and isMarketOpen and aboveMa)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", profit=profitTarget)
if (bearishCross and isMarketOpen and belowMa)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", profit=profitTarget)

// Plot shapes on crossovers
plotshape(series=bullishCross and isMarketOpen and aboveMa, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=bearishCross and isMarketOpen and belowMa, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")