Esta estratégia é chamada de MACD Trend Following Strategy. É uma estratégia quantitativa que utiliza o indicador MACD para determinar as tendências de preços e segue as tendências para o comércio. A estratégia visa capturar tendências de médio a longo prazo e ajustar posições de forma oportuna quando ocorrem inversões de tendência.
A estratégia usa o indicador MACD para determinar as tendências de preços. O MACD é um indicador de ruptura formado pela linha EMA rápida (12 dias) e a linha EMA lenta (26 dias). A diferença entre essas duas linhas forma o histograma MACD, e a EMA de 9 dias do histograma é a linha de sinal MACD. Quando a linha MACD cruza acima da linha de sinal, é uma cruz de ouro, indicando uma tendência ascendente. Quando a linha MACD cruza abaixo da linha, é um sinal cruzado morto, indicando uma tendência descendente.
A estratégia primeiro calcula a linha MACD e a linha de sinal, em seguida, calcula a diferença delta entre as duas linhas. Quando o delta cruza acima de 0, um sinal de compra é gerado. Quando o delta cruza abaixo de 0, um sinal de venda é gerado. Com base nesses dois sinais, a estratégia ajusta as posições em conformidade. Para filtrar o ruído, a estratégia também introduz uma linha EMA - os sinais de negociação válidos só são gerados quando o preço atravessa essa linha EMA.
Especificamente, a lógica estratégica é:
Com esta concepção, a estratégia é capaz de seguir as tendências de médio a longo prazo e ajustar rapidamente as posições quando as tendências se revertem.
A estratégia apresenta as seguintes vantagens:
Há alguns riscos a ter em conta:
Soluções:
A estratégia pode ser ainda melhorada das seguintes maneiras:
A melhoria significativa pode ser alcançada através de métodos como combinações de indicadores, parâmetros adaptativos, stop loss/profit taking, etc.
Em resumo, a estratégia MACD Trend Following utiliza o indicador MACD simples e eficaz para identificar tendências de médio a longo prazo, e implementa uma tendência clara seguindo a lógica.
/*backtest start: 2022-11-14 00:00:00 end: 2023-10-27 05:20:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MACD Strategy v1.0", shorttitle = "MACD str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(false, defval = false, title = "Short") usefil = input(false, defval = false, title = "Use EMA filter") lenfil = input(5, defval = 5, minval = 1, maxval = 50, title = "EMA filter period") fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD //Signals ema = ema(close, lenfil) trend = crossover(delta, 0) == true ? 1 : crossunder(delta, 0) == true ? -1 : trend[1] up = trend == 1 and (low < ema or usefil == false) ? 1 : 0 dn = trend == -1 and (high > ema or usefil == false) ? 1 : 0 plot(ema, color = black, transp = 0) if (up == 1) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) if (dn == 1) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)