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