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.
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.
A estratégia apresenta as seguintes vantagens:
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.
A estratégia apresenta também alguns riscos potenciais:
Para controlar e atenuar estes riscos, podem ser adoptados os seguintes métodos:
As principais direcções para a otimização da estratégia incluem:
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
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
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
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
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.
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)