
ڈبل منتقل اوسط رجحان ٹریکنگ حکمت عملی ایک اسٹاک کی قیمتوں کے رجحانات کو ٹریک کرنے کے لئے ایک مقداری تجارتی حکمت عملی ہے۔ یہ حکمت عملی قیمتوں کے رجحانات کی سمت کا تعین کرنے کے لئے دوہری اشاریہ منتقل اوسط نظام کا استعمال کرتی ہے ، اور اس رجحان کی طاقت کو ADX اشارے کے ساتھ مل کر ، قیمتوں کے رجحانات کو درمیانی اور لمبی لائن پر پکڑتی ہے۔
یہ حکمت عملی بنیادی طور پر قیمت کے رجحان کی سمت کا تعین کرنے کے لئے بائنری اشاریہ حرکت پذیر اوسط نظام پر مبنی ہے۔ حکمت عملی تیزی سے اور آہستہ آہستہ دو مختلف پیرامیٹرز کے ساتھ ای ایم اے کا استعمال کرتی ہے ، تیز ای ایم اے 1 قیمت میں تبدیلی کو زیادہ تیزی سے جواب دیتا ہے ، اور سست ای ایم اے 2 قیمت میں تبدیلی کو زیادہ تاخیر سے جواب دیتا ہے۔ جب تیز لائن پر سست لائن کو عبور کیا جاتا ہے تو خریدنے کا اشارہ ہوتا ہے ، جس سے قیمت میں اضافہ ہوتا ہے۔ جب تیز لائن کے نیچے سست لائن کو عبور کیا جاتا ہے تو فروخت کا اشارہ ہوتا ہے ، جس سے قیمت میں کمی شروع ہوتی ہے۔
اس کے علاوہ ، حکمت عملی نے رجحان کی طاقت کا تعین کرنے کے لئے ADX اشارے متعارف کروائے ہیں۔ ADX قیمت کے اتار چڑھاو کا حساب کتاب کرکے رجحان کی طاقت کا تعین کرتا ہے۔ جب ADX کی قیمت بڑھتی ہے تو ، اس کا مطلب یہ ہے کہ رجحان مضبوط ہوتا ہے۔ جب ADX کی قیمت کم ہوتی ہے تو ، اس کا مطلب یہ ہے کہ رجحان کمزور ہوتا ہے۔ حکمت عملی نے ADX اشارے کے ذریعہ تجارت فلٹرنگ کی شرائط طے کیں ، صرف اس وقت تجارتی سگنل جاری کیا جب رجحان کی طاقت زیادہ ہو۔
خاص طور پر ، حکمت عملی کے لئے ٹریڈنگ سگنل تخلیق کے قواعد یہ ہیں:
اس کے نتیجے میں ، اس طرح کے غیر فعال سگنل کو فلٹر کرنے میں مدد ملتی ہے ، جس سے ٹریڈنگ سسٹم کی استحکام کو مزید بہتر بنایا جاسکتا ہے۔
اس حکمت عملی کے کچھ اہم فوائد یہ ہیں:
مڈل اور لانگ لائن قیمتوں کے رجحانات کو پکڑناڈبل ای ایم اے اوسط سسٹم قیمتوں میں طویل مدتی رجحانات کا مؤثر انداز میں تعین کرتا ہے ، جو قلیل مدتی مارکیٹ شور سے پریشان نہیں ہوتا ہے۔
فلٹر جعلی ٹوٹ گیا: رجحان کی طاقت کا اندازہ لگانے کے لئے ADX اشارے کا استعمال کریں ، اور رجحان کے موڑ کے قریب ہونے والے جعلی ٹوٹنے سے غیر ضروری نقصانات سے بچیں۔
پیرامیٹرز کو بہتر بنانے کی جگہ: سست رفتار لائن پیرامیٹرز کا مجموعہ ، ADX پیرامیٹرز وغیرہ میں اصلاح کی گنجائش ہے ، جو مجموعہ پیرامیٹرز کے ذریعہ بہتر تجارتی اثر حاصل کرسکتے ہیں۔
انتہائی موافقت پذیریہ حکمت عملی زیادہ تر اسٹاک اور ٹائم فریموں پر لاگو ہوتی ہے اور متعدد مارکیٹوں میں اس کی تصدیق کی گئی ہے۔
لاگو کرنے کے لئے آساناس حکمت عملی کے لئے صرف ایک سادہ اوسط کی ضرورت ہوتی ہے ، وسائل کی کم کھپت ، پروگرامنگ کے لئے آسان ، اور عملی طور پر استعمال کرنے کے لئے کم لاگت آتی ہے۔
اس حکمت عملی میں کچھ خطرات بھی ہیں، جن میں سے کچھ یہ ہیں:
رجحان کے الٹ جانے کا خطرہٹرینڈ ٹرانسمیشن: کوئی بھی ٹرینڈ اسٹریٹجی ٹرینڈ ریورسمنٹ پوائنٹ کا صحیح اندازہ نہیں لگا سکتی اور جب ٹرینڈ ریورسمنٹ کا صحیح وقت آتا ہے تو اس سے بڑے نقصان کا سامنا کرنا پڑتا ہے۔
پیرامیٹرز کو زیادہ سے زیادہ خطرہپیرامیٹرز کو انتہائی حد تک بہتر بنانا بھی حکمت عملی کو تاریخی اعداد و شمار کے ساتھ زیادہ فٹ ہونے کا سبب بن سکتا ہے ، جس سے حکمت عملی کی استحکام اور عملی جنگ کی تاثیر میں کمی واقع ہوتی ہے۔
حادثات کا خطرہ: اہم اچانک واقعات قیمتوں کے رجحانات کے پہلے سے طے شدہ نمونوں کو توڑ دیتے ہیں ، اس وقت حرکت پذیر اوسط اشارے غیر فعال ہوجاتے ہیں ، اور نقصان کو کنٹرول کرنے کے لئے دستی مداخلت یا اسٹاپ نقصان کی ترتیب کی ضرورت ہوتی ہے۔
ہم مندرجہ بالا خطرات کے لیے مندرجہ ذیل طریقوں سے بہتر کام کر سکتے ہیں:
اضافی اشارے متعارف کرانے کے لئے قیمتوں میں تبدیلی کا فیصلہ کرنے کے لئے۔ مثال کے طور پر ، حجم متعارف کرانے کے لئے ، قیمتوں میں تبدیلی کے ساتھ ساتھ حجم میں اضافہ ہوتا ہے۔
ADX پیرامیٹرز کو مناسب طریقے سے چھوڑ دیا گیا ہے تاکہ اس بات کو یقینی بنایا جاسکے کہ رجحانات کے آغاز میں بھی مواقع کا فائدہ اٹھایا جاسکے۔ اس کے ساتھ ہی MACD جیسے معاون فیصلے کے اشارے بھی متعارف کرائے جاسکتے ہیں۔
پیرامیٹرز کے مجموعے پر کثیر گروپ ٹریننگ ٹیسٹ کریں ، ایسے پیرامیٹرز کا انتخاب کریں جو استحکام اور عملی جنگ میں اچھے ہیں۔ کسی ایک پیرامیٹرز کے مجموعے کو زیادہ سے زیادہ بہتر بنانے کے خطرے سے بچیں۔
اس حکمت عملی میں کچھ اصلاحات بھی ہیں:
سٹاپ نقصان کا طریقہ کار متعارف کرایا جا رہا ہے۔: موبائل اسٹاپ یا فیصد اسٹاپ سیٹ کریں ، جب رجحان الٹ جاتا ہے تو فعال طور پر اسٹاپ ہوجاتا ہے ، تاکہ پوزیشن کو زیادہ نقصان سے بچایا جاسکے۔
ٹرانزیکشن حجم کے اشارے کے ساتھمثال کے طور پر ، جب حجم میں اضافہ ہوتا ہے تو قیمتوں کے موڑ کے نقطہ پر غلط سگنل سے بچا جاسکتا ہے۔
پیرامیٹرز کے لئے مرضی کے مطابق اصلاح: اشارے کے پیرامیٹرز کو حقیقی وقت کی مارکیٹ میں تبدیلیوں کے مطابق خود کو ایڈجسٹ کرنے کی اجازت دیں ، اسٹریٹجی کی استحکام میں نمایاں اضافہ کرنے کے لئے جامد پیرامیٹرز کی بجائے۔
مشین لرننگ متعارف کروانا: مشین لرننگ الگورتھم کا استعمال کرتے ہوئے ، بڑے پیمانے پر تاریخی اعداد و شمار کا تجزیہ کرتے ہوئے ، چلتی اوسط اور ADX کے پیرامیٹرز کی نشاندہی کی جاسکتی ہے ، اور یہاں تک کہ قیمتوں کے مستقبل کے رجحانات کی پیش گوئی کی جاسکتی ہے۔
کراس سائیکل اصلاحپیرامیٹر کی ترتیب مختلف ٹرانزیکشن سائیکلوں کے لئے مختلف ہوسکتی ہے ، جس سے ہر قسم کی مدت کے پیرامیٹرز کی بہترین ترتیب کی جانچ کی جاسکتی ہے۔
ڈبل منتقل اوسط رجحان ٹریکنگ حکمت عملی مجموعی طور پر ایک پختہ مستحکم حکمت عملی ہے۔ یہ حکمت عملی قیمتوں میں طویل مدتی رجحانات کو دوہری ای ایم اے اوسط نظام کے ذریعہ پکڑتی ہے ، اور اس میں ADX اشارے موجود ہیں جو سگنل کو فلٹر کرتے ہیں ، جو اسٹاک کی قیمتوں میں رجحانات کو مؤثر طریقے سے پکڑ سکتے ہیں ، اور قلیل مدتی مارکیٹ کے شور سے پریشان ہونے سے بچ سکتے ہیں۔ اس کے ساتھ ہی ، اس حکمت عملی میں کچھ خطرہ بھی ہے ، جس میں پیرامیٹرز کے امتزاج اور اسٹاپ نقصان کے طریقہ کار کو بہتر بنانے کی ضرورت ہے ، یہاں تک کہ حکمت عملی کی استحکام کو بڑھانے کے لئے مزید معاون اشارے اور مشین لرننگ الگورتھم متعارف کروائے جاسکتے ہیں۔ مجموعی طور پر ، ڈبل منتقل اوسط رجحان ٹریکنگ حکمت عملی میں اچھی توازن ہے ، اور یہ ایک مقداری حکمت عملی ہے جو درمیانی مدتی سرمایہ کاروں کے لئے موزوں ہے۔
/*backtest
start: 2022-12-14 00:00:00
end: 2023-11-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Kitaec Strategy4", shorttitle = "Kitaec str4", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(14, defval=14, minval=1, maxval=1000, title="Smoothing")
len2 = input(14, defval=14, minval=1, maxval=1000, title="Smoothing2")
len3=input(550)
src = close
ema1=ema(src, len)
ema2=ema(ema1, len2)
d=ema1-ema2
zlema=ema1+d
ema21=ema(src, (len/3)*2)
ema22=ema(ema21, (len2/3)*2)
d2=ema21-ema22
zlema2=ema21+d2
ema31=ema(src, len3)
ema32=ema(ema21, len3)
d3=ema31-ema32
zlema3=ema31+d2
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//MAs
//ma1 = security(tickerid, "60", vwma(src, len)[1])
//ma2 = security(tickerid, "120", vwma(src, len)[1])
//plot(ma1, linewidth = 2, color = blue, title = "MA")
//plot(ma2, linewidth = 2, color = red, title = "MA2")
// ADX
lenadx = 14
lensig = 14
limadx = 18
up = change(high)
down = -change(low)
trur = rma(tr, lenadx)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, lenadx) / trur)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, lenadx) / trur)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
adx2 = ema(adx, 14)
adx2i = ema(adx2,14)
dadx2 = adx2 - adx2i
zladx2 = adx2 + dadx2
plus2 = ema(plus, 14)
plus2i = ema (plus2, 14)
dplus2 = plus2 - plus2i
zlplus2 = plus2 + dplus2
minus2 = ema(minus, 14)
minus2i = ema (minus2, 14)
dminus2 = minus2 - minus2i
zlminus2 = minus2 + dminus2
vwma = vwma(close, 150)
vwma2 = ema(vwma, 9)
vwma2i = ema(vwma2, 9)
dvwma2 = vwma2 - vwma2i
zlvwma2 = vwma2 + dvwma2
rmax=rma(src, len)
rmax2=rma(rmax, len2)
rmd=rmax-rmax2
zlrmax=rmax+rmd
rmaxz=rma(src, (len/3)*2)
rmaxz2=rma(rmaxz, (len2/3)*2)
rmzd=rmaxz-rmaxz2
zlrmaxz=rmaxz+rmzd
rmaxcol2=zlrmaxz[1] > zlema2[1] ? red:lime
rmaxcol= zlrmax[1] > zlema[1] ? red:lime
rmazlema3=rma(zlema3, 100)
plot(rmazlema3, color=gray, linewidth=2)
plot(zlema, color=green)
plot(zlema2, color=yellow)
plot(zlema3, color=teal, linewidth=2)
plot(ema2, color=na)
plot(rmax, color=rmaxcol2, linewidth=3)
plot(zlrmax, color=rmaxcol, linewidth=3)
//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if zlrmax[1] < zlema[1]
strategy.entry("Buy", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if zlrmax[1] > zlema[1]
strategy.entry("Sell", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))