یہ حکمت عملی دوہری حرکت پذیر اوسطوں کے ذریعہ طویل اور مختصر سگنل تیار کرتی ہے اور اسٹاپ نقصان کی پیروی کرتی ہے۔ بنیادی خیال یہ ہے کہ حرکت پذیر اوسط کے ساتھ رجحان کی سمت کا تعین کریں ، رجحان کے ساتھ طویل یا مختصر جائیں ، اور اسٹاپ نقصان کی پیروی کے لئے اسٹاپ نقصان کا حساب کرنے کے لئے اے ٹی آر کا استعمال کریں۔
یہ حکمت عملی hl2 کو سورس قیمت کے طور پر استعمال کرتی ہے اور اسٹاپ نقصان کی حد کے طور پر ایک خاص مدت کے ATR کا حساب لگاتی ہے۔ اوپری اور نچلے بینڈ کا حساب ایک خاص عنصر سے ضرب ATR کی بنیاد پر کیا جاتا ہے۔ جب قیمت اوپری بینڈ سے اوپر ٹوٹ جاتی ہے تو ، خریدنے کا سگنل تیار ہوتا ہے۔ جب قیمت نچلے بینڈ سے نیچے ٹوٹ جاتی ہے تو ، فروخت کا سگنل تیار ہوتا ہے تاکہ مختصر ہوجائے۔
پوزیشن کھولنے کے بعد ، ٹریکنگ اسٹاپ نقصان کو حاصل کرنے کے لئے اے ٹی آر میں ہونے والی تبدیلیوں کی بنیاد پر اسٹاپ نقصان کو ریئل ٹائم میں ایڈجسٹ کیا جاتا ہے۔ خاص طور پر ، طویل عرصے سے جانے کے بعد ، اسٹاپ نقصان کو ٹریک کرنے کے لئے تازہ ترین کم کی بنیاد پر نچلے بینڈ کو بتدریج بڑھایا جاتا ہے۔ مختصر ہونے کے بعد ، اسٹاپ نقصان کو ٹریک کرنے کے لئے تازہ ترین اعلی کی بنیاد پر اوپری بینڈ کو بتدریج کم کیا جاتا ہے۔
اس طرح، یہ حکمت عملی رجحان کی سمت کا تعین کرنے کے لئے چلتی اوسط کی صلاحیت کا مکمل استعمال کرتی ہے، اور ٹریڈنگ کی سمت اور خطرے کے کنٹرول کو یقینی بنانے کے لئے اے ٹی آر پر مبنی ٹریکنگ سٹاپ نقصان کے طریقہ کار کو بھی شامل کرتی ہے.
اس حکمت عملی کا سب سے بڑا فائدہ رسک کنٹرول میں ہے۔ روایتی حرکت پذیر اوسط حکمت عملی صرف سمت کے فیصلوں پر غور کرتی ہے اور آسانی سے اکاؤنٹس کو اڑا سکتی ہے۔ اسٹاپ نقصان کو ٹریک کرنے کے لئے اے ٹی آر کو شامل کرکے ، یہ حکمت عملی مارکیٹ کی اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان کو متحرک طور پر ایڈجسٹ کرسکتی ہے تاکہ تجارتی خطرات کو مؤثر طریقے سے کنٹرول کیا جاسکے۔
اس کے علاوہ ، یہ حکمت عملی دو طرفہ تجارت کو جوڑتی ہے۔ ایک طرفہ حکمت عملیوں کے مقابلے میں ، جب رجحانات الٹ جاتے ہیں تو یہ فوری طور پر پوزیشن کی سمتوں کو ایڈجسٹ کرسکتا ہے ، ایک سمت میں پھنس جانے سے بچتا ہے اور حکمت عملی کی منافع بخش صلاحیت کو بہتر بناتا ہے۔
اس حکمت عملی کے اہم خطرات اے ٹی آر کی مدت اور ضرب کی پیرامیٹر کی ترتیبات سے آتے ہیں۔ اگر اے ٹی آر کی مدت بہت مختصر ہے یا ضرب بہت بڑی ہے تو ، اسٹاپ نقصان کی حد خطرات کو مؤثر طریقے سے کنٹرول کرنے کے لئے بہت چھوٹی ہوگی۔ اگر اے ٹی آر کی مدت بہت لمبی ہے یا ضرب بہت چھوٹی ہے تو ، اسٹاپ نقصان منافع کے ل too بہت ڈھیلا ہوگا۔ نیز ، جب قیمتیں حرکت پذیر اوسط میں گھس جاتی ہیں تو جھوٹے بریک آؤٹ کے خطرات موجود ہیں۔
خطرات کو روکنے کے نقصان اور منافع کے اہداف کے درمیان توازن کے لئے اے ٹی آر کی مدت اور ضرب کو بہتر بنانے اور جھوٹے بریک آؤٹ کو فلٹر کرنے اور سگنل کی کوالٹی کو بہتر بنانے کے لئے دیگر اشارے شامل کرکے منظم کیا جاسکتا ہے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
بہترین پیرامیٹر مجموعہ تلاش کرنے کے لئے چلتی اوسط ادوار کو بہتر بنائیں.
سگنلز کو فلٹر کرنے اور معیار کو بہتر بنانے کے لیے دیگر اشارے جیسے ایم اے سی ڈی، کے ڈی جے وغیرہ شامل کریں۔
منافع کو بہتر بنانے کے لیے پوزیشن سائزنگ جیسے فکسڈ فریکشن، مارٹنگیل وغیرہ شامل کریں۔
تحقیق کے پیرامیٹرز مختلف مصنوعات کے درمیان اصلاح کے لئے اختلافات.
پیرامیٹر ٹریننگ اور اصلاح کے لئے جینیاتی الگورتھم کی طرح مشین لرننگ کا اطلاق کریں۔
اس حکمت عملی میں رجحانات کا جائزہ لینے اور خطرے پر قابو پانے ، منافع کو کم کرتے ہوئے منافع کے حصول پر مکمل طور پر غور کیا گیا ہے۔ پیرامیٹر کی اصلاح اور پورٹ فولیو کے طریقوں کے ذریعے مزید بہتری سے حکمت عملی کی منافع میں بہتری آنے میں مدد مل سکتی ہے۔ خلاصہ یہ ہے کہ یہ ایک مضبوط اور مستحکم مقداری تجارتی حکمت عملی ہے جس میں واضح منطق اور آسان نفاذ ہے۔
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 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("Trenbolone Strategy", 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)