Estratégia de acompanhamento de tendência de momentum de média móvel múltipla

SMA RSI MA
Data de criação: 2024-11-12 15:05:09 última modificação: 2024-11-12 15:05:09
cópia: 0 Cliques: 476
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência de momentum de média móvel múltipla

Visão geral

A estratégia é um sistema de negociação de acompanhamento de tendências baseado em múltiplos indicadores de média e de dinâmica. A estratégia utiliza principalmente a relação dinâmica das médias móveis simples de 20, 50, 150 e 200 dias (SMA), combinando a intermitência e o indicador RSI, para capturar uma forte tendência ascendente no nível da linha diária e para equilibrar a tendência em tempo hábil. A estratégia é usada em combinação com vários indicadores técnicos, filtrando efetivamente os falsos sinais e aumentando a precisão da negociação.

Princípio da estratégia

A lógica central da estratégia inclui as seguintes partes-chave:

  1. Sistema de linha média: Use a linha média de 20/50/150/200 dias para construir um sistema de julgamento de tendências, exigindo que a linha média multivariada apresente uma ordenação multivariada.
  2. Confirmação de momentum: O uso do indicador RSI e sua média móvel para determinar o movimento de preços requer que o RSI seja maior que 55 ou o RSI SMA seja maior que 50 e o RSI seja superior.
  3. Verificação de volume de transação: Comparando a linha média de volume de transação dos 20 dias com o volume de transações recentes, confirme a eficácia do sinal de compra e venda.
  4. Verificação da continuidade da tendência: verifique se a linha média de 50 dias manteve uma tendência ascendente por pelo menos 25 dos últimos 40 dias de negociação.
  5. Confirmação de posição: Preços precisam permanecer estáveis acima da linha média de 150 dias por pelo menos 20 dias de negociação.

As condições de compra são:

  • Mais de 4 dias de sol nos últimos 10 dias e pelo menos um dia de sol
  • O RSI atendeu a condição de momentum
  • Sistema linear medido com arranjos múltiplos e ascendente
  • Preço estável acima da média de 150 dias

As condições de venda incluem:

  • Preços abaixo da média de 150 dias
  • A diminuição contínua de emissões
  • A média diária de 50 dias despencou da média diária de 150 dias.
  • Recentemente, o sexo feminino dominou e aumentou o volume de transações

Vantagens estratégicas

  1. Verificação cruzada de múltiplos indicadores tecnológicos para reduzir a taxa de erro
  2. A sustentabilidade da tendência é exigida rigorosamente e pode filtrar oscilações de curto prazo.
  3. Combinação de análise de tráfego para melhorar a confiabilidade do sinal
  4. Condições claras de suspensão de danos, controle eficaz de riscos
  5. Atividade de captação de tendências de médio e longo prazo, reduzindo a frequência de negociação
  6. A lógica da estratégia é clara, fácil de entender e implementar

Risco estratégico

  1. O sistema de linha média é atrasado e pode perder o início da tendência
  2. As condições de entrada rígidas podem fazer com que você perca algumas oportunidades de negociação.
  3. Sinais falsos frequentes podem ocorrer em mercados voláteis
  4. Há um certo atraso na identificação da inversão
  5. O que é necessário para suportar uma retirada de capital em grande escala?

Sugestões de controle de risco:

  • Estabelecer uma posição de parada razoável
  • A gestão de fundos deve ser moderada
  • Considere aumentar os indicadores de confirmação de tendências
  • Parâmetros ajustados ao contexto de mercado

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

  1. Adição de parâmetros de adaptação
  • Ajuste do ciclo de linha média com base na dinâmica da taxa de flutuação do mercado
  • Optimizar a definição do limiar RSI
  1. Melhorar o mecanismo de suspensão
  • Aumentar a perda de rastreamento
  • Configuração do tempo de parada
  1. Introdução à análise do cenário de mercado
  • Indicadores de intensidade de tendência aumentados
  • Considerando os indicadores de volatilidade
  1. Optimizar o tamanho das transações
  • Projeto de gestão de posições dinâmicas
  • Ajuste de acordo com a intensidade do sinal

Resumir

É uma estratégia de rastreamento de tendências rigorosamente projetada, capaz de capturar efetivamente oportunidades de tendências fortes através do uso combinado de múltiplos indicadores técnicos. A principal vantagem da estratégia reside no seu mecanismo completo de confirmação de sinais e no rigoroso sistema de controle de risco. Embora haja algum atraso, a estratégia consegue manter um desempenho estável em longo prazo com a otimização de parâmetros e o gerenciamento de riscos razoáveis.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Micho's 150 (1D Time Frame Only)", overlay=true)

// Define the length for the SMAs and RSI
sma20Length = 20
sma50Length = 50
sma150Length = 150
sma200Length = 200
volumeMaLength = 20
rsiLength = 14
rsiSmaLength = 14
smaCheckLength = 40  // Check the last month of trading days (~20 days)
requiredRisingDays = 25  // Require SMA to rise in at least 16 of the past 20 days
sma150AboveSma200CheckDays = 1  // Require SMA150 > SMA200 for the last 10 days

// Calculate the SMAs for price
sma20 = ta.sma(close, sma20Length)
sma50 = ta.sma(close, sma50Length)
sma150 = ta.sma(close, sma150Length)
sma200 = ta.sma(close, sma200Length)

// Calculate the 20-period moving average of volume
volumeMA20 = ta.sma(volume, volumeMaLength)

// Calculate the 14-period RSI
rsi = ta.rsi(close, rsiLength)

// Calculate the 14-period SMA of RSI
rsiSMA = ta.sma(rsi, rsiSmaLength)

// Check if most of the last 5 days are buyer days (close > open)
buyerDays = 0
for i = 0 to 9
    if close[i] > open[i]
        buyerDays := buyerDays + 1

// Check if at least 1 day has volume higher than the 20-period volume MA
highVolumeDays = 0
for i = 0 to 9
    if close[i] > open[i] and volume[i] > volumeMA20
        highVolumeDays := highVolumeDays + 1

// Define the new RSI condition
rsiCondition = (rsi >= 55) or (rsiSMA > 50 and rsi > rsi[1])

// Check if the 50-day SMA has been rising on at least 16 of the last 20 trading days
risingDays = 0
for i = 1 to smaCheckLength
    if sma50[i] > sma50[i + 1]
        risingDays := risingDays + 1

// Check if the SMA has risen on at least 16 of the last 20 days
sma50Rising = risingDays >= requiredRisingDays

// Check if the price has been above the SMA150 for the last 20 trading days
priceAboveSma150 = true
for i = 1 to smaCheckLength
    if close[i] < sma150[i]
        priceAboveSma150 := false

// Check if the SMA150 has been above the SMA200 for the last 10 days
sma150AboveSma200 = true
for i = 1 to sma150AboveSma200CheckDays
    if sma150[i] < sma200[i]
        sma150AboveSma200 := false

// Define the conditions for the 150-day and 200-day SMAs being rising
sma150Rising = sma150 > sma150[1]
sma200Rising = sma200 > sma200[1]

// Check if most of the last 5 days are seller days (close < open)
sellerDays = 0
for i = 0 to 9
    if close[i] < open[i]
        sellerDays := sellerDays + 1

// Check if at least 1 day has seller volume higher than the 20-period volume MA
highSellerVolumeDays = 0
for i = 0 to 9
    if close[i] < open[i] and volume[i] > volumeMA20
        highSellerVolumeDays := highSellerVolumeDays + 1

// Check in the last N days the price below 150
priceBelowSma150 = true
for i = 0 to 0
    if close[i] > sma150[i]
        priceBelowSma150 := false

// Restrict the strategy to 1D time frame
if timeframe.isdaily
    // Buy condition:
    // - Most of the last 5 days are buyer days (buyerDays > 2)
    // - At least 1 of those days has high buyer volume (highVolumeDays >= 1)
    // - RSI SMA (14-period) between 45 and 50 with RSI >= 55, or RSI SMA > 50 and RSI rising
    // - 50-day SMA > 150-day SMA and 150-day SMA > 200-day SMA
    // - 50-day SMA has been rising on at least 16 of the last 20 trading days
    // - The price hasn't been below the 150-day SMA in the last 20 days
    // - 150-day SMA has been above the 200-day SMA for the last 10 days
    // - 150-day and 200-day SMAs are rising
    buyCondition = (close > sma150 and buyerDays > 4 and highVolumeDays >= 1 and rsiCondition  and sma50 > sma150 and sma50Rising and sma150Rising and sma200Rising and priceAboveSma150)

    // Sell condition:
    // - Price crossing below SMA 150
    // - Seller volume (current volume > volume MA 20)
    // - 150-day SMA crosses below 200-day SMA
    // - Most of the last 5 days are seller days (sellerDays > 2) and at least 1 day of higher seller volume (highSellerVolumeDays >= 1)
    sellCondition = (priceBelowSma150 and (sma50 < sma150 or (sellerDays >5 and highSellerVolumeDays >= 5)))

    // Execute buy when all conditions are met
    if (buyCondition)
        strategy.entry("Buy", strategy.long)

    // Execute sell when all conditions are met
    if (sellCondition)
        strategy.close("Buy")