ADX کراس اوور ٹرینڈ ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-08 15:49:12
ٹیگز:

img

جائزہ

یہ حکمت عملی مارکیٹ کی سمت اور انعقاد کی مدت کا تعین کرنے کے لئے ڈائریکشنل موومنٹ انڈیکس (ADX) ، پلس ڈائریکشنل انڈیکیٹر (DI +) اور تیز اور سست حرکت پذیر اوسطوں کو جوڑتی ہے۔ یہ رجحان کے بعد ٹریڈنگ کی حکمت عملیوں سے تعلق رکھتی ہے۔ یہ حکمت عملی درمیانی اور مختصر مدت میں الٹ پوائنٹس کو مؤثر طریقے سے پکڑ سکتی ہے اور کم اتار چڑھاؤ اور واضح رجحان مارکیٹوں میں اچھی کارکردگی کا مظاہرہ کرتی ہے۔

اصول

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

خاص طور پر خریدنے کا اشارہ اس وقت دیا جائے گا جب مندرجہ ذیل شرائط پوری ہو جائیں:

  1. تیز EMA سست EMA سے اوپر ہے
  2. +DI لائن اوپر کی طرف ADX لائن کو عبور کرتی ہے
  3. ADX قدر 30 کی حد سے کم ہے

فروخت کا اشارہ تب شروع کیا جائے گا جب مندرجہ ذیل شرائط پوری ہوں:

  1. ADX کی قیمت 30 کی حد سے زیادہ ہے
  2. +DI لائن نیچے کی طرف ADX لائن کو عبور کرتی ہے

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

فوائد

اس حکمت عملی میں مارکیٹ کے رجحانات میں موڑ کو مؤثر طریقے سے طے کرنے کے لئے DI ، ADX اور چلتی اوسط اشارے کو جوڑ دیا گیا ہے۔ اہم فوائد یہ ہیں:

  1. داخلہ اور باہر نکلنے کے مقامات کو درست طریقے سے تعین کرنے کے لئے DI اور ADX کراس اوورز کا استعمال کریں
  2. تیز اور سست ای ایم اے فلٹر سسٹم جو مارکیٹ کے مجموعی رجحان کا تعین کرتا ہے ، خراب تجارت سے بچتا ہے
  3. رجحان کی طاقت کا تعین کرنے کے لئے ADX اقدار کا استعمال کریں ، صرف تب ہی تجارت کریں جب رجحان کمزور ہو ، جھوٹے بریک آؤٹ سے بچیں
  4. نیچے کی طرف خطرے کو کنٹرول کرنے کے لئے سٹاپ نقصان کے میکانزم کو شامل کریں
  5. داخلے کی سخت شرائط اوپر خریدنے اور نیچے فروخت کرنے سے بچیں
  6. واضح باہر نکلنے کے قوانین بروقت سٹاپ نقصانات اور منافع لینے کی اجازت دیتے ہیں

خطرات

اس حکمت عملی کے ساتھ نوٹ کرنے کے لئے کچھ خطرات ہیں:

  1. ADX اشارے میں تاخیر کا اثر ہے، قیمتوں میں تبدیلی کے لئے بہترین وقت کو یاد کر سکتا ہے
  2. جب مارکیٹ میں اتار چڑھاؤ زیادہ ہوتا ہے تو زیادہ غلط سگنل سامنے آسکتے ہیں
  3. غلط تیز رفتار اور سست EMA ترتیبات کھو تجارت یا درست سگنل فلٹرنگ کی قیادت کر سکتے ہیں
  4. سٹاپ نقصان کی سطح بہت زیادہ مقرر ہے، مؤثر طریقے سے خطرے کو کنٹرول کرنے میں ناکام ہے

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

بہتر مواقع

مزید بہتری کی گنجائش ہے:

  1. زیادہ سے زیادہ مجموعے تلاش کرنے کے لئے مختلف لمبائی کے ادوار کے ٹیسٹ ADX
  2. سگنل کی تصدیق کے لئے RSI، بولنگر بینڈ جیسے دیگر اشارے شامل کریں
  3. پیرامیٹرز اور قواعد کو خود بخود بہتر بنانے کے لئے مشین لرننگ الگورتھم کا استعمال کریں
  4. دیر سے مرحلے کے خطرات کو کم کرنے کے لئے اسٹاپ نقصان کی سطح کو متحرک طور پر ایڈجسٹ کریں
  5. داخلہ اور باہر نکلنے کے معیار کو زیادہ مضبوط بنانے کے لئے کثیر عنصر سکورنگ ماڈل کی تعمیر

نتیجہ

عام طور پر یہ 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     

مزید