Esta estratégia de seguir tendências utiliza um indicador MACD aprimorado. Ele calcula a EMA rápida, a EMA lenta, sua diferença e a EMA dessa diferença para gerar sinais.
A lógica é:
Calcular o período de EMA rápido, por exemplo 12 dias
Calcular o período de EMA lento, por exemplo, 26 dias
Subtrair rápido da EMA lenta para obter MACD
Tomar a EMA do MACD como linha de sinal, por exemplo, 9 dias
A EMA do sinal MACD menos dá um sinal reforçado
Vai longo quando o sinal reforçado cruza acima da linha zero
Fechar longo quando o sinal reforçado cruza abaixo da linha zero
A estratégia aproveita a capacidade de seguir a tendência do MACD e o otimiza ainda mais para sinais de tendência de qualidade de médio a longo prazo.
O MACD melhorado reduz o ruído e melhora os sinais
Indicadores de direção e força da combinação EMA rápida/lenta
Os parâmetros mais lentos concentram-se nas tendências de médio a longo prazo
É necessária uma otimização cuidadosa dos períodos de EMA
LONG só incapaz de usar oportunidades de curto prazo
Ocorrência menos frequente do sinal
Esta estratégia aproveita o MACD aprimorado para melhorar a identificação de tendências de médio a longo prazo.
/*backtest start: 2022-09-07 00:00:00 end: 2023-09-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //study("MACDAS") // strategy("macdas",shorttitle="macdas",overlay=true,default_qty_value=10000,initial_capital=10000,currency=currency.USD) // Date range filter testStartYear = input(2018, "Backtest Start Year") testStartMonth = input(4, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) testStopYear = input(2018, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) inTimeRange = true fastperiod = input(12,title="fastperiod",minval=1,maxval=500) slowperiod = input(26,title="slowperiod",minval=1,maxval=500) signalperiod = input(9,title="signalperiod",minval=1,maxval=500) fastMA = ema(close, fastperiod) slowMA = ema(close, slowperiod) macd = fastMA - slowMA signal = ema(macd, signalperiod) macdAS = macd - signal signalAS = ema(macdAS, signalperiod) plot(macdAS, color=blue, linewidth=2) plot(signalAS, color=red, linewidth=2) plot(0, color=black) strategy.entry("LONG", strategy.long, when =inTimeRange and crossover(macdAS,signalAS)) strategy.close("LONG", when= inTimeRange and crossunder(macdAS,signalAS)) plotshape(crossover(macdAS, signalAS) , style = shape.arrowup, text="Long",color=green,size=size.huge) plotshape(crossover(signalAS,macdAS) , style = shape.arrowdown, text="End Long",color=red,size=size.huge)