یہ حکمت عملی ADX اشارے میں متحرک تبدیلیوں کی پیروی کرکے ، مارکیٹ کے رجحانات میں ابتدائی تبدیلیوں کو پکڑنے کے لئے ، رجحانات کی بروقت نگرانی کو یقینی بناتی ہے۔ جب ADX تیزی سے نچلی سطح سے اوپر جاتا ہے تو ، یہ ظاہر ہوتا ہے کہ رجحانات تشکیل دے رہے ہیں ، یہ داخل ہونے کا ایک اچھا وقت ہے۔
یہ حکمت عملی بنیادی طور پر ADX اشارے کی متحرک تبدیلیوں کی بنیاد پر رجحان کی ترقی کا فیصلہ کرتی ہے۔ ADX اشارے کم ہونے پر ، اس رجحان میں بہت کم تبدیلی کی نمائندگی کرتا ہے۔ جب ADX کم سے تیزی سے بڑھتا ہے تو ، اس بات کی نشاندہی کرتا ہے کہ رجحان تشکیل دے رہا ہے۔ حکمت عملی ADX کی تیزی سے اضافے کی نگرانی کرکے رجحان کی ترقی کو پکڑنے کے لئے۔
خاص طور پر ، حکمت عملی میں داخلے کے فیصلے میں درج ذیل شرائط شامل ہیں:
جب مذکورہ بالا شرائط ایک ساتھ مل جاتی ہیں تو ، اس کی نمائندگی کرتا ہے کہ ایک رجحان تشکیل دے رہا ہے ، اور اس سے بھی زیادہ؛ جب حرکت پذیر اوسط کو عبور کرتے وقت ، فلیٹ پوزیشن۔ دو حرکت پذیر اوسط کا استعمال کرتے ہوئے ، رجحان کی ترقی کا زیادہ درست اندازہ لگایا جاسکتا ہے۔
اسٹاپ نقصان کی شرائط بھی اسی طرح کی ہیں ، جب ADX نیچے کی طرف تیزی سے گرتا ہے تو ، اس سے خالی ہوجاتا ہے۔ جب قیمت نیچے کی طرف بڑھتی ہوئی اوسط سے نیچے ہوتی ہے تو ، اس سے خالی ہوجاتا ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ بروقت رجحان کی ترقی کو پکڑنے میں ہے۔ روایتی طور پر صرف ADX کے اعداد و شمار کو دیکھنے کا طریقہ ، رجحان کی تصدیق کرنے کے لئے اکثر ADX 20 یا 25 تک بڑھنے کا انتظار کرنا پڑتا ہے ، جس سے داخلے کا بہترین وقت ضائع ہوجاتا ہے۔ یہ حکمت عملی ADX کے تیزی سے عروج کو ٹریک کرکے رجحان کی ترقی کو بڑے پیمانے پر پکڑ سکتی ہے۔
اس کے علاوہ ، حکمت عملی میں ایک متحرک اوسط بھی شامل ہے جو اس کی مدد سے اس کی استحکام کو بہتر بنانے کے لئے کچھ غلط تشخیصوں کو مؤثر طریقے سے فلٹر کرسکتا ہے۔
اس حکمت عملی کا سب سے بڑا خطرہ ADX اشارے کی خود کی تاخیر ہے۔ اگرچہ تیزی سے عروج کی پیروی کرکے تاخیر کو کم کیا جاسکتا ہے ، لیکن کچھ تاخیر باقی ہے۔ اس سے کچھ تیزی سے الٹ جانے والی منڈیوں کو پکڑنے میں ناکام ہوجاتا ہے۔
اس کے علاوہ ، رجحانات کے بارے میں ADX اشارے 100 فیصد درست نہیں ہیں ، اور اس کی وجہ سے کچھ غلط تشخیص بھی ہوسکتی ہے۔ اگرچہ چلتی اوسط متعارف کرانے سے کچھ شور کو فلٹر کیا جاسکتا ہے ، لیکن اس میں مزید اصلاح کی ضرورت ہے۔
اس حکمت عملی میں بہت زیادہ اصلاح کی گنجائش موجود ہے ، اس کی کلید 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)