O MACD Moving Average Bull Bear Conversion Strategy calcula as linhas DIFF e DEA do indicador MACD para determinar se a tendência do mercado se reverteu, gerando assim sinais de negociação.
A estratégia baseia-se principalmente nas linhas DIFF e DEA do indicador MACD. MACD significa Divergência de Convergência da Média Móvel, consistindo das linhas DIFF, DEA e MACD. Entre elas, DIFF representa a diferença entre a EMA de curto prazo e a EMA de longo prazo, DEA é a EMA de DIFF usada para verificar os sinais DIFF e MACD representa a diferença entre DIFF e DEA, usada para identificar divergências.
Quando o DIFF quebra acima da DEA, significa que a média móvel de curto prazo começa a se fortalecer e o mercado se torna otimista. Quando o DIFF quebra abaixo da DEA, sugere que a média móvel de curto prazo se torna fraca e o mercado se torna baixa.
Além disso, a estratégia incorpora filtros de EMA de preços para evitar falhas de ruptura. Ele só vai longo quando o DIFF quebra acima do DEA e o preço está abaixo do preço longo anterior, e só vai curto quando o DIFF quebra abaixo do DEA e o preço está acima do preço curto anterior.
A estratégia de conversão de média móvel MACD combina o indicador MACD e os filtros de EMA de preços para evitar sinais falsos gerados exclusivamente pelo MACD, melhorando assim o desempenho comercial.
As principais vantagens incluem:
A estratégia de conversão da média móvel MACD também apresenta alguns riscos:
As principais formas de otimizar os riscos são:
A estratégia de conversão da média móvel MACD pode ser ainda mais otimizada nas seguintes dimensões:
O MACD Moving Average Bull Bear Conversion Strategy identifica a entrada de mercado de alta / baixa por sinais crossover DIFF e DEA, e usa filtros de EMA de preço para remover sinais falsos, determinando efetivamente pontos de reversão da tendência do mercado. Com lógica simples e clara, ele identifica rapidamente pontos de conversão adequados para negociação de curto e médio prazo.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("macd_strategy", shorttitle="macd", overlay=true, pyramiding=1, max_bars_back=5000, calc_on_order_fills = false, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type =strategy.commission.percent, commission_value=0.00075) [diff, dea, _] = macd(close, 12, 26, 7) dea_close = ema(diff, 3) price = ema(close, 9) plot(price) cross_over_price = na cross_over_signal = na cross_over_price := cross_over_price[1] cross_over_signal := cross_over_signal[1] cross_under_price = na cross_under_signal = na cross_under_price := cross_under_price[1] cross_under_signal := cross_under_signal[1] if (crossover(diff,dea)) cross_over_price := price[1] cross_over_signal := diff if (crossunder(diff,dea)) cross_under_price := price[1] cross_under_signal := diff if dea > 0 cross_over_price = na cross_over_signal = na else cross_under_price = na cross_under_signal = na if diff > 0 if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95 strategy.entry("S", strategy.short, comment="S") else if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95 strategy.entry("B", strategy.long, comment="B") // strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0) // strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0) strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))