Três estratégias de seguimento da tendência da EMA

Autora:ChaoZhang, Data: 2023-11-10 11:45:30
Tags:

img

Resumo

A estratégia Three EMA trend following julga a direcção da tendência de preços através do cálculo de linhas EMA de diferentes períodos e segue a tendência automaticamente.

Estratégia lógica

Esta estratégia calcula três linhas EMA com períodos diferentes, especificamente EMA de 10 períodos, 20 períodos e 30 períodos.

A lógica central é julgar a consistência da direção das três linhas EMA. Se todas as três linhas EMA subirem juntas, um sinal longo é gerado.

Especificamente, se ema1, ema2 e ema3 todos subir na última barra, enter_long se torna verdadeiro e um sinal longo é gerado.

Com base nos sinais longos e curtos, a estratégia abrirá posições longas e curtas correspondentes. A lógica de saída é oposta aos sinais de entrada. Se ema1, ema2 e ema3 não subirem juntos na barra atual, exit_long se torna verdadeiro e a posição longa será fechada. Se ema1, ema2 e ema3 não cairem juntos na barra atual, exit_short se torna verdadeiro e a posição curta será fechada.

Ao julgar a coerência de direcção das três linhas EMA, a tendência global pode ser determinada e seguida.

Vantagens

  • Usando três linhas EMA pode julgar a direção da tendência de forma mais confiável em comparação com uma única linha.

  • A EMA é mais sensível às alterações de preços e pode refletir a inversão de tendência no tempo.

  • A combinação de EMA de diferentes períodos leva em consideração a tendência de curto e médio prazo. EMA de 10 períodos para curto prazo, EMA de 20 e 30 períodos para tendência de médio e longo prazo.

  • A lógica da estratégia é simples e fácil de entender, adequada para iniciantes.

  • A estratégia baseia-se exclusivamente nas linhas EMA, requer menos recursos e é adequada para uma elevada concurrença.

Riscos

  • A consistência da direção da linha EMA é necessária, mas insuficiente para o julgamento da tendência.

  • As linhas EMA estão atrasadas na inversão da tendência, não sendo capazes de refletir pontos de virada no tempo, o que pode causar perdas.

  • A EMA é sensível às variações de preços, o que pode aumentar os custos de transacção.

  • A estratégia é ineficaz em mercados variáveis e voláteis onde as linhas EMA flutuam com frequência.

  • Pode otimizar a diferença de período da EMA para reduzir sinais falsos ou adicionar outros indicadores para filtrar falhas.

  • Adicionar indicadores de impulso para confirmar a tendência real e identificar pontos de virada, reduzindo as perdas.

  • Aumentar os períodos EMA para reduzir a frequência de mudança de posição ou usar outros indicadores MA.

  • Suspender a estratégia quando for identificado um mercado variável, evitando negociações desnecessárias.

Optimização

  • Ajuste do período: ajustar os períodos da EMA para se adaptarem aos diferentes instrumentos.

  • Adicionar filtros: adicionar MA, BOLL etc. para evitar falhas de EMA.

  • Paragem de perdas: Paragem de atraso para bloquear os lucros.

  • Gestão de riscos: Otimizar o dimensionamento das posições para limitar o impacto de perdas individuais.

  • Regime de mercado: utilizar a volatilidade para avaliar a oscilação e controlar o envolvimento da estratégia.

  • Parâmetros adaptativos: Optimização automática dos períodos de EMA com base nas alterações do mercado para melhorar a robustez.

Conclusão

O Three EMA segue a tendência das negociações estratégicas identificando a direção da tendência através das linhas EMA. É simples e prático com grande espaço de otimização. Os riscos como falhas e oscilações devem ser notados. Com otimizações contínuas, essa estratégia pode se tornar uma solução robusta de tendência.


/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 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/
// © QuantCT

//@version=4
strategy("PMA Strategy Idea",
         shorttitle="PMA", 
         overlay=true,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.075)
         
// ____ Inputs

ema1_period = input(title="EMA1 Period", defval=10)
ema2_period = input(title="EMA2 Period", defval=20)
ema3_period = input(title="EMA3 Period", defval=30)
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

ema1 = ema(hlc3, ema1_period)
ema2 = ema(hlc3, ema2_period)
ema3 = ema(hlc3, ema3_period)
    
enter_long = (rising(ema1, 1) and rising(ema2, 1) and rising(ema3, 1))
exit_long = not enter_long
enter_short = (falling(ema1, 1) and falling(ema2, 1) and falling(ema3, 1))
exit_short = not enter_short

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 

// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)

// ____ Plots

colors = 
 enter_long ? #27D600 :
 enter_short ? #E30202 :
 color.orange

ema1_plot = plot(ema1, color=colors)
ema2_plot = plot(ema2, color=colors)
ema3_plot = plot(ema3, color=colors)
fill(ema1_plot, ema3_plot, color=colors, transp=50)


Mais.