متحرک رجحان سے باخبر رہنے اور اتار چڑھاؤ کو فلٹر کرنے کی حکمت عملی: ADX اور CI کی دوہری تصدیق پر مبنی اوسط کراس اوور سسٹم کو منتقل کرنا

ADX CI SMA DM TR ATR DI
تخلیق کی تاریخ: 2025-02-21 09:33:38 آخر میں ترمیم کریں: 2025-02-21 09:33:38
کاپی: 0 کلکس کی تعداد: 406
2
پر توجہ دیں
319
پیروکار

متحرک رجحان سے باخبر رہنے اور اتار چڑھاؤ کو فلٹر کرنے کی حکمت عملی: ADX اور CI کی دوہری تصدیق پر مبنی اوسط کراس اوور سسٹم کو منتقل کرنا متحرک رجحان سے باخبر رہنے اور اتار چڑھاؤ کو فلٹر کرنے کی حکمت عملی: ADX اور CI کی دوہری تصدیق پر مبنی اوسط کراس اوور سسٹم کو منتقل کرنا

جائزہ

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

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

اس حکمت عملی کی بنیادی منطق تین اہم اجزاء پر مشتمل ہے:

  1. ٹرینڈ سگنل جنریشن: 9 سائیکل اور 21 سائیکل ایس ایم اے کے کراس کا استعمال کرتے ہوئے رجحان کی سمت کا تعین کرنے کے لئے ، بنیادی تجارتی سگنل تشکیل دیں۔
  2. رجحان کی طاقت کی تصدیق: رجحان کی طاقت کی توثیق کرنے کے لئے ADX اشارے کے ذریعہ ((20 کی حد مقرر کریں) ، اس بات کو یقینی بنائیں کہ صرف رجحان کے واضح مارکیٹ کے ماحول میں ہی تجارت ہو۔
  3. مارکیٹ میں اتار چڑھاؤ فلٹر: افراتفری انڈیکس متعارف کرایا گیا ہے (تخمینی قیمت 50 ہے) مارکیٹ میں اتار چڑھاؤ کی خصوصیات کی شناخت کرنے کے لئے ، اور شدید اتار چڑھاؤ والے بازاروں میں تجارت سے بچنے کے لئے۔

اس حکمت عملی میں بہتر تکنیکی اشارے کے حساب کتاب کے طریقوں کا استعمال کیا گیا ہے ، جس میں اپنی مرضی کے مطابق جمع فنکشن ، زیادہ سے زیادہ اور کم سے کم قیمت کے حساب کتاب ، اور معیاری اصلی طول موج ((TR) حساب کتاب شامل ہیں ، جس سے سگنل کی درستگی اور حساب کتاب کی کارکردگی کو یقینی بنایا جاسکتا ہے۔

اسٹریٹجک فوائد

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-02-22 00:00:00
end: 2024-12-06 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("MA9/MA21 Cross with ADX & CHOP Filter", overlay=true, initial_capital=10000, currency=currency.USD)

// ─── CUSTOM FUNCTIONS ──────────────────────────────────────────────────────
// Custom function to compute the sum over the last 'len' bars.
f_sum(src, len) =>
    s = 0.0
    for i = 0 to len - 1
        s += src[i]
    s

// Custom function to compute the highest value over the last 'len' bars.
f_highest(src, len) =>
    h = src[0]
    for i = 1 to len - 1
        h := math.max(h, src[i])
    h

// Custom function to compute the lowest value over the last 'len' bars.
f_lowest(src, len) =>
    l = src[0]
    for i = 1 to len - 1
        l := math.min(l, src[i])
    l

// ─── INPUTS ──────────────────────────────────────────────────────────────
ma9Period   = input.int(9, title="MA 9 Period", minval=1)
ma21Period  = input.int(21, title="MA 21 Period", minval=1)
adxLength   = input.int(7, title="ADX Smoothing / DI Length", minval=1)
adxThresh   = input.float(20.0, title="ADX Threshold", step=0.1)
chopLen     = input.int(7, title="CHOP Length", minval=1)
chopOff     = input.int(0, title="CHOP Offset", minval=0)  // Not applied in calculation
chopThresh  = input.float(50.0, title="CHOP Maximum (do not trade if above)", step=0.1)

// ─── CALCULATE INDICATORS ────────────────────────────────────────────────────
// Moving Averages
ma9  = ta.sma(close, ma9Period)
ma21 = ta.sma(close, ma21Period)

// --- True Range Calculation ---
// Manual implementation of true range (tr)
tr = math.max(math.max(high - low, math.abs(high - nz(close[1]))), math.abs(low - nz(close[1])))

// --- ADX Calculation (Manual Implementation) ---
// Calculate directional movements
upMove   = high - nz(high[1])
downMove = nz(low[1]) - low
plusDM   = (upMove > downMove and upMove > 0) ? upMove : 0.0
minusDM  = (downMove > upMove and downMove > 0) ? downMove : 0.0

// Smooth the values using the built-in rma function
atr      = ta.rma(tr, adxLength)
plusDI   = 100 * ta.rma(plusDM, adxLength) / atr
minusDI  = 100 * ta.rma(minusDM, adxLength) / atr
dx       = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adxValue = ta.rma(dx, adxLength)

// --- Choppiness Index Calculation ---
// Compute the sum of true range over chopLen periods
atrSum      = f_sum(tr, chopLen)
// Compute highest high and lowest low over chopLen periods using custom functions
highestHigh = f_highest(high, chopLen)
lowestLow   = f_lowest(low, chopLen)
priceRange  = highestHigh - lowestLow
chop        = priceRange != 0 ? 100 * math.log(atrSum / priceRange) / math.log(chopLen) : 0

// ─── STRATEGY CONDITIONS ─────────────────────────────────────────────────────
// MA Crossover Signals
longCond  = ta.crossover(ma9, ma21)
shortCond = ta.crossunder(ma9, ma21)

// Filter: Only trade if ADX > threshold and CHOP ≤ threshold.
filterCond = (adxValue > adxThresh) and (chop <= chopThresh)

// Entries and Exits
if longCond and filterCond
    strategy.entry("Long", strategy.long)
if shortCond and filterCond
    strategy.entry("Short", strategy.short)
if shortCond
    strategy.close("Long")
if longCond
    strategy.close("Short")

// ─── PLOTTING ──────────────────────────────────────────────────────────────
plot(ma9, color=color.red, title="MA 9")
plot(ma21, color=color.blue, title="MA 21")
plot(adxValue, title="ADX", color=color.purple)
hline(adxThresh, title="ADX Threshold", color=color.purple, linestyle=hline.style_dotted)
plot(chop, title="CHOP", color=color.orange)
hline(chopThresh, title="CHOP Threshold", color=color.orange, linestyle=hline.style_dotted)