
Esta estratégia é chamada de estratégia de combinação DEMA MACD. Combina o indicador de linha média DEMA e o indicador de MACD, usando a confirmação de dois indicadores para enviar um sinal de compra e venda. Sua principal idéia é usar o indicador de tendência DEMA e o indicador de dinâmica MACD para a confirmação múltipla ao mesmo tempo, aumentando a precisão do sinal para obter um melhor desempenho da estratégia.
A estratégia baseia-se principalmente na combinação do indicador DEMA e do indicador MACD. Os princípios específicos são os seguintes:
Calcula-se a linha média DEMA de 21 dias, quando o preço de fechamento atravessa a linha média DEMA é considerado um sinal de compra, quando a linha média DEMA é atravessada é considerado um sinal de venda.
Calcule a diferença do MACD e adicione parâmetros opcionais para controlar se a diferença do MACD maior que 0 é necessária como confirmação adicional do sinal de compra.
Quando o sinal de compra de linha média DEMA é exibido, se a confirmação adicional de MACD de diferença maior que 0 for ativada, será necessário esperar que o MACD de diferença se torne positivo para que o verdadeiro sinal de compra seja acionado.
Quando o sinal de venda da linha DEMA aparece, o sinal de venda é emitido diretamente, sem a necessidade de confirmação adicional do MACD.
Através deste conjunto de dois indicadores, é possível usar a linha média DEMA para determinar a direção da tendência e, ao mesmo tempo, usar o diferencial MACD para determinar se está no início da tendência, evitando falsas suposições e aumentando a margem de lucro. O diferencial MACD maior que 0 confirma a compra para que a estratégia possa ser comprada apenas no período de crescimento do índice. A linha média DECL confirma rapidamente a venda para que a estratégia possa ser parada em tempo hábil.
A estratégia, combinada com a linha média DEMA e o MACD, apresenta vantagens em vários aspectos:
A resposta do DEMA é mais sensível e pode capturar mudanças de tendência em tempo hábil, evitando cair em armadilhas de choques.
A diferença do MACD maior que 0 confirma que os falsos sinais podem ser filtrados, comprando apenas no início da tendência, ampliando a margem de lucro.
A venda direta de DECL sem a confirmação do MACD pode ser rapidamente interrompida, preservando o máximo de lucro.
Os dois indicadores verificam-se mutuamente para aumentar a precisão do sinal e reduzir a probabilidade de transações erradas.
Os parâmetros podem ser ajustados para diferentes cenários de mercado.
A estratégia tem os seguintes riscos:
A sensibilidade da reação DEMA também é mais propensa a produzir sinais errados, que requerem o indicador MACD para verificação.
Os indicadores MACD são atrasados e podem perder o melhor momento de compra. Recomenda-se que a combinação use outros indicadores anteriores.
Dependendo da otimização de parâmetros, os diferentes parâmetros variam em sua adequação a diferentes mercados. É necessário um teste contínuo para encontrar os parâmetros mais ótimos.
Risco de correlação serializada. Tanto o DEMA quanto o MACD dependem de cálculos do EMA, com alta correlação e dúvidas sobre a precisão do sinal.
A solução é a seguinte:
Adicionar a verificação de outros indicadores e construir combinações de vários indicadores reduz a probabilidade de erros.
Tente substituir o MACD por BB, KD e outros indicadores anteriores para capturar pontos de compra antecipadamente.
Estabelecer mecanismos de otimização e atualização de parâmetros, avaliando a saúde dos parâmetros em tempo real.
Tente introduzir indicadores irrelevantes, como o indicador de tremores, que reduzem o risco de correlação.
A estratégia pode ser melhorada principalmente nas seguintes direções:
Tente modificar os parâmetros de DEMA para encontrar a melhor combinação de parâmetros. A sensibilidade que os parâmetros de DEMA afetam diretamente a estratégia.
Aumentar o mecanismo de stop loss. Atualmente, a estratégia depende apenas do sinal de stop loss do DECL, que pode ser definido como stop loss móvel ou stop loss percentual.
Adicionar outros indicadores de antecedência para substituir o MACD, procurando sinais mais precoces, como linhas de Brin, KDJ, etc.
A introdução de indicadores irrelevantes aumenta a robustez da estratégia, como a adição de volume de transações, indicadores de convulsão, etc.
Construir mecanismos de otimização e atualização de parâmetros, avaliar a saúde dos parâmetros em tempo real e ajustar os parâmetros automaticamente.
Esta estratégia utiliza a combinação de linha média DEMA e indicadores MACD, aproveitando as vantagens de ambos para confirmar e emitir sinais de compra e venda. Comparado a um único indicador, tem maior sensibilidade e taxa de precisão do sinal.
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 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/
// © melihtuna
//@version=1
strategy("DEMA Strategy with MACD", overlay=true)
// === Trend Trader Strategy ===
DemaLength = input(21, minval=1)
MacdControl = input(false, title="Control 'MACD Histogram is positive?' when Buy condition")
e1 = ema(close, DemaLength)
e2 = ema(e1, DemaLength)
dema1 = 2 * e1 - e2
pos = close > dema1 ? 1 : 0
barcolor(pos == 0 ? red: pos == 1 ? green : blue )
plot(dema1, color= blue , title="DEMA Strategy with MACD")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === MACD ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdCond= MacdControl ? histLine[0] > 0 ? true : false : true
strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond)
strategy.entry("SELL", strategy.short, when = window() and pos == 0)