
یہ حکمت عملی قیمتوں کے رجحان کی سمت کا تعین کرنے کے لئے دو مختلف پیرامیٹرز کی ترتیب کی ایک متحرک اوسط کا حساب کتاب کرکے اور اس کی کراسنگ کا موازنہ کرکے رجحانات کی پیروی کرنے کے لئے تجارت کرتی ہے۔ جب تیز رفتار متحرک اوسط نیچے سے آہستہ چلنے والی اوسط سے ٹوٹ جاتا ہے تو ، اس کا فیصلہ ایک مثبت سگنل کے طور پر کیا جاتا ہے۔ جب تیز رفتار متحرک اوسط اوپر سے نیچے سے آہستہ چلنے والی اوسط سے ٹوٹ جاتا ہے تو ، اس کا فیصلہ ایک منفی سگنل کے طور پر کیا جاتا ہے۔ اس حکمت عملی کو پیرامیٹرز کی ترتیب کے ذریعہ مختلف ادوار کے رجحانات کا تعین کیا جاسکتا ہے۔
یہ حکمت عملی دو مختلف پیرامیٹرز کی ترتیبات کے ساتھ چلنے والی اوسط کا موازنہ کرتی ہے۔ پہلا چلنے والا اوسط پیرامیٹرز len1 اور type1 کے ذریعہ ترتیب دیا گیا ہے ، اور دوسرا چلنے والا اوسط پیرامیٹرز len2 اور type2 کے ذریعہ ترتیب دیا گیا ہے۔ len1 اور len2 بالترتیب دو چلنے والی اوسط کی مدت کی نمائندگی کرتے ہیں ، اور type1 اور type2 حرکت پذیری اوسط کی الگورتھم کی قسم کی نمائندگی کرتے ہیں۔
جب تیز رفتار حرکت پذیر اوسط نیچے سے ٹوٹ کر سست رفتار حرکت پذیر اوسط کی شکل میں سنہری کانٹا بناتا ہے تو ، اسے ایک مثبت سگنل سمجھا جاتا ہے۔ جب تیز رفتار حرکت پذیر اوسط اوپر سے نیچے سے ٹوٹ کر سست رفتار حرکت پذیر اوسط کی شکل میں مردہ کانٹا بناتا ہے تو ، اسے ایک منفی سگنل سمجھا جاتا ہے۔
کراس سگنل کی سمت کے مطابق ، زیادہ یا کم کرنے کا عمل انجام دیں۔ جب بیعانہ سگنل ٹرگر ہوتا ہے تو ، اگر ضرورت لمبا پیرامیٹر سچ ہے تو ، ڈیفالٹ_کیٹی_ویلیو کی تعداد یا پوزیشن فیصد_آف_ایکیوٹی کے مطابق زیادہ کریں۔ جب بیعانہ سگنل ٹرگر ہوتا ہے تو ، اگر ضرورت مختصر پیرامیٹر سچ ہے تو ، ڈیفالٹ_کیٹی_ویلیو کی تعداد یا پوزیشن فیصد_آف_ایکیوٹی کے مطابق خالی کریں۔
متحرک اوسط تاخیر کا شکار ہے اور قیمتوں کے الٹ پوائنٹس سے محروم ہوسکتا ہے حل: موزوں طور پر کم اوسطاً چلنے والی اوسط کا دورانیہ یا دیگر اشارے کے ساتھ استعمال
اعلی اتار چڑھاو اور بار بار الٹ کے ساتھ مارکیٹوں کے لئے موزوں نہیں حل: فلٹرنگ کے مزید شرائط اور ہنگامی حالات میں تجارت سے بچنے کے لئے
غلط سگنل کا خطرہ حل: سگنل کی وشوسنییتا کو بہتر بنانے کے لئے دوسرے فلٹرنگ اشارے کے ساتھ مجموعہ
اس حکمت عملی میں قیمتوں کے رجحانات کا اندازہ لگانے کے لئے دو متحرک اوسطوں کے مابین کراسنگ کا موازنہ کیا گیا ہے ، اور اس کے مطابق بیعانہ اور بیعانہ آپریشن کیا گیا ہے ، تاکہ اس رجحان کو پکڑنے اور اس پر نظر رکھنے سے فائدہ اٹھایا جاسکے۔ حکمت عملی کی خوبی یہ ہے کہ سگنل کے قواعد سادہ اور واضح ہیں ، پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے ، قابل اطلاق ہے ، اور مارکیٹ کے متعدد حالات میں بہتر ایڈجسٹمنٹ کی جاسکتی ہے۔
/*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)