
A estratégia de combinação de múltiplos médios móveis é uma estratégia de análise técnica muito abrangente e universal. Combina médias móveis de múltiplos períodos de tempo para fornecer uma visão abrangente das tendências do mercado. A estratégia ajuda a identificar potenciais pontos de entrada e saída, gerando sinais claros de compra e venda.
O núcleo da estratégia é o cálculo e o acompanhamento de médias móveis de vários períodos de diferentes comprimentos, incluindo médias móveis de 10, 20, 30 e até 100 dias. Essas médias móveis são definidas como a média do preço de fechamento do dia em relação ao preço de fechamento de um determinado período anterior (como 10 dias, 20 dias, etc.).
Quando o preço de fechamento de hoje está acima de todas essas médias móveis, um sinal de compra é gerado. Quando o preço de fechamento de hoje está abaixo de todas essas médias móveis, um sinal de venda é gerado. Assim, apenas quando as médias móveis de todos os períodos apontam na mesma direção, o sinal é gerado, filtrando muitas oportunidades de negociação de ruído e tornando o sinal mais confiável.
O objetivo é fornecer insights em várias escalas temporais, adaptando-se a diferentes cenários de mercado.
Noise Filter com várias confirmações, sinal mais confiável
Regras de negociação claras, fáceis de entender e de implementar
Altamente personalizável, permitindo que o usuário ajuste os parâmetros para atender às necessidades personalizadas
Fornecer orientações claras sobre entrada, parada e parada de risco para ajudar na gestão de riscos
Quando o mercado está em um período de turbulência, várias médias móveis podem se cruzar, resultando em sinais pouco claros. A probabilidade de cruzamento pode ser reduzida ajustando o número e a duração dos ciclos de médias móveis.
A probabilidade de que o preço atinja mais de uma média móvel no futuro é menor, podendo perder algumas oportunidades de negociação. Pode-se reduzir adequadamente o número de médias móveis, reduzindo a dificuldade de quebra.
Os sinais geram atraso e não conseguem capturar a tendência antes do ponto de reversão do preço. A combinação com outros indicadores de antecedência, como o MACD, pode melhorar o julgamento da reversão da tendência.
Pode haver poucas negociações e dificuldade para obter ganhos estáveis. A média móvel pode ser apropriadamente reduzida ou usada em combinação com outras estratégias/indicadores.
Ajuste de parâmetros: ajuste o número e a duração dos ciclos da média móvel para encontrar a melhor combinação de parâmetros. Por exemplo, combinações de médias móveis de 5, 10 e 20 dias podem ser testadas.
Combinação com outros indicadores: Usado em combinação com outros indicadores, como MACD, RSI, para aumentar a resiliência da estratégia. Diferentes indicadores podem ser complementares.
Combinação de estratégias: combinação com outras estratégias, como sistemas de ruptura, sistemas de rastreamento de tendências, para aumentar a estabilidade. Diferentes estratégias podem dispersar o risco.
Busca automática de otimização: usa algoritmos para testar automaticamente diferentes parâmetros, buscando a combinação de parâmetros que maximiza as expectativas. Reduz a intervenção humana e aumenta a eficiência.
A estratégia de integração de múltiplos médias móveis é uma ferramenta estratégica muito abrangente e poderosa. Ela oferece insights em várias escalas temporais, sinais mais confiáveis, fáceis de entender e usar, e possui alta personalização. Também existe uma certa limitação, mas pode ser otimizada por meio de ajustes de parâmetros e combinações com outros modelos para se adaptar a situações de mercado mais complexas.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Multiple Moving Average Strategy", overlay=true)
// Function to calculate moving average
get_ma(src, length) =>
ta.sma(src, length)
// Initialize moving average lengths
ma_length_10 = 10
ma_length_20 = 20
ma_length_30 = 30
ma_length_40 = 40
ma_length_50 = 50
ma_length_60 = 60
ma_length_70 = 70
ma_length_80 = 80
ma_length_90 = 90
ma_length_100 = 100
// Calculate 10-day, 20-day, 30-day, 40-day, 50-day, 60-day, 70-day, 80-day, 90-day, and 100-day moving averages
ma_10 = get_ma(close, ma_length_10)
ma_20 = get_ma(close, ma_length_20)
ma_30 = get_ma(close, ma_length_30)
ma_40 = get_ma(close, ma_length_40)
ma_50 = get_ma(close, ma_length_50)
ma_60 = get_ma(close, ma_length_60)
ma_70 = get_ma(close, ma_length_70)
ma_80 = get_ma(close, ma_length_80)
ma_90 = get_ma(close, ma_length_90)
ma_100 = get_ma(close, ma_length_100)
// Generate Buy/Sell signals for the 10 moving averages
buy_signal = close > ma_10
sell_signal = close < ma_10
// Add conditions for each additional moving average length
buy_signal := buy_signal and (close > get_ma(close, ma_length_20))
sell_signal := sell_signal and (close < get_ma(close, ma_length_20))
buy_signal := buy_signal and (close > get_ma(close, ma_length_30))
sell_signal := sell_signal and (close < get_ma(close, ma_length_30))
buy_signal := buy_signal and (close > get_ma(close, ma_length_40))
sell_signal := sell_signal and (close < get_ma(close, ma_length_40))
buy_signal := buy_signal and (close > get_ma(close, ma_length_50))
sell_signal := sell_signal and (close < get_ma(close, ma_length_50))
buy_signal := buy_signal and (close > get_ma(close, ma_length_60))
sell_signal := sell_signal and (close < get_ma(close, ma_length_60))
buy_signal := buy_signal and (close > get_ma(close, ma_length_70))
sell_signal := sell_signal and (close < get_ma(close, ma_length_70))
buy_signal := buy_signal and (close > get_ma(close, ma_length_80))
sell_signal := sell_signal and (close < get_ma(close, ma_length_80))
buy_signal := buy_signal and (close > get_ma(close, ma_length_90))
sell_signal := sell_signal and (close < get_ma(close, ma_length_90))
buy_signal := buy_signal and (close > get_ma(close, ma_length_100))
sell_signal := sell_signal and (close < get_ma(close, ma_length_100))
// Plot Buy/Sell signals on the chart
plotshape(buy_signal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(sell_signal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Execute long buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.entry("Buy", strategy.long)
// Execute sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.close("Buy")
// Execute short sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Execute buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.close("Sell")
// Plot closing price and moving averages on the chart
plot(close, title="Close", color=color.blue)
plot(ma_10, title="MA 10", color=color.orange)
plot(ma_20, title="MA 20", color=color.purple)
plot(ma_30, title="MA 30", color=color.blue)
plot(ma_40, title="MA 40", color=color.red)
plot(ma_50, title="MA 50", color=color.green)
plot(ma_60, title="MA 60", color=color.yellow)
plot(ma_70, title="MA 70", color=color.fuchsia)
plot(ma_80, title="MA 80", color=color.gray)
plot(ma_90, title="MA 90", color=color.teal)
plot(ma_100, title="MA 100", color=color.maroon)