
Die Strategie integriert mehrere technische Indikatoren und Trading-Konzepte, die verwendet werden können, um automatisch Kauf- und Verkaufssignale zu erzeugen. Die Hauptmerkmale sind die Kombination von Trendanalyse-Indikatoren, um einen optimierten Stop-Loss zu erzielen und gleichzeitig Handelssignale zu erzeugen.
Benutzerdefinierte UTSTC-Indikatoren: Ein adaptiver Stop-Loss-Indikator basierend auf der durchschnittlichen tatsächlichen Breite, der den Stop-Loss-Bereich an die Marktvolatilität anpasst.
STC-Indikator: Differenz zwischen schnellen einfachen gleitenden Durchschnittswerten und langsamen einfachen gleitenden Durchschnittswerten, um die Richtung von Markttrends und potenzielle Wendepunkte zu bestimmen.
Einfache Moving Averages (SMA) und Index Moving Averages (EMA): Berechnung und Abbildung von Moving Averages für verschiedene Perioden, die zusätzliche Informationen zur Trendbeurteilung liefern.
Kaufsignal: entsteht, wenn der UTSTC-Indikator über dem Schlusskurs durchbrochen wird und der STC-Indikator in einem bullischen Zustand ist.
Verkaufssignal: Es wird erzeugt, wenn der Schlusskurs den UTSTC-Indikator unterbricht und der STC-Indikator in einem rückläufigen Zustand ist
Die Integration verschiedener Indikatoren zur Ermittlung von Markttrends verbessert die Signalgenauigkeit.
Der UTSTC-Indikator passt den Stop-Loss-Bereich automatisch an die tatsächliche Bandbreite an, um jeden Verlust effektiv zu kontrollieren.
Die Nutzung von Mittellinienkreuzungen erzeugt einfache und effektive Handelssignale.
Verschiedene Kombinationen von Parameter-Einstellungen sind für mehrere Marktumgebungen geeignet.
Trendschätzungen wie STC sind nachlässig und könnten kurzfristige Umkehrmöglichkeiten verpassen.
Ein gleichzeitiges Kreuzungssignal kann ein falsches Signal erzeugen.
Die Parameter-Einstellungen müssen sorgfältig bewertet werden, da eine falsche Kombination die Gewinne reduzieren oder die Verluste erhöhen kann.
Ein zu großer Stop-Loss-Bereich erhöht das Risiko von Verlusten, ein zu kleiner kann zu früh zu stoppen sein.
Testen Sie die STC-Parameter für die unterschiedlich langen Perioden, um die Einstellungen zu finden, die die Strategie am wenigsten beeinflussen.
Versuchen Sie, das falsche Signal in Kombination mit anderen Indikatoren zu filtern, z. B. KDJ, MACD usw.
Anpassung der Stop-Loss-Parameter an die Rückmeldungsergebnisse, um die optimale Kombination zu finden.
Bewerten Sie verschiedene Positionszeit-Einstellungen, um die optimale Positionszeit zu finden.
Die Strategie integriert mehrere Module für Trendbeurteilung, automatische Stop-Loss-Verwaltung und Trading-Signal-Beurteilung zu einem umfassenderen, quantifizierten Trading-Programm. Durch die Optimierung von Parametern und die Erweiterung von Funktionen können stabile Gewinne erzielt werden.
/*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)