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