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