سپر ٹرینڈ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-13 17:03:55
ٹیگز:

جائزہ

سپر ٹرینڈ حکمت عملی اوسط حقیقی رینج کے حساب پر مبنی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ اسٹاپ نقصان کی لائنوں کو ترتیب دینے کے لئے اے ٹی آر کا استعمال کرتی ہے اور یہ فیصلہ کرکے رجحان کی سمت کا تعین کرتی ہے کہ آیا قیمت اسٹاپ نقصان کی لائنوں کو توڑتی ہے ، اس طرح تجارتی سگنل پیدا کرتی ہے۔

حکمت عملی منطق

حکمت عملی سب سے پہلے ایک خاص مدت کے دوران اوسط حقیقی رینج (اے ٹی آر) کا حساب لگاتی ہے۔ پھر یہ طویل اسٹاپ نقصان لائن اور مختصر اسٹاپ نقصان لائن کا حساب لگانے کے لئے اسکیلنگ فیکٹر سے ضرب شدہ اے ٹی آر ویلیو کا استعمال کرتی ہے۔ مخصوص حساب کتاب مندرجہ ذیل ہے:

atr = mult * atr(length)

longStop = hl2 - atr 

shortStop = hl2 + atr

جہاں لمبائی اے ٹی آر کا حساب لگانے کا دورانیہ ہے اور ملٹ اے ٹی آر کے لئے اسکیلنگ فیکٹر ہے۔

سٹاپ نقصان کی لائنوں کا حساب کرنے کے بعد، حکمت عملی یہ فیصلہ کرتی ہے کہ آیا قیمت رجحان کی سمت کا تعین کرنے کے لئے پچھلے بار کی سٹاپ نقصان کی لائن کو توڑتی ہے:

dir := dir == -1 and close > shortStopPrev ? 1 :  
         dir == 1 and close < longStopPrev ? -1 : dir

جب لمبی سٹاپ نقصان کی لکیر ٹوٹ جاتی ہے تو ، رجحان کو تیزی سے سمجھا جاتا ہے۔ جب مختصر اسٹاپ نقصان کی لکیر ٹوٹ جاتی ہے تو ، رجحان کو bearish سمجھا جاتا ہے۔

رجحان کی سمت میں تبدیلی کے مطابق، خرید اور فروخت سگنل پیدا ہوتے ہیں:

buySignal = dir == 1 and dir[1] == -1

sellSignal = dir == -1 and dir[1] == 1 

آخر میں، جب خریدنے یا فروخت سگنل ظاہر ہوتے ہیں تو متعلقہ تجارتی اقدامات کئے جاتے ہیں.

فوائد

  1. اسٹاپ نقصان کی لائنوں کا حساب لگانے کے لئے اے ٹی آر کا استعمال مارکیٹ کے شور کو مؤثر طریقے سے فلٹر کرسکتا ہے اور زیادہ قابل اعتماد رجحان سگنل پکڑ سکتا ہے۔

  2. اس حکمت عملی میں کچھ پیرامیٹرز ہیں جو سمجھنے اور کام کرنے میں آسان ہیں۔ اے ٹی آر کی مدت اور ضرب کو مختلف مارکیٹ کے حالات کے مطابق کرنے کے لئے ایڈجسٹ کیا جاسکتا ہے۔

  3. رجحان کی سمت میں تبدیلی کا تعین کرنے کے لئے سٹاپ نقصان لائن توڑ کا استعمال مؤثر طریقے سے خطرات کو کنٹرول کرسکتا ہے اور وقت میں نقصان کو روک سکتا ہے.

  4. مختلف تجارتی طرزوں کے مطابق صرف طویل یا دو طرفہ تجارت کے لئے ترتیب دینے کے قابل۔

  5. کسی بھی وقت اور مختلف تجارتی آلات کے لئے استعمال کیا جا سکتا ہے.

خطرات

  1. مختلف مارکیٹوں میں، اے ٹی آر کو زیادہ سے زیادہ کھینچ لیا جا سکتا ہے جس سے زیادہ سٹاپ نقصان اور زیادہ غلط سگنل ہوتے ہیں۔

  2. پیرامیٹرز کا بہترین مجموعہ غیر یقینی ہے۔ اے ٹی آر کی مدت اور ضرب کو مارکیٹ کے حالات کی بنیاد پر بہتر بنانے کی ضرورت ہے۔

  3. ہر تجارتی آلہ کے لئے بہترین ٹائم فریم نامعلوم ہے اور اسے جانچنے کی ضرورت ہے۔

  4. بہترین اندراج کا وقت واضح نہیں ہے اور کچھ تاخیر موجود ہے.

  5. جب رجحان کمزور ہوتا ہے تو مارکیٹ میں نہ ہونے کا خطرہ ہوتا ہے۔

  6. سٹاپ نقصان کا خطرہ ہے۔ وسیع سٹاپ نقصان پر غور کیا جا سکتا ہے۔

بہتری

  1. دیگر اشارے جیسے ایم اے سی ڈی، آر ایس آئی کو فلٹرنگ کے لئے شامل کیا جاسکتا ہے تاکہ مارکیٹوں میں غلط سگنل سے بچنے کے لئے.

  2. مشین لرننگ یا جینیاتی الگورتھم کو زیادہ سے زیادہ پیرامیٹر سیٹ تلاش کرنے کے لئے استعمال کیا جا سکتا ہے.

  3. بہترین ATR مدت اور ضارب تلاش کرنے کے لئے ہر آلہ کے لئے پیرامیٹر کی اصلاح کی جا سکتی ہے۔

  4. حجم کے اشارے استعمال کیے جا سکتے ہیں تاکہ بہتر اندراج کا وقت طے کیا جا سکے اور قبل از وقت اندراج سے بچا جا سکے۔

  5. جب مارکیٹ میں نہ ہوں تو پوزیشنوں کو برقرار رکھنے کے لئے لاک کرنے کی حکمت عملیوں کا استعمال کرنے پر غور کریں۔

  6. سٹاپ نقصان کی چوڑائی کو ٹرینڈ طاقت کے اشارے کے ساتھ آرام دہ اور بہتر بنایا جا سکتا ہے.

نتیجہ

سپر ٹرینڈ حکمت عملی قیمتوں میں خرابی کے وقت رجحان کی تبدیلیوں کا پتہ لگانے کے لئے اے ٹی آر سے حساب کتاب کرنے والی متحرک اسٹاپ نقصان کی لائنوں کا استعمال کرتی ہے۔ یہ نسبتا reliable قابل اعتماد اور خطرہ پر قابو پانے والا رجحان کے بعد کا نظام ہے۔ حکمت عملی استعمال میں آسان ہے اور مختلف آلات پر لاگو ہوتی ہے ، لیکن مختلف مارکیٹوں میں بہتر کارکردگی کے ل parameters پیرامیٹرز اور قواعد کو بہتر بنانے کی ضرورت ہے۔ دوسرے تکنیکی اشارے اور حکمت عملیوں کے ساتھ مل کر تجارتی نتائج کو مزید بہتر بنایا جاسکتا ہے۔ عام طور پر ، سپر ٹرینڈ سائنسی طور پر ٹھوس تصورات پر مبنی ہے اور تاجروں کے ذریعہ مزید تحقیق اور اطلاق کے قابل ہے۔


/*backtest
start: 2023-09-12 00:00:00
end: 2023-10-12 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy("SuperTrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000)

LongOnly = input(title="Long Only ?", type=input.bool, defval=true)
length = input(title="ATR Period", type=input.integer, defval=22)
mult = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
showLabels = input(title="Show Buy/Sell Labels ?", type=input.bool, defval=true)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE

// From Date Inputs
fromDay = input(defval=1, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2019, title="From Year", minval=1970)

// To Date Inputs
toDay = input(defval=1, title="To Day", minval=1, maxval=31)
toMonth = input(defval=1, title="To Month", minval=1, maxval=12)
toYear = input(defval=2020, title="To Year", minval=1970)

// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

////////////////////////////////////////////////////////////////////////////////


atr = mult * atr(length)

longStop = hl2 - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop

shortStop = hl2 + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop

dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and close > shortStopPrev ? 1 : 
   dir == 1 and close < longStopPrev ? -1 : dir

longColor = color.green
shortColor = color.red


plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=2, color=longColor)
buySignal = dir == 1 and dir[1] == -1
plotshape(buySignal ? longStop : na, title="Long Stop Start", location=location.absolute, style=shape.circle, size=size.tiny, color=longColor, transp=0)
plotshape(buySignal and showLabels ? longStop : na, title="Buy Label", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=longColor, textcolor=color.white, transp=0)

plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=2, color=shortColor)
sellSignal = dir == -1 and dir[1] == 1
plotshape(sellSignal ? shortStop : na, title="Short Stop Start", location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor, transp=0)
plotshape(sellSignal and showLabels ? shortStop : na, title="Sell Label", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=shortColor, textcolor=color.white, transp=0)

if LongOnly
    if buySignal and time_cond
        strategy.entry("Long", strategy.long, comment="Long")
    
    if(sellSignal and time_cond)
        strategy.close("Long")
else
    if buySignal and time_cond
        strategy.entry("Long", strategy.long, comment="Long")
    else
        strategy.cancel("Long")
    
    
    if sellSignal and time_cond
        strategy.entry("Short", strategy.short, comment="Short")
    else
        strategy.cancel("Short")

if not time_cond
    strategy.close_all()


مزید