موافقت پذیر ٹریلنگ سٹاپ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-08 15:06:28
ٹیگز:

جائزہ

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

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

  1. اے ٹی آر اشارے کا حساب لگائیں اور اے ٹی آر کی قدر کو پیرامیٹر a سے ضرب کریں تاکہ اسٹاپ نقصان کی حد nLoss ہو۔
  2. EMA لائن کا حساب لگائیں.
  3. جب قیمت ای ایم اے لائن سے اوپر ٹوٹ جاتی ہے تو لمبا اور جب قیمت ای ایم اے لائن سے نیچے ٹوٹ جاتی ہے تو مختصر۔
  4. مندرجہ ذیل قواعد کے ساتھ ، اسٹاپ نقصان کی پوزیشن xATRTrailingStop کو خود بخود ایڈجسٹ کرنے کے لئے موافقت پذیر اسٹاپ نقصان الگورتھم کا استعمال کریں:
    • جب قیمت سٹاپ نقصان کی پوزیشن سے اوپر ٹوٹ جاتی ہے، تو سٹاپ نقصان کو قیمت سے کم سٹاپ نقصان کی حد nLoss میں ایڈجسٹ کریں۔
    • جب قیمت سٹاپ نقصان کی پوزیشن سے نیچے ٹوٹ جاتی ہے، تو سٹاپ نقصان کو قیمت کے علاوہ سٹاپ نقصان کی حد nLoss میں ایڈجسٹ کریں۔
    • دوسری صورت میں، سٹاپ نقصان برقرار رکھیں.
  5. سٹاپ نقصان کے لئے پوزیشن بند کریں جب قیمت سٹاپ نقصان کی سطح کو پہنچتی ہے.

فوائد کا تجزیہ

  1. مارکیٹ کی اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان کی حد کو خود بخود ایڈجسٹ کرنے والے موافقت پذیر اسٹاپ نقصان کے طریقہ کار کو نافذ کرتا ہے ، جو خطرات کو مؤثر طریقے سے کنٹرول کرتا ہے۔
  2. ATR اشارے کے ساتھ معقول سٹاپ نقصان کی حد کا حساب لگاتا ہے، بہت بڑا یا بہت چھوٹا سٹاپ نقصان سے بچنے.
  3. تجارتی سگنل پیدا کرنے کے لئے ای ایم اے کا استعمال کرتا ہے، غیر ضروری تجارت کو کم کرتا ہے اور مارکیٹ شور کو فلٹر کرتا ہے.
  4. سادہ اور واضح حکمت عملی منطق، سمجھنے اور بہتر بنانے کے لئے آسان.
  5. مختلف مارکیٹ کے ماحول کو اپنانے کے لئے ان پٹ پیرامیٹرز کو ایڈجسٹ کرنے کی اجازت دیتا ہے.

خطرات اور بہتری

  1. ای ایم اے سگنل تاخیر کا شکار ہوسکتے ہیں ، جس کی وجہ سے تاخیر سے داخل ہونا پڑتا ہے۔ ابتدائی داخلے کے لئے فیصلے میں مدد کے ل other دوسرے اشارے استعمال کرنے پر غور کریں۔
  2. غیر یقینی انعقاد کی مدت، واحد سٹاپ نقصان کے سائز کو کنٹرول کرنے کے قابل نہیں. نقصانات کو محدود کرنے کے لئے منافع کا ہدف یا زیادہ سے زیادہ انعقاد کی مدت مقرر کر سکتے ہیں.
  3. مضبوط رجحانات والے بازاروں میں اسٹاپ نقصان کو بہت کثرت سے متحرک کیا جاسکتا ہے۔ پیرامیٹرز کو ایڈجسٹ کرنے یا رجحانات کی حالت پر مبنی فلٹرز شامل کرنے پر غور کریں۔
  4. پیرامیٹرز جیسے اے ٹی آر مدت، سٹاپ نقصان ضرب کو علامت کی خصوصیات کی بنیاد پر ترتیب دیا جانا چاہئے، ڈیفالٹ اقدار کو اندھے طور پر استعمال نہیں کیا جانا چاہئے.

اصلاح کی ہدایات

  1. رجحان اشارے کو شامل کرنے پر غور کریں، مخالف رجحان کی تجارت سے بچنے کے لئے رجحان کی سمت میں تجارت کریں.
  2. اتار چڑھاؤ کی بنیاد پر سٹاپ نقصان ضرب کو ایڈجسٹ کریں، اعلی اتار چڑھاؤ کے حالات میں وسیع سٹاپ کی اجازت دیتا ہے.
  3. زیادہ سے زیادہ ہولڈنگ مدت مقرر کریں، ایک مخصوص وقت سے تجاوز کرنے کے بعد فعال سٹاپ نقصان.
  4. سٹاپ نقصان کی حکمت عملی کو منتقل کریں، قیمت کی نقل و حرکت کے ساتھ آہستہ آہستہ سٹاپ کو بڑھانے کے.
  5. علامت کی خصوصیات کی بنیاد پر ATR مدت پیرامیٹر کو اپنی مرضی کے مطابق بنائیں.

نتیجہ

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


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

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

////////////////////////////////////////////////////////////////////////////////
// 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 = 2100, 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
 
////////////////////////////////////////////////////////////////////////////////


xATR  = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

buy  = src > xATRTrailingStop and above 
sell = src < xATRTrailingStop and below

barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

strategy.entry("long",   true, when = buy  and time_cond)
strategy.entry("short", false, when = sell and time_cond)

مزید