यह रणनीति चैंडे क्रॉल स्टॉप लॉस इंडिकेटर और औसत दिशात्मक आंदोलन सूचकांक (एडीएक्स) इंडिकेटर को एक अपेक्षाकृत सरल ट्रेंड फॉलोइंग रणनीति को लागू करने के लिए जोड़ती है। चैंडे क्रॉल स्टॉप लॉस का उपयोग लंबे और छोटे प्रवेश संकेत उत्पन्न करने के लिए किया जाता है, जबकि एडीएक्स गैर-दिशात्मक अस्थिरता से बार-बार स्टॉप लॉस को ट्रिगर करने से बचने के लिए एक स्पष्ट प्रवृत्ति के बिना बाजार की स्थितियों को फ़िल्टर करता है।
रणनीति पहले चैंडे क्रॉल स्टॉप लॉस की लंबी स्टॉप लंबी और छोटी स्टॉप शॉर्ट लाइनों की गणना करती है। लंबी लाइन पिछली पी पीरियड्स में उच्चतम मूल्य के आधार पर गणना की जाती है। छोटी लाइन पिछली पी पीरियड्स में सबसे कम मूल्य के आधार पर गणना की जाती है। पिछली q पीरियड्स में लंबी और छोटी लाइनों के उच्चतम बिंदु का उपयोग वर्तमान लंबी और छोटी स्टॉप लॉस लाइनों के रूप में किया जाता है। यह अल्पकालिक मूल्य उतार-चढ़ाव को फ़िल्टर करता है और केवल प्रवृत्ति उलट बिंदुओं पर स्टॉप लॉस को ट्रिगर करता है।
जब समापन मूल्य लघु रेखा stop_short से ऊपर पार करता है, तो एक लंबा संकेत उत्पन्न होता है. जब समापन मूल्य लंबी रेखा stop_long से नीचे पार करता है, तो एक छोटा संकेत उत्पन्न होता है.
इसके अलावा, ADX संकेतक का उपयोग प्रवृत्ति की ताकत का न्याय करने के लिए किया जाता है। केवल जब ADX सीमा से अधिक होता है तो स्टॉप लॉस सिग्नल प्रवेश को ट्रिगर करेगा। यह समेकन में गैर-दिशात्मक व्हिपसा को फ़िल्टर करता है।
यह रणनीति ट्रेंड इंडिकेटर और स्टॉप लॉस इंडिकेटर के फायदों को जोड़ती है। यह गैर-दिशात्मक बाजारों में विप्सस से बचते हुए समय पर ट्रेंड रिवर्स को कैप्चर कर सकती है। चांडे क्रॉल स्टॉप लॉस पैरामीटर का अनुकूलन फ़िल्टरिंग को चिकनी कर सकता है और केवल ट्रेंड रिवर्स बिंदुओं पर स्टॉप लॉस सुनिश्चित कर सकता है। एडीएक्स इंडिकेटर केवल तब प्रवेश सुनिश्चित करता है जब ट्रेंड महत्वपूर्ण होता है, बाजार समेकन के दौरान स्टॉप लॉस विप्सस से बचता है।
अनुचित ADX पैरामीटर सेटिंग्स रुझानों की शुरुआत में अवसरों को याद कर सकती हैं। यदि ADX सीमा बहुत अधिक सेट की जाती है, तो रुझानों की शुरुआत में प्रवेश के अवसरों को याद किया जा सकता है जब ADX मान अभी भी कम हैं।
स्टॉप लॉस पॉइंट जो बहुत करीब हैं, वे रणनीति पदों के लगातार खुलने और बंद होने का कारण बन सकते हैं। इससे ट्रेडिंग और स्लिप-अप लागत में वृद्धि होगी। स्टॉप लॉस पॉइंट को उचित रूप से सेट करने की आवश्यकता है ताकि रुझानों के लिए कुछ स्थान दिया जा सके।
स्टॉप लॉस सिग्नल को केवल तभी ट्रिगर करने की अनुमति देने पर विचार करें जब ADX एक सीमा से ऊपर टूट जाता है। इससे प्रवेश समय की विश्वसनीयता में सुधार हो सकता है। अन्य प्रवृत्ति संकेतक को संयोजक स्थितियों के लिए भी जोड़ा जा सकता है, जैसे ADX मूल्यों को EMA ढलानों के साथ जोड़ना।
स्टॉप लॉस लाइनों को एटीआर के आधार पर गतिशील रूप से समायोजित भी किया जा सकता है, जिससे अत्यधिक संवेदनशीलता से बचने के लिए बाजार की अस्थिरता बढ़ने पर व्यापक स्टॉप की अनुमति मिलती है। या मैकडी का उपयोग ट्रेंड की ताकत का मूल्यांकन करने और गतिशील रूप से स्टॉप लॉस लाइनों को समायोजित करने के लिए किया जा सकता है।
रणनीति एक अपेक्षाकृत सरल और व्यावहारिक प्रवृत्ति निम्नलिखित रणनीति बनाने के लिए चैंडे क्रॉल स्टॉप लॉस और एडीएक्स संकेतकों की ताकत को एकीकृत करती है। पैरामीटर अनुकूलन के माध्यम से, रणनीति की स्थिरता और लाभप्रदता में और सुधार किया जा सकता है। लेकिन अत्यधिक स्टॉप लॉस संवेदनशीलता और अपर्याप्त एडीएक्स फ़िल्टरिंग के जोखिमों के लिए सावधान रहने की आवश्यकता है।
/*backtest start: 2022-10-30 00:00:00 end: 2023-06-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title = "Chande Kroll Stop", overlay=true) p = input.int(10, minval=1) x = input.int(1, minval=1) q = input.int(9, minval=1) first_high_stop = ta.highest(high, p) - x * ta.atr(p) first_low_stop = ta.lowest(low, p) + x * ta.atr(p) stop_short = ta.highest(first_high_stop, q) stop_long = ta.lowest(first_low_stop, q) plot(stop_long, color=color.blue) plot(stop_short, color=color.orange) adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") ADX_sig = input.int(20, title="minimum ADX threshold for signal") dirmov(len) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(plusDM, len) / truerange) minus = fixnan(100 * ta.rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) if ta.crossunder(close, stop_long) and sig>ADX_sig strategy.entry("long", strategy.long) if ta.crossover(close, stop_short) and sig>ADX_sig strategy.entry("short", strategy.short)