Baseado na estratégia de cruzamento de média móvel dupla


Data de criação: 2024-03-11 12:06:22 última modificação: 2024-03-11 12:06:22
cópia: 0 Cliques: 646
1
focar em
1617
Seguidores

Baseado na estratégia de cruzamento de média móvel dupla

Visão geral da estratégia

A estratégia de duplo equilíbrio é uma estratégia clássica de acompanhamento de tendências. A estratégia usa médias móveis de dois períodos diferentes para capturar a tendência do mercado, gerando um sinal de multiplicação quando a linha de equilíbrio rápido atravessa a linha de equilíbrio lento e um sinal de ruptura quando a linha de equilíbrio rápido atravessa a linha de equilíbrio lento. A ideia central da estratégia é que a linha de equilíbrio rápido é mais sensível às mudanças de preços e responde mais rapidamente às mudanças na tendência do mercado, enquanto a linha de equilíbrio lenta responde à tendência de longo prazo do mercado.

Princípio da estratégia

O código da estratégia usa duas médias móveis, uma média rápida (default 14 period) e uma média lenta (default 28 period). Os tipos de médias móveis podem ser escolhidos como média móvel simples (SMA), média móvel indexada (EMA), média móvel ponderada (WMA) e média móvel relativa (RMA).

A principal lógica da estratégia é a seguinte:

  1. Calcular os valores de média rápida e média lenta
  2. Se você atravessar a linha média lenta em uma linha média rápida, você vai gerar mais sinais, abrir mais posições.
  3. Se a linha média rápida atravessar a linha média lenta e permitir o shorting (allowShorting=true), um sinal de shorting será gerado e a posição será aberta.
  4. Se a linha de média rápida atravessar a linha de média lenta e não for permitido o shorting (allowShorting=false), o posicionamento a mais será eliminado

Através dessa lógica, a estratégia pode acompanhar as principais tendências do mercado, mantendo posições de cabeça em alta tendência, mantendo posições de cabeça vazia em baixa tendência ou posições de cabeça vazia em espera. O ciclo e o tipo de linha média podem ser ajustados e otimizados de acordo com diferentes mercados e variedades de negociação.

Vantagens estratégicas

  1. A lógica é simples, clara, fácil de entender e de implementar.
  2. Aplicável a mercados de tendência, captação eficaz de tendências de médio e longo prazo
  3. Parâmetros ajustáveis para diferentes mercados e variedades de negociação
  4. Opções flexíveis de vaga, com base em características de mercado e preferências pessoais
  5. A média móvel é um indicador clássico de análise técnica, amplamente utilizado e comprovado.

Risco estratégico

  1. Em mercados turbulentos, a frequência de equilíbrio pode levar a transações frequentes, aumentando os custos de transação.
  2. A escolha de uma linha média rápida muito curta, ou uma linha média lenta muito longa, pode causar atraso no sinal e perder o melhor momento de negociação
  3. Estratégia para situações de perdas contínuas quando a tendência do mercado muda
  4. Parâmetros de ciclo médio fixo, que podem não se adaptar às mudanças dinâmicas do mercado

Para combater esses riscos, as seguintes medidas podem ser tomadas:

  1. Optimizar os parâmetros do ciclo de mediana de acordo com as características do mercado e escolher o comprimento de média rápida e lenta apropriado
  2. Em mercados de choque, pode-se considerar o aumento de condições de filtragem, como filtragem ATR, ou filtragem de ângulo de cruzamento uniforme.
  3. Estabelecer um limite de perda razoável para controlar o risco de uma única transação
  4. Avaliação de retrospectiva periódica e ajuste de parâmetros estratégicos de acordo com as mudanças no mercado

Otimização de Estratégia

  1. A introdução de mais indicadores técnicos, como MACD, RSI e outros, para construir uma estratégia multifatorial e melhorar a precisão do sinal
  2. Optimizar o gerenciamento de posições, considerando fatores como o ATR ou a volatilidade, ajustando dinamicamente o tamanho das posições
  3. Para mercados com turbulência, pode-se considerar a introdução de indicadores de tendência, como o ADX, para evitar a negociação frequente
  4. Algoritmos de aprendizagem de máquina ou otimização para encontrar automaticamente a combinação de parâmetros ótima

Essas otimizações podem aumentar a adaptabilidade e a estabilidade das estratégias, adaptando-as melhor a diferentes condições de mercado. No entanto, é importante ter em mente que a otimização excessiva pode levar a estratégias de sobreajuste que não funcionam bem no mercado real.

Resumir

A estratégia de cruzamento de dupla linha de equilíbrio é uma estratégia clássica de acompanhamento de tendências, que gera sinais de negociação através do cruzamento de médias móveis em dois períodos diferentes. Sua lógica é simples, fácil de implementar e é aplicável a mercados em tendência.

Código-fonte da estratégia
/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © z4011

//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) 

float fastMA = switch fastMAType
    "Simple" => ta.sma(close, fastMALength)
    "Exponential" => ta.ema(close, fastMALength)
    "Weighted" => ta.wma(close, fastMALength)
    "Relative" => ta.rma(close, fastMALength)

plot(fastMA, color = color.aqua, linewidth = 2)

float slowMA = switch slowMAType
    "Simple" => ta.sma(close, slowMALength)
    "Exponential" => ta.ema(close, slowMALength)
    "Weighted" => ta.wma(close, slowMALength)
    "Relative" => ta.rma(close, slowMALength)

plot(slowMA, color = color.blue, linewidth = 2)


longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
    strategy.entry("Short", strategy.short)

closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
    strategy.close("Long", "Close")