Estratégia de cruzamento das médias móveis rápidas e lentas

Autora:ChaoZhang, Data: 2024-02-27 16:06:30
Tags:

img

Resumo

A estratégia de cruzamento de média móvel rápida e lenta é uma estratégia simples baseada em média móvel. Ela usa duas médias móveis, uma rápida e outra lenta. Quando a média móvel rápida cruza acima da média móvel lenta de baixo, ela fica longa, indicando que os preços podem subir. Quando a média móvel rápida cruza abaixo da média móvel lenta de cima, ela sai de sua posição, indicando que os preços podem cair. Isso pode servir como um indicador para prever a ação futura dos preços.

Princípios

A estratégia usa duas médias móveis, uma rápida e outra lenta. Especificamente, os comprimentos padrão são 25 períodos para a média móvel rápida e 62 períodos para a lenta. A estratégia permite a seleção de diferentes tipos de médias móveis, incluindo SMA, EMA, WMA, RMA e VWMA.

Quando a média móvel rápida cruza acima da média móvel lenta de baixo, ela sinaliza que os preços de curto prazo começaram a quebrar os preços de longo prazo, o que é um sinal típico de cruz de ouro, indicando que os preços podem entrar em uma tendência de alta. A estratégia fica longa neste ponto. Quando a média móvel rápida cruza abaixo da média móvel lenta de cima, ela sinaliza que os preços de curto prazo começaram a quebrar os preços de longo prazo, o que é um sinal de cruz de morte, indicando que os preços podem entrar em uma tendência de queda. A estratégia sai de sua posição neste ponto.

Usando o cruzamento de médias móveis rápidas e lentas para determinar a tendência e a direção dos preços, e tomando posições longas ou fechadas correspondentes, os lucros podem ser realizados.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. A ideia é simples e fácil de entender e implementar
  2. Configurações de parâmetros flexíveis, com períodos e tipos de médias móveis personalizáveis
  3. Indicador fiável, preciso na determinação das tendências dos preços utilizando o cruzamento da média móvel
  4. Automatização realizada, reduzindo a influência dos fatores psicológicos sem julgamento manual
  5. Aplicável a múltiplos produtos, pode ser amplamente utilizado para índices, forex, criptomoedas etc.
  6. Fácil de otimizar, os parâmetros podem ser ajustados para encontrar melhores configurações
  7. Forte extensibilidade, pode ser combinada com outros indicadores ou estratégias

Em resumo, com o cruzamento médio móvel rápido e lento como o principal sinal de negociação, a estratégia tem uma forte capacidade de julgar as tendências de preços futuras.

Análise de riscos

A estratégia apresenta também alguns riscos potenciais:

  1. Os sinais cruzados podem dar sinais falsos, com os preços tendo apenas correcções de curto prazo em vez de inversões de tendência de longo prazo
  2. A selecção inadequada de comprimentos médios móveis curtos e longos pode conduzir a negociações demasiado frequentes ou a perdas de boas oportunidades
  3. Os sinais cruzados podem não ser significativos durante as violentas flutuações de preços
  4. Os custos elevados de negociação podem prejudicar os lucros se os sinais cruzados desencadearem negociações demasiado frequentes
  5. A forte extensibilidade também introduz riscos de otimização excessiva

Para controlar e atenuar estes riscos, podem ser adoptados os seguintes métodos:

  1. Usar outros indicadores para filtrar sinais e evitar sinais falsos, por exemplo, indicadores de divergência preço-volume
  2. Ajustar os parâmetros da média móvel para encontrar combinações ideais e reduzir as operações errôneas
  3. Parar temporariamente a estratégia durante oscilações violentas do mercado
  4. Relaxar adequadamente o intervalo de stop loss para reduzir perdas desnecessárias
  5. Realizar testes de robustez em vários produtos para avaliar os riscos e evitar a otimização excessiva

Orientações de otimização

As principais direcções para a otimização da estratégia incluem:

  1. Seleção de períodos para médias móveis rápidas e lentas: os parâmetros por defeito podem não ser ótimos, podem ser testados períodos diferentes para encontrar a melhor configuração

  2. Seleção de tipos de médias móveis: vários tipos são fornecidos e pode testar-se qual é o mais adequado para produtos específicos

  3. Combinação com outros indicadores ou estratégias: pode tentar combinar com indicadores de volatilidade, indicadores de volume-preço ou estratégias de tendência para melhorar o desempenho

  4. Optimização adaptativa dos parâmetros: permitir que os períodos de médias móveis se ajustem automaticamente com base na volatilidade e liquidez do mercado para melhorar a estabilidade

  5. Assistência de modelos de IA: usar algoritmos de aprendizagem de máquina para analisar grandes quantidades de dados e procurar automaticamente regras de negociação ideais

Através destes métodos de otimização, pode-se esperar uma melhoria da rentabilidade e da estabilidade da estratégia.

Resumo

Em resumo, a estratégia de cruzamento de média móvel rápida e lenta é uma estratégia muito prática de tendência. Ela capta os padrões de mudança de preço em diferentes prazos, usando a cruzamento da média móvel rápida da média móvel lenta para determinar a tendência e direção provável de preços futuros. A ideia da estratégia é simples e clara, fácil de entender e implementar, oferece parâmetros flexíveis personalizáveis, e também tem alta confiabilidade, grau de automação, ampla aplicabilidade e forte extensão.


/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Author @divonn1994

initial_balance = 100
strategy(title='Fast v Slow Moving Averages Strategy', shorttitle = 'Fast v Slow', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance)

//Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading----------------------------------------------------------------

fastBars = input.int(25, "Fast moving average length", minval=1)
slowBars = input.int(62, "Slow moving average length", minval=1)
strategy = input.string("EMA", "MA type", options = ["EMA", "VWMA", "SMA", "RMA", "WMA"])

redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display')
greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display')
maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display')

startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy')
startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy')
startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy')

endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy')
endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy')
endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy')

//Strategy Calculations-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

inDateRange = true

maMomentum = switch strategy
    "EMA" => (ta.ema(close, fastBars) >= ta.ema(close, slowBars)) ? 1 : -1
    "SMA" => (ta.sma(close, fastBars) >= ta.sma(close, slowBars)) ? 1 : -1
    "RMA" => (ta.rma(close, fastBars) >= ta.rma(close, slowBars)) ? 1 : -1
    "WMA" => (ta.wma(close, fastBars) >= ta.wma(close, slowBars)) ? 1 : -1
    "VWMA" => (ta.vwma(close, fastBars) >= ta.vwma(close, slowBars)) ? 1 : -1
    =>
        runtime.error("No matching MA type found.")
        float(na)

fastMA = switch strategy
    "EMA" => ta.ema(close, fastBars)
    "SMA" => ta.sma(close, fastBars)
    "RMA" => ta.rma(close, fastBars)
    "WMA" => ta.wma(close, fastBars)
    "VWMA" => ta.vwma(close, fastBars)
    =>
        runtime.error("No matching MA type found.")
        float(na)
        
slowMA = switch strategy
    "EMA" => ta.ema(close, slowBars)
    "SMA" => ta.sma(close, slowBars)
    "RMA" => ta.rma(close, slowBars)
    "WMA" => ta.wma(close, slowBars)
    "VWMA" => ta.vwma(close, slowBars)
    =>
        runtime.error("No matching MA type found.")
        float(na)

//Enter or Exit Positions--------------------------------------------------------------------------------------------------------------------------------------------------------------------

if ta.crossover(maMomentum, 0)
    if inDateRange
        strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(maMomentum, 0)
    if inDateRange
        strategy.close('long')

//Plot Strategy Behavior---------------------------------------------------------------------------------------------------------------------------------------------------------------------

plot(series = maOn == "On" ? fastMA : na, title = "Fast Moving Average", color = color.new(color.white,0), linewidth=2, offset=1)
plot(series = maOn == "On" ? slowMA : na, title = "Slow Moving Average", color = color.new(color.purple,0), linewidth=3, offset=1)
bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)

Mais.