यह रणनीति बाजार की प्रवृत्ति की पहचान करने और ट्रेडिंग सिग्नल उत्पन्न करने के लिए KDJ सूचक और चलती औसत ((MA) का उपयोग करती है। जब KDJ सूचक ओवरबॉट क्षेत्र से अधिक होता है और कीमत MA से नीचे गिरती है तो यह एक शून्य संकेत उत्पन्न करता है; जब KDJ सूचक ओवरबॉट क्षेत्र से कम होता है और कीमत MA से अधिक होती है तो यह एक अधिक संकेत उत्पन्न करता है। KDJ सूचक और MA के संयोजन से प्रवृत्ति की पुष्टि करके, यह रणनीति बाजार की प्रवृत्ति को बेहतर ढंग से पकड़ सकती है, जबकि अस्थिरता के झूठे संकेतों से बचती है।
यह रणनीति केडीजे सूचक और चलती औसत के संयोजन के माध्यम से बाजार के रुझानों को बेहतर ढंग से पकड़ने और ट्रेडिंग सिग्नल उत्पन्न करने में सक्षम है। ओवरबॉट और ओवरसोल जानकारी और प्रवृत्ति की दिशा का उचित उपयोग करके, एक मजबूत व्यापार प्रदर्शन प्राप्त किया जा सकता है। लेकिन रणनीति में अनुकूलन के लिए जगह है, जैसे कि अधिक फ़िल्टरिंग स्थितियों, गतिशील स्थिति प्रबंधन और स्टॉप लॉस स्टॉप आदि को पेश करना, ताकि रणनीति की स्थिरता और लाभप्रदता को और बढ़ाया जा सके। रणनीति को वास्तविक अनुप्रयोगों में विभिन्न बाजार स्थितियों और मापदंडों के लिए अनुकूलन और परीक्षण की आवश्यकता होती है, ताकि इसकी प्रभावशीलता और प्रयोज्यता को सत्यापित किया जा सके।
/*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")