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