TrendSurfing - Estratégia de tendência cruzada de média móvel dupla

Autora:ChaoZhang, Data: 2024-01-04 17:28:14
Tags:

Resumo

A estratégia TrendSurfing é uma estratégia de rastreamento de tendências baseada principalmente em sinais de cruzamento de média móvel dupla. Também incorpora indicadores visuais triangulares, EMA de 200 dias, indicador ROC e indicador RSI para filtrar o ruído e capturar com precisão as inversões de tendência. Esta estratégia é adequada para a detenção de médio a longo prazo e pode alcançar um crescimento constante em um mercado de alta.

Estratégia lógica

A estratégia de TrendSurfing depende principalmente de cruz de ouro e cruz de morte formada por média móvel rápida e média móvel lenta para gerar sinais de compra e venda.

Além disso, a estratégia incorpora vários indicadores auxiliares para filtrar sinais falsos ou determinar a qualidade da tendência, incluindo:

  1. Indicador ROC para determinar a tendência e a dinâmica dos preços
  2. Oscilador RSI para detectar níveis de sobrecompra/supervenda
  3. EMA de 200 dias para determinar a direcção geral da tendência
  4. Indicadores visuais triangulares para marcar pontos de entrada no gráfico

A estratégia TrendSurfing permite, através de um julgamento abrangente de vários indicadores, localizar com precisão os pontos de virada da tendência e acompanhar as tendências definidas a médio e longo prazo, sem ser induzida em erro pelo ruído do mercado ou pelas correções a curto prazo.

Análise das vantagens

1. Captar a tendência de médio a longo prazo
A estratégia julga basicamente a inversão de tendência com base em cruzes de MA e usa indicadores como a EMA de 200 dias para filtrar o ruído de curto prazo, com foco na captura de tendência de médio a longo prazo.

2. Múltiplos indicadores garantem entrada de alta qualidade
Para além do cruzamento da MA em si, a incorporação de ROC, RSI e outros indicadores permite evitar zonas de consolidação nos pontos de reversão e garante a entrada de qualidade.

3. Indicadores visuais triangulares intuitivos
Triângulos verdes para baixo indicam entradas longas, triângulos vermelhos para cima indicam entradas curtas.

4. Parâmetros personalizáveis para diferentes necessidades
Os utilizadores podem ajustar livremente parâmetros como os períodos de MA, o comprimento do ROC, o comprimento do RSI, etc. de acordo com o seu próprio estilo de negociação.

5. Pare de perder e controle os lucros
A estratégia define o stop loss e o take profit com base no valor ATR multiplicado pela percentagem de risco, permitindo o controlo do risco por transação.

Análise de riscos

1. Risco de falha de negócios
Qualquer estratégia baseada no cruzamento de MA tem o risco inerente de falhar transações ou ser interrompida quando a MA está a oscilar.

2. Optimização excessiva de configurações de parâmetros incorretasOs utilizadores deverão evitar perseguir valores de parâmetros hipotéticos ideais. Os parâmetros deverão ser testados e adaptados com base nas diferentes condições de mercado e produtos.

3. Incapacidade de filtrar completamente os eventos do Cisne Negro
Em condições de mercado extremas, as estratégias podem ainda enfrentar grandes perdas devido aos riscos sistémicos do mercado.

Orientações de otimização

1. Teste e otimize os valores dos parâmetros
Os períodos de MAs, a duração do ROC, os valores do RSI, etc., devem passar por um rigoroso backtesting e otimização para se adequarem às características de diferentes produtos comerciais.

2. Teste e incorpore outros indicadores auxiliares
Continuar a testar combinações de outros indicadores, como BOLL, KDJ, etc., com cruzes de MA para um melhor desempenho.

3. Coordenar com a negociação algorítmica para um melhor controle de riscosIntroduzir algoritmos de aprendizagem automática para permitir um stop loss e um take profit mais inteligentes, adaptando-se a ambientes de mercado dinâmicos.

4. Explorar combinações com outras estratégias ou modelos
A combinação com estratégias de seleção de ações baseadas em fundamentos, estratégias de arbitragem estatística, modelos de otimização de carteira, etc., poderia melhorar ainda mais o controlo do risco e o rendimento.

Conclusão

A estratégia TrendSurfing é uma estratégia simples e direta de rastreamento de tendências com risco controlável. Os sinais de negociação são gerados a partir de cruzes de MA e filtrados por vários indicadores auxiliares. É adequado para a detenção de médio a longo prazo para rastrear de forma constante as tendências do mercado alcista. Continuaremos a otimizar essa estratégia através de testes de parâmetros, expansão de indicadores, controle de risco, etc. para alcançar um desempenho mais confiável em diversos mercados.

[/trans]


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average Crossover with Triangles, 200 EMA, ROC, and RSI", overlay=true)

// Define input parameters
fast_length = input(9, title="Fast MA Length")
slow_length = input(21, title="Slow MA Length")
roc_length = input(14, title="ROC Length")
rsi_length = input(14, title="RSI Length")

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Plot moving averages
plot(fast_ma, color=color.green, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Plot 200 EMA
ema_200 = ema(close, 200)
plot(ema_200, color=color.white, title="200 EMA", linewidth=2)

// Calculate Rate of Change (ROC)
roc = roc(close, roc_length)

// Calculate RSI
rsi = rsi(close, rsi_length)

// Define strategy entry and exit conditions
long_condition = crossover(fast_ma, slow_ma) and roc > 0 and close > ema_200 and rsi > 55
short_condition = crossunder(fast_ma, slow_ma) and roc < 0 and close < ema_200 and rsi < 45

// Execute strategy
strategy.entry("Long", strategy.long, when=long_condition)
strategy.entry("Short", strategy.short, when=short_condition)

// Define stop loss and take profit levels
risk_percent = input(1, title="Risk Percentage", minval=0.1, maxval=5, step=0.1) / 100
atr_value = atr(14)
stop_loss = close - atr_value * risk_percent
take_profit = close + atr_value * risk_percent

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stop_loss, profit=take_profit)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stop_loss, profit=take_profit)

// Plot larger triangles on crossover and crossunder
plotshape(series=long_condition, title="Long Entry", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=short_condition, title="Short Entry", color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small)


Mais.