Estratégia de média móvel longa e curta


Data de criação: 2023-10-09 16:00:02 última modificação: 2023-10-09 16:00:02
cópia: 0 Cliques: 617
1
focar em
1617
Seguidores

Visão geral

Esta estratégia é baseada em uma estratégia de múltiplos espaços em média móvel. Ela usa três médias móveis de diferentes parâmetros para geração de sinais de negociação.

Princípio da estratégia

A estratégia usa a função sma para calcular uma média móvel de comprimento de len, chamada de ma. Em seguida, com base em ma, calcula uma média móvel de uma certa proporção de três movimentos planos, chamados longline1, longline2 e longline3.

Quando o sinal de compra é gerado, se não houver posição atual, abra mais posição quando o preço atravessar a longline 1; se já houver uma posição de 1 mão, abra mais uma mão quando o preço atravessar a longline 2; se já houver uma posição de 2 mãos, abra mais uma mão quando o preço atravessar a longline 3, com o máximo de 3 mãos.

Quando o sinal de venda é gerado, se houver uma posição em excesso no momento, a posição em baixa será mantida quando o preço estiver abaixo de ma.

A estratégia pode ser aplicada por lotes, de modo a obter um efeito de acompanhamento de tendências.

Vantagens estratégicas

  • Usando a média móvel para determinar a direção da tendência, você pode filtrar o ruído do mercado de forma eficaz e manter os lucros estáveis
  • Fazer mais decote em lotes pode ser mais lucrativo em uma tendência
  • A média móvel plana como ponto de entrada para uma melhor compreensão das tendências
  • A retirada é relativamente pequena, com o máximo de retirada controlado em torno de 20%.

Risco estratégico

  • A estratégia é pura tendência, e pode ser usada como uma armadilha quando o mercado se recupera.
  • A média móvel gera um sinal de atraso e pode perder o ponto de mudança de tendência
  • O risco é maior se for feito em grupos
  • Sem estratégia de stop loss, pode causar grandes perdas em eventos inesperados

A solução para o risco:

  • Pode-se adicionar outros indicadores para determinar pontos de mudança de tendência
  • Configure os parâmetros da média móvel de forma razoável, não muito longa, caso contrário, o sinal está muito atrasado
  • Reduzir apropriadamente o número de lotes excessivos para evitar o aumento
  • Aumentar o stop loss móvel para controlar os prejuízos

Direção de otimização da estratégia

A estratégia pode ser melhorada em vários aspectos:

  1. Adicionar outros indicadores para determinar a direção da tendência, como adicionar o MACD para determinar a força da tendência

  2. Optimizar os parâmetros de média móvel para encontrar a combinação de parâmetros mais adequada

  3. O número e a proporção de excessos em lotes devem ser ajustados para evitar que os excessos sejam seguidos.

  4. Adição de um mecanismo móvel de stop loss, que permite a configuração de stop loss com base no ATR

  5. Pode ajustar o número de posições de acordo com a dinâmica da taxa de flutuação do mercado, reduzindo as posições quando houver grande flutuação

  6. Testar o efeito de diferentes variedades para encontrar as variedades mais adequadas para a estratégia

  7. Desenvolvimento de módulos de saída que consideram a saída de parada em determinados casos

Resumir

Em geral, a estratégia usa a média móvel para determinar a direção da tendência e, através de uma escalação por lotes, pode acompanhar a tendência para obter lucro. Mas há um certo atraso e risco de acompanhamento. Podemos otimizar a estratégia adicionando indicadores de julgamento auxiliares, parâmetros de otimização, ajustando o gerenciamento de posições e aumentando o mecanismo de parada.

Código-fonte da estratégia
/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Lenghs")
src = input(ohlc4, title = "MA Source")
longlevel1 = input(-4.0, title = "Long line 1")
longlevel2 = input(-5.0, title = "Long line 2")
longlevel3 = input(-6.0, title = "Long line 3")
needoffset = input(true, title = "Offset")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick

//MA
ma = sma(src, len)
longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult
longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult
longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult

//Lines
offset = needoffset ? 1 : 0
plot(ma, color = color.blue)
plot(longline1, offset = offset, color = color.lime)
plot(longline2, offset = offset, color = color.lime)
plot(longline3, offset = offset, color = color.lime)

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2))
if size > 0
    strategy.entry("TP", strategy.short, 0, limit = ma)