A estratégia de cruzamento de média móvel dinâmica é uma estratégia típica de tendência. gerando sinais de compra e venda através do cálculo da média móvel rápida (Fast MA) e média móvel lenta (Slow MA) e detectando cruzes entre eles para capturar pontos de reversão da tendência no mercado.
A lógica central desta estratégia é: quando a média móvel rápida cruza acima da média móvel lenta de baixo, é gerado um sinal de compra; quando a média móvel rápida cruza abaixo da média móvel lenta de cima, é gerado um sinal de venda.
As médias móveis podem efetivamente filtrar o ruído do mercado e capturar as tendências de preços. A média móvel rápida é mais sensível e pode capturar mudanças na tendência em tempo hábil; a média móvel lenta é mais estável e pode efetivamente filtrar o impacto das flutuações de curto prazo.
Esta estratégia irá emitir sinais de negociação imediatamente quando as médias móveis cruzarem, adotar uma estratégia de perseguição de tendências para seguir as tendências do mercado e obter lucros maiores.
As melhorias podem ser feitas através da otimização de parâmetros, ajustando os períodos de média móvel, adicionando condições de filtro, etc.
A estratégia de cruzamento da média móvel dinâmica em geral tem um bom desempenho. Melhorias adicionais podem ser feitas através da otimização de parâmetros. A estratégia é fácil de implementar e adequada para a prática de iniciantes.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple Moving Average Crossover", shorttitle="SMAC", overlay=true) // Define input parameters fast_length = input.int(9, title="Fast MA Length") slow_length = input.int(21, title="Slow MA Length") stop_loss = input.float(1, title="Stop Loss (%)", minval=0, maxval=100) take_profit = input.float(2, title="Take Profit (%)", minval=0, maxval=100) // Calculate moving averages fast_ma = ta.sma(close, fast_length) slow_ma = ta.sma(close, slow_length) // Define conditions for long and short signals long_condition = ta.crossover(fast_ma, slow_ma) short_condition = ta.crossunder(fast_ma, slow_ma) // Plot moving averages on the chart plot(fast_ma, title="Fast MA", color=color.blue) plot(slow_ma, title="Slow MA", color=color.red) // Execute long and short trades if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Set stop loss and take profit levels stop_loss_price = close * (1 - stop_loss / 100) take_profit_price = close * (1 + take_profit / 100) strategy.exit("Take Profit/Stop Loss", stop=stop_loss_price, limit=take_profit_price) // Plot signals on the chart plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)