Estratégia de impulso duplo da SMA

Autora:ChaoZhang, Data: 2024-01-17 15:05:08
Tags:

img

Resumo

A estratégia de Momentum de SMA Dupla é uma estratégia de negociação baseada em análise técnica que gera sinais de compra e venda com base em dois indicadores simples de média móvel (SMA).

Estratégia lógica

A estratégia utiliza dois indicadores de SMA com janelas de tempo curtas e longas - uma SMA rápida (duração de 9 períodos) e uma SMA lenta (duração de 45 períodos).

Ele gera um sinal longo/compra quando o preço de fechamento da ação cruza acima das linhas SMA rápida e lenta, indicando o início de uma tendência de alta.

Ele gera um sinal de curto / venda quando o preço cruza abaixo de ambas as linhas SMA, indicando o início de uma tendência de queda.

Os níveis de stop loss são definidos dinamicamente no máximo do dia anterior (para transacções curtas) e no mínimo do dia anterior (para transacções longas).

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Utiliza uma combinação de SMA de curto e longo prazo para captar tendências emergentes de médio prazo
  2. A colocação adaptativa de stop loss reduz o risco e permite que os lucros funcionem
  3. Fácil de compreender e implementar
  4. Performa bem em todas as ações e mercados durante as condições de tendência

No entanto, como todas as estratégias de análise técnica, ele pode ter um desempenho inferior durante os mercados de alcance e fenda com sinais falsos frequentes.

Análise de riscos

Os principais riscos desta estratégia são:

  1. Propenso a flutuações e sinais falsos: Uma vez que depende apenas de cruzamento de SMA, a estratégia pode enfrentar flutuações e sinais falsos durante mercados laterais ou agitados, criando custos comerciais desnecessários. Isso pode ser mitigado combinando com outros indicadores como o RSI.

  2. Vulnerável a reversões repentinas de tendência: reversões rápidas após entradas de cruzamento de SMA podem atingir níveis de stop loss rapidamente antes que uma tendência se forme.

  3. Risco de otimização excessiva de ajustes de parâmetros: a otimização extensiva dos comprimentos da SMA e outros parâmetros para ajustar a curva aos dados históricos pode levar a um baixo desempenho na negociação ao vivo.

Oportunidades de melhoria

Algumas formas de reforçar esta estratégia são as seguintes:

  1. Adição de outros indicadores como o RSI para confirmação adicional de negociação para melhorar o tempo e a precisão dos sinais

  2. Incorporação de métodos dinâmicos de colocação de stop loss como ATR ou saídas de lustre para melhor se adaptar à volatilidade do mercado

  3. Otimizar os comprimentos da SMA com base na volatilidade histórica e nos prazos de negociação para diferentes ações

  4. Adicionar regras de gestão de fundos e de dimensionamento de posições sólidas para maximizar os retornos e limitar os saques

Conclusão

Em resumo, a estratégia Dual SMA Momentum oferece uma abordagem direta para o comércio de tendências de curto a médio prazo. Embora básica em sua abordagem, refinamentos como filtros adicionais, paradas dinâmicas e otimizações prudentes podem ajudar a melhorar seus retornos ajustados ao risco.


/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA Crossover Strategy", overlay=true)

// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")

// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)

// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)

// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)

// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na

strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)

strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)


Mais.