Estratégia de previsão adaptativa do sinal de crossover SMI com base no indicador de momentum

SMI EMA
Data de criação: 2024-12-27 15:38:01 última modificação: 2024-12-27 15:38:01
cópia: 2 Cliques: 370
1
focar em
1617
Seguidores

Estratégia de previsão adaptativa do sinal de crossover SMI com base no indicador de momentum

Visão geral

A estratégia é um sistema de negociação adaptável baseado no Indicador de Momentum Estocástico (SMI). Ele prevê tendências de mercado analisando o cruzamento do indicador SMI e sua linha de sinal e emite automaticamente sinais de compra e venda em posições-chave. A estratégia usa uma média móvel exponencial dupla (MME) para suavizar os dados e melhorar a confiabilidade do sinal. Este sistema é particularmente adequado para transações de médio e longo prazo e pode capturar efetivamente os pontos de virada das principais tendências de mercado.

Princípio da estratégia

O núcleo da estratégia é medir o momentum do preço calculando o Indicador de Momentum Estocástico (SMI). Primeiro, o intervalo de preços altos e baixos dentro de um período específico é calculado e, então, o preço de fechamento é normalizado em relação a esse intervalo. Ao aplicar a suavização dupla da EMA ao intervalo relativo e ao intervalo de preço, obtém-se um valor SMI mais estável. Quando a linha SMI faz uma cruz dourada com sua linha de sinal (EMA do SMI), um sinal de compra é acionado; quando ela faz uma cruz mortal, um sinal de venda é acionado. Ao mesmo tempo, as faixas de sobrecompra e sobrevenda (+40/-40) são definidas para confirmar a confiabilidade do sinal.

Vantagens estratégicas

  1. Clareza de sinal forte: usar sinais de crossover como gatilhos de negociação evita julgamento subjetivo
  2. Boa resistência ao ruído: a suavização dupla de EMA é usada para filtrar efetivamente o ruído do mercado
  3. Forte adaptabilidade: pode se adaptar a diferentes ambientes de mercado por meio da otimização de parâmetros
  4. Melhor controle de risco: defina faixas de sobrecompra e sobrevenda para evitar erros de julgamento em condições extremas de mercado
  5. Alto grau de visualização: use preenchimento gradiente para exibir intuitivamente o status do mercado

Risco estratégico

  1. Risco de atraso: Devido ao uso de várias médias móveis, o sinal terá um certo atraso
  2. Risco de mercado volátil: sinais falsos podem ser gerados em um mercado lateral e volátil
  3. Sensibilidade dos parâmetros: Diferentes combinações de parâmetros podem levar a resultados completamente diferentes
  4. Dependência do ambiente de mercado: melhor desempenho em mercados com tendências, desempenho fraco em mercados voláteis

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

  1. Introdução aos indicadores de volume: Verificação da validade do sinal pela combinação de alterações de volume
  2. Adicionar filtro de tendência: use a média móvel de longo prazo para confirmar a direção geral da tendência
  3. Otimizar a adaptação dos parâmetros: ajustar dinamicamente os parâmetros de acordo com a volatilidade do mercado
  4. Adicionar mecanismo de stop loss: defina um stop loss móvel para proteger os lucros existentes
  5. Melhore a gestão de riscos: adicione módulos de gestão de posições e gestão de fundos

Resumir

Esta é uma estratégia de negociação madura baseada no indicador SMI. Ela gera sinais de negociação por meio do crossover de indicadores técnicos e é altamente prática. A principal vantagem da estratégia está em seu sinal claro e forte resistência a ruídos, mas também há um certo grau de atraso. Ao adicionar medidas de otimização, como verificação de volume e filtragem de tendências, a estabilidade e a confiabilidade da estratégia podem ser ainda mais aprimoradas. Essa estratégia é particularmente adequada para monitorar tendências de médio e longo prazo e é uma boa escolha para investidores que desejam construir um sistema de negociação sistemático.

Código-fonte da estratégia
/*backtest
start: 2024-12-19 00:00:00
end: 2024-12-26 00:00:00
period: 45m
basePeriod: 45m
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/
// © Iban_Boe

//@version=6
strategy("SMI Strategy with Signals", "SMI Strategy", overlay=false)

// Parámetros del SMI
lengthK   = input.int(14, "%K Length",  minval=1, maxval=15000)
lengthD   = input.int(3,  "%D Length",  minval=1, maxval=4999)
lengthEMA = input.int(3,  "EMA Length", minval=1, maxval=4999)

// Función de doble EMA
emaEma(source, length) => ta.ema(ta.ema(source, length), length)

// Cálculos del SMI
highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))
smiSignal = ta.ema(smi, lengthEMA)

// Gráficos del SMI
smiPlot = plot(smi, "SMI", color=color.blue)
plot(smiSignal, "SMI-based EMA", color=color.orange)

// Level lines
hline(40, "Overbought Line", color=color.green)
hline(-40, "Oversold Line", color=color.red)
hline(0, "Middle Line", color=color.gray)

midLinePlot = plot(0, color = na, editable = false, display = display.none)
fill(smiPlot, midLinePlot, 120,  40,   top_color = color.new(#4caf4f, 50),    bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(smiPlot, midLinePlot, -40, -120,  top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 50),    title = "Oversold Gradient Fill")

// Señales de compra y venta
buySignal = ta.crossover(smi, smiSignal) // Detect crossover
sellSignal = ta.crossunder(smi, smiSignal) // Detect crossover

// Graficar señales de compra/venta
plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="Señal de Compra")
plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="Señal de Venta")

// Lógica de la estrategia
if (buySignal)
    strategy.entry("Compra", strategy.long)

if (sellSignal)
    strategy.entry("Venta", strategy.short)

// Alertas
alertcondition(buySignal, title="Alerta de Compra", message="¡Señal de Compra Detectada!")
alertcondition(sellSignal, title="Alerta de Venta", message="¡Señal de Venta Detectada!")