A Meticulous EMA Crossover Strategy é um sistema de negociação de tendência baseado nos sinais de cruzamento entre duas linhas de média móvel exponencial (EMAs) com configurações de parâmetros diferentes. Ele usa uma linha de EMA rápida de curto período e uma linha de EMA lenta de longo período e gera sinais de negociação quando elas cruzam. Um sinal longo é acionado quando a linha rápida cruza acima da linha lenta e um sinal de posição de fechamento é acionado quando a linha rápida cruza abaixo da linha lenta.
Os indicadores principais desta estratégia são duas linhas EMA: linha rápida e linha lenta. O parâmetro da linha rápida é padrão para uma linha de 13 períodos para uma reação mais rápida às mudanças de preço. O parâmetro da linha lenta é padrão para uma linha de 48 períodos para respostas mais lentas. Quando a tendência de curto prazo aumenta rapidamente, a linha rápida se reunirá à frente da linha lenta. E quando os preços caem, a linha rápida cairá mais rápido do que a linha lenta. Portanto, a linha rápida que cruza acima da linha lenta sinaliza uma tendência ascendente e a linha rápida que cruza abaixo da linha lenta sinaliza uma reversão descendente.
Com base neste princípio, a estratégia vai longo quando a linha EMA rápida cruza acima da linha EMA lenta, indicando uma tendência ascendente para que você possa comprar. Quando a linha rápida cruza abaixo da linha lenta, ela fecha as posições, mostrando o fim da tendência ascendente e o tempo para tirar lucro. Para controlar os riscos, a estratégia também define um stop loss inicial a 8% abaixo do preço de entrada e um stop de trailing por defeito a 120 pontos do preço de mercado. Isso permite ao sistema sair mais cedo e minimizar as perdas quando há uma reversão da tendência.
Na implementação de codificação, as funções
A Estratégia Meticulosa de Crossover da EMA tem as seguintes vantagens principais:
Os sinais são simples e claros, fáceis de entender e implementar.
O filtro MA pode detectar mudanças de tendência com menos ruído do mercado.
Parâmetros altamente configuráveis em linhas EMA rápidas/lentas, níveis de stop loss, etc.
Stop loss significa controlar eficazmente os riscos.
Sistema relativamente estável em várias condições de mercado.
Há também alguns riscos inerentes a esta estratégia:
Os sinais da EMA podem atrasar-se durante oscilações violentas do mercado, incapazes de refletir as alterações de preços em tempo útil.
A regulação excessivamente rápida dos indicadores MA pode produzir mais sinais falsos.
As tendências de preços fracas podem gerar menos cruzamento da EMA e, portanto, não conseguirem captar os movimentos.
A ausência de análise das tendências globais do mercado significa ir contra a tendência principal.
Os riscos podem ser mitigados através de:
Adicionando filtros como MACD e KD para confirmar sinais cruzados.
Ajustar os parâmetros da EMA com base em diferentes mercados para diminuir os falsos sinais.
Incorporar uma análise da tendência global com base em médias móveis de longo prazo.
A estratégia pode ser melhorada a partir dos seguintes aspectos:
Adicionar filtros de posição aberta para evitar a troca excessiva em mercados de faixa.
Defina os níveis de stop loss e take profit com base nos níveis de swing high/low e zonas de suporte/resistência para melhor precisão.
Adicionar um módulo de tendência para analisar tendências de longo prazo como filtros para sinais de curto prazo, evitando a negociação contra tendências principais.
Usar aprendizado de máquina para treinar e otimizar parâmetros EMA ideais adequados aos mercados práticos para diminuir os falsos sinais.
As seguintes são as principais direcções para melhorar a estratégia de base da EMA para o futuro.Uma combinação adequada de mais indicadores técnicos e meios de gestão de riscos pode certamente aumentar a eficácia da estratégia.
A Meticulous EMA Crossover Strategy é um sistema de seguimento de tendências baseado em cruzes rápidas e lentas de linhas EMA para determinar tendências de preços e incorpora stop loss para controlar riscos. Seus sinais são simples e limpos, fáceis de entender para iniciantes, tornando-se uma das estratégias de quantidade inicial típicas. Mas existem atrasos inerentes e riscos de falsos sinais.
/*backtest start: 2022-12-13 00:00:00 end: 2023-12-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // *** USE AT YOUR OWN RISK *** // strategy("EMA Strategy", shorttitle = "EMA Strategy", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10) // === Inputs === // short ma maFastSource = input(defval = close, title = "Fast MA Source") maFastLength = input(defval = 13, title = "Fast MA Period", minval = 1) // long ma maSlowSource = input(defval = close, title = "Slow MA Source") maSlowLength = input(defval = 48, title = "Slow MA Period", minval = 1) // invert trade direction tradeInvert = input(defval = false, title = "Invert Trade Direction?") // risk management useStop = input(defval = true, title = "Use Initial Stop Loss?") slPoints = input(defval = 25, title = "Initial Stop Loss Points", minval = 1) useTS = input(defval = true, title = "Use Trailing Stop?") tslPoints = input(defval = 120, title = "Trail Points", minval = 1) useTSO = input(defval = false, title = "Use Offset For Trailing Stop?") tslOffset = input(defval = 20, title = "Trail Offset Points", minval = 1) // === Vars and Series === fastMA = ema(maFastSource, maFastLength) slowMA = ema(maSlowSource, maSlowLength) plot(fastMA, color=blue) plot(slowMA, color=purple) goLong() => crossover(fastMA, slowMA) killLong() => crossunder(fastMA, slowMA) strategy.entry("Buy", strategy.long, when = goLong()) strategy.close("Buy", when = killLong()) // Shorting if using goShort() => crossunder (fastMA, slowMA) killShort() => crossover(fastMA, slowMA) //strategy.entry("Sell", strategy.short, when = goShort()) //strategy.close("Sell", when = killShort()) if (useStop) strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 ) strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)