Estratégia de cruzamento de média móvel simples

Autora:ChaoZhang, Data: 21 de setembro de 2023 às 10:47:24
Tags:

Resumo

Esta estratégia opera com base na cruz de ouro e cruz morta de 3 médias móveis simples. Vai longo quando o SMA rápido cruza acima do SMA médio e o SMA médio cruza acima do SMA lento; Vai curto quando ocorre o crossover inverso.

Estratégia lógica

  1. Estabelecer 3 SMAs com períodos diferentes: rápido, médio, lento
  2. Ir longo quando a SMA rápida cruza acima da SMA média e média acima da SMA lenta
  3. Caso a SMA rápida cruze abaixo da SMA média e a SMA média abaixo da SMA lenta, a transação deve ser curta.
  4. Pode definir o atraso de entrada para evitar falhas
  5. Saída quando o sinal de cruzamento reverso é acionado

Especificamente, ele utiliza os cruzamentos entre 3 SMAs de períodos diferentes para negociar. O SMA rápido representa a tendência de curto prazo, o SMA médio representa a tendência de médio prazo e o SMA lento representa a tendência de longo prazo. Quando os três SMAs cruzam para cima em sequência, ele sinaliza uma tendência de alta para ir longo. Quando ocorre um cruzamento descendente, ele sinaliza uma tendência de queda para ir curto.

Análise das vantagens

  1. Usando 3 SMAs melhora a precisão direcional
  2. A entrada atrasada evita fuga falsa e ser preso.
  3. Lógica simples e intuitiva, fácil de entender
  4. Ajuste flexível dos parâmetros SMA para diferentes ciclos
  5. Seguimento da tendência evita riscos de contra-tendência

Análise de riscos

  1. Detenção de longo prazo em riscos de ciclo longo expansão de perdas
  2. O crossover da SMA tem algum atraso, pode perder os melhores pontos de entrada.
  3. Requer otimização do parâmetro SMA, caso contrário os sinais podem ser imprecisos
  4. A detenção de longo prazo introduz riscos durante o dia

Os riscos podem ser geridos através do dimensionamento das posições, otimização da SMA, estratégias de stop loss, etc.

Orientações de otimização

  1. Teste diferentes períodos de SMA para encontrar parâmetros ideais
  2. Avaliação do atraso de entrada para filtrar sinais
  3. Introduzir um stop loss adaptável à ação real do preço
  4. Preferência dos parâmetros de estudo entre diferentes produtos
  5. Teste de adição de regras de reentrada e pirâmide para otimizar a retenção

Resumo

Esta estratégia detém posições baseadas em 3 crossovers de SMA para determinar a direção da tendência. Os prós são sinais simples e claros e configurabilidade; os contras são sinais atrasados e dependência de parâmetros. O desempenho pode ser melhorado e os riscos controlados através de otimização de parâmetros, stop loss etc. Ele ajuda os comerciantes a dominar o uso de SMA e estratégias de crossover.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © DaynTrading

//@version=4
// strategy(
//      title="Simple Moving Average Cross",
//      overlay=true,
//      initial_capital=5000,
//      default_qty_type=strategy.percent_of_equity,
//      default_qty_value=2,
//      commission_type=strategy.commission.percent,
//      commission_value=0.075,
//      pyramiding=0
//      )

sma_top_input = input(title="SMA Top", type=input.integer, defval=20)
sma_mid_input = input(title="SMA Mid", type=input.integer, defval=50)
sma_low_input = input(title="SMA Low", type=input.integer, defval=200)

bars_long = input(title="Long: After trigger, how many bars to wait?", type=input.integer, defval=5)
bars_short = input(title="Short: After trigger, how many bars to wait?", type=input.integer, defval=5)

sma_top = sma(close, sma_top_input)
sma_mid = sma(close, sma_mid_input)
sma_low = sma(close, sma_low_input)

long = sma_top > sma_mid and sma_mid > sma_low
short = sma_top < sma_mid and sma_mid < sma_low

long_condition = long and long[bars_long] and not long[bars_long + 1]
short_condition = short and short[bars_short] and not short[bars_short + 1]

close_long = sma_top < sma_mid and sma_mid < sma_low and not long[bars_long + 1]
close_short = sma_top > sma_mid and sma_mid > sma_low and not short[bars_short + 1]

plot(sma_top, title="SMA Top", color=#95f252, linewidth=2)
plot(sma_mid, title="SMA Mid", color=#FF1493, linewidth=2)
plot(sma_low, title="SMA Low", color=#6a0dad, linewidth=2)

strategy.entry("LongPosition", strategy.long, when = long_condition)
strategy.entry("ShortPosition", strategy.short, when = short_condition)
    
strategy.close("LongPosition", when = close_short)
strategy.close("ShortPosition", when = close_long)

Mais.