A estratégia de seguimento da tendência do MACD julga a tendência através do cálculo da cruz de ouro e da cruz morta do indicador MACD e da sua linha de sinal para seguir a tendência para o lucro.
Esta estratégia é baseada no indicador MACD para determinar a direção da tendência. O indicador MACD é um indicador de impulso de tendência, composto pela linha MACD, linha de sinal e histograma. A cruz dourada das linhas MACD e sinal sugere um mercado de touro potencial, enquanto a cruz morta sugere um mercado de urso potencial. O histograma representa a diferença entre as duas linhas, indicando sua divergência e mudança de velocidade através da mudança de cor.
Quando o histograma sobe de negativo para positivo, um sinal de cruz dourada é gerado, indicando que a tendência de alta pode apenas começar, e as posições longas podem ser construídas.
A lógica da estratégia é simples e fácil de entender, tornando-se a primeira escolha para iniciantes em negociação algorítmica.
/*backtest start: 2022-11-17 00:00:00 end: 2023-11-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("MACD") // Getting inputs fastLength = input(title="Fast Length", defval=12) slowlength = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signalLength = input(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9) // Calculating macd = ema(close, fastLength) - ema(close, slowlength) signal = ema(macd, signalLength) delta = macd - signal // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Plot histogram plot(delta, title="Histogram", style=columns, color=(delta>=0 ? (delta[1] < delta ? col_grow_above : col_fall_above) : (delta[1] < delta ? col_grow_below : col_fall_below) ), transp=0 ) plot(macd, title="MACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) // Plot orders if (crossover(delta, 0)) strategy.entry("buy", strategy.long) if (crossunder(delta, 0)) strategy.entry("sell", strategy.short)