यह रणनीति ADX संकेतक के गतिशील परिवर्तनों को समय पर ट्रेंड का पालन करने के लिए बाजार के रुझानों में शुरुआती बदलावों को पकड़ने के लिए ट्रैक करती है। जब ADX कम स्तरों से तेजी से बढ़ता है, तो यह संकेत देता है कि एक प्रवृत्ति बन रही है जो प्रवेश करने का एक बड़ा अवसर प्रस्तुत करती है। चलती औसत की सहायता से, यह गलत संकेतों को प्रभावी ढंग से फ़िल्टर कर सकता है।
इस रणनीति का मूल ADX संकेतक के गतिशील परिवर्तनों के आधार पर प्रवृत्ति विकास का न्याय करने में निहित है। कम ADX का अर्थ है प्रवृत्तियों में छोटे उतार-चढ़ाव। जब ADX कम स्तरों से तेजी से बढ़ता है, तो यह संकेत देता है कि एक प्रवृत्ति बन रही है। रणनीति ADX की तेज वृद्धि की निगरानी करके प्रवृत्ति के उद्भव को पकड़ती है।
विशेष रूप से, प्रवेश संकेत में निम्नलिखित कारक शामिल हैंः
जब उपरोक्त सभी शर्तें पूरी हो जाती हैं, तो यह संकेत देता है कि एक अपट्रेंड लंबे समय तक जाने के लिए बन रहा है। जब कीमत चलती औसत से नीचे गिर जाती है, तो बंद स्थिति। दो चलती औसत का उपयोग रुझानों को अधिक सटीक रूप से न्याय करने के लिए किया जाता है।
स्टॉप लॉस लॉजिक समान है. जब एडीएक्स तेजी से गिरता है तो शॉर्ट करें, और जब कीमत चलती औसत से ऊपर उठती है तो बंद करें।
यहाँ सबसे बड़ा बढ़त उभरते रुझानों को समय पर कैप्चर करना है। पूर्ण ADX मूल्यों को देखने के पारंपरिक तरीके में अक्सर एक प्रवृत्ति को कॉल करने के लिए 20 या 25 से ऊपर की पुष्टि की आवश्यकता होती है, इस प्रकार इष्टतम प्रवेश समय को याद किया जाता है। यह रणनीति ADX के तेजी से वृद्धि को ट्रैक करके प्रवृत्ति के शुरुआती विकास को पकड़ती है।
इसके अतिरिक्त, चलती औसत गलत संकेतों को प्रभावी ढंग से फ़िल्टर करने में मदद करती है, जिससे रणनीति की स्थिरता बढ़ जाती है।
सबसे बड़ा जोखिम स्वयं एडीएक्स की पिछड़ी प्रकृति से आता है। पिछड़ेपन को कम करने के लिए तेजी से वृद्धि को पकड़ने के बावजूद, अभी भी कुछ देरी है। इससे कुछ तेजी से उलट बाजारों को याद किया जाता है।
इसके अलावा, एडीएक्स प्रवृत्तियों का सही ढंग से आकलन नहीं करता है और समय-समय पर उन्हें गलत तरीके से निदान करता है। चलती औसत कुछ शोर को फ़िल्टर करती है लेकिन आगे अनुकूलन की आवश्यकता होती है।
इस रणनीति को अनुकूलित करने के लिए अभी भी काफी जगह है, मुख्य रूप से रुझानों को पकड़ने में ADX की सटीकता में सुधार। मशीन लर्निंग जैसे तरीकों का पता लगाया जा सकता है, ADX परिवर्तनों के आधार पर संभावना वितरण का पूर्वानुमान लगाने के लिए प्रशिक्षण मॉडल। पैरामीटर ट्यूनिंग, अतिरिक्त संकेतकों आदि जैसे अन्य पहलुओं का भी परीक्षण किया जा सकता है।
यह गतिशील बढ़ते ADX प्रवृत्ति के बाद की रणनीति तेजी से तेजी से बढ़ते ADX की पहचान करके प्रवृत्ति शिफ्ट को पकड़ती है, इस प्रकार समय पर प्रवृत्तियों का पालन करती है। सबसे बड़ा लाभ समय में इसकी चपलता है, प्रभावी रूप से शुरुआती प्रवृत्ति के विकास को जब्त करती है। इस बीच, गलत आकलन के कुछ जोखिम बने हुए हैं जो निरंतर अनुकूलन और परीक्षण की आवश्यकता है।
/*backtest start: 2023-12-03 00:00:00 end: 2023-12-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dhilipthegreat //@version=4 //Rising ADX strategy strategy(title="Rising ADX strategy", overlay=false) adxlen = input(14, title="ADX Length", minval=1) threshold = input(10, title="threshold", minval=5) hline(threshold, color=color.black, linestyle=hline.style_dashed) atype = input(2,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA") malen=input(20, title="Moving average 1 ",minval=1, maxval=50) avg = atype == 1 ? sma(close,malen) : atype == 2 ? ema(close,malen) : atype == 3 ? wma(close,malen) : atype == 4 ? hma(close,malen) : na atype2 = input(2,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA") malen2=input(20, title="Moving average 2",minval=1, maxval=200) avg2 = atype2 == 1 ? sma(close,malen2) : atype2 == 2 ? ema(close,malen2) : atype2 == 3 ? wma(close,malen2) : atype2 == 4 ? hma(close,malen2) : na //ADX&DI dilen = 14 dirmov(len,_high,_low,_tr) => up = change(_high) down = -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 = rma(_tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen,_high,_low,_tr) => [plus, minus] = dirmov(dilen,_high,_low,_tr) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) [plus, minus] = dirmov(dilen,high,low,tr) sig = adx(dilen, adxlen,high,low,tr) prev_sig = adx(dilen, adxlen,high[1],low[1],tr) plot(sig ? sig : na, color = rising(sig, 1) ? color.lime : falling(sig, 1) ? color.orange : color.purple, title="ADX",linewidth=2) ////// longCondition= sig > threshold and rising(sig, 1) and falling(prev_sig, 1) and close > avg and close > avg2 barcolor(longCondition ? color.yellow: na) Long_side = input(true, "Long side") if Long_side strategy.entry(id="Long", long=true, when= longCondition and strategy.position_size<1) exitCondition= (rising(prev_sig, 1) and falling(sig, 1)) or close < avg and close < avg2 strategy.close(id="Long",comment="L exit", qty=strategy.position_size , when= exitCondition) //close all shortCondition= sig > threshold and rising(sig, 1) and falling(prev_sig, 1) and close < avg and close < avg2 barcolor(shortCondition ? color.gray: na) Short_side = input(true, "Short side") if Short_side strategy.entry(id="Short", long=false, when= shortCondition and strategy.position_size<1) sell_exitCondition= (rising(prev_sig, 1) and falling(sig, 1)) or close > avg and close > avg2 strategy.close(id="Short",comment="S exit", qty=strategy.position_size , when= sell_exitCondition) //close all barcolor(strategy.position_size>1 ? color.lime: na) bgcolor(strategy.position_size>1 ? color.lime: na) barcolor(strategy.position_size<0 ? color.orange: na) bgcolor(strategy.position_size<0 ? color.orange: na)