Esta estratégia acompanha a tendência através do cálculo de duas médias móveis dinâmicas, DEMA e TEMA, e estabelece posições longas ou curtas quando geram cruzes de ouro ou cruzes de morte.
A lógica central desta estratégia consiste em determinar a direcção da tendência com base no cruzamento entre duas médias móveis dinâmicas, DEMA e TEMA.
DEMA significa Double Exponential Moving Average. Ele combina a característica de suavização ponderada da EMA e otimiza o problema de atraso da EMA. Sua fórmula é:
DEMA = 2*EMA(CLOSE, N) - EMA(EMA(CLOSE, N), N)
Aqui N é o Demalength.
TEMA significa Triple Exponential Moving Average (média móvel exponencial tripla), que usa suavização exponencial tripla para reduzir o atraso das médias móveis.
EMA1 = EMA ((CLOSE, Temalength) EMA2 = EMA ((EMA1, Temalength) EMA3 = EMA ((EMA2, Temalength) TEMA = 3EMA1 - 3EMA2 + EMA3
Quando o TEMA atravessa o DEMA, é considerado um sinal de cruz de ouro para ir longo.
Além disso, a estratégia define os delayBars para garantir a validade dos sinais e evitar falsos sinais.
Por último, a estratégia adopta uma lógica de verificação dupla, que verifica se a posição oposta precisa ser fechada antes da abertura de novas operações, evitando assim o risco de posições de dupla direcção.
Em comparação com a EMA e a SMA tradicionais, a DEMA e a TEMA são MAs dinâmicas mais sensíveis que podem captar rapidamente as alterações de tendência, melhorando assim a precisão dos julgamentos da tendência do mercado.
O parâmetro delayBars obriga a estratégia a esperar por um período de tempo após o surgimento do sinal antes de entrar em posições.
Ao verificar se a posição oposta precisa ser fechada antes de abrir novas operações, a estratégia evita a detenção de posições de dupla direção e minimiza as perdas das operações de cobertura.
Esta estratégia baseia-se principalmente no cruzamento entre indicadores de mercado, um indicador técnico comum, para determinar tendências e sinais.
Em um mercado com grandes flutuações laterais, os MAs podem frequentemente cruzar e gerar sinais falsos que causam perdas.
As soluções consistem em pausar a estratégia quando se identificam tendências laterais ou em ajustar adequadamente os parâmetros de MA e os períodos de atraso.
A estratégia acompanha puramente as tendências dos preços e não pode prever armadilhas de curto prazo ou inversões de tendência causadas por grandes eventos.
As soluções consistem em incorporar outros indicadores para avaliar os riscos ou reduzir adequadamente os tamanhos das posições.
Além do DEMA e do TEMA, testar combinações de SMA, EMA e outros MA aprimorados para encontrar os mais adequados para este mercado.
Executar otimizações para encontrar os comprimentos MA ótimos e os períodos de atraso do sinal para sinais comerciais mais precisos.
Dadas as diferentes características dos produtos, encontrar combinações adequadas de comprimentos de MA, períodos de atraso para as suas flutuações de preços e tendências.
Por exemplo, usar Bandas de Bollinger para julgar a volatilidade e o nível de preços para evitar mercados de fenda.
Esta é uma tendência básica de seguir estratégia baseada em cruzamento dinâmico de MA entre DEMA e TEMA. Suas vantagens são alta estabilidade, confiabilidade e universalidade. Mas também tem alguma capacidade de detecção de reversão atrasada e fraca. Este artigo fornece uma análise abrangente de seus prós, contras e direções de otimização, servindo como referências valiosas para o uso desta estratégia.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © jacobdickson255 strategy("Crypto Bull Run Tracker", overlay=true, pyramiding=0) //Dema Scripting Demalength = input.int(230, minval=1) src = close e1 = ta.ema(src, Demalength) e2 = ta.ema(e1, Demalength) dema = 2 * e1 - e2 plot(dema, "DEMA", color=#43A047) //Tema Scripting Temalength = input.int(210, minval=1) ema1 = ta.ema(close, Temalength) ema2 = ta.ema(ema1, Temalength) ema3 = ta.ema(ema2, Temalength) tema = 3 * (ema1 - ema2) + ema3 plot(tema, "TEMA", color=#2962FF) delayBars = input(5, title="Bar Delay") var int lastTradeBar = na longCondition = ta.crossover(tema, dema) longExit = ta.crossunder(tema, dema) shortCondition = ta.crossunder(tema, dema) shortExit = ta.crossover(tema, dema) // Exit conditions should be checked before entry conditions // Close short position if a long condition is present if ((shortExit and strategy.position_size < 0)) // If conditions for exiting the short are met, and there is a balance in the short direction, exit the short strategy.close("Short") // Close long position if a short condition is present if ((longExit and strategy.position_size > 0)) strategy.close("Long") // Now check for entry conditions if (longCondition) strategy.entry("Long", strategy.long) lastTradeBar := bar_index if (shortCondition) strategy.entry("Short", strategy.short) lastTradeBar := bar_index