
Die Strategie ist ein adaptives Handelssystem, das auf dem Stochastic Momentum Indicator (SMI) basiert. Es prognostiziert Markttrends durch die Analyse der Kreuzungspunkte des SMI-Indikators und seiner Signallinie und gibt automatisch Kauf- und Verkaufssignale an Schlüsselpositionen aus. Die Strategie verwendet einen doppelt exponentiellen gleitenden Durchschnitt (EMA), um die Daten zu glätten und die Zuverlässigkeit des Signals zu verbessern. Dieses System eignet sich besonders für mittel- und langfristige Transaktionen und kann die Wendepunkte wichtiger Markttrends effektiv erfassen.
Der Kern der Strategie besteht darin, die Preisdynamik durch Berechnung des Stochastic Momentum Indicator (SMI) zu messen. Zunächst wird die Spanne der Höchst- und Tiefstpreise innerhalb eines bestimmten Zeitraums berechnet und dann der Schlusspreis relativ zu dieser Spanne normalisiert. Durch die Anwendung einer doppelten EMA-Glättung auf den relativen Bereich und den Preisbereich wird ein stabilerer SMI-Wert erzielt. Wenn die SMI-Linie mit ihrer Signallinie (EMA des SMI) ein Golden Cross bildet, wird ein Kaufsignal ausgelöst; wenn sie ein Death Cross bildet, wird ein Verkaufssignal ausgelöst. Gleichzeitig werden die überkauften und überverkauften Bereiche (+40/-40) festgelegt, um die Zuverlässigkeit des Signals zu bestätigen.
Hierbei handelt es sich um eine ausgereifte Handelsstrategie auf Basis des SMI-Indikators. Sie generiert Handelssignale durch die Überkreuzung technischer Indikatoren und ist äußerst praxistauglich. Der Hauptvorteil dieser Strategie besteht darin, dass das Signal klar und äußerst resistent gegenüber Rauschen ist, es kommt jedoch auch zu einer gewissen Verzögerung. Durch das Hinzufügen von Optimierungsmaßnahmen wie Volumenüberprüfung und Trendfilterung können die Stabilität und Zuverlässigkeit der Strategie weiter verbessert werden. Diese Strategie eignet sich besonders für die Verfolgung mittel- und langfristiger Trends und ist eine gute Wahl für Anleger, die ein systematisches Handelssystem 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!")