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