A estratégia de cruzamento de média movel dinâmica é uma estratégia típica de rastreamento de tendências. A estratégia é feita através do cálculo de uma média movel rápida e uma média movel lenta e produz sinais de compra e venda quando elas se cruzam para capturar o ponto de inflexão da tendência do mercado.
A lógica central da estratégia é: um sinal de compra é gerado quando a média móvel rápida atravessa a média móvel lenta abaixo; um sinal de venda é gerado quando a média móvel rápida atravessa a média móvel lenta abaixo.
As médias móveis filtram eficazmente o ruído do mercado e capturam as tendências de preços. As médias móveis rápidas são mais sensíveis e captam as mudanças de tendência em tempo hábil; as médias móveis lentas são mais estáveis e eliminam efetivamente os efeitos das flutuações de curta duração.
A estratégia emite sinais de negociação imediatamente quando o horizonte cruza, adota uma estratégia de rastreamento de tendências para seguir as tendências do mercado e obter grandes lucros. Ao mesmo tempo, a estratégia define um nível de stop loss e um nível de stop loss para controlar o risco.
Pode ser melhorado por meio de métodos como a otimização de parâmetros, ajuste do comprimento do ciclo da linha uniforme, ou adição de condições de filtragem.
A estratégia de cruzamento de linhas uniformes dinâmicas é mais eficaz em geral e pode melhorar ainda mais o desempenho da estratégia através da otimização de parâmetros ajustados. A estratégia é fácil de implementar e adequada para exercícios de combate real para 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)