Estratégia de tendência de média móvel com cruzamento de média móvel


Data de criação: 2024-01-12 10:56:57 última modificação: 2024-01-12 10:56:57
cópia: 0 Cliques: 502
1
focar em
1617
Seguidores

Estratégia de tendência de média móvel com cruzamento de média móvel

Visão geral

Esta estratégia de negociação é uma estratégia de acompanhamento de tendências baseada em um sistema simples de médias móveis e cruzamentos de medias. Utiliza a interseção de médias móveis rápidas e médias móveis lentas de diferentes períodos como sinal de fazer mais curto. Faça mais quando a média móvel rápida atravessa a média móvel lenta de baixo para cima; faça curto quando a média móvel rápida atravessa a média móvel lenta de cima para baixo.

Princípio da estratégia

A estratégia usa um ciclo rápido, como uma média móvel simples de 60 dias, e um ciclo lento, como uma média móvel simples de 200 dias. A média móvel rápida responde mais rapidamente às mudanças de preço, refletindo tendências de preços recentes; a média móvel lenta responde mais lentamente às mudanças de preços, refletindo tendências de médio e longo prazo.

Quando a média de curto período atravessa a média de longo período a partir de baixo, indica que o preço de curto período começa a subir, entrando no mercado de múltiplos cabeças, fazendo mais. Quando a média de curto período atravessa a média de longo período a partir de cima, indica que o preço de curto período começa a cair, entrando no mercado de cabeças vazias, fazendo espaço.

A estratégia usa o princípio de cruzamento da linha de equilíbrio para determinar a direção da tendência. Quando os preços de curto período sobem mais rapidamente, a linha de equilíbrio de curto período impulsiona a linha de equilíbrio de longo período para cima e atravessa-a de baixo.

Capturar os pontos de inflexão de uma tendência de preço através da interseção de uma linha média rápida e uma linha média lenta e ajustar a posição de hipoteca de acordo. Este é o principal princípio da estratégia para determinar a tendência e gerar um sinal de negociação.

Análise de vantagens estratégicas

  • Utilize as principais tendências de um cruzamento de medianas para evitar ser enganado pelo ruído do mercado de curto prazo.
  • A estabilidade e a confiabilidade são maiores, considerando as duas dimensões do tempo, a curto e a médio prazo.
  • O monitoramento de tendências é simples e eficaz, por exemplo, fazendo mais em tendências de alta e fazendo menos em tendências de baixa.
  • As médias móveis são amplamente utilizadas, são fáceis de entender e os parâmetros são flexíveis.
  • Os parâmetros de gestão de fundos são ajustáveis e controlam o risco.

Análise de risco estratégico

  • A estratégia depende de uma clara tendência de preços e pode falhar se houver uma forte volatilidade no mercado.
  • Os sinais de erro são frequentes, com abertura e fechamento de posições em intervalos de flutuação.
  • A média móvel tem um atraso e pode perder o ponto de viragem.
  • Se os parâmetros não forem ajustados corretamente, o ponto de parada é muito pequeno ou o ponto de parada é muito grande, o jogador pode sair prematuramente ou se equilibrar.
  • Os parâmetros razoáveis precisam ser ajustados de acordo com as características específicas das diferentes variedades.

Pode-se ajustar os parâmetros periódicos das médias móveis para adaptá-los à frequência de variação de diferentes variedades; melhorar as estratégias de stop loss e stop loss, utilizando indicadores mais complexos para reduzir os sinais errados; adicionar métodos como o filtro de volume de transação para otimizar a estratégia e aumentar a estabilidade da estratégia.

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

A estratégia pode ser melhorada em alguns aspectos:

  1. Optimizar os parâmetros de média móvel de ciclo rápido e lento para variedades com diferentes frequências de oscilação. Mais combinações podem ser testadas para encontrar os melhores parâmetros.

  2. Mudar as condições de entrada e filtrar mais indicadores, como aumento de volume de transações, para reduzir os sinais errados.

  3. Melhorar as estratégias de stop loss, como o rastreamento de stop loss ou stop loss dinâmico, para obter lucros mais eficientes.

  4. Considerando os custos de transação, como taxas de processamento, adicione um módulo de avaliação de custos para tornar a simulação mais realista.

  5. Procurando a melhor combinação de parâmetros para as características de diferentes variedades, o Design Parameter Universe.

  6. Aumentar a identificação de características locais, auxiliar a julgar os pontos de mudança de tendência e melhorar a compreensão do momento de abrir e fechar posições.

A estratégia de otimização do sistema pode aumentar significativamente a taxa de ganho e a estabilidade, reduzindo a retração.

Resumir

A estratégia de negociação baseada em equilíbrio de linhas cruzadas para determinar a mudança de tendência de preços, é uma estratégia típica de acompanhamento de tendências. Utiliza o cruzamento de diferentes equilíbrios periódicos como sinais de multiplicação de curto-circuito, determina a direção da tendência através de uma combinação de equilíbrio rápido e equilíbrio lento, e realiza uma captura de tendência eficaz. A estratégia é estável, confiável, fácil de entender e implementar, pode ser adaptada à maioria das variedades após otimização de parâmetros e é um tipo de estratégia básica de negociação quantitativa.

Código-fonte da estratégia
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 10m
basePeriod: 1m
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/
// © thebearfib
//
//@version=5
//

strategy("x-over 150d_200d_sma - Free", overlay = true)

repaint = input.bool(defval = false, title = "[RePaint] Uncheck to see real time results") //when you deselect it - it shows what would have happened in real time while trading the system
srcmc   = request.security(syminfo.tickerid, 'D', open, lookahead= repaint ? barmerge.lookahead_on : barmerge.lookahead_off, gaps=barmerge.gaps_off)

fast_length         = input(title="Fast Length", defval=60)
slow_length         = input(title="Slow Length", defval=275)

_fast               = ta.sma(srcmc,  fast_length)
_slow               = ta.sma(srcmc,  slow_length)

plot(_fast, 
  title="Fast SMA", 
  color=color.red,
  linewidth = 1) 

plot(_slow, 
  title="Slow SMA", 
  color=color.white,
  linewidth = 3)
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Calculating  —————————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//
longProfitPerc      = input.float(title="Long Take Profit (%)", minval=0.01, step=1.0, defval=42) * .01
longStopPerc        = input.float(title="Long Stop (%)",        minval=0.01, step=1.0, defval=13)  * .01
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Stop Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longExitPrice  = strategy.opentrades > 0 ? strategy.position_avg_price * (1 + longProfitPerc) : srcmc *  (1 + longProfitPerc)
longStopPrice = strategy.opentrades  > 0 ? strategy.position_avg_price * (1 - longStopPerc)   : srcmc *  (1 - longStopPerc)
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Long Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longCondition   = srcmc > _slow and  ta.crossover(_fast, _slow)
closeCondition  =  ta.crossover(srcmc, _slow)  

if (longCondition)
    strategy.entry("Entry (long)", strategy.long, comment="→ 𝗟𝗴 𝗘𝗻𝘁𝗿𝘆")

if (closeCondition)
    strategy.close("Entry (long)", comment=" 𝗟𝗴 𝗘𝘅𝗶𝘁 ←")

if (strategy.position_size > 0)
    strategy.exit(id="XL", limit=longExitPrice, stop = longStopPrice, comment_profit = "Take Profit", comment_loss = "Stop Loss")
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// —————————————————————————————————  Never the End Just the beginning    —————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//