Estratégia de negociação de tendências cruzadas da EMA rápida e lenta

Autora:ChaoZhang, Data: 2023-09-12 18:06:26
Tags:

Esta estratégia utiliza o cruzamento de EMAs rápidas e lentas para determinar e acompanhar as tendências dos preços.

Estratégia lógica:

  1. Calcular EMAs rápidas e lentas, normalmente de 13 e 48 períodos.

  2. O valor da posição em risco é o valor da posição em risco.

  3. Sair longo quando o preço cruzar abaixo da EMA rápida.

  4. Opção de adição de regras para negociações de dois sentidos.

Vantagens:

  1. A combinação EMA rápida/lenta identifica eficazmente as tendências intermediárias.

  2. A negociação de breakout permite entradas de tendência oportunas.

  3. O mecanismo de stop loss simples controla a perda por negociação.

Riscos:

  1. O atraso da EMA faz com que os melhores pontos de entrada sejam perdidos.

  2. Afastem os travões para evitar batidas excessivas.

  3. Difícil determinar a direcção da tendência durante os intervalos.

Em resumo, esta estratégia utiliza cruzamentos de EMA para a identificação e acompanhamento de tendências.


/*backtest
start: 2022-09-05 00:00:00
end: 2023-09-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// strategy("EMA Strategy 13 48", shorttitle = "EMA Strategy 13 48", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 1000)


// === 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)


// === 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(close, fastMA)
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())


 

Mais.