
यह रणनीति, बाजार की दिशा और प्रवृत्ति के लिए आधार प्रदान करने के लिए चलती सूचकांक औसत ((ADX) और ऊपर की ओर चलने वाले गतिशील सूचकांक ((DI +) का उपयोग करने के साथ-साथ ट्रेडिंग दिशा और होल्डिंग समय को निर्धारित करने के लिए तेजी से और धीमी गति से चलती औसत का उपयोग करती है। यह रणनीति ट्रेंड ट्रैकिंग ट्रेडिंग रणनीति के अंतर्गत आती है। यह रणनीति प्रभावी रूप से मध्य-लघु रेखा के उलट बिंदुओं को पकड़ सकती है और कम अस्थिरता और स्पष्ट रूप से प्रवृत्ति वाले बाजारों में बेहतर प्रदर्शन करती है।
इस रणनीति का मूल तर्क यह है कि जब + डीआई लाइन नीचे की ओर से एडीएक्स को तोड़ती है तो एक खरीद संकेत उत्पन्न होता है, और जब + डीआई लाइन ऊपर की ओर से नीचे की ओर से एडीएक्स को तोड़ती है तो एक बेचने का संकेत उत्पन्न होता है। इसलिए, यह रणनीति बाजार की प्रवृत्ति और रिवर्स पॉइंट का न्याय करने के लिए डीआई और एडीएक्स संकेतक के बीच के क्रॉसिंग पर निर्भर करती है। साथ ही, तेजी से या समान रेखा के संबंधों का उपयोग समग्र बाजार की प्रवृत्ति का न्याय करने के लिए किया जाता है, केवल जब तेजी से ईएमए धीमी ईएमए से अधिक होता है, तो व्यापार संकेत उत्पन्न करने के लिए विचार किया जाता है।
विशेष रूप से, जब निम्नलिखित शर्तें पूरी होती हैं, तो एक खरीद संकेत दिया जाता हैः 1। फास्ट ईएमए धीमी ईएमए से अधिक है 2। + डीआई लाइन नीचे की ओर से एडीएक्स लाइन को तोड़ती है 3। ADX 30 से कम का थ्रेशोल्ड स्तर
जब निम्नलिखित शर्तें पूरी हो जाती हैं, तो एक बेचने का संकेत दिया जाता हैः 1। ADX 30 से अधिक का थ्रेशोल्ड स्तर 2। + डीआई लाइन ऊपर से नीचे की ओर गिरती है ADX लाइन
इस रणनीति में स्टॉप लॉजिक भी शामिल है, जो स्टॉप मूल्य से कम होने पर सभी पदों से बाहर निकलता है।
यह रणनीति, डीआई, एडीएक्स और औसत रेखा संकेतकों के संयोजन के साथ, बाजार के रुझान के मोड़ को प्रभावी ढंग से निर्धारित कर सकती है। इसके निम्नलिखित फायदे हैंः
इस रणनीति के कुछ जोखिम भी हैं, जिनके बारे में ध्यान देने की आवश्यकता हैः
इन जोखिमों के लिए, ADX और औसत पैरामीटर को अनुकूलित करने, स्टॉप लॉस स्तर को समायोजित करने और अन्य संकेतकों के साथ संयोजन में सिग्नल की पुष्टि करने जैसे तरीकों से सुधार किया जा सकता है।
इस रणनीति को और भी बेहतर बनाने के लिए जगह हैः
एडीएक्स क्रॉस ट्रेंडिंग रणनीति समग्र रूप से स्थिर है, जो उतार-चढ़ाव के पूर्व में प्रतिवर्ती स्थान को प्रभावी ढंग से पकड़ने में सक्षम है, लेकिन जोखिम को नियंत्रित करने के लिए सावधानी बरतने की आवश्यकता है। बेहतर जोखिम-समायोजित रिटर्न प्राप्त करने के लिए पैरामीटर को और अनुकूलित करना, सख्त प्रवेश और रोकना नियम आदि। यह रणनीति लंबी लाइन में आयोजित शॉर्ट लाइन ट्रेडिंग खातों के लिए उपयुक्त है।
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © mohanee
//@version=4
//ADX strategy
SmoothedTrueRange=0.00
SmoothedDirectionalMovementPlus=0.00
SmoothedDirectionalMovementMinus=0.00
strategy(title="ADX strategy", overlay=false,pyramiding=3, default_qty_type=strategy.fixed, default_qty_value=3, initial_capital=10000, currency=currency.USD)
len = input(11, title="ADX Length", minval=1)
threshold = input(30, title="threshold", minval=5)
fastEma=input(13, title="Fast EMA",minval=1, maxval=50)
slowEma=input(55, title="Slow EMA",minval=10, maxval=200)
stopLoss =input(8, title="Stop Loss",minval=1) //
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedTrueRange:= nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus:= nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)
plot(DIPlus, color=color.green, title="DI+")
//plot(DIMinus, color=color.red, title="DI-")
plot(ADX, color=color.black, title="ADX")
hline(threshold, color=color.black, linestyle=hline.style_dashed)
fastEmaVal=ema(close,fastEma)
slowEmaVal=ema(close,slowEma)
//long condition
longCondition= ADX < threshold and crossover(DIPlus,ADX) and fastEmaVal > slowEmaVal
barcolor(longCondition ? color.yellow: na)
strategy.entry(id="ADXLE", long=true, when= longCondition and strategy.position_size<1)
barcolor(strategy.position_size>1 ? color.blue: na)
bgcolor(strategy.position_size>1 ? color.blue: na)
//Add
strategy.entry(id="ADXLE", comment="Add", long=true, when= strategy.position_size>1 and close<strategy.position_avg_price and crossover(DIPlus,ADX) )
//calculate stop Loss
stopLossVal = strategy.position_avg_price - (strategy.position_avg_price*stopLoss*0.01)
strategy.close(id="ADXLE",comment="SL Exit", when=close<stopLossVal) //close all on stop loss
//exit condition
exitCondition= ADX > threshold and crossunder(DIPlus,ADX) // and fastEmaVal > slowEmaVal
strategy.close(id="ADXLE",comment="TPExitAll", qty=strategy.position_size , when= exitCondition) //close all