Estratégia de rompimento de média móvel múltipla


Data de criação: 2023-11-22 13:41:38 última modificação: 2023-11-22 13:41:38
cópia: 0 Cliques: 607
1
focar em
1617
Seguidores

Estratégia de rompimento de média móvel múltipla

Visão geral

A estratégia usa breakouts e re-breakouts de múltiplas médias móveis para gerar sinais de negociação. Quando o preço quebra a média ascendente, faça mais; Quando o preço cai abaixo da média descendente, faça um fechamento.

Princípio da estratégia

O código usa quatro médias móveis de diferentes períodos: a linha de 21 dias, a linha de 50 dias, a linha de 100 dias e a linha de 200 dias. A entrada é feita quando o preço quebra essas linhas médias e a entrada é fechada quando o preço cai abaixo dessas linhas médias. Além disso, a estratégia também define um ponto de parada e um ponto de parada.

A ideia central da estratégia é usar a média móvel para determinar a tendência dos preços. Quando os preços quebram a linha média ascendente, indicam que estão em uma tendência ascendente, deve ser feito mais; Quando os preços caem a linha média descendente, indicam que estão em uma tendência descendente, deve ser fechado. Usando várias linhas médias de diferentes períodos, pode-se determinar a tendência com mais precisão, e também pode ser verificado o sinal de negociação através da consistência da tendência.

Análise de vantagens

Os principais benefícios desta estratégia são:

  1. Utilizando a medição de múltiplas linhas de medição, pode filtrar de forma eficaz os falsos sinais.
  2. Configurar uma estratégia de stop loss para limitar perdas individuais
  3. Operação simples e fácil de implementar

Análise de Riscos

Os principais riscos desta estratégia são:

  1. A estratégia de média móvel é propensa a se deslocar e perder o ponto de inflexão do preço
  2. Falso sinal pode causar danos
  3. A configuração inadequada do Stop Loss Brake pode aumentar os prejuízos

Pode-se reduzir esses riscos ajustando os parâmetros da linha média e otimizando as estratégias de stop loss.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Teste combinações de linha média com mais períodos para encontrar o melhor parâmetro
  2. Adicionar outros indicadores para evitar falsas descobertas
  3. Optimizar estratégias de stop-loss para obter melhores taxas de risco/benefício
  4. Ajustar parâmetros em diferentes condições de mercado para tornar a estratégia mais robusta

Resumir

A estratégia, em geral, é uma estratégia típica de acompanhamento de tendências. A vantagem é que a ideia é clara, fácil de entender e implementar; a desvantagem é que é fácil gerar sinais errados. Otimizar os parâmetros e adicionar outros indicadores pode melhorar o efeito da estratégia.

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

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)