গতিশীল ট্রেন্ড ট্র্যাকিং এবং অস্থিরতা ফিল্টারিং কৌশল: 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-চক্রের সরল চলমান গড় (এসএমএ) এর ক্রস দ্বারা বাজারের প্রবণতা ক্যাপচার করে, এবং গড় দিকনির্দেশক সূচক (এডিএক্স) এবং বিশৃঙ্খলা সূচক (চোপ্পিসনেস ইনডেক্স, সিআই) ব্যবহার করে বাজার পরিবেশকে ফিল্টার করে, কেবলমাত্র ট্রেডিং নিশ্চিত করার জন্য ট্রেডিং নিশ্চিত করে। এই পদ্ধতিটি কার্যকরভাবে প্রচলিত প্রবণতা ট্র্যাকিং কৌশলগুলিকে আধুনিক প্রযুক্তিগত সূচকগুলির সাথে একত্রিত করে, যা একটি আরও শক্তিশালী ট্রেডিং ফ্রেমওয়ার্ক সরবরাহ করে।

কৌশল নীতি

এই কৌশলটির মূল তত্ত্বের তিনটি মূল উপাদান রয়েছেঃ

  1. ট্রেন্ড সিগন্যাল জেনারেশনঃ ট্রেন্ডের দিকনির্দেশনা নির্ধারণের জন্য 9 চক্র এবং 21 চক্রের এসএমএর ক্রস ব্যবহার করে একটি বেসিক ট্রেডিং সিগন্যাল গঠন করা হয়।
  2. প্রবণতা শক্তি নিশ্চিতকরণঃ প্রবণতা শক্তি যাচাই করার জন্য ADX সূচক ব্যবহার করুন (ট্র্যাশ 20 সেট করুন) এবং নিশ্চিত করুন যে ট্রেডিং কেবলমাত্র একটি স্পষ্ট প্রবণতা বাজারের মধ্যে হয়।
  3. বাজারের ওঠানামা ফিল্টারঃ বাজারের ওঠানামা চিহ্নিত করার জন্য একটি বিশৃঙ্খলা সূচক চালু করা হয়েছে (থ্রেডলাইনটি 50 এ সেট করা হয়েছে) ।

কৌশলটি একটি অপ্টিমাইজড প্রযুক্তিগত সূচক গণনা পদ্ধতি ব্যবহার করে, যার মধ্যে রয়েছে কাস্টমাইজড সমীকরণ ফাংশন, সর্বোচ্চ এবং সর্বনিম্ন মান গণনা, এবং মানককৃত প্রকৃত তরঙ্গদৈর্ঘ্য ((TR) গণনা, যা সংকেতের সঠিকতা এবং গণনার দক্ষতা নিশ্চিত করে।

কৌশলগত সুবিধা

  1. মাল্টিপল কনফার্মেশন মেকানিজমঃ সমান্তরাল ক্রস, এডিএক্স এবং সিআই এর ট্রিপল ফিল্টারিংয়ের সমন্বয়ে ট্রেডিং সিগন্যালের নির্ভরযোগ্যতা উল্লেখযোগ্যভাবে বৃদ্ধি পেয়েছে।
  2. অভিযোজনযোগ্যতাঃ কৌশলগত প্যারামিটারগুলি বিভিন্ন বাজার পরিস্থিতির সাথে সামঞ্জস্যপূর্ণ এবং ভাল অভিযোজনযোগ্যতা রয়েছে।
  3. ঝুঁকি নিয়ন্ত্রণ উন্নতঃ সিআই সূচক ফিল্টারিং উচ্চ ওঠানামা সময়, কার্যকরভাবে মিথ্যা ব্রেকআউট দ্বারা সৃষ্ট ঝুঁকি হ্রাস।
  4. হিসাবের দক্ষতাঃ হিসাবের জন্য অপ্টিমাইজড পদ্ধতি ব্যবহার করা হয়, বিশেষ করে ঐতিহাসিক তথ্যের ক্ষেত্রে।

কৌশলগত ঝুঁকি

  1. প্যারামিটার সংবেদনশীলতাঃ কৌশল কার্যকারিতা ADX এবং CI এর থ্রেশহোল্ড সেটিংসের উপর নির্ভরশীল, বিভিন্ন বাজার পরিবেশে বিভিন্ন প্যারামিটার কনফিগারেশন প্রয়োজন হতে পারে।
  2. পিছিয়ে পড়াঃ একাধিক মুভিং এভারেজ ইন্ডিকেটর ব্যবহারের কারণে সংকেত পিছিয়ে পড়ার সমস্যা হতে পারে।
  3. বাজারের অস্থিরতাঃ কিছু ছোট ব্যবসায়ের সুযোগ মিস করা যেতে পারে।
  4. গণনা জটিলতাঃ একাধিক সূচক গণনা কৌশলগত জটিলতা বৃদ্ধি করে যা রিয়েল-টাইম লেনদেনের কার্যকারিতা প্রভাবিত করতে পারে।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

  1. গতিশীল প্যারামিটার সমন্বয়ঃ বাজারের অবস্থার গতিশীলতার উপর ভিত্তি করে ADX এবং CI এর থ্রেশহোল্ডগুলিকে সামঞ্জস্য করার জন্য একটি অভিযোজিত প্যারামিটার সমন্বয় ব্যবস্থা চালু করা হয়েছে।
  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)