ADX متحرک اوسط رجحان اشارے کی حکمت عملی


تخلیق کی تاریخ: 2024-01-15 15:32:45 آخر میں ترمیم کریں: 2024-01-15 15:32:45
کاپی: 0 کلکس کی تعداد: 584
1
پر توجہ دیں
1617
پیروکار

ADX متحرک اوسط رجحان اشارے کی حکمت عملی

جائزہ

ADX متحرک اوسط رجحان اشارے کی حکمت عملی ایک مقدار کی تجارت کی حکمت عملی ہے جس میں مارکیٹ کے رجحان کی طاقت اور رجحان کی سمت کا تعین کرنے کے لئے ADX اشارے کا استعمال کیا جاتا ہے۔ یہ حکمت عملی اوسط سمت اشارے ((ADX) کا حساب کرکے مارکیٹ میں رجحان موجود ہے یا نہیں ، اور مثبت اشارے ((DI +) اور منفی اشارے ((DI -)) کا حساب کرکے رجحان کی سمت کا تعین کرتی ہے ، جس سے خرید و فروخت کے سگنل پیدا ہوتے ہیں۔

حکمت عملی کا اصول

یہ حکمت عملی سب سے پہلے ADX اشارے کا استعمال کرتی ہے تاکہ یہ معلوم کیا جا سکے کہ آیا مارکیٹ میں کوئی رجحان موجود ہے۔ ADX صارف کے ذریعہ طے شدہ اہم اقدار سے زیادہ ہے (ڈیفالٹ 23) ، جس کا مطلب ہے کہ مارکیٹ میں مضبوط رجحان ہے۔ جب ADX کی موجودہ قیمت ADX سے پہلے n دن کی قیمت سے زیادہ ہے (ڈیفالٹ 3 دن) ، جس کا مطلب ہے کہ ADX بڑھ رہا ہے اور مارکیٹ کا رجحان تشکیل دے رہا ہے۔

اس کے بعد حکمت عملی مارکیٹ کے رجحان کی سمت کا تعین کرنے کے لئے DI + اور DI- کا استعمال کرتی ہے۔ جب DI + DI- سے زیادہ ہوتا ہے تو ، مارکیٹ اوپر کی طرف بڑھتی ہوئی رجحان میں ہوتی ہے۔ جب DI + DI- سے کم ہوتا ہے تو ، مارکیٹ نیچے کی طرف بڑھتی ہوئی رجحان میں ہوتی ہے۔

آخر میں ، حکمت عملی کا تجزیہ ADX اور DI کی صورتحال کا جائزہ لیتا ہے ، جس سے خرید اور فروخت کے مخصوص اشارے پیدا ہوتے ہیں:

  1. جب ADX بڑھتا ہے ، اہم سے زیادہ ہوتا ہے ، اور DI + DI - سے زیادہ ہوتا ہے تو ، خریدنے کا اشارہ ہوتا ہے
  2. جب ADX بڑھتا ہے ، اہم سے زیادہ ہوتا ہے ، اور DI + DI - سے کم ہوتا ہے ، تو فروخت کا اشارہ ہوتا ہے
  3. جب ADX نیچے کی طرف جاتا ہے تو ، قریب کا اشارہ پیدا ہوتا ہے

یہ حکمت عملی حرکت پذیری اوسط فلٹرنگ اور اپنی مرضی کے مطابق ریٹرننگ ٹائم رینج جیسے افعال بھی پیش کرتی ہے ، جو ضرورت کے مطابق تشکیل دی جاسکتی ہے۔

طاقت کا تجزیہ

ADX متحرک اوسط رجحان اشارے کی حکمت عملی کے مندرجہ ذیل فوائد ہیں:

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

خطرے کا تجزیہ

اس حکمت عملی کے کچھ خطرات بھی ہیں:

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

اس خطرے کو کم کرنے کے لئے، مندرجہ ذیل نکات پر غور کریں:

  1. ADX پیرامیٹرز کو مناسب طریقے سے مختصر کریں تاکہ تاخیر کو کم کیا جاسکے
  2. ڈی آئی فلٹر کو ایڈجسٹ یا حذف کریں تاکہ غلط سگنل سے بچ سکیں۔
  3. مناسب طریقے سے منتقل اوسط سائیکل کو کم کرنا
  4. تمام نمونوں کی جانچ کے لئے وقت کی حد میں اضافہ
  5. اشارے کے پیرامیٹرز کو بہتر بنائیں اور بہترین ترتیب تلاش کریں

اصلاح کی سمت

اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © millerrh with inspiration from @9e52f12edd034d28bdd5544e7ff92e 
//The intent behind this study is to look at ADX when it has an increasing slope and is above a user-defined key level (23 default). 
//This is to identify when it is trending.
//It then looks at the DMI levels.  If D+ is above D- and the ADX is sloping upwards and above the key level, it triggers a buy condition.  Opposite for short.
//Can use a user-defined moving average to filter long/short if desried.
// NOTE: THIS IS MEANT TO BE USED IN CONJUNCTION WITH MY "ATX TRIGGER" INDICATOR FOR VISUALIZATION. MAKE SURE SETTINGS ARE THE SAME FOR BOTH.

strategy("ADX | DMI Trend", overlay=true, initial_capital=10000, currency='USD', 
   default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.04)

// === BACKTEST RANGE ===
From_Year  = input(defval = 2019, title = "From Year")
From_Month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
From_Day   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
To_Year    = input(defval = 9999, title = "To Year")
To_Month   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
To_Day     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
Start  = timestamp(From_Year, From_Month, From_Day, 00, 00)  // backtest start window
Finish = timestamp(To_Year, To_Month, To_Day, 23, 59)        // backtest finish window

// == INPUTS ==
// ADX Info
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Period")
keyLevel = input(23, title="Keylevel for ADX")
adxLookback = input(3, title="Lookback Period for Slope")

// == FILTERING ==
// Inputs
useMaFilter = input(title = "Use MA for Filtering?", type = input.bool, defval = true)
maType = input(defval="EMA", options=["EMA", "SMA"], title = "MA Type For Filtering")
maLength   = input(defval = 200, title = "MA Period for Filtering", minval = 1)

// Declare function to be able to swap out EMA/SMA
ma(maType, src, length) =>
    maType == "EMA" ? ema(src, length) : sma(src, length) //Ternary Operator (if maType equals EMA, then do ema calc, else do sma calc)
maFilter = ma(maType, close, maLength)
plot(maFilter, title = "Trend Filter MA", color = color.green, linewidth = 3, style = plot.style_line, transp = 50)

// Check to see if the useMaFilter check box is checked, this then inputs this conditional "maFilterCheck" variable into the strategy entry 
maFilterCheck = if useMaFilter == true
    maFilter
else
    close

// == USE BUILT-IN DMI FUNCTION TO DETERMINE ADX AND BULL/BEAR STRENGTH
[diplus, diminus, adx] = dmi(dilen, adxlen)

buySignal = (adx[0]-adx[adxLookback] > 0) and adx > keyLevel and diplus > diminus  and close >= maFilterCheck
// buySignalValue = valuewhen(buySignal, close, 0)
shortSignal = (adx[0]-adx[adxLookback] > 0) and adx > keyLevel and diplus < diminus  and close <= maFilterCheck
// shortSignalValue = valuewhen(shortSignal, close, 0)
sellCoverSignal = adx[0]-adx[adxLookback] < 0

// == ENTRY & EXIT CRITERIA
// Triggers to be TRUE for it to fire of the BUY Signal : (opposite for the SELL signal).
// (1): Price is over the 200 EMA line. (EMA level configurable by the user)
// (2): "D+" is OVER the "D-" line
// (3): RSI 7 is under 30 (for SELL, RSI 7 is over 70)
// 1* = The ultimate is to have a combination line of 3 EMA values, EMA 14, EMA 50 and EMA 200 - And if price is over this "combo" line, then it's a strong signal

// == STRATEGY ENTRIES/EXITS == 
strategy.entry("Long", strategy.long, when = buySignal)
strategy.close("Long", when = sellCoverSignal)
strategy.entry("Short", strategy.short, when = shortSignal)
strategy.close("Short", when = sellCoverSignal)
    
// == ALERTS == 
// alertcondition(buySignal, title='ADX Trigger Buy', message='ADX Trigger Buy')
// alertcondition(sellSignal, title='ADX Trigger Sell', message='ADX Trigger Sell')