
Dies ist eine komplexe Handelsstrategie, die einen SuperTrend-Indikator und einen Stochastic Oscillator kombiniert. Die Strategie nutzt den SuperTrend-Indikator, um die Richtung der Markttrends zu identifizieren, und verwendet den Stochastic Oscillator, um die Preisbewegung zu bestätigen, um eine genauere Handelssignalgeneration zu ermöglichen. Die Strategie verwendet den ATR als Referenz für die Volatilität und verfolgt die Trends durch dynamische Anpassung der Unterstützungs-/Widerstandsposition.
Die Kernlogik der Strategie basiert auf folgenden wichtigen Komponenten:
Durch die Kombination von SuperTrend und Zufallsschwankungsindikatoren wird eine organische Kombination aus Trendverfolgung und Dynamikbestätigung erreicht. Die Strategie ist vernünftig ausgelegt und verfügt über eine gute Anpassungsfähigkeit und Anpassungsfähigkeit. Durch die optimierte Richtung der Empfehlungen werden die Stabilität und die Profitabilität der Strategie voraussichtlich weiter verbessert.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("SuperTrend + Stochastic Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Vstupy ===
// SuperTrend
atrPeriod = input.int(10, title="ATR Period", minval=1)
multiplier = input.float(3.0, title="SuperTrend Multiplier", step=0.1)
// Stochastic Oscillator
kPeriod = input.int(14, title="%K Period", minval=1)
dPeriod = input.int(3, title="%D Period", minval=1)
smoothK = input.int(3, title="Smooth %K", minval=1)
// === Výpočty Indikátorov ===
// Výpočet ATR
atr = ta.atr(atrPeriod)
// Výpočet SuperTrend
upperBasic = (ta.highest(high, 1) + ta.lowest(low, 1)) / 2 + (multiplier * atr)
lowerBasic = (ta.highest(high, 1) + ta.lowest(low, 1)) / 2 - (multiplier * atr)
var float upperBand = na
var float lowerBand = na
var bool isBullish = true
if (na(upperBand[1]))
upperBand := upperBasic
lowerBand := lowerBasic
else
upperBand := close[1] > upperBand[1] ? math.max(upperBasic, upperBand[1]) : upperBasic
lowerBand := close[1] < lowerBand[1] ? math.min(lowerBasic, lowerBand[1]) : lowerBasic
isBullish := close > upperBand[1] ? true : close < lowerBand[1] ? false : isBullish[1]
// Výpočet Stochastic Oscillator
stochK = ta.sma(ta.stoch(high, low, close, kPeriod), smoothK)
stochD = ta.sma(stochK, dPeriod)
// === Podmienky Pre Vstupy ===
// Nákupný signál
longCondition = isBullish and ta.crossover(stochK, stochD) and stochK < 20
// Predajný signál
shortCondition = not isBullish and ta.crossunder(stochK, stochD) and stochK > 80
// === Vstupné Signály ===
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// === Výstupné Podmienky ===
// Môžete pridať vlastné podmienky pre uzatvorenie pozícií alebo použitie stop-loss/take-profit
// === Vykreslenie Indikátorov na Grafe ===
// Vykreslenie SuperTrend
plot(isBullish ? upperBand : na, color=color.green, title="SuperTrend Up", linewidth=2)
plot(not isBullish ? lowerBand : na, color=color.red, title="SuperTrend Down", linewidth=2)
fill(plot(isBullish ? upperBand : na, color=color.green), plot(not isBullish ? lowerBand : na, color=color.red), color=isBullish ? color.new(color.green, 90) : color.new(color.red, 90), title="SuperTrend Fill")
// Vykreslenie Stochastic Oscillator na samostatnom okne
hline(80, "Overbought", color=color.red, linestyle=hline.style_dotted)
hline(20, "Oversold", color=color.green, linestyle=hline.style_dotted)
plot(stochK, color=color.blue, title="%K")
plot(stochD, color=color.orange, title="%D")
// Vizualizácia Signálov
plotshape(series=longCondition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="Long")
plotshape(series=shortCondition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="Short")