Esta é uma estratégia típica de negociação de cruzamento de médias móveis. Ele usa os pontos de cruzamento de médias móveis rápidas e lentas como sinais de negociação. Quando a média móvel rápida cruza acima da média móvel lenta de baixo, ela é considerada um sinal de compra. Quando a média móvel rápida cruza abaixo da média móvel lenta de cima, ela é considerada um sinal de venda. Esta estratégia combina duas médias móveis e pode efetivamente filtrar o ruído do mercado e identificar tendências.
As principais etapas desta estratégia são:
Defina o período de média móvel rápida (fastMA) e o período de média móvel lenta (slowMA).
Calcule a média móvel rápida e a média móvel lenta com base no tipo de entrada Tipo. Tipo = 1 é a média móvel simples, Tipo = 2 é a média móvel exponencial.
Configure o intervalo de tempo do backtest para início e fim.
Definir a função de cruzamento: quando rápido cruza acima lento, gerar sinal de compra; quando rápido cruza abaixo lento, gerar sinal de venda.
Quando a função de cruzamento for acionada, se estiver dentro do intervalo de tempo do backtest, emitir uma ordem longa aberta ou curta fechada.
Quando a janela de backtest termina ou a função de cruzamento cruza abaixo, emitir ordem de fechamento longa.
Trace a média móvel rápida e a média móvel lenta.
Esta estratégia utiliza o cruzamento de médias móveis rápidas e lentas para determinar a tendência dentro do período de detenção e gerar sinais de negociação em conformidade.
As vantagens desta estratégia:
As médias móveis são eficazes para determinar tendências e filtrar flutuações aleatórias.
A combinação de médias móveis rápidas e lentas pode identificar mudanças de tendência.
Os parâmetros das médias móveis podem ser ajustados para se adaptarem às diferentes tendências de períodos.
Opção flexível entre médias móveis simples e exponenciais.
A funcionalidade de backtest permite testar e otimizar parâmetros de estratégia.
Lógica simples e clara, fácil de entender e implementar.
O desenho de gráficos de médias móveis permite a determinação visual das tendências e efeitos.
Alguns riscos desta estratégia:
Pode gerar sinais falsos durante períodos de alcance limitado.
As médias móveis têm um efeito de atraso, podem perder pontos de virada.
Baseia-se exclusivamente no cruzamento da média móvel, sem outros indicadores ou filtros.
Não considera os custos comerciais.
Não há estratégia de stop loss.
Configurações de parâmetros não razoáveis podem afetar o desempenho da estratégia.
A selecção inadequada do intervalo de tempo do backtest pode causar sobreajuste.
A estratégia pode ser otimizada nos seguintes aspectos:
Adicione outros indicadores como MACD, RSI para confirmar sinais e melhorar a precisão.
Adicionar estratégia de stop loss para controlar a perda única.
Otimizar os parâmetros da média móvel para diferentes períodos.
Adicionar o dimensionamento das posições com base nas condições de mercado.
Considere os custos de negociação, ajuste os pontos de entrada e saída.
Teste com um período de tempo mais longo para evitar sobreajuste.
Optimize continuamente os parâmetros usando a análise de avanços.
A estratégia de cruzamento de média móvel é uma estratégia simples e prática de tendência. Ela pode filtrar flutuações aleatórias e identificar direções de tendência. Mas também tem alguns problemas como efeito de atraso e deve ser combinada com outros indicadores. A otimização e teste contínuos podem melhorar o desempenho da estratégia e torná-la mais confiável para negociação ao vivo.
/*backtest start: 2023-09-13 00:00:00 end: 2023-09-20 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy("MavCrossover v2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) // Revision: 1 // Author: @ToS_MavericK // === INPUT SMA === fastMA = input(defval = 13, title = "FastMA", minval = 1, step = 1) slowMA = input(defval = 144, title = "SlowMA", minval = 1, step = 1) Type = input(defval = 1, title = "Type (1 = SMA, 2 = EMA)", minval = 1, maxval = 2, step = 1) SlowMAIsFactor = input(false) slowMA := SlowMAIsFactor == true ? round(fastMA * slowMA) : slowMA // === INPUT BACKTEST RANGE === FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromYear = input(defval = 2018, title = "From Year", minval = 2012) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToYear = input(defval = 2020, title = "To Year", minval = 2012) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // === MA SETUP === fast = Type == 1 ? sma(close, fastMA) : ema(close, fastMA) slow = Type == 1 ? sma(close, slowMA) : ema(close, slowMA) // === EXECUTION === strategy.entry("L", strategy.long, when = crossover(fast, slow) and window()) // buy long when "within window of time" AND crossover strategy.close("L", when = crossunder(fast, slow) or time > finish) // sell long when window ends OR crossunder plot(fast, title = 'FastMA', color = yellow, linewidth = 2, style = line) // plot FastMA plot(slow, title = 'SlowMA', color = aqua, linewidth = 2, style = line) // plot SlowMA