Estratégia de reversão da tendência a longo prazo

Autora:ChaoZhang, Data: 23 de Novembro de 2023
Tags:

img

Resumo

A estratégia de reversão de tendência de longo prazo é um sistema de negociação mecânico que combina tendência seguindo e reversões de curto prazo. Ele usa o máximo e o mínimo de 7 dias para construir um canal e a média móvel de 200 dias para determinar a direção da tendência de longo prazo.

Estratégia lógica

A estratégia baseia-se principalmente nos seguintes princípios:

  1. Use o máximo de 7 dias para julgar a alta e a queda da última semana.

  2. A média móvel de 200 dias determina a direcção da tendência a longo prazo.

  3. Quando o preço ultrapassa a baixa de 7 dias e está acima da média móvel de 200 dias, é gerado um sinal de compra.

  4. Quando o preço ultrapassa a máxima de 7 dias e está abaixo da média móvel de 200 dias, é gerado um sinal de venda.

  5. Utilize 2x ATR stop loss para controlar o risco por transação.

A chave é considerar os prazos de curto e longo prazo. O canal de 7 dias julga a ação recente do preço e o MA de 200 dias julga a tendência de vários meses. Os sinais de negociação são gerados apenas quando ambos indicam a mesma direção. Isso evita sinais falsos de correções de curto prazo.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Sinais simples e claros baseados no preço e na média móvel.

  2. Considera as tendências a curto e a longo prazo, filtra o ruído de forma eficaz.

  3. Seguir a tendência e reverter a média combinados suavizam os retornos.

  4. O ATR controla o risco, reduz a redução máxima.

  5. Aplicável a ações, forex, criptomoedas em todos os mercados.

  6. Pode funcionar em ambientes de alta e baixa frequência.

Análise de riscos

Os principais riscos são:

  1. Pode perder grandes tendências em mercados de forte tendência.

  2. O stop loss pode desencadear frequentemente em mercados agitados.

  3. Parâmetros inadequados podem levar a uma troca excessiva.

  4. Métricas de tendência de curto e longo prazo incorretas podem filtrar muitos sinais.

  5. Falha do modelo devido a falta de dados da amostra.

As principais técnicas de gestão de riscos:

  1. Otimizar os parâmetros para um stop loss e uma frequência de negociação razoáveis.

  2. Testes de retrospectiva robustos em todos os mercados e prazos.

  3. Diversificação da carteira para reduzir o risco da estratégia única.

  4. O valor da posição em risco deve ser calculado em função do valor da posição em risco.

Orientações de otimização

A estratégia pode ser melhorada em:

  1. Otimizar o comprimento do canal para melhor métrica de tendência a curto prazo.

  2. Otimizar o comprimento do MA para obter uma melhor métrica de tendência a longo prazo.

  3. Tente outras técnicas de stop loss como percentagem, trailing.

  4. Adicionar a condição de volume. inversões de tendência muitas vezes ver aumento de volume.

  5. Aprendizagem automática para encontrar parâmetros ótimos a curto e longo prazo.

  6. Regras dinâmicas de saída baseadas em fundamentos e sentimentos.

  7. Otimizar o stop loss para algoritmos exponenciais ou de bloqueio de lucros.

A otimização e combinações de parâmetros podem melhorar ainda mais os retornos e as métricas de risco.

Resumo

A estratégia de reversão de tendência de longo prazo combina a tendência de seguir e a reversão média. Ao julgar as tendências de curto e longo prazo, gera sinais em pontos de reversão de tendência. Em comparação com a tendência pura ou estratégias de reversão média, ele filtra o ruído do mercado e alcança retornos estáveis e controle de risco.


/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-12 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © racer8
//@version=4
// This Algo Strategy Has Only 3 rules and 62% Win Rate (Youtube) 

strategy("Trend Bounce", overlay=true)

nn = input(7,"Channel Length")
hi = highest(high,nn)
lo = lowest(low,nn)
n2 = input(200,"Ma Length")
ma = sma(close,n2)

if close>ma and close<lo[1]
    strategy.entry("Buy",strategy.long)
if close>hi[1]
    strategy.close("Buy") 
    
if close<ma and close>hi[1]
    strategy.entry("Sell",strategy.short)
if close<lo[1]
    strategy.close("Sell")


plot(hi,"high",color=color.aqua)
plot(lo,"low",color=color.aqua)
plot(ma,"sma",color=color.yellow)       

//-----------------------------------------Stop Loss-------------------------------------------------------

atr = sma(tr,10)[1]
bought = strategy.position_size[0] > strategy.position_size[1]
sold = strategy.position_size[0] < strategy.position_size[1]
slm = input(2.0,"ATR Stop Loss",minval=0)
StopPrice_Long  = strategy.position_avg_price - slm*atr              // determines stop loss's price 
StopPrice_Short  = strategy.position_avg_price + slm*atr              // determines stop loss's price 
FixedStopPrice_Long = valuewhen(bought,StopPrice_Long,0)                  // stores original StopPrice  
FixedStopPrice_Short = valuewhen(sold,StopPrice_Short,0)                  // stores original StopPrice  
plot(FixedStopPrice_Long,"ATR Stop Loss Long",color=color.blue,linewidth=1,style=plot.style_cross)
plot(FixedStopPrice_Short,"ATR Stop Loss Short",color=color.red,linewidth=1,style=plot.style_cross)
if strategy.position_size > 0
    strategy.exit(id="Stop", stop=FixedStopPrice_Long)    // commands stop loss order to exit!
if strategy.position_size < 0
    strategy.exit(id="Stop", stop=FixedStopPrice_Short)    // commands stop loss order to exit!



Mais.