O recurso está a ser carregado... Carregamento...

G-Trend EMA ATR Estratégia de negociação inteligente

Autora:ChaoZhang, Data: 2024-06-14 15:35:15
Tags:EMAATR

img

Resumo

Esta estratégia utiliza o indicador G-Channel para identificar a direção da tendência do mercado, ao mesmo tempo em que incorpora indicadores EMA e ATR para otimizar os pontos de entrada e saída. A ideia principal é: ir longo quando o preço quebra acima da faixa superior do G-Channel e está abaixo da EMA; ir curto quando o preço quebra abaixo da faixa inferior e está acima da EMA. Enquanto isso, o ATR é usado para definir níveis dinâmicos de stop-loss e take-profit, com o stop-loss em 2 vezes o ATR e take-profit em 4 vezes o ATR. Esta abordagem pode capturar mais lucros em mercados de tendência, enquanto controla estritamente os riscos.

Princípios de estratégia

  1. Calcular as faixas superior e inferior do canal G: utilizar o preço de fechamento atual e os preços altos e baixos anteriores para calcular as faixas superior e inferior do canal G.
  2. Determinar a direcção da tendência: observar a relação entre o preço e as bandas do G-Channel para determinar a tendência de alta ou baixa.
  3. Calcular a EMA: calcular o valor da EMA para o período especificado.
  4. Calcular o ATR: calcular o valor do ATR para o período especificado.
  5. Determinar as condições de compra/venda: iniciar uma posição longa quando o preço ultrapassa a faixa superior e está abaixo da EMA; iniciar uma posição curta quando o preço ultrapassa a faixa inferior e está acima da EMA.
  6. Preço de entrada - 2ATR, take-profit é preço de entrada + 4ATR (long); stop-loss é o preço de entrada + 2ATR, take-profit é o preço de entrada - 4ATR (curto).
  7. Execução da estratégia: quando estiverem preenchidas as condições de compra/venda, executar a operação de entrada correspondente e definir o stop-loss e o take-profit em conformidade.

Vantagens da estratégia

  1. Seguimento de tendências: a estratégia capta de forma eficaz as tendências do mercado através do G-Channel, adequado para os mercados de tendências.
  2. O ATR é utilizado para ajustar de forma dinâmica os níveis de stop loss e take profit, adaptando-se melhor à volatilidade do mercado.
  3. Controle de risco: o stop-loss é definido em 2 vezes o ATR, controlando estritamente o risco de cada negociação.
  4. Simples e fáceis de utilizar: a lógica da estratégia é clara e direta, adequada para a maioria dos investidores.

Riscos estratégicos

  1. Mercados variáveis: em mercados variáveis, os sinais de negociação frequentes podem conduzir a perdas aumentadas.
  2. Optimização dos parâmetros: diferentes instrumentos de negociação e prazos podem exigir parâmetros diferentes; a aplicação cega pode trazer riscos.
  3. Eventos de cisne negro: em condições de mercado extremas com flutuações drásticas de preços, os stop-loss podem não ser executados de forma eficaz.

Orientações para a otimização da estratégia

  1. Filtragem de tendências: adicionar condições de filtragem de tendências, como cruzamento de MA, DMI, etc., para reduzir a negociação em mercados variados.
  2. Optimização de parâmetros: otimizar parâmetros para diferentes instrumentos e prazos para encontrar a melhor combinação de parâmetros.
  3. Gestão de posições: ajuste dinâmico de posições com base na volatilidade do mercado para melhorar a utilização do capital.
  4. Combinação de estratégias: combinar esta estratégia com outras estratégias eficazes para melhorar a estabilidade.

Resumo

Esta estratégia constrói um sistema de negociação de tendência simples e eficaz usando indicadores como G-Channel, EMA e ATR. Pode alcançar bons resultados em mercados de tendência, mas apresenta desempenho médio em mercados variados.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy ("G-Channel Trend Detection with EMA Strategy and ATR", shorttitle="G-Trend EMA ATR Strategy", overlay=true)

// Inputs for G-Channel
length = input(100, title="G-Channel Length")
src = input(close, title="Source")

// G-Channel Calculation
var float a = na
var float b = na
a := max(src, nz(a[1])) - (nz(a[1] - b[1]) / length)
b := min(src, nz(b[1])) + (nz(a[1] - b[1]) / length)
avg = (a + b) / 2

// G-Channel Signals
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = barssince(crossdn) <= barssince(crossup)
c = bullish ? color.lime : color.red

// Plot G-Channel Average
p1 = plot(avg, "Average", color=c, linewidth=1, transp=90)
p2 = plot(close, "Close price", color=c, linewidth=1, transp=100)
fill(p1, p2, color=c, transp=90)

// Show Buy/Sell Labels
showcross = input(true, title="Show Buy/Sell Labels")
plotshape(showcross and not bullish and bullish[1] ? avg : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="Sell", textcolor=color.white, transp=0, offset=-1)
plotshape(showcross and bullish and not bullish[1] ? avg : na, location=location.absolute, style=shape.labelup, color=color.lime, size=size.tiny, text="Buy", textcolor=color.white, transp=0, offset=-1)

// Inputs for EMA
emaLength = input(50, title="EMA Length")
emaValue = ema(close, emaLength)

// Plot EMA
plot(emaValue, title="EMA", color=color.blue, linewidth=1)

// ATR Calculation
atrLength = input(14, title="ATR Length")
atrValue = atr(atrLength)

// Strategy Conditions
buyCondition = bullish and close < emaValue
sellCondition = not bullish and close > emaValue

// Stop Loss and Take Profit Levels
longStopLoss = close - 2 * atrValue
longTakeProfit = close + 4 * atrValue
shortStopLoss = close + 2 * atrValue
shortTakeProfit = close - 4 * atrValue

// Execute Strategy with ATR-based stop loss and take profit
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss, limit=longTakeProfit)

if (sellCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Buy/Sell Signals on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", offset=-1)
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", offset=-1)


Relacionados

Mais.