یہ حکمت عملی مؤثر طریقے سے رجحانات کو ٹریک اور الٹ کرنے کے لئے حرکت پذیر اوسط کراس اوورز اور رفتار اشارے کو جوڑتی ہے۔ یہ پہلے سونے کے کراس طویل سگنل اور موت کے کراس مختصر سگنل پیدا کرنے کے لئے تیز اور سست حرکت پذیر اوسط استعمال کرتا ہے۔ پھر کچھ پیرامیٹرز کے رفتار اشارے کے ساتھ ، اگر سونے کے کراس کے بعد تیزی سے ایم اے پر رفتار دوبارہ ظاہر ہوتی ہے تو ، رجحان کو جاری سمجھا جاتا ہے اور لمبی پوزیشن برقرار رکھی جائے گی۔ جب رفتار کم ہوجاتی ہے تو ، اسے رجحان الٹ سمجھا جاتا ہے اور موجودہ پوزیشن بند ہوجائے گی۔ اسی منطق کا اطلاق رجحان الٹنے کی پیروی کرتے وقت موت کے کراس مختصر سگنلز پر ہوتا ہے۔ جب رجحان کی حالت میں نہیں ہوتا ہے تو غلط سگنلز سے بچنے کے لئے اے ڈی ایکس فلٹر بھی استعمال کیا جاتا ہے۔
اس حکمت عملی کا بنیادی منطق ایم اے کراس اوورز سے رجحان سگنل اور رفتار کے اشارے سے رجحان الٹ سگنل پر مبنی ہے۔ کلیدی حصے یہ ہیں:
تیز رفتار ایم اے قیمت1 (5-پیریڈ ایچ ایم اے) اور سست ایم اے قیمت2 (7-پیریڈ ایچ ایم اے) کا حساب لگائیں۔
گولڈن کراس جس میں قیمت1 قیمت2 سے اوپر کراس ہوتی ہے وہ لانگ سگنل پیدا کرتی ہے۔ موت کراس جس میں قیمت1 قیمت2 سے نیچے کراس ہوتی ہے وہ شارٹ سگنل پیدا کرتی ہے۔ یہ ایم اے کا عام استعمال ہے۔
طویل سگنل کے بعد، اگر قیمت1
جب رفتار roc1 کم ہوجاتی ہے تو ، اسے رجحان کی تبدیلی سمجھا جاتا ہے اور موجودہ پوزیشن بند ہوجائے گی۔ مختصر سگنلز پر بھی یہی منطق لاگو ہوتی ہے۔
جب رجحان کی حالت میں نہ ہو تو غلط سگنل سے بچنے کے لئے ADX کی حد متعارف کروائیں۔ سگنل صرف اس وقت پیدا ہوتے ہیں جب ADX حد سے زیادہ ہو۔
سادہ ایم اے حکمت عملیوں کے مقابلے میں ، اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ رجحان کی تبدیلیوں کو زیادہ فوری اور درست طریقے سے طے کرنے کے لئے رفتار کے اشارے متعارف کروائے گئے ہیں۔ مخصوص فوائد:
ایم اے خود قیمت کی تبدیلیوں میں تاخیر کرتے ہیں ، جبکہ رفتار کے اشارے بروقت اسٹاپ نقصان یا ریورس ٹریڈنگ کے لئے تیزی سے الٹ سگنل پکڑ سکتے ہیں۔
رفتار پر مبنی الٹ سگنل زیادہ قابل اعتماد ہیں، رجحان ٹریڈنگ کے دوران غیر ضروری کھولنے / بند کرنے کے احکامات سے بچنے کے.
اے ڈی ایکس غیر رجحان سازی مارکیٹوں میں غلط سگنل سے بچتا ہے، حکمت عملی کو زیادہ اعلی جیتنے کے امکانات کے ساتھ رجحانات پر زیادہ توجہ مرکوز کرتا ہے.
منطق سادہ اور سمجھنے میں آسان ہے، algos ٹریڈنگ beginners کے لئے موزوں ہے.
مختلف مارکیٹوں کے لئے ایم اے ادوار، رفتار پیرامیٹرز وغیرہ کو ایڈجسٹ کرکے اصلاح کی بڑی گنجائش۔
اس حکمت عملی کے اہم خطرات مندرجہ ذیل ہیں:
ایم اے کی پسماندہ نوعیت ، جس سے سگنل میں تاخیر ہوسکتی ہے ، بہترین انٹری پوائنٹس کی کمی۔
غلط بریک آؤٹ جس کی وجہ سے غیر ضروری اندراجات یا باہر نکلنے کی ضرورت ہے۔ پیرامیٹرز یا اضافی فلٹرز کی مزید اصلاح کی ضرورت ہے۔
رجحان کی تبدیلی کا پتہ لگانے کا انحصار رفتار پر ہوتا ہے، جو مارکیٹ میں زبردست اتار چڑھاؤ کے دوران ٹوٹ سکتا ہے۔
ADX رجحانات اور استحکام کا پتہ لگانے میں ناقص ہے۔ غلط حد کی ترتیبات مسائل کا سبب بن سکتی ہیں۔
تجارتی اخراجات پر کوئی غور نہیں کیا گیا۔ حقیقی تجارت میں لاگو ہونے پر مناسب اسٹاپ نقصان مقرر کیا جانا چاہئے۔
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:
ایم اے کی دیگر اقسام کی کوشش کریں یا بہتر ہموار اثرات کے لئے ایم اے پیرامیٹرز کو ایڈجسٹ کریں.
قیمت کی تبدیلیوں کو پکڑنے کے لئے اعلی حساسیت کے لئے رفتار اشارے کی لمبائی کو بہتر بنائیں.
قیمتوں کے فلٹرز کو مقرر کریں جب رفتار الٹ جاتی ہے تاکہ قلیل مدتی اتار چڑھاؤ سے گمراہ ہونے سے بچیں۔
مختلف ADX سطحوں پر مختلف پیرامیٹرز کا استعمال کرتے ہوئے ADX استعمال کو بہتر بنائیں۔
سگنل کے معیار کو بہتر بنانے اور جھوٹے بریک آؤٹ کو فلٹر کرنے کے لئے حجم کے اشارے وغیرہ متعارف کروائیں۔
ایک ہی تجارت کے نقصان کو کنٹرول کرنے کے لئے اسٹاپ نقصان کے طریقہ کار کو شامل کریں۔ مناسب منافع کے اہداف اور اسٹاپ نقصان کو طے کرنے کے لئے حقیقت پسندانہ تجارتی اخراجات کا اندازہ کریں۔
یہ حکمت عملی رجحانات کو ٹریک کرنے اور الٹ پھیرنے کے لئے ایم اے اور رفتار کے اشارے کے فوائد کو جوڑتی ہے۔ خالص رجحان کی پیروی کرنے والی حکمت عملیوں کے مقابلے میں ، یہ مختلف مارکیٹ کے مراحل سے نمٹنے میں زیادہ لچکدار ہوسکتا ہے ، رجحان کے عروج سے ہونے والے نقصانات سے بچنے کے ساتھ ساتھ رجحان کی تجارت کو برقرار رکھ سکتا ہے۔ پیرامیٹر کی اصلاح اور معاون حالات متعارف کرانے کے ذریعے مزید بہتری لائی جاسکتی ہے۔ مجموعی طور پر ، حکمت عملی میں واضح اور آسان منطق ہے ، جو الگو ٹریڈنگ کے ابتدائی افراد کے لئے سیکھنے اور لاگو کرنے کے لئے بہت موزوں ہے۔
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //study(title="MA Crossover Strategy", overlay = true) strategy("MA Crossover Strategy with MA Turning Point Exits", overlay=true) src = input(open, title="Source") price = request.security(syminfo.tickerid, timeframe.period, src) ma1 = input(5, title="1st MA Length") type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA"]) ma2 = input(7, title="2nd MA Length") type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA"]) adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") adxthreshold = input(20, title="ADX threshold") dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) //study("Average Directional Index", shorttitle="ADX", format=format.price, precision=2, resolution="") //plot(sig, color=color.red, title="ADX") f_hma(_src, _length)=> _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length))) price1 = if (type1 == "SMA") sma(price, ma1) else if (type1 == "EMA") ema(price, ma1) else f_hma(price, ma1) price2 = if (type2 == "SMA") sma(price, ma2) else if (type2 == "EMA") ema(price, ma2) else f_hma(price, ma2) //plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0) plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0) plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0) //longCondition = price1> price2 longCondition = price1> price2 and sig > adxthreshold if (longCondition) strategy.entry("Long", strategy.long) shortCondition = price1 < price2 and sig > adxthreshold if (shortCondition) strategy.entry("Short", strategy.short) lookback1 = input(1, "Lookback 1") roc1 = roc(price1, lookback1) ma1up = false ma1down = false ma2up = false ma2down = false ma1up := nz(ma1up[1]) ma1down := nz(ma1down[1]) ma2up := nz(ma2up[1]) ma2down := nz(ma2down[1]) trendStrength1 = input(2, title="Minimum slope magnitude * 100", type=float) * 0.01 if crossover(roc1, trendStrength1) ma1up := true ma1down := false if crossunder(roc1, -trendStrength1) ma1up := false ma1down := true shortexitCondition = ma1up and ma1down[1] and sig > adxthreshold if (shortexitCondition) strategy.close("Short") longexitCondition = ma1down and ma1up[1] and sig > adxthreshold if (longexitCondition) strategy.close("Long")