A Estratégia de Predicção de Tendência do MACD é uma estratégia de tendência baseada no indicador MACD e no indicador EMA. Ao contrário das estratégias tradicionais do MACD que geram sinais de negociação cruzando linhas de sinal, esta estratégia gera sinais de negociação por mudanças na distância entre a linha MACD e a linha de sinal para capturar mudanças de tendência.
Calcular a linha rápida DEMAfast: Calcular dois valores EMA da linha rápida MMEfast e calcular a linha rápida DEMAfast de acordo com a fórmula DEMAfast = ((2 * MMEfast) - MMEfastb).
Calcular a linha lenta DEMAslow: Calcular dois valores da EMA da linha lenta MMEslow e calcular a linha lenta DEMAslow de acordo com a fórmula DEMAslow = ((2 * MMEslow) - MMEslowb).
Calcule a linha MACD: A linha MACD é a diferença entre a linha rápida DEMAfast e a linha lenta DEMAslow, LigneMACDZeroLag.
Calcular a linha de sinal: Calcular dois valores EMA da linha MACD MMEsignal e calcular a linha de sinal Lignesignal de acordo com a fórmula Lignesignal = ((2 * MMEsignal) - MMEsignalb).
Comparar linha MACD e linha de sinal: gerar sinal de compra quando a linha MACD é maior que a linha de sinal e gerar sinal de venda quando a linha MACD é menor que a linha de sinal.
O cálculo acima utiliza o algoritmo DEMA, que pode efetivamente reduzir o atraso do indicador MACD.
O uso do algoritmo DEMA pode reduzir o atraso do indicador MACD e tornar os sinais de negociação mais sensíveis.
Não depende de sinais de cruzamento do MACD, mas capta mudanças de tendência através de mudanças de distância entre o MACD e as linhas de sinal, que podem entrar em tendências mais cedo.
A estratégia avalia com precisão a tendência e o fator de lucro pode atingir 1,6-3,5 com boa rentabilidade.
A lógica da estratégia é simples e clara, fácil de entender e implementar, adequada para negociação quantitativa.
Como um indicador de atraso, o MACD pode gerar muitos sinais de negociação inválidos em mercados de intervalo.
Embora o algoritmo DEMA reduza o atraso, não pode eliminar completamente o atraso.
Como uma tendência de seguir a estratégia, o lucro pode não ser bom em mercados variados.
Os parâmetros sma, lma, tsp devem ser otimizados para diferentes períodos e variedades.
As estratégias de stop loss podem ter de ser adicionadas ao controlo das perdas.
Otimizar os parâmetros de SMA, LMA e TSP para adaptá-los a diferentes períodos e variedades de negociação.
Adicionar estratégias dinâmicas de stop loss como ATR para controlar a perda por negociação.
Incorporar indicadores de avaliação da tendência para evitar a negociação em mercados variados.
Adicionar o dimensionamento das posições para ajustar as posições com base na volatilidade do mercado.
Otimizar a lógica de entrada e saída para refinar as regras do sinal de negociação.
A estratégia de previsão de tendência do MACD melhora o cálculo do MACD usando o algoritmo DEMA para reduzir o atraso e julga a tendência através de mudanças de distância entre o MACD e as linhas de sinal. Como uma estratégia de tendência, ela pode efetivamente capturar mudanças de tendência. O fator de lucro pode atingir 1,6-3,5, com certas vantagens. Mas ainda precisa de uma otimização adicional dos parâmetros, estratégias de stop loss, filtragem de mercados variados, etc. para se adaptar a mais ambientes de mercado. Esta será a direção de desenvolvimento desta estratégia.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © moritz1301 //@version=4 strategy("MACD Trendprediction Strategy V1", shorttitle="MACD TPS", overlay=true) sma = input(12,title='DEMA Courte') lma = input(26,title='DEMA Longue') tsp = input(9,title='Signal') dolignes = input(true,title="Lignes") MMEslowa = ema(close,lma) MMEslowb = ema(MMEslowa,lma) DEMAslow = ((2 * MMEslowa) - MMEslowb ) MMEfasta = ema(close,sma) MMEfastb = ema(MMEfasta,sma) DEMAfast = ((2 * MMEfasta) - MMEfastb) LigneMACDZeroLag = (DEMAfast - DEMAslow) MMEsignala = ema(LigneMACDZeroLag, tsp) MMEsignalb = ema(MMEsignala, tsp) Lignesignal = ((2 * MMEsignala) - MMEsignalb ) MACDZeroLag = (LigneMACDZeroLag - Lignesignal) bgcolor(LigneMACDZeroLag<Lignesignal ? color.red : color.green) if (LigneMACDZeroLag>Lignesignal) strategy.entry("Buy", strategy.long, comment="BUY") if (LigneMACDZeroLag<Lignesignal) strategy.close("Buy", strategy.long, comment="SELL")