Esta estratégia determina entradas e saídas com base nas situações de cruzamento da linha EMA rápida (3), linha EMA lenta (11) e linha EMA lenta (18), combinadas com cruzamento da linha zero do MACD. É uma estratégia dinâmica que utiliza a combinação de indicadores EMA e MACD duplos para decisões de negociação.
A estratégia baseia-se principalmente em dois indicadores de análise técnica:
A EMA Crossover utiliza o crossover da EMA rápida (3), da EMA lenta (11) e da EMA mais lenta (18) para determinar a tendência e como sinais de entrada e saída.
O indicador MACD e seu cruzamento de linha zero. O MACD é composto por DIFF e DEA. O DIFF é construído por EMA rápida (3) menos EMA lenta (11).
De acordo com a combinação de cruzamento da EMA e cruzamento da linha zero do MACD, existem 3 oportunidades de entrada e 2 oportunidades de saída:
Em resumo, esta estratégia faz pleno uso das vantagens do duplo sistema de cruzamento EMA e do indicador MACD. Ao ajustar dinamicamente os parâmetros das médias móveis e do MACD, pode melhorar a rentabilidade da estratégia.
Utiliza os pontos fortes do crossover EMA e do indicador MACD, melhorando a precisão através da confirmação de dois indicadores.
Existem 3 oportunidades de entrada de longo prazo e 2 oportunidades de saída, aumentando a frequência de negociação e o potencial de lucro.
Grande espaço para otimização de parâmetros dinâmicos. Os comprimentos de EMA rápida, EMA lenta, linha zero EMA e MACD podem ser todos otimizados.
A lógica clara facilita a depuração e otimização.
Tanto o crossover EMA como o indicador MACD apresentam alguns sinais falsos, o que pode levar a perdas desnecessárias.
Alta frequência de negociação com pequeno tamanho de stop loss em cada negociação, de modo que as perdas podem acumular-se.
Dificuldade na otimização de parâmetros.
O impacto dos custos comerciais deve ser plenamente considerado.
Para atenuar os riscos:
Configure o stop loss adequado para limitar as perdas em operações individuais.
Ajustar os parâmetros adequadamente para evitar a sobreajuste.
Considere o impacto dos custos de negociação, como a redução da frequência de negociação.
Alternativas de teste como as bandas de Bollinger, KDJ, etc.
Optimização dos parâmetros de cruzamento da EMA: alteração da extensão da EMA rápida e lenta.
Optimização dos parâmetros MACD: alteração dos comprimentos EMA de cálculo do DIFF e do DEA.
Adicionar estratégias de stop loss: número de paradas de negociação, paradas de tempo, paradas de trailing, etc.
Ajustar a frequência de entrada considerando os custos de negociação.
Esta estratégia combina o sistema de crossover EMA duplo e o indicador MACD para construir uma estratégia de parâmetros dinâmicos com alta frequência de negociação e forte lucratividade. Além disso, a lógica clara torna fácil de entender e otimizar.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-05 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false) short = ema(close,3) long = ema(close, 11) long2 = ema(close, 18) //plot(short, color = red, linewidth = 4) //plot(long, color = blue, linewidth = 4) //plot(long2, color = green, linewidth = 4) isCross1 = crossover(short, long) isCross2 = crossover(short, long2) isCrossSell = crossunder(short, long) //isCross3 = crossover(long, long2) //plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar) //plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar) //plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar) //plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar) fastLength = input(3) slowlength = input(11) MACDLength = input(27) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) //signal delta = MACD - aMACD // histograma strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0)) strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1) strategy.entry("all in", strategy.long, comment="all in",when=isCross2) strategy.close("2nd in",when=isCrossSell) strategy.close("all in",when=isCrossSell) //strategy.close("2nd in",when=crossunder(delta, 0)) //strategy.close("all in",when=crossunder(delta, 0)) strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) histColour = (delta > 0) ? green : (delta < 0) ? red : #4169E1 plot(MACD,color=red,linewidth=2) plot(aMACD,color=blue,linewidth=2) plot(delta,style=histogram, color=histColour, linewidth=10) plot(0,color=white)