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