Diese Strategie ist ein anpassungsfähiges Handelssystem, das auf dem Stochastic Momentum Index (SMI) basiert. Es prognostiziert Markttrends, indem es Crossovers zwischen dem SMI-Indikator und seiner Signallinie analysiert, automatisch Kauf- und Verkaufssignale an Schlüsselpositionen generiert. Die Strategie verwendet doppelte exponentielle gleitende Durchschnitte (EMA), um Daten zu glätten und die Signalzuverlässigkeit zu verbessern. Dieses System ist besonders für den mittelfristigen bis langfristigen Handel geeignet und erfasst effektiv wichtige Trendumkehrpunkte des Marktes.
Der Kern der Strategie liegt in der Messung der Preisdynamik durch die SMI-Berechnung. Erstens wird die höchste und niedrigste Preisspanne innerhalb eines bestimmten Zeitraums bestimmt, dann wird die Schlusskursposition in Bezug auf diese Spanne normalisiert. Durch die Anwendung einer doppelten EMA-Gleichung sowohl auf die relative Spanne als auch auf die Preisspanne werden stabilere SMI-Werte generiert. Kaufsignale werden ausgelöst, wenn die SMI-Linie ein goldenes Kreuz mit ihrer Signallinie (SMI
Dies ist eine ausgereifte Handelsstrategie, die auf dem SMI-Indikator basiert und Handelssignale durch technische Indikator-Kreuzungen mit starker Praktikabilität generiert. Die Hauptvorteile der Strategie liegen in ihren klaren Signalen und starker Lärmbeständigkeit, obwohl sie eine gewisse inhärente Verzögerung aufweist. Durch Optimierungen wie Volumenvalidierung und Trendfilterung können die Stabilität und Zuverlässigkeit der Strategie weiter verbessert werden. Diese Strategie eignet sich besonders für die Verfolgung mittelfristiger bis langfristiger Trends und dient als ausgezeichnete Wahl für Anleger, die systematische Handelssysteme aufbauen möchten.
/*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!")