A estratégia de cruzamento de média rápida é uma estratégia simples de média móvel. Ela usa duas médias móveis, uma rápida e uma lenta, que são mais quando a média móvel rápida atravessa a média móvel lenta de baixo para cima, indicando que o preço pode subir; e uma média móvel rápida de cima para baixo, quando a média móvel rápida atravessa a média móvel lenta de baixo para baixo, indicando que o preço pode cair.
A estratégia usa duas médias móveis, rápida e lenta. Concretamente, a média móvel rápida tem a duração padrão de 25 ciclos e a média móvel lenta tem a duração padrão de 62 ciclos. A estratégia permite a escolha de diferentes tipos de médias móveis, incluindo SMA, EMA, WMA, RMA e VWMA.
Quando a média móvel rápida atravessa a média móvel lenta de baixo para cima, indicando que o preço de curto prazo começa a romper o preço de longo prazo, pertence ao típico sinal de cruzamento dourado, indicando que o preço pode entrar no canal ascendente, quando a estratégia faz mais; quando a média móvel rápida atravessa a média móvel lenta de cima para baixo, indicando que o preço de curto prazo começa a cair abaixo do preço de longo prazo, pertence ao sinal de cruzamento da morte, indicando que o preço pode entrar no canal descendente, quando a estratégia é equilibrada.
Assim, através de um cruzamento rápido da linha média para julgar a tendência e direção do preço, e fazer mais ou menos posições de acordo, para obter lucro.
A estratégia tem as seguintes vantagens:
Em geral, a estratégia de cruzar a linha média rápida e lenta como sinal de negociação central, tem uma forte capacidade de determinar a tendência futura dos preços, e pode obter um bom lucro com base nos benefícios do acompanhamento de tendências, o que vale a pena ser aplicado em combate.
A estratégia também apresenta alguns riscos potenciais:
Os riscos podem ser controlados e melhorados através das seguintes medidas:
As principais áreas de otimização da estratégia incluem:
Seleção de períodos de média rápida e média lenta: o parâmetro padrão atual pode não ser o melhor, pode-se tentar um parâmetro de média rápida diferente para encontrar a melhor configuração
Escolha do tipo de média móvel: há vários tipos de média móvel disponíveis para testar qual tipo funciona melhor para uma variedade específica
Combinação com outros indicadores ou estratégias: pode-se experimentar uma combinação com indicadores de volatilidade, indicadores de preços ou estratégias de acompanhamento de tendências para aumentar a eficácia
Parâmetros de auto-adaptação: permitir que os parâmetros do ciclo de linha média se ajustem automaticamente à volatilidade e à liquidez do mercado, aumentando a estabilidade
Assistência de modelos de IA: análise de grandes volumes de dados com algoritmos de aprendizado de máquina para encontrar automaticamente as melhores regras de negociação
Através desses meios de otimização, espera-se que a estratégia melhore ainda mais o desempenho e a estabilidade de seus ganhos.
A estratégia de cruzamento de linha média rápida e rápida é, em geral, uma estratégia de acompanhamento de tendências muito prática. Ela capta a lei da mudança de preços em diferentes escalas de tempo e, ao romper a linha média rápida e a linha média lenta, julga a possível tendência e direção futura dos preços. O conceito da estratégia é simples, claro, fácil de entender e implementar, os parâmetros podem ser personalizados e flexíveis, além de alta confiabilidade, alta automação, ampla gama de aplicações e extensibilidade.
/*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)