یہ حکمت عملی قیمت کی رجحان کی سمت کا تعین کرتی ہے جس میں دو مختلف پیرامیٹر کی ترتیبات کے ساتھ دو چلتی اوسطوں کا حساب لگایا جاتا ہے اور ان کے کراس اوور کی صورتحال کا موازنہ کیا جاتا ہے ، تاکہ تجارت کے بعد رجحان کو نافذ کیا جاسکے۔ جب نیچے سے تیز رفتار چلتی اوسط سست چلتی اوسط سے ٹوٹ جاتا ہے تو ، اسے تیزی کا اشارہ سمجھا جاتا ہے۔ جب اوپر سے تیز رفتار چلتی اوسط سست چلتی اوسط سے ٹوٹ جاتا ہے تو ، اسے bearish سگنل سمجھا جاتا ہے۔ یہ حکمت عملی پیرامیٹرز کو ایڈجسٹ کرکے مختلف سائیکلوں کے رجحانات کا فیصلہ حاصل کرسکتی ہے۔
اس حکمت عملی میں موازنہ کے لئے مختلف پیرامیٹر کی ترتیبات کے ساتھ دو سیٹ حرکت پذیر اوسط استعمال کیے جاتے ہیں۔ پہلا حرکت پذیر اوسط پیرامیٹر len1 اور type1 کے ذریعہ مقرر کیا جاتا ہے ، اور دوسرا حرکت پذیر اوسط پیرامیٹر len2 اور type2 کے ذریعہ مقرر کیا جاتا ہے۔ جہاں len1 اور len2 بالترتیب دو حرکت پذیر اوسط کی سائیکل کی لمبائی کی نمائندگی کرتے ہیں ، اور type1 اور type2 حرکت پذیر اوسط کی الگورتھم کی قسم کی نمائندگی کرتے ہیں۔
جب تیز رفتار اوسط سست رفتار اوسط کے اوپر سے گزرتا ہے تو اسے سونے کا کراس بناتا ہے ، اسے تیزی کا اشارہ سمجھا جاتا ہے۔ جب تیز رفتار اوسط سست رفتار اوسط کے نیچے سے گزرتا ہے تو اسے مردہ کراس بناتا ہے ، اسے bearish سگنل سمجھا جاتا ہے۔
کراس اوور سگنل کی سمت کے مطابق ، لمبی یا مختصر پوزیشنیں عمل میں آئیں گی۔ جب ایک تیزی کا سگنل ٹرگر ہوتا ہے ، اگر ضرورت کا پیرامیٹر درست ہے تو ، مقدار default_qty_value یا فیصد_of_equity کے ساتھ ایک لمبی پوزیشن کھولی جائے گی۔ جب ایک bearish سگنل ٹرگر ہوتا ہے ، اگر ضرورت کا پیرامیٹر درست ہے تو ، مقدار default_qty_value یا فیصد_of_equity کے ساتھ ایک مختصر پوزیشن کھولی جائے گی۔
چلتی اوسطوں میں تاخیر کی خصوصیات ہیں اور قیمتوں میں الٹ پوائنٹس کو یاد کر سکتے ہیں
حل: مناسب طریقے سے چلتی اوسط کے دورانیے کو مختصر کریں، یا دوسرے اشارے کے ساتھ مل کر استعمال کریں
اعلی اتار چڑھاؤ اور کثرت سے الٹ جانے والے بازاروں کے لئے موزوں نہیں
حل: اتار چڑھاؤ والے بازاروں میں تجارت سے بچنے کے لئے فلٹرنگ کے حالات شامل کریں
غلط سگنل کے کچھ خطرات ہیں
حل: سگنل کی وشوسنییتا کو بہتر بنانے کے لئے مجموعہ کے لئے دیگر فلٹرنگ اشارے شامل کریں
یہ حکمت عملی دو حرکت پذیر اوسطوں کے کراس اوورز کا موازنہ کرکے قیمت کے رجحان کا فیصلہ کرتی ہے ، اور رجحانات کو پکڑنے اور اس سے فائدہ اٹھانے کے لئے اسی طرح کے لمبے اور مختصر آپریشن کرتی ہے۔ اس کا فائدہ یہ ہے کہ سگنل کے قوانین آسان اور واضح ہیں ، پیرامیٹرز ایڈجسٹ کرنے کے قابل ہیں ، قابل اطلاق مضبوط ہے ، اور اسے مختلف مارکیٹ ماحول کے لئے بہتر بنایا جاسکتا ہے اور ایڈجسٹ کیا جاسکتا ہے۔ حرکت پذیر اوسط اور ہلچل مچانے والی منڈیوں کے پسماندہ خطرات سے بچنے پر توجہ دیں ، جو سگنل کے معیار کو بہتر بنانے کے لئے فلٹرنگ کے لئے دوسرے اشارے شامل کرکے کم ہوسکتے ہیں۔
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MAs Cross Tests v1.0", shorttitle = "MAs Cross tests 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0) needlong = input(true, "long") needshort = input(true, "short") len2 = input(15, defval = 15, minval = 2, maxval = 1000, title = "Fast MA length") type2 = input(1, defval = 1, minval = 1, maxval = 7, title = "Fast MA Type") src2 = input(close, defval = close, title = "Fast MA Source") len1 = input(30, defval = 30, minval = 2, maxval = 1000, title = "Slow MA length") type1 = input(1, defval = 1, minval = 1, maxval = 7, title = "Slow MA Type") src1 = input(close, defval = close, title = "Slow MA Source") col = input(false, defval = false, title = "Color of bar") o = input(false, title = "1 SMA, 2 EMA, 3 VWMA, 4 DEMA, 5 TEMA, 6 KAMA, 7 Price Channel") //DEMA 1 dema1 = 2 * ema(src1, len1) - ema(ema(close, len1), len1) //TEMA 1 xEMA1 = ema(src1, len1) xEMA2 = ema(xEMA1, len1) xEMA3 = ema(xEMA2, len1) tema1 = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA 1 xvnoise = abs(src1 - src1[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src1 - src1[len1]) nnoise = sum(xvnoise, len1) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama1 = nz(kama1[1]) + nsmooth * (src1 - nz(kama1[1])) //PriceChannel 1 lasthigh1 = highest(src1, len1) lastlow1 = lowest(src1, len1) center1 = (lasthigh1 + lastlow1) / 2 //DEMA 2 dema2 = 2 * ema(src2, len2) - ema(ema(close, len2), len2) //TEMA 2 xEMA12 = ema(src2, len2) xEMA22 = ema(xEMA12, len2) xEMA32 = ema(xEMA22, len2) tema2 = 3 * xEMA12 - 3 * xEMA22 + xEMA32 //KAMA 2 xvnoise2 = abs(src2 - src2[1]) nfastend2 = 0.20 nslowend2 = 0.05 nsignal2 = abs(src2 - src2[len2]) nnoise2 = sum(xvnoise2, len2) nefratio2 = iff(nnoise2 != 0, nsignal2 / nnoise2, 0) nsmooth2 = pow(nefratio2 * (nfastend2 - nslowend2) + nslowend2, 2) kama2 = nz(kama2[1]) + nsmooth2 * (src2 - nz(kama2[1])) //PriceChannel 2 lasthigh2 = highest(src2, len2) lastlow2 = lowest(src2, len2) center2 = (lasthigh2 + lastlow2) / 2 //MAs ma1 = type1 == 1 ? sma(src1, len1) : type1 == 2 ? ema(src1, len1) : type1 == 3 ? vwma(src1, len1) : type1 == 4 ? dema1 : type1 == 5 ? tema1 : type1 == 6 ? kama1 : type1 == 7 ? center1 : 0 ma2 = type2 == 1 ? sma(src2, len2) : type2 == 2 ? ema(src2, len2) : type2 == 3 ? vwma(src2, len2) : type2 == 4 ? dema2 : type2 == 5 ? tema2 : type2 == 6 ? kama2 : type2 == 7 ? center2 : 0 plot(ma1, color = blue, linewidth = 3, transp = 0) plot(ma2, color = red, linewidth = 3, transp = 0) //Signals trend = ma2 > ma1 ? 1 : ma2 < ma1 ? -1 : trend[1] up = trend == 1 and ((close < open and close[1] < open[1]) or col == false) dn = trend == -1 and ((close > open and close[1] > open[1]) or col == false) if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na)