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


Data de criação: 2024-02-05 10:34:57 última modificação: 2024-02-05 10:34:57
cópia: 0 Cliques: 602
1
focar em
1617
Seguidores

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

Visão geral

A estratégia de cruzamento de duas medias é uma estratégia de negociação quantitativa relativamente simples. Ela capta os pontos de inflexão da tendência de médio prazo do mercado, calculando o preço de fechamento médio das 7 e o preço de fechamento médio das 20 medias mais recentes, quando a média curta atravessa a média longa de baixo para cima e a média curta de cima para baixo para baixo.

Princípio da estratégia

A lógica central da estratégia é calcular o preço de fechamento médio de 7 K-linhas mais recentes (excluindo a K-linha atual) como a média de curto prazo, e calcular o preço de fechamento médio de 20 K-linhas (excluindo a K-linha mais recente) como a média de longo prazo. Quando a média de curto prazo atravessa a média de longo prazo de baixo para cima, o mercado ganha mais; quando a média de curto prazo atravessa a média de longo prazo de cima para baixo, o mercado ganha menos.

Depois de fazer mais sinais, abra mais posições de acordo com a quantidade de capital da conta inteira; Depois de fazer um sinal de curto, apague as posições de acordo com a quantidade de posições e abra as posições de acordo com essa quantidade. Cada posição após a abertura será realizada com 20-25 linhas K. Durante esse período, se houver um prejuízo, metade da posição será parada, se houver lucro suficiente, metade da posição será parada.

Análise de vantagens estratégicas

Esta é uma estratégia muito simples de duplo equilíbrio, cujos principais pontos fortes são:

  1. A ideia é simples, fácil de entender e de implementar.
  2. O ponto de inflexão de uma tendência de mercado a médio prazo é julgado através do cálculo de cruzamentos de diferentes médias periódicas, um indicador técnico amplamente utilizado em muitas estratégias de quantificação;
  3. A tecnologia de filtragem de ruído aleatório no mercado, que permite capturar as tendências a médio prazo;
  4. A estratégia é especialmente adequada para a negociação de linhas médias e longas, com posições de 20-25 linhas K por posição, para obter melhores margens de lucro e prejuízo;
  5. A estratégia inclui um mecanismo de stop loss e stop-loss para controlar o risco e bloquear os lucros.

Análise de Riscos

É uma estratégia de acompanhamento de tendências mais simples, mas também tem alguns riscos potenciais:

  1. Quando os mercados entram em zonas de choque, a linha média curta e a linha média longa podem cruzar-se várias vezes, resultando em falsos sinais e excessos de negociação;
  2. A possibilidade de um stop loss ser desencadeado por uma forte oscilação de uma curta linha de preço durante a posse;
  3. A falta de uma boa visão do ponto de inflexão da tendência real do mercado pode atrasar os sinais de negociação.

Os riscos acima mencionados podem ser otimizados da seguinte forma:

  1. Aumentar as condições de filtragem para determinar se o preço ultrapassou um ponto crítico de suporte ou resistência ao cruzar a linha média para filtrar os falsos sinais;
  2. Ajustar o ciclo de detenção das posições, reduzindo o tempo médio de detenção de cada posição para controlar os prejuízos;
  3. A adição de outros indicadores técnicos, como indicadores de energia, indicadores de volatilidade, etc. para determinar o verdadeiro ponto de reversão do mercado.

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

Esta é uma estratégia simples de duplo equilíbrio de cruzamentos, que pode ser profundamente otimizada em vários aspectos:

  1. Otimizar os parâmetros da linha média, testando diferentes combinações de linhas médias de curto e longo prazo, procurando o parâmetro ideal;

  2. Aumentar outros indicadores de filtragem, como indicadores de energia, indicadores de volatilidade, etc., para evitar falsos sinais em mercados turbulentos;

  3. Otimizar a estratégia de stop-loss, testar diferentes proporções de stop-loss e determinar os parâmetros ótimos;

  4. Teste diferentes ciclos de mercado para otimizar a duração das posições e determinar quais são os ciclos mais eficazes para a estratégia;

  5. Aumentar os algoritmos de aprendizagem de máquina para otimizar continuamente os parâmetros da estratégia por meio de testes reversíveis, tornando-a mais estável.

Resumir

Esta estratégia é uma estratégia de cruzamento de duas linhas de equilíbrio mais simples para determinar o ponto de reversão de tendência de médio prazo, calculando o cruzamento de linhas de equilíbrio de diferentes períodos. A estratégia é muito prática e é fácil de usar. Mas a estratégia também tem algumas limitações, o principal problema é a incapacidade de determinar efetivamente o ponto de reversão real do mercado.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nrathi2211

//@version=5
strategy("Closing Prices", overlay=true)

//variables
closingB7 = ta.highest(close, 7)[7]
closingB14 = ta.highest(close, 7)[20]
highB14 = ta.highest(low, 50)[7]
capital = 50000

//functions
qty_find(float price) => capital / int(price)

profit_take() =>
    profit = strategy.opentrades.profit(strategy.opentrades - 1)
    profit*.95 

if(closingB7 < closingB14)
    if(ta.crossover(close, closingB7))
        strategy.entry("long_buy", strategy.long, qty_find(close))

    current_profit = strategy.opentrades.profit(strategy.opentrades - 1)
    if(current_profit < 0)
        strategy.close("Exit long_buy SL", "long_buy", qty_percent = 50)
    
    else if(current_profit < profit_take())
        strategy.close("Exit long_buy TP", "long_buy", qty_percent = 50)
    
    if(ta.crossunder(close, closingB7))
        strategy.exit("long_sell", from_entry = "long_buy", stop = closingB7)

plot(closingB7, "cl", color.green, 2)
//plot(closingB14, "cl", color.red, 2)
plot(highB14, "cl", color.purple, 2)