Estratégia do indicador de ímpeto

Autora:ChaoZhang, Data: 2023-11-16 15:47:13
Tags:

img

Resumo

Esta estratégia usa médias móveis e o indicador MACD para identificar tendências e impulso de preços, combinados com sinais cruzados para tomar decisões de negociação.

Estratégia lógica

Esta estratégia usa um cruzamento duplo de média móvel para gerar sinais. A média móvel rápida tem uma duração de 12 dias, enquanto a média móvel lenta tem uma duração de 26 dias. Quando o MA rápido cruza acima do MA lento, uma cruz de ouro é formada que dá um sinal longo.

Ao mesmo tempo, esta estratégia usa o indicador MACD para medir o momentum. O MACD é calculado subtraindo o MA lento (26-day EMA) do MA rápido (12-day EMA), e depois suavizado por uma linha de sinal (9-day EMA).

Esta estratégia considera tanto os sinais de cruzamento da média móvel quanto os sinais do indicador MACD para tomar decisões de negociação.

Análise das vantagens

  1. O uso de médias móveis duplas combinadas com o MACD considera a tendência e o ímpeto dos preços, evitando oportunidades de negociação perdidas.

  2. Os parâmetros MACD também são padrão para detectar de forma fiável mudanças de momento.

  3. A visualização gráfica dos indicadores torna os sinais de negociação claros e intuitivos.

  4. Os parâmetros da estratégia são flexíveis para otimização.

  5. Implementa a tendência seguindo e pode beneficiar de tendências direcionais sustentadas.

Análise de riscos

  1. O cruzamento da média móvel dupla pode atrasar os sinais de entrada.

  2. O MACD pode dar sinais falsos frequentes, necessitando de confirmação de preço.

  3. Os cruzes de morte em tendências de alta podem sinalizar correcções, os longs existentes não devem ser retirados prematuramente.

  4. As cruzadas douradas em tendências descendentes podem sinalizar rebotes, os shorts existentes não devem ser cobertos prematuramente.

  5. A gestão de fundos deve ser rigorosa, limitando o dimensionamento das posições para controlar o risco.

Orientações de otimização

  1. Otimizar os parâmetros de MA testando diferentes combinações de períodos para melhorar a fiabilidade do cruzamento.

  2. Otimizar os parâmetros do MACD ajustando as EMA curtas e longas e a linha de sinal para reduzir os falsos sinais.

  3. Adicionar outros indicadores como KDJ, BOLL para confluência para melhorar a precisão do sinal.

  4. Incorporar indicadores de volume para evitar falhas.

  5. Backtest para encontrar combinações ideais de parâmetros com base em dados históricos.

  6. Implementar estratégias de stop loss para limitar estritamente as perdas por transação e reduzir o risco.

Resumo

Esta estratégia integra o duplo crossover da média móvel e o MACD para a negociação de tendências. A otimização de parâmetros e o seguimento de uma gestão prudente do dinheiro ajudarão a alcançar ganhos constantes a longo prazo.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Moving Average Convergence/Divergence MaCD Backesting", shorttitle="MACD Backtesting", precision = 6, pyramiding = 3, default_qty_type = strategy.percent_of_equity, currency = currency.USD, commission_type = strategy.commission.percent, commission_value = 0.10, initial_capital = 1000, default_qty_value = 100)
source = close
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)

macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

plot(hist, color=red, style=histogram)
plot(macd, color=blue)
plot(signal, color=orange)

buy = crossover(macd,signal)
sell = crossunder(macd,signal)

plotshape(buy, "buy", shape.triangleup, color = olive , size = size.tiny, location  = location.bottom)
plotshape(sell, "sell", shape.triangledown, color = orange , size = size.tiny, location  = location.bottom)

if (buy)
    strategy.entry("Long Trigger", true)
if(sell)    
    strategy.entry("Short Trigger", false)
if (sell)    
    strategy.exit("Close Long Trigger", "Long Trigger")
if (buy)
    strategy.exit("Close Short Trigger", "Short Trigger")




Mais.