وسائل لوڈ ہو رہے ہیں... لوڈنگ...

حکمت عملی کے بعد متحرک بڑھتی ہوئی ADX رجحان

مصنف:چاؤ ژانگ، تاریخ: 2023-12-11 17:18:32
ٹیگز:

img

جائزہ

یہ حکمت عملی ADX اشارے کی متحرک تبدیلیوں کو ٹریک کرتی ہے تاکہ بروقت رجحان کی پیروی کے لئے مارکیٹ کے رجحانات میں ابتدائی تبدیلیوں کو حاصل کیا جاسکے۔ جب ADX کم سطحوں سے تیزی سے بڑھتا ہے تو ، یہ اشارہ کرتا ہے کہ ایک رجحان تشکیل دے رہا ہے جس میں داخل ہونے کا ایک بہت بڑا موقع موجود ہے۔ حرکت پذیر اوسط کی مدد سے ، یہ غلط سگنل کو مؤثر طریقے سے فلٹر کرسکتا ہے۔

حکمت عملی منطق

اس حکمت عملی کا مرکز ADX اشارے کی متحرک تبدیلیوں کی بنیاد پر رجحان کی ترقی کا فیصلہ کرنے میں ہے۔ کم ADX رجحانات میں چھوٹے اتار چڑھاو کا مطلب ہے۔ جب ADX کم سطحوں سے تیزی سے بڑھتا ہے تو ، یہ اشارہ کرتا ہے کہ ایک رجحان تشکیل دے رہا ہے۔ یہ حکمت عملی ADX کے تیز اضافے کی نگرانی کرکے رجحان کے ظہور کو پکڑتی ہے۔

خاص طور پر، داخلہ سگنل مندرجہ ذیل عوامل پر مشتمل ہے:

  1. ADX ایک حد سے تجاوز کرتا ہے (مثال کے طور پر 10)
  2. ADX تیزی سے اوپر کی طرف بڑھتا ہے
  3. قیمت سادہ یا افقی چلتی اوسط سے اوپر کراس کرتی ہے

جب مذکورہ بالا تمام شرائط پوری ہوجاتی ہیں تو ، اس سے یہ اشارہ ہوتا ہے کہ طویل عرصے تک جانے کے لئے ایک اپ ٹرینڈ تشکیل دے رہا ہے۔ جب قیمت چلتی اوسط سے نیچے آجاتی ہے تو ، پوزیشنیں بند ہوجاتی ہیں۔ دو چلتی اوسطوں کا استعمال رجحانات کو زیادہ درست طریقے سے فیصلہ کرنے کے لئے کیا جاتا ہے۔

اسٹاپ نقصان کا منطق بھی اسی طرح کا ہے۔ جب ADX تیزی سے گرتا ہے تو مختصر ہوجائیں ، اور جب قیمت بڑھتی ہوئی اوسط سے اوپر ہوجاتی ہے تو پوزیشن بند ہوجائیں۔

فوائد کا تجزیہ

یہاں سب سے بڑا فائدہ ابھرتے ہوئے رجحانات کو بروقت گرفت میں لینا ہے۔ مطلق ADX اقدار کو دیکھنے کا روایتی طریقہ اکثر رجحان کو کال کرنے کے لئے 20 یا 25 سے زیادہ کی تصدیق کی ضرورت ہوتی ہے ، اس طرح مثالی انٹری ٹائمنگ سے محروم ہوجاتا ہے۔ یہ حکمت عملی ADX کے تیزی سے اضافے کو ٹریک کرکے رجحان کی ابتدائی ترقی کو پکڑتی ہے۔

اس کے علاوہ، چلتی اوسط مؤثر طریقے سے غلط سگنل کو فلٹر کرنے میں مدد کرتی ہے، حکمت عملی کی استحکام کو بڑھانے میں مدد ملتی ہے.

خطرہ اور اصلاح کا تجزیہ

سب سے بڑا خطرہ خود ADX کی پسماندہ نوعیت سے آتا ہے۔ پسماندہ کو کم کرنے کے لئے تیزی سے اضافے کو پکڑنے کے باوجود ، ابھی بھی کچھ تاخیر ہے۔ اس سے کچھ تیزی سے الٹ جانے والی منڈیوں میں کمی واقع ہوتی ہے۔

مزید برآں ، 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)

مزید