
A estratégia de cruzamento de EMA traça a interseção da linha média do EMA de dois períodos diferentes, para determinar a tendência dos preços e, assim, gerar sinais de compra e venda. Quando o EMA de curto prazo atravessa o EMA de longo prazo, gera um sinal de compra. Quando o EMA de curto prazo atravessa o EMA de longo prazo, gera um sinal de venda.
A estratégia baseia-se principalmente no princípio da forca de ouro da linha média EMA. A linha média EMA é capaz de suavizar o ruído de filtragem de dados de preços e determinar a tendência de preços através da interseção da linha média EMA. Quando o preço de curto período está acima do preço de longo período no EMA de curto período (circuito 20) e gera um sinal de compra. Quando o preço de curto período está abaixo do preço de longo período e gera um sinal de venda.
Ao mesmo tempo, a estratégia combina o indicador SuperTrend para filtrar os falsos sinais gerados pelo cruzamento da EMA. O indicador SuperTrend é um indicador de ascensão e descensão calculado com base no ATR, o que permite determinar com mais precisão a verdadeira tendência. Um sinal de compra é gerado quando o preço quebra a ascensão do indicador SuperTrend e um sinal de venda quando o preço quebra a descensão do indicador SuperTrend.
A estratégia é baseada em três critérios:
Quando o 20 EMA atravessa o 50 EMA e o preço quebra o SuperTrend, um sinal de compra é gerado;
Quando a 20 EMA atravessa a 50 EMA e o preço cai abaixo da trajetória da SuperTrend, um sinal de venda é gerado.
A análise de tendências gerais através de EMAs cruzadas, em combinação com o filtro de vibrações do indicador SuperTrend, pode melhorar a precisão dos sinais de negociação estratégica.
A estratégia de cruzamento da EMA tem as seguintes vantagens:
A operação é simples e fácil de implementar. Basta calcular a interseção de duas linhas médias EMA.
A EMA, como uma média móvel, pode filtrar parte do ruído.
Em combinação com os indicadores SuperTrend, pode-se filtrar ainda mais o ruído e reduzir os falsos sinais.
Pode-se ajustar os parâmetros do ciclo EMA para diferentes condições de mercado.
Posições longas e curtas podem ser personalizadas, permitindo uma variedade de maneiras de negociação.
Pode ser implementado em diferentes períodos de tempo, para diferentes tipos de comerciantes.
A estratégia de cruzamento da EMA também apresenta alguns riscos:
Quando o mercado está em forte volatilidade, os sinais cruzados da EMA podem ficar atrasados e não refletir as mudanças de preço em tempo hábil.
A linha média da EMA tem um atraso que pode gerar um sinal errado.
A configuração incorreta dos parâmetros de EMA de curto e longo período pode resultar em excesso de sinais errados.
A mera dependência de um cruzamento equilíneo não permite determinar a tendência real do mercado, existindo uma certa cegueira.
A escolha da estratégia de prevenção de perdas apropriada é necessária para controlar o risco.
Os seguintes passos podem reduzir o risco:
Optimizar os parâmetros do ciclo EMA, selecionando o ciclo médio-rápido apropriado.
A redução apropriada do tempo de detenção e o fim dos prejuízos.
Para um julgamento integrado em combinação com outros indicadores, como a média móvel, a forma de linha K, etc.
Ajustar a frequência das transações para reduzir o número de transações.
A estratégia pode ser melhorada em vários aspectos:
Otimizar os parâmetros de ciclo da linha média da EMA, adaptando-se a diferentes ciclos e condições de mercado. Pode ser introduzido um mecanismo de otimização de parâmetros de adaptação.
Experimente diferentes indicadores de linha média, como SMA, KWMA, etc.
Combinação de mais indicadores para negociação em conjunto, formando modelos multifatores, como MACD, RSI, etc. Introdução de algoritmos de aprendizado de máquina para otimização de parâmetros e ajuste de peso.
Aumentar as estratégias de stop loss, como o rastreamento de stop loss, a porcentagem de stop loss, etc., para controlar o risco.
A introdução de filtros de volume de transações, combinados com indicadores de volume de transações, evita sinais falsos.
Otimizar estratégias de exits, definir regras de saída. Exit signals, como combinação de forma de linha K, breakout e outros.
Confirmar tendências em períodos de tempo mais elevados, entrar em jogo em períodos de tempo mais baixos e realizar o acompanhamento de tendências.
A estratégia de cruzamento EMA é uma estratégia de acompanhamento de tendências simples e práticas. Ela é capaz de identificar tendências de preços de médio prazo e produzir sinais de compra e venda.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
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/
// © alokbothra
//@version=5
strategy("Ema Crossover", overlay=true, initial_capital = 1000)
start = timestamp(2021,1,1,0,0)
end = timestamp(2023,10,30,0,0)
plot (ta.ema(close,20), title = "Ema 20", color = color.green , linewidth = 2)
plot (ta.ema(close,50), title = "Ema 50", color = color.red, linewidth = 2 )
//supertrend 1
Periods = input(title='ATR Period', defval=11)
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = close - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn =close+ Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
changeCond = trend != trend[1]
longonly = input.bool(defval = true, title = 'Long Only')
shortonly = input.bool(defval = true, title = 'Short Only')
longCondition = (ta.ema(close, 20) >= ta.ema(close, 50))
shortCondition = (ta.ema(close, 20) <= ta.ema(close, 50))
long = (trend == 1)
short = (trend == -1)
sell= short
cover= long
if time >= start and time < end
if longonly
if ((longCondition) and (long))
strategy.entry ("Long Entry", strategy.long, comment ="Long Entry")
if strategy.position_size > 0
strategy.close("Long Entry", when = sell, comment = "Long Exit")
if shortonly
if ((shortCondition) and (short))
strategy.entry("Short Entry", strategy.short, comment = "Short Entry")
if strategy.position_size < 0
strategy.close("Short Entry", when = cover, comment = "Short Exit")