Esta estratégia é um sistema de negociação adaptativo baseado no Índice de Momento Estocástico (SMI). Ele prevê as tendências do mercado analisando os cruzamentos entre o indicador SMI e sua linha de sinal, gerando automaticamente sinais de compra e venda em posições-chave. A estratégia emprega médias móveis exponenciais duplas (EMA) para suavizar os dados e melhorar a confiabilidade do sinal. Este sistema é particularmente adequado para negociação de médio a longo prazo e capta efetivamente os principais pontos de reversão da tendência do mercado.
O núcleo da estratégia consiste em medir o ímpeto do preço através do cálculo do SMI. Primeiro, determina a faixa de preços mais alta e mais baixa dentro de um período específico, e depois normaliza a posição do preço de fechamento em relação a essa faixa. Aplicando a suavização EMA dupla tanto para a faixa relativa quanto para a faixa de preços, gera valores SMI mais estáveis. Os sinais de compra são desencadeados quando a linha SMI faz uma cruz de ouro com sua linha de sinal (SMI
Esta é uma estratégia de negociação madura baseada no indicador SMI, gerando sinais de negociação através de cruzamento de indicadores técnicos com forte praticidade. As principais vantagens da estratégia estão em seus sinais claros e forte resistência ao ruído, embora tenha algum atraso inerente. Através de otimizações como validação de volume e filtragem de tendências, a estabilidade e confiabilidade da estratégia podem ser ainda melhoradas. Esta estratégia é particularmente adequada para rastrear tendências de médio a longo prazo e serve como uma excelente escolha para investidores que buscam construir sistemas de negociação sistemáticos.
/*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!")