Diese Strategie integriert mehrere technische Indikatoren und Handelskonzepte, um automatisch Kauf- und Verkaufssignale zu generieren.
Anpassungs-UTSTC-Indikator: Ein adaptives Trailing-Stopp, das auf der Grundlage des durchschnittlichen wahren Bereichs zur Anpassung des Stop-Loss-Bereichs an die Marktvolatilität verwendet wird.
STC-Indikator: Unterschied zwischen schnellen und langsamen einfachen gleitenden Durchschnitten zur Bestimmung der Markttrendrichtung und der möglichen Umkehrpunkte.
Einfache gleitende Durchschnitte (SMA) und exponentielle gleitende Durchschnitte (EMA): Erstellen von gleitenden Durchschnitten für verschiedene Zeiträume zur Bereitstellung zusätzlicher Trendinformationen.
Kaufsignal: Wird erzeugt, wenn der Schlusskurs über die UTSTC-Linie überschreitet und STC in einem Aufwärtszustand ist.
Verkaufssignal: Wird erzeugt, wenn der Schlusskurs unterhalb der UTSTC-Linie überschreitet und STC im Bärenzustand ist.
Integriert mehrere Indikatoren zur Bestimmung des Markttrends und verbessert die Signalgenauigkeit.
Die UTSTC passt die Stopps automatisch anhand der tatsächlichen Volatilität an und kontrolliert damit effektiv Verluste pro Handel.
Einfache und effektive Handelssignale von gleitenden Durchschnittskreuzungen.
Verschiedene Parameterkombinationen bieten mehr Marktumgebungen.
Trendindikatoren wie STC können kurzfristige Umkehrungen verfehlen.
Bewegliche Durchschnittskreuze können falsche Signale erzeugen.
Eine sorgfältige Beurteilung der erforderlichen Parameter, unpassende Kombinationen können die Gewinne reduzieren oder die Verluste erhöhen.
Ein zu breiter Stop-Loss-Bereich kann die Verluste erhöhen, ein zu knappes Stop-Loss-Bereich kann zu früh ausfallen.
Versuche verschiedene STC-Längen, um Einstellungen mit minimaler Strategiewirkung zu finden.
Zusätzliche Filter zur Verringerung falscher Signale, z. B. KDJ, MACD.
Optimieren Sie die Stopps basierend auf den Rücktestresultaten, um die beste Parametermischung zu finden.
Es werden verschiedene Aufbewahrungszeiten ausgewertet, um das optimale Ergebnis zu ermitteln.
Diese Strategie kombiniert Trend, automatisierte Stopps und Signalmodule zu einem ziemlich vollständigen algorithmischen Handelsrahmen. Mit Parameter-Tuning und Feature-Erweiterung können stabile Gewinne erzielt werden, aber keine Strategie kann Verluste vollständig vermeiden. Eine ordnungsgemäße Validierung und Risikokontrolle ist immer noch essentiell.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("OB+LQ+UTSTC+SMA+EMA-NORA-MIP21-Jashore-Bangladesh-OneMinuteTF", shorttitle="OB+LS+UTSTC-MIP21-Jashore-Bangladesh-OneMinuteTF", overlay=true) // Order Block + Liquidity Swings [NORA] Settings pivot_length = input(14, title="Pivot Lookback") bull_ext_last = input(3, title="Bullish OB Extension") bear_ext_last = input(3, title="Bearish OB Extension") swing_length = input(5, title="Swing Length") area = input("Wick Extremity", title="Swing Area", options=["Wick Extremity", "Full Range"]) min_profit = input(0.5, title="Minimum Profit Target") max_loss = input(0.5, title="Maximum Loss Stop") // Variables var float bull_ob_price = na var float bear_ob_price = na var float swing_high = na var float swing_low = na // Calculate Order Block Prices var float low_lowest = na var float high_highest = na if bar_index >= pivot_length low_lowest := lowest(low, pivot_length) high_highest := highest(high, pivot_length) bull_ob_price := low_lowest bear_ob_price := high_highest // Calculate Swing High/Low Prices var float low_lowest_swing = na var float high_highest_swing = na if area == "Wick Extremity" low_lowest_swing := lowest(low, swing_length) high_highest_swing := highest(high, swing_length) else low_lowest_swing := lowest(high - low, swing_length) high_highest_swing := highest(high - low, swing_length) swing_low := low_lowest_swing swing_high := high_highest_swing // Trading Logic for Order Block + Liquidity Swings buy_liquidity = crossover(close, bull_ob_price) and close > swing_low sell_liquidity = crossunder(close, bear_ob_price) and close < swing_high // Plot Buy/Sell Signals for Order Block + Liquidity Swings plotshape(series=buy_liquidity, style=shape.labelup, location=location.belowbar, color=color.rgb(39, 166, 175), size=size.small, title="Bullish LQ") plotshape(series=sell_liquidity, style=shape.labeldown, location=location.abovebar, color=color.rgb(248, 95, 215), size=size.small, title="Bearish LQ") // UTSTC-SMA-EMA-NORA-New Settings keyvalue = input(3, title="UT Bot Key Value", step=0.5) atrperiod = input(10, title="UT Bot ATR Period") src = close xATR = atr(atrperiod) nLoss = keyvalue * xATR xATRTrailingStop = 0.0 xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss), iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss))) pos = 0 pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1, iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue plot(xATRTrailingStop, color=xcolor, title="UT Bot Trailing Stop") // STC Settings stc_length = input(12, title="STC Length") fastLength = input(26, title="STC Fast Length") slowLength = input(50, title="STC Slow Length") fastMA = ema(close, fastLength) slowMA = ema(close, slowLength) STC = fastMA - slowMA STCColor = STC > STC[1] ? color.green : color.red plot(STC, color=STCColor, title="STC") // Add SMAs sma21 = sma(close, 21) sma44 = sma(close, 44) plot(sma21, color=color.blue, title="SMA 21") plot(sma44, color=color.orange, title="SMA 44") // Add EMA ema5 = ema(close, 5) plot(ema5, color=color.yellow, title="EMA 5") // Combined Strategy buySignal = crossover(src, xATRTrailingStop) and STC < 25 and STCColor == color.green sellSignal = crossunder(src, xATRTrailingStop) and STC > 75 and STCColor == color.red // Plot Buy and Sell signals as triangles plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) strategy.entry("Buy", strategy.long, when=buySignal) strategy.entry("Sell", strategy.short, when=sellSignal)