Estratégia de acompanhamento de tendência de Triple EMA


Data de criação: 2023-12-20 15:00:44 última modificação: 2023-12-20 15:00:44
cópia: 0 Cliques: 800
1
focar em
1621
Seguidores

Estratégia de acompanhamento de tendência de Triple EMA

Visão geral

A estratégia de acompanhamento de tendências de três EMAs é uma estratégia muito adequada para acompanhar as tendências do mercado. Ela usa três EMAs de diferentes períodos como sinais de construção de posição, criando posições de overhead ou de balcão quando há uma confirmação de tendência suficiente.

A vantagem da estratégia é que ela reduz os falsos sinais e garante que a tendência esteja forte para entrar novamente. Ao mesmo tempo, ela possui um sistema de parada de perda adaptável, que pode acompanhar a parada de perda de acordo com a volatilidade do mercado, o que permite um melhor efeito de gerenciamento de risco.

Princípio da estratégia

Lógica de construção de estoque

A estratégia usa três EMAs de 7, 14 e 21 ciclos como indicadores de sinais de posição. A lógica específica é fazer mais quando o preço atravessa os três EMAs ao mesmo tempo; fazer menos quando o preço atravessa os três EMAs ao mesmo tempo.

Este design pode reduzir os falsos sinais e garantir que a tendência seja clara o suficiente para entrar. Ao mesmo tempo, os três ciclos EMA são configurados adequadamente para capturar a ocorrência de tendências no mercado.

Método de amortização

A estratégia usa um sistema de parada de perda adaptável baseado no ATR e na retração máxima. Calcula a taxa de flutuação dos preços em tempo real e, com base nisso, define uma linha de parada.

Durante a ascensão, a linha de parada de perdas se move com a nova alta alta, com um bom efeito de acompanhamento. Quando o preço retorna ao ponto baixo da zona de amortecimento, a linha de parada de perdas será ativada, a parada de liquidação. Isso pode controlar o risco de parada de perdas de acordo com a situação específica do mercado.

Ganhos

A estratégia usa um método de parada de proporção fixa. Depois de abrir uma posição, uma linha de parada é definida em uma proporção maior do que o preço de entrada. Quando o preço atinge a linha de parada, o lucro da posição é ativado.

O benefício deste stop-loss de proporção fixa é que você pode prever o lucro alvo e, quando atingido, satisfazer a saída. Ao mesmo tempo, evita o risco de que o preço volte a cair. O stop-loss pode ser ajustado conforme a necessidade.

Análise de vantagens

  • Pode reduzir os falsos sinais e garantir uma forte tendência de preços após a construção da reserva
  • A superposição de ciclos de EMA permite capturar rapidamente as tendências do mercado
  • Sistemas de amortecimento adaptativos que controlam o risco com base na volatilidade
  • Proporção de suspensão fixa, saída após atingir a meta de lucro
  • O método de stop loss baseado no ATR e no cálculo do máximo de retração pode ser otimizado de acordo com as condições do mercado
  • Fácil de ajustar o estilo de política alterando os parâmetros

Análise de Riscos

  • Em situações de choque, a EMA pode produzir frequentes cruzamentos e ser facilmente encaixada.
  • A parada fixa não pode ser ajustada de acordo com a situação do mercado, podendo perder mais lucros ou aumentar os prejuízos
  • Quando o preço cai novamente, pode aumentar a perda.
  • Em situações de ruptura unilateral, a taxa de parada fixa pode ser muito conservadora e não obter benefícios suficientes

Pode-se combinar indicadores de tendências para evitar posições cegas em situações de turbulência; ou pode-se usar métodos como stop-loss móvel ou stop loss ratio para tornar o stop-loss mais flexível. No geral, ainda é necessário um julgamento manual para acompanhar a aplicação da estratégia.

Direção de otimização

A estratégia também pode ser melhorada nos seguintes aspectos:

  1. A utilização de mais indicadores, como MACD, KD e outros, para evitar ser pego em situações de turbulência.

  2. Tente mover o travão, ou use o travão de forma mais flexível.

  3. A adição de um mecanismo de rastreamento para baixo no modo de stop loss permite que o preço volte a rastrear o ponto mais baixo se o preço cair novamente, controlando assim o risco.

  4. Ajustar os parâmetros do ciclo EMA de acordo com as características de diferentes variedades para otimizar o julgamento de tendências.

  5. Adição de um módulo de gerenciamento de posições que permite ajustar as posições individuais de acordo com a taxa de utilização de fundos.

Resumir

A estratégia de acompanhamento de tendências do EMA triplo é uma estratégia de acompanhamento de tendências muito prática. Ela possui uma forte capacidade de julgamento de tendências, além de um mecanismo de parada e perda auto-adaptável, que pode gerenciar automaticamente os pedidos. Do ponto de vista da otimização, o sistema de parada e perda pode ser aperfeiçoado ainda mais, permitindo que ele seja ajustado à situação do mercado em tempo real.

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

//@version=4
strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)


//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

ema_1 = ema(close, input(7))
ema_2 = ema(close, input(12))
ema_3 = ema(close, input(21))

Take_profit= ((input (4))/100)

longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(atr(atrlen) * atrfactor, tr)
    max         := max(max, src)
    min         := min(min, src)
    stop        := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)

go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3)



closeLong = close > longTakeProfit or crossunder(close, vStop)



//Entry 
strategy.entry(id="long", long = true, when = go_long and window())



//Exit
strategy.close("long", when = closeLong and window())

plot(vStop,"Vstop", color.black, linewidth=2)
plot(ema_1,"EMA Short", color.green, linewidth=1)
plot(ema_2,"EMA Mid", color.purple, linewidth=1)
plot(ema_3,"EMA Long", color.red, linewidth=1)