Estratégia de negociação dupla da EMA

Autora:ChaoZhang, Data: 2023-10-16 16:24:00
Tags:

img

Resumo

A estratégia de negociação de ruptura de EMA dupla é uma estratégia de rastreamento de tendências que usa duas medias EMA de diferentes ciclos para julgar os sinais de venda. A estratégia combina indicadores EMA adicionais para filtrar os sinais de negociação, obtendo melhores momentos de entrada no mercado de tendências.

Princípios

A estratégia usa um EMA auxiliar de 9 ciclos e um EMA auxiliar de 4 ciclos para determinar o tempo de compra e venda. O EMA auxiliar é ativado apenas quando o EMA auxiliar está entre as linhas rápidas e um ciclo é superior a um EMA de 4 ciclos.

Quando o sinal de negociação é desencadeado, a estratégia define um ponto de stop e um ponto de stop de acordo com o valor do ATR. O TP1 é 6 vezes o ATR e é usado para obter lucros em parte da velocidade mais rápida. Se o preço não desencadear o TP1, quando o EMA rápido cruza novamente o EMA auxiliar, o posicionamento é imediatamente despejado, alcançando o TP2 stop.

Vantagens

  • A combinação de dois EMAs para filtrar sinais falsos pode melhorar a qualidade dos sinais de negociação
  • Os indicadores auxiliares da EMA podem validar ainda mais a direção da tendência e reduzir o risco de operação reversa
  • O projeto de paragem dupla, que permite lucros rápidos e de forma sustentável, segue a tendência de lucros
  • O parâmetro de stop loss dinâmico do ATR pode ser ajustado de acordo com a volatilidade do mercado, reduzindo o risco

Risco e otimização

  • Os indicadores EMA são propensos a causar ajustamentos na curva e os sinais de negociação podem estar atrasados.
  • Combinação de EMA de curto ciclo pode gerar mais sinais de negociação de ruído
  • A operação de linha curta é vulnerável a eventos de emergência, com maior risco de prejuízo.

Otimizar:

  • Testar combinações de vários parâmetros da EMA para encontrar parâmetros melhores
  • Adicionar verificação de outros indicadores, como volume de negociação, volatilidade, etc.
  • Relaxar adequadamente a faixa de stop loss para reduzir a probabilidade de ação de stop loss
  • Otimizar a proporção de configuração de parâmetros duplos, equilibrar a velocidade de lucro e a eficiência do uso de fundos

Resumo

A estratégia de negociação de ruptura de EMA dupla usa o cruzamento de dois EMAs para fazer julgamentos de tendências, complementados com múltiplos filtros de EMA e ATR dinâmicos, para acompanhar de forma eficaz os ganhos da tendência. Mas problemas como a adequação da curva EMA, o risco de perda de parâmetros e o gerenciamento de riscos exigem atenção.

Resumo

A estratégia de negociação crossover dual EMA utiliza duas linhas EMA de períodos diferentes para gerar sinais de compra e venda identificando a direção da tendência.

Princípios

A estratégia usa uma linha EMA rápida (9 períodos) e uma linha EMA lenta (21 períodos) para determinar as entradas. Uma cruz de ouro onde a EMA rápida cruza acima da EMA lenta gera um sinal de compra, enquanto uma cruz de morte com a EMA rápida cruzando abaixo da EMA lenta produz um sinal de venda. Para filtrar sinais falsos, a estratégia também emprega uma EMA auxiliar (5 períodos) e mais duas EMAs (1 período, 4 períodos). Um sinal de negociação real só é acionado quando as EMAs rápidas e lentas cruzam enquanto a EMA auxiliar está entre os dois, e a EMA de 1 período está acima da EMA de 4 períodos.

Uma vez que um sinal de negociação é acionado, a estratégia utiliza os valores ATR para definir os níveis de stop loss e take profit.

Vantagens

  • O projeto de EMA dupla filtra sinais falsos e melhora a qualidade do sinal
  • A EMA auxiliar acrescenta a verificação da direcção da tendência, reduzindo os riscos comerciais reversos
  • O duplo lucro permite lucros rápidos e uma tendência sustentada
  • A taxa de prejuízo/recuperação de lucros da ATR dinâmica é ajustada à volatilidade do mercado

Riscos e melhorias

  • As EMAs podem atrasar os preços e gerar sinais atrasados
  • Combinações de EMA mais curtas podem produzir mais ruído
  • As paradas mais apertadas enfrentam maiores riscos de acontecimentos súbitos

Orientações de melhoria:

  • Teste múltiplas combinações de EMA para melhores parâmetros
  • Adicionar outros indicadores de confirmação como volume, volatilidade, etc.
  • Aumentar a taxa de stop loss para reduzir as probabilidades de stop out
  • Otimizar os rácios de lucro para lucro versus eficiência de capital

Conclusão

A estratégia de cruzamento dupla da EMA aproveita cruzes da EMA para a direção da tendência, juntamente com a filtragem múltipla da EMA e a tomada dinâmica de stop loss / lucro da ATR. Isso permite o seguimento e a colheita de lucros da tendência efetivos. No entanto, as limitações de ajuste da EMA e os riscos de stop loss exigem cautela. A otimização adequada, o gerenciamento de riscos, etc., podem levar a um desempenho mais robusto. A estratégia é adequada para comerciantes experientes para alcançar alta eficiência de capital em mercados de tendência.

[/trans]


/*backtest
start: 2022-10-09 00:00:00
end: 2023-04-13 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/
// @author ADHDCRYPT0

//@version=4
strategy(title = "EMA double crossover", shorttitle = "(TEST) double cross over", overlay = true, default_qty_value = 100, initial_capital = 1000,default_qty_type=strategy.percent_of_equity, pyramiding=0, process_orders_on_close=true)


// Variables
ema_len1 = input(9 , title="Fast EMA")
ema_len2 = input(21, title="Slow EMA")
ema_len3 = input(5, title="Exit EMA")
ema_len4 = input(1, title="FastConf EMA")
ema_len5 = input(4, title="SlowConf EMA")

fastEMA = ema(open, ema_len1)
slowEMA = ema(open, ema_len2)
exitEMA = ema(open, ema_len3)
conf1EMA = ema(open, ema_len4)
conf2EMA = ema(open, ema_len5)
plot(fastEMA, title='fastEMA', transp=0, color=color.green)
plot(slowEMA, title='slowEMA', transp=0, color=color.red  )
plot(exitEMA, title='exitEMA', transp=0, color=color.orange)
plot(conf1EMA, title='conf1EMA', transp=0, color=color.blue)
plot(conf2EMA, title='conf2EMA', transp=0, color=color.black)

vol = volume 
volma = sma(volume,7)
vol_cond = vol>volma

atr = atr(5)


// Entry Conditions and vol_cond
long = crossover(fastEMA, slowEMA) and (conf1EMA > conf2EMA) and (fastEMA < exitEMA)
short= crossunder(fastEMA, slowEMA) and (conf1EMA < conf2EMA) and (fastEMA > exitEMA)

tradeType = input("BOTH", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH", "NONE"])

pos = 0.0

if tradeType=="BOTH"
    pos:= long? 1 : short? -1 : pos[1]
if tradeType=="LONG"
    pos:= long? 1 : pos[1]
if tradeType=="SHORT"
    pos:=short? -1 : pos[1]

longCond  = long  and (pos[1]!= 1 or na(pos[1]))
shortCond = short and (pos[1]!=-1 or na(pos[1]))

// EXIT FUNCTIONS //
sl  = input(1, title="Stop Loss (ATR)", minval=0)
tp  = input(6, title="Take Profit 1 (ATR)", minval=0)

// Simple Stop Loss + 2 Take Profits
sl_long   =  valuewhen(longCond , low - atr * sl, 0)
sl_short  =  valuewhen(shortCond, high+ atr * sl, 0)

tp_long  = valuewhen(longCond , high + atr * tp, 0)
tp_short = valuewhen(shortCond, low  - atr * tp, 0)


long_exit = crossover(fastEMA, exitEMA) and pos[1]==1
short_exit= crossover(exitEMA, fastEMA) and pos[1]==-1

if long_exit or short_exit
	pos:=0


// Position Adjustment
long_sl  = low <sl_long [1] and pos[1]==1
short_sl = high>sl_short[1] and pos[1]==-1

if long_sl or short_sl
    pos:=0
    
//  Strategy Backtest Limiting Algorithm
i_startTime = input(defval = timestamp("01 Sep 2002 13:30 +0000"), title = "Backtesting Start Time", type = input.time)
i_endTime = input(defval = timestamp("30 Sep 2099 19:30 +0000"), title = "Backtesting End Time", type = input.time)
timeCond = true


// Make sure we are within the bar range, Set up entries and exit conditions
if strategy.equity >0
    strategy.entry("long" , strategy.long , when=longCond  and timeCond and tradeType!="SHORT" , alert_message="INSERT MESSAGE HERE")
    strategy.entry("short", strategy.short, when=shortCond and timeCond and tradeType!="LONG" , alert_message="INSERT MESSAGE HERE")
    
    strategy.exit("SL/TP1", from_entry = "long" , stop=sl_long , limit=tp_long , alert_message="INSERT MESSAGE HERE")
    strategy.exit("SL/TP1", from_entry = "short", stop=sl_short, limit=tp_short, alert_message="INSERT MESSAGE HERE")

    strategy.exit("SL", from_entry = "long" , stop=sl_long, alert_message="INSERT MESSAGE HERE")
    strategy.exit("SL", from_entry = "short", stop=sl_short, alert_message="INSERT MESSAGE HERE")
    
    strategy.close("long", when=long_exit , comment="TP2", alert_message="INSERT MESSAGE HERE")
    strategy.close("short", when=short_exit, comment="TP2", alert_message="INSERT MESSAGE HERE")


Mais.