اے ٹی آر ڈبل ٹریلنگ اسٹاپ پر مبنی ڈائنامک اسٹاپ پرافٹ اور اسٹاپ لاس اسٹریٹجی


تخلیق کی تاریخ: 2024-03-22 13:52:59 آخر میں ترمیم کریں: 2024-03-22 13:52:59
کاپی: 1 کلکس کی تعداد: 616
1
پر توجہ دیں
1617
پیروکار

اے ٹی آر ڈبل ٹریلنگ اسٹاپ پر مبنی ڈائنامک اسٹاپ پرافٹ اور اسٹاپ لاس اسٹریٹجی

جائزہ

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

حکمت عملی کا اصول

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

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

طاقت کا تجزیہ

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

خطرے کا تجزیہ

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

اصلاح کی سمت

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="UT Bot Strategy", overlay=true)

// Inputs
a1 = input(1, title="Key Value 1 ('This changes the sensitivity')")
c1 = input(10, title="ATR Period 1")
a2 = input(2, title="Key Value 2 ('This changes the sensitivity')")
c2 = input(20, title="ATR Period 2")
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 = time >= startDate and time <= finishDate
 
////////////////////////////////////////////////////////////////////////////////

xATR1 = atr(c1)
nLoss1 = a1 * xATR1
xATR2 = atr(c2)
nLoss2 = a2 * xATR2

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

xATRTrailingStop1 = 0.0
xATRTrailingStop1 := iff(src > nz(xATRTrailingStop1[1], 0) and src[1] > nz(xATRTrailingStop1[1], 0), max(nz(xATRTrailingStop1[1]), src - nLoss1),
   iff(src < nz(xATRTrailingStop1[1], 0) and src[1] < nz(xATRTrailingStop1[1], 0), min(nz(xATRTrailingStop1[1]), src + nLoss1), 
   iff(src > nz(xATRTrailingStop1[1], 0), src - nLoss1, src + nLoss1)))

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

ema1 = ema(src, 1)
above1 = crossover(ema1, xATRTrailingStop1)
below1 = crossover(xATRTrailingStop1, ema1)
buy1 = src > xATRTrailingStop1 and above1 
sell1 = src < xATRTrailingStop1 and below1
barbuy1 = src > xATRTrailingStop1 
barsell1 = src < xATRTrailingStop1 

ema2 = ema(src, 1)
above2 = crossover(ema2, xATRTrailingStop2)
below2 = crossover(xATRTrailingStop2, ema2)
buy2 = src > xATRTrailingStop2 and above2 
sell2 = src < xATRTrailingStop2 and below2
barbuy2 = src > xATRTrailingStop2 
barsell2 = src < xATRTrailingStop2 

plotshape(buy1,  title="Buy 1",  text='Buy 1',  style=shape.labelup,   location=location.belowbar, color=color.green, textcolor=color.white, transp=0, size=size.tiny)
plotshape(sell1, title="Sell 1", text='Sell 1', style=shape.labeldown, location=location.abovebar, color=color.red,   textcolor=color.white, transp=0, size=size.tiny)
plotshape(buy2,  title="Buy 2",  text='Buy 2',  style=shape.labelup,   location=location.belowbar, color=color.green, textcolor=color.white, transp=0, size=size.tiny)
plotshape(sell2, title="Sell 2", text='Sell 2', style=shape.labeldown, location=location.abovebar, color=color.red,   textcolor=color.white, transp=0, size=size.tiny)

barcolor(barbuy1  ? color.green : na)
barcolor(barsell1 ? color.red   : na)
barcolor(barbuy2  ? color.green : na)
barcolor(barsell2 ? color.red   : na)

// Calculate SL and TP levels
candle_size = abs(open - close)
tp_level = close + candle_size *65

// Close long positions if TP is hit
strategy.exit("TP Long", "long", limit=tp_level)

// Close short positions if TP is hit
strategy.exit("TP Short", "short", limit=tp_level)

// Enter long position
strategy.entry("long", strategy.long, when=(buy1 or buy2) and time_cond)

// Enter short position
strategy.entry("short", strategy.short, when=(sell1 or sell2) and time_cond)

//adding ema with width
// Calculate EMA and SMA
ema5 = ema(close, 5)
ema200 = ema(close, 200)
ema21 = ema(close, 21)
ema50 = ema(close, 50)
sma50 = sma(close, 50)

// Plot EMA and SMA with width
plot(ema5, color=color.rgb(130, 235, 139), title="EMA 5", linewidth=1)
plot(ema200, color=color.rgb(243, 246, 249), title="EMA 200", linewidth=2)
plot(ema21, color=color.blue, title="21", linewidth=1)
plot(ema50, color=color.rgb(255, 64, 0), title="EMA 50", linewidth=2)
//plot(sma50, color=color.purple, title="SMA 20", linewidth=2)