
یہ حکمت عملی سپر ٹرینڈ اشارے اور ڈی ای ایم اے اشارے کے ساتھ مل کر ایک رجحان سے باخبر رہنے والی تجارتی حکمت عملی کو لاگو کرتی ہے۔ جب قیمت اوپر کی طرف بڑھتی ہے تو خریدنے کا اشارہ پیدا ہوتا ہے ، جب قیمت نیچے کی طرف گرتی ہے تو بیچنے کا اشارہ پیدا ہوتا ہے ، اور ڈی ای ایم اے اشارے فلٹر جھوٹے سگنل کے ساتھ ملتا ہے۔ یہ حکمت عملی رجحان سازی کے حالات کے لئے موزوں ہے ، جو رجحانات کو مؤثر طریقے سے ٹریک کرنے ، فلٹر کرنے کے قابل ہے۔
یہ حکمت عملی بنیادی طور پر سپر ٹرینڈ اشارے کی بنیاد پر قیمتوں کے رجحان کی سمت کا تعین کرتی ہے۔ سپر ٹرینڈ اشارے ، اے ٹی آر اشارے کے ساتھ مل کر ، قیمتوں کے رجحان کا مؤثر انداز میں تعین کرسکتے ہیں۔ جب قیمتیں بڑھتی ہیں تو یہ ٹریک ہوتا ہے ، جب قیمتیں کم ہوتی ہیں تو یہ ٹریک ہوتا ہے۔ جب قیمت نیچے سے ٹریک سے ٹکرا جاتی ہے تو یہ رجحان بدل جاتا ہے ، خریدنے کا اشارہ پیدا کرتا ہے۔ جب قیمت اوپر سے ٹریک سے ٹکرا جاتی ہے تو یہ رجحان بدل جاتا ہے ، فروخت کا اشارہ پیدا کرتا ہے۔
اس حکمت عملی میں ڈی ای ایم اے اشارے بھی شامل ہیں تاکہ غلط اشارے کو فلٹر کیا جاسکے۔ خریدنے کا اشارہ صرف اس وقت پیدا ہوتا ہے جب قیمت اوپر کی ٹریک سے تجاوز کرتی ہے اور ڈی ای ایم اے لائن سے اوپر ہوتی ہے۔ فروخت کا اشارہ صرف اس وقت پیدا ہوتا ہے جب قیمت نیچے کی ٹریک سے ٹکرا جاتی ہے اور ڈی ای ایم اے لائن سے نیچے ہوتی ہے۔ یہ زلزلے والی مارکیٹوں میں جھوٹے اشاروں کو مؤثر طریقے سے فلٹر کرسکتا ہے۔
اس حکمت عملی کے تحت ٹریڈنگ سگنل کی منطق کچھ اس طرح ہے:
اس طرح کی منطق کے ڈیزائن کے ساتھ، آپ کو رجحان سازی کے حالات میں کام کرنے کے قابل ہو جائے گا، اور آپ کو غیر مستحکم مارکیٹوں میں پوزیشنوں کو کھولنے سے بچنے سے بچنے کے لۓ.
خطرے سے نمٹنے کے طریقے:
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
سپر ٹرینڈ اشارے کے پیرامیٹرز کو بہتر بنائیں۔ آپ مختلف اے ٹی آر دورانیہ کے پیرامیٹرز کی جانچ کر سکتے ہیں اور بہترین پیرامیٹرز کا مجموعہ تلاش کرسکتے ہیں۔
ڈی ای ایم اے اشارے پیرامیٹرز کو بہتر بنائیں۔ مختلف پیرامیٹرز کی جانچ کی جاسکتی ہے تاکہ بہترین پیرامیٹرز کی ترتیب کا تعین کیا جاسکے۔
زیادہ سے زیادہ نقصان کا طریقہ کار۔ اے ٹی آر کی قیمت کے مطابق اسٹاپ نقصان کی حد مقرر کی جاسکتی ہے ، تاکہ زیادہ نقصان سے بچایا جاسکے۔
اضافی سگنل فلٹرنگ قاعدہ اہم نکات پر دوسرے اشارے کی تصدیق شامل کی جاسکتی ہے ، تاکہ غلط سگنل سے بچایا جاسکے جیسے رجحان کی تبدیلی کے نقطہ پر توانائی کے اشارے میں اضافے کی تصدیق وغیرہ
پوزیشن مینجمنٹ کو بہتر بنائیں۔ مارکیٹ میں اتار چڑھاؤ اور خطرے کی صورتحال کی بنیاد پر پوزیشنوں کو ایڈجسٹ کیا جاسکتا ہے۔
اس حکمت عملی میں سپر ٹرینڈ اشارے اور ڈی ای ایم اے اشارے کی خوبیوں کو مربوط کیا گیا ہے۔ اس حکمت عملی میں رجحانات کی پیروی اور سگنل فلٹرنگ پر مبنی ایک مقداری تجارتی حکمت عملی کا نفاذ کیا گیا ہے۔ حکمت عملی کو بہتر بنانے کے لئے کافی گنجائش موجود ہے۔ پیرامیٹرز کو بہتر بنانے ، اسٹاپ نقصان کے طریقہ کار اور سگنل فلٹرنگ جیسے اقدامات سے حکمت عملی کی استحکام اور منافع میں مزید بہتری لائی جاسکتی ہے۔ اس حکمت عملی کا نظریہ سادہ اور آسان ہے ، مجموعی طور پر خطرہ قابل کنٹرول ہے ، اور یہ مقدار میں تجارت کے لئے موزوں ہے۔
/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Krish\'s Supertrend Strategy', overlay=true)
// Supertrend Settings
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.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.new(color.green, 0))
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.new(color.green, 0))
plotshape(buySignal and showsignals ? up : na, title='Buy', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
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.new(color.red, 0))
plotshape(sellSignal and showsignals ? dn : na, title='Sell', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
// DEMA Settings
dema_length = 200
dema = ta.ema(close, dema_length)
// Long and Short Conditions
longCondition = buySignal and close > dema
shortCondition = sellSignal and close < dema
// Strategy Entry and Exit
strategy.entry('Long', strategy.long, when=longCondition)
strategy.entry('Short', strategy.short, when=shortCondition)
strategy.close('Long', when=ta.change(trend) or close < dema)
strategy.close('Short', when=ta.change(trend) or close > dema)
// Plotting
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 Highlighter', color=longFillColor, transp=90)
fill(mPlot, dnPlot, title='DownTrend Highlighter', color=shortFillColor, transp=90)
// Alerts (using plotshape for alerts in strategies)
plotshape(buySignal, title='SuperTrend Buy', color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(sellSignal, title='SuperTrend Sell', color=color.new(color.red, 0), style=shape.triangledown, size=size.small)
changeCond = trend != trend[1]
plotshape(changeCond, title='SuperTrend Direction Change', color=color.new(color.yellow, 0), style=shape.triangleup, size=size.small)