یہ دوہری حرکت پذیر اوسط کراس اوور پر مبنی تجارتی حکمت عملی ہے۔ یہ مارکیٹ کے رجحانات کا تعین کرنے اور تجارتی سگنل پیدا کرنے کے لئے تیز اور سست حرکت پذیر اوسط کے مابین تعامل کا استعمال کرتی ہے۔ جب تیز ایم اے سست ایم اے سے اوپر عبور کرتا ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ جب تیز ایم اے سست ایم اے سے نیچے عبور کرتا ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔
یہ حکمت عملی بنیادی طور پر چلتی اوسطوں کی رجحان سے باخبر رہنے کی صلاحیت کا استعمال کرتی ہے۔ چلتی اوسط تاریخی اختتامی قیمتوں کی بنیاد پر ایک خاص مدت کے دوران حساب کی جانے والی اوسط قیمتیں ہیں۔ وہ دن کے اندر معمولی اتار چڑھاؤ کو ہموار کرسکتے ہیں اور بڑے ٹائم فریم کے رجحانات کی عکاسی کرسکتے ہیں۔ تیز ایم اے ایک مختصر مدت کا استعمال کرتا ہے اور قیمتوں میں تبدیلیوں کا تیزی سے جواب دے سکتا ہے ، جبکہ سست ایم اے ایک طویل مدت کا استعمال کرتا ہے اور طویل مدتی رجحان کی نمائندگی کرتا ہے۔ سست ایم اے کے اوپر تیز ایم اے کراسنگ سے ظاہر ہوتا ہے کہ قلیل مدتی رفتار طویل مدتی رجحان کو توڑ رہی ہے ، جس سے اشارہ ہوتا ہے کہ ایک اپ ٹرینڈ شروع ہو رہا ہے۔ اس کے برعکس ، سست ایم اے سے نیچے تیز ایم اے کراسنگ کا مطلب ہے کہ طویل مدتی رجحان دباؤ میں ہے اور قیمت گر سکتی ہے۔
یہ حکمت عملی مختلف سائیکل کی لمبائی کے چلتے ہوئے اوسط مقرر کرکے اور ان کے کراس اوورز کا استعمال کرتے ہوئے تجارتی سگنل تیار کرتی ہے۔ جب مختصر سائیکل ایم اے طویل سائیکل ایم اے سے تجاوز کرتا ہے تو ، یہ قلیل مدتی رفتار کو بہتر بنانے کا اشارہ کرتا ہے اور خرید کا اشارہ پیدا کرتا ہے۔ جب مختصر سائیکل ایم اے طویل سائیکل ایم اے سے نیچے عبور کرتا ہے تو ، یہ کمزور ہونے والے قلیل مدتی رجحان کی نشاندہی کرتا ہے اور فروخت کا اشارہ پیدا کرتا ہے۔ حکمت عملی کا کوڈ پلاٹ فنکشن کے ساتھ ایم اے کو پلاٹ کرتا ہے ، ایم اے کراسوں کا تعین کرنے کے لئے رجحان متغیر کا استعمال کرتا ہے ، اور جب کراس اوور ہوتا ہے تو خرید و فروخت کے سگنل آؤٹ پٹ کرتا ہے۔
ڈوئل ایم اے کراس اوور حکمت عملی چلتی اوسط کی رجحان سے باخبر رہنے کی صلاحیت کا استعمال کرتی ہے اور ان کے کراسوں کی بنیاد پر سگنل تیار کرتی ہے۔ اگرچہ یہ آسان اور بدیہی ہے ، اس میں کچھ نقائص بھی ہیں۔ پیرامیٹر ٹیوننگ ، تصدیقیں شامل کرنے ، الگورتھم کی اصلاح وغیرہ کو اسے مضبوط نظام میں تبدیل کرنے سے ان پر قابو پایا جاسکتا ہے۔ مجموعی طور پر ، ڈوئل ایم اے حکمت عملی ایک بہت ہی کلاسک اور استعمال میں آسان رجحان کی پیروی کرنے والی حکمت عملی ہے۔
/*backtest start: 2023-01-01 00:00:00 end: 2023-04-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © KivancOzbilgic //@version=4 strategy("pomila", overlay=true) Periods = input(title="ATR Period", type=input.integer, defval=10) src = input(hl2, title="Source") Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0) changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true) showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false) highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true) barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true) atr2 = sma(tr, Periods) atr= changeATR ? atr(Periods) : atr2 up=src-(Multiplier*atr) up1 = nz(up[1],up) up := close[1] > up1 ? max(up,up1) : up dn=src+(Multiplier*atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green) buySignal = trend == 1 and trend[1] == -1 plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0) plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0) dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red) sellSignal = trend == -1 and trend[1] == 1 plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0) plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0) mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0) longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor) fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor) FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 999) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 999) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => time >= start and time <= finish ? true : false longCondition = buySignal if (longCondition) strategy.entry("BUY", strategy.long, when = window()) shortCondition = sellSignal if (shortCondition) strategy.entry("SELL", strategy.short, when = window()) buy1= barssince(buySignal) sell1 = barssince(sellSignal) color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na barcolor(barcoloring ? color1 : na)