Estratégia de acompanhamento de tendência de cruzamento de média móvel


Data de criação: 2023-12-12 12:24:11 última modificação: 2023-12-12 12:24:11
cópia: 0 Cliques: 359
1
focar em
1213
Seguidores

Estratégia de acompanhamento de tendência de cruzamento de média móvel

Visão geral

A estratégia baseia-se no cruzamento da média móvel com o indicador ATR para automatizar o acompanhamento da tendência. Quando a linha EMA rápida atravessa a linha EMA lenta, é tomada uma posição de alta posição; Quando a linha EMA rápida atravessa a linha EMA lenta, é tomada uma posição de baixa posição. Ao mesmo tempo, em combinação com o indicador ATR para determinar a direção da tendência, só é emitido um sinal de negociação quando a ATR determina a direção da tendência.

Princípio da estratégia

A estratégia baseia-se em dois indicadores técnicos:

  1. EMA mediano: EMA mediano com dois parâmetros diferentes, que é considerado um sinal de multi-cabeça quando passa pela linha lenta na linha rápida e um sinal de cabeçalho vazio quando passa pela linha baixa.

  2. Indicador ATR: O indicador ATR é capaz de avaliar a amplitude e a intensidade da oscilação dos preços, e, assim, avaliar a tendência do movimento atual. Quando o valor do ATR é menor, indica que está em equilíbrio, e não é recomendável construir uma posição; Quando o valor do ATR é maior e está na direção ascendente, indica que está no mercado de tendência, e espera que o EMA Gold Forks faça mais; Quando o valor do ATR é maior e está na direção descendente, indica que está no mercado de tendência, e espera que o EMA Dead Forks faça zero.

Busque oportunidades de compra e venda através da interseção da linha média da EMA, e, em combinação com o indicador ATR, filtre os sinais de negociação de tendência fraca para evitar ser preso em um fechamento de mercado.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O ATR permite que os traders negociem somente quando o indicador de tendência é definido, evitando que os oscilações sejam fechados quando desconhecido.

  2. A busca de pontos de venda e compra é simples e eficaz, usando o princípio de cruzamento de equilíbrio.

  3. A sensibilidade e a suavidade da linha média do EMA podem ser ajustadas de acordo com as preferências individuais por meio de ajustes de parâmetros.

  4. Um sistema de negociação automático completo, que pode ser implementado usando apenas dois indicadores simples, pode ser facilmente desenvolvido e otimizado para estratégias através do editor Pine.

  5. Sem a necessidade de ajustes frequentes de parâmetros, para implementar uma política simples de ParameterSet e Forget.

Análise de Riscos

A estratégia também apresenta alguns riscos que devem ser considerados:

  1. O cruzamento da EMA é propenso a produzir falsos sinais e pode causar perdas desnecessárias. Alguns indicadores podem ser suavizados ajustando os parâmetros da EMA.

  2. O indicador ATR também pode ter erros de cálculo e tendências, resultando em oportunidades de negociação perdidas. O limite de ATR pode ser relaxado de forma apropriada.

  3. A estratégia em si não leva em consideração a análise de fatores de grande escala, e é difícil de julgar através de uma rápida linha de cruzamento de equilíbrio se houver uma reversão no mercado de notícias importantes, o que requer uma intervenção humana para escapar do topo.

Os efeitos desses riscos podem ser reduzidos por meio de uma certa otimização.

Direção de otimização

A estratégia também tem algumas melhorias importantes:

  1. Pode-se considerar a adição de outros indicadores de julgamento, formando um sistema de combinação de indicadores, para melhorar a precisão do sinal. Por exemplo, a combinação com o indicador RSI evita o risco de sobrecompra de sobrevenda.

  2. Os parâmetros mais adequados podem ser selecionados de acordo com diferentes tipos de negociação e diferentes blocos de negociação, tornando os parâmetros do EMA e do ATR mais adequados às características do mercado atual.

  3. A otimização de parâmetros dinâmicos pode ser realizada por meio de métodos como o aprendizado de máquina. Os parâmetros do indicador podem ser ajustados de acordo com as condições do mercado em tempo real, em vez de usar valores estáticos fixos.

Resumir

Esta estratégia é uma estratégia de acompanhamento de tendências muito prática. Apenas a combinação de dois indicadores simples permite um sistema de negociação mais completo. Pode ser adaptado a diferentes preferências de comerciantes por meio de ajustes de parâmetros.

Código-fonte da estratégia
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This strategy has been created for GMT trade 4h by Zhukov


//@version=5
strategy('ZhukovTrade', overlay=true, calc_on_every_tick=true, currency=currency.USD)

// INPUT:

// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input.int(title='Fast EMA', defval=100, minval=1, maxval=9999)
emaSlow = input.int(title='Slow EMA', defval=200, minval=1, maxval=9999)

// Option to select trade directions
tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both')

// Options that configure the backtest date range
startDate = input(title='Start Date', defval=timestamp('01 Jan 2023 00:00'))
endDate = input(title='End Date', defval=timestamp('31 Dec 2023 23:59'))


// CALCULATIONS:

// Use the built-in function to calculate two EMA lines
fastEMA = ta.ema(close, emaFast)
slowEMA = ta.ema(close, emaSlow)
emapos = ta.ema(close,200)

// PLOT:

// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.new(color.orange, 0), linewidth=2)
plot(series=slowEMA, color=color.new(color.blue, 0), linewidth=2)
plot(series=emapos, color=color.new(color.red, 0), linewidth=2)


// CONDITIONS:

// Check if the close time of the current bar falls inside the date range
inDateRange = true

// Translate input into trading conditions
longOK = tradeDirection == 'Long' or tradeDirection == 'Both'
shortOK = tradeDirection == 'Short' or tradeDirection == 'Both'

// Decide if we should go long or short using the built-in functions
longCondition = ta.crossover(fastEMA, slowEMA) 
shortCondition = ta.crossunder(fastEMA, slowEMA) 
// ORDERS:
// Set take profit and stop loss percentages
take_profit_percent = input(0, title="Take Profit Percent")
stop_loss_percent = input(0, title="Stop Loss Percent")
// Submit entry (or reverse) orders


atrPeriod = input(12, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)

if longCondition and inDateRange 
    if longOK and direction<0

        strategy.entry(id='long', direction=strategy.long, alert_message = "LONG")
if shortCondition and inDateRange 
    if shortOK and direction>0
        strategy.entry(id='short', direction=strategy.short, alert_message = "SHORT")

// Submit exit orders in the cases where we trade only long or only short

if strategy.position_size > 0 and take_profit_percent
    strategy.exit(id='tp long',from_entry ="long",profit = take_profit_percent)
if strategy.position_size > 0 and stop_loss_percent
    strategy.exit(id='sl long',from_entry="long",loss=stop_loss_percent)

if strategy.position_size < 0 and stop_loss_percent
    strategy.exit(id='sl short',from_entry="short",loss=stop_loss_percent)
if strategy.position_size < 0 and take_profit_percent
    strategy.exit(id='tp short',from_entry="short",profit = take_profit_percent)