Turtle Breakout EMA Cross Estratégia

Autora:ChaoZhang, Data: 2023-11-07 15:40:08
Tags:

img

Resumo

Esta estratégia utiliza duas linhas EMA de períodos diferentes para identificar reversões de tendência através dos seus cruzamentos como sinais de entrada e saída.

Estratégia lógica

A estratégia calcula duas linhas EMA usando ta.ema, uma com comprimento 10 para curto prazo e outra com comprimento 20 para tendência de longo prazo. Ela identifica crossovers e crossunders da EMA usando ta.crossover e ta.crossunder para determinar pontos de entrada e saída. Quando a EMA curta cruza a EMA longa, ela vai longa. Quando a EMA curta cruza sob a EMA longa, ela vai curta. Dessa forma, os crossovers da EMA são usados para capturar pontos de virada na tendência.

A estratégia também usa uma variável lastCrossTime para registrar o tempo do último cruzamento para evitar sinais repetidos. Em cada cruzamento válido, ele fecha todas as posições atuais primeiro, depois abre uma nova posição na direção do cruzamento. Após abrir a posição, o take profit e o stop loss são definidos para sair.

Vantagens

  1. A lógica estratégica é simples e clara, fácil de compreender e implementar.

  2. A utilização de cruzamento da EMA para identificar pontos de reversão da tendência é uma estratégia de indicador técnico eficaz comumente utilizada.

  3. A adopção de EMAs de períodos diferentes ajuda a melhorar a sensibilidade a movimentos de curto prazo, enquanto ainda capta grandes tendências.

  4. Tomar lucro e parar a perda ajuda a controlar o risco e a recompensa de cada comércio.

  5. A variável lastCrossTime filtra sinais duplicados e evita transações desnecessárias.

Riscos

  1. Os cruzamentos da EMA podem gerar sinais falsos, com algum risco de fenda.

  2. Os níveis fixos de TP e SL podem não se adaptar às condições de mercado em evolução.

  3. Os sistemas que dependem exclusivamente do cruzamento da EMA podem sofrer perdas em mercados variados.

  4. Os custos de negociação, como o spread, não são considerados, o que afeta o desempenho real.

  5. A estratégia funciona melhor em tendências do que em mercados variados.

As melhorias podem ser feitas através da otimização do TP/SL, adição de filtros, combinação de outros indicadores, etc. O controle rigoroso do risco e a evitação de grandes perdas individuais são essenciais para a negociação ao vivo.

Reforço

  1. Teste e otimize os períodos de EMA para encontrar melhores combinações.

  2. Adicionar outros indicadores como KDJ, MACD etc. para melhorar a qualidade do sinal e evitar problemas.

  3. Utilize a dinâmica de lucro e stop loss, como a parada de trail ao longo da tendência.

  4. Considere o volume de negociação para confirmar os sinais.

  5. Incorpore padrões de ação de preços como breakouts para fortalecer sinais.

  6. Contabilizar os custos de negociação, como o spread, e otimizar os níveis de TP/SL em conformidade.

Conclusão

A estratégia identifica reversões de tendência usando crossovers EMA de forma simples e direta. TP/SL são usados para controlar riscos e recompensas. É fácil de implementar, mas os crossovers EMA têm riscos de serra. Outras otimizações podem ser feitas ajustando parâmetros, adicionando filtros e combinando outros indicadores para melhorar a robustez.


/*backtest
start: 2023-10-30 00:00:00
end: 2023-11-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('XXXquang', overlay=true)

// Sử dụng hàm input.int() và input.float() để tạo các trường nhập liệu với giới hạn giá trị
length1 = input.int(10, title="Length EMA Short", minval=1)
length2 = input.int(20, title="Length EMA Long", minval=1)
lotSize = input.int(1, title="Lot Size", minval=1)

takeProfitLevel = input.int(600, title="Take Profit Level", minval=1)
stopLossLevel = input.int(200, title="Stop Loss Level", minval=1)

ema1 = ta.ema(close, length1)
ema2 = ta.ema(close, length2)

var float lastCrossTime = na

if ta.crossover(ema1, ema2)
    if na(lastCrossTime)
        strategy.close_all()
    strategy.entry('Buy Order', strategy.long, qty=lotSize)
    strategy.exit('Exit Buy', 'Buy Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue)
    lastCrossTime := timenow

if ta.crossunder(ema1, ema2)
    if na(lastCrossTime)
        strategy.close_all()
    strategy.entry('Sell Order', strategy.short, qty=lotSize)
    strategy.exit('Exit Sell', 'Sell Order', profit=takeProfitLevel / syminfo.pointvalue, loss=stopLossLevel / syminfo.pointvalue)
    lastCrossTime := timenow

plot(ema1, title='EMA Short', color=color.new(color.blue, 0), linewidth=2)
plot(ema2, title='EMA Long', color=color.new(color.red, 0), linewidth=2)


Mais.