
Die Strategie nutzt die KDJ-Indikator und den Moving Average ((MA) zur Identifizierung von Markttrends und zur Erzeugung von Handelssignalen. Sie erzeugt ein Short-Signal, wenn der KDJ-Indikator die Überkaufzone überschreitet und der Preis den MA überschreitet. Sie erzeugt ein Plus-Signal, wenn der KDJ-Indikator unter dem Überverkaufszone liegt und der Preis den MA überschreitet. Durch die Kombination der KDJ-Indikator und des MA zur Trendbestätigung kann die Strategie die Markttrends besser erfassen und gleichzeitig falsche Signale für schwache Verhaltensweisen vermeiden.
Durch die Kombination von KDJ-Indikatoren und Moving Averages ist die Strategie in der Lage, Markttrends besser zu erfassen und Handelssignale zu erzeugen. Überkauf-Überverkauf-Informationen und die Richtung der Tendenz können vernünftigerweise genutzt werden, um eine solide Handelsperformance zu erzielen. Es gibt jedoch noch Spielraum für Optimierungen, z. B. die Einführung von mehr Filterbedingungen, dynamischen Positionsmanagement und Stop-Loss-Stopps, um die Strategie weiter zu verbessern.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("KDJ Trending View with Signals and MA Strategy", overlay=true)
// KDJ Settings
kdjLength = input.int(9, title="KDJ Length")
kdjSignal = input.int(3, title="KDJ Signal")
kdjOverbought = input.int(80, title="KDJ Overbought Level")
kdjOversold = input.int(20, title="KDJ Oversold Level")
// Margin Settings
longMargin = input.float(2.0, title="Long Margin", step=0.01)
shortMargin = input.float(2.0, title="Short Margin", step=0.01)
// MA Settings
maLength = input.int(20, title="MA Length")
maType = input.string("SMA", title="MA Type (SMA, EMA, etc.)")
// Calculate KDJ
kdj_highest = ta.highest(high, kdjLength)
kdj_lowest = ta.lowest(low, kdjLength)
kdjRSV = 100 * ((close - kdj_lowest) / (kdj_highest - kdj_lowest))
kdjK = ta.sma(kdjRSV, kdjSignal)
kdjD = ta.sma(kdjK, kdjSignal)
kdjJ = 3 * kdjK - 2 * kdjD
// Calculate Moving Average
ma = ta.sma(close, maLength) // SMA kullanarak ortalama hesaplama
// Determine MA Direction
maCrossUp = ta.crossover(close, ma)
maCrossDown = ta.crossunder(close, ma)
// Plot MA with Direction Color Change
maColor = maCrossUp ? color.green : maCrossDown ? color.red : color.gray
plot(ma, color=maColor, title="Moving Average")
// Plot Trading Signals
plotshape(kdjJ >= kdjOverbought ? low : na, style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small, title="Short Signal")
plotshape(kdjJ <= kdjOversold ? high : na, style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small, title="Long Signal")
// Trading Strategy with Manual Margin and MA Strategy
if (kdjJ >= kdjOverbought and maCrossDown)
strategy.entry("Short", strategy.short, qty=1, comment="Short Entry")
if (kdjJ <= kdjOversold and maCrossUp)
strategy.entry("Long", strategy.long, qty=1, comment="Long Entry")