وسائل لوڈ ہو رہے ہیں... لوڈنگ...

اے ٹی آر ٹریلنگ سٹاپس حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-09 16:59:57
ٹیگز:

جائزہ

یہ حکمت عملی اوسط حقیقی رینج (اے ٹی آر) اشارے پر مبنی متحرک اسٹاپ نقصان کی لائن طے کرتی ہے تاکہ منافع کو زیادہ سے زیادہ کرتے ہوئے اسٹاپ نقصان کی حفاظت کے ل stock اسٹاک کی قیمت میں ہونے والی تبدیلیوں کو ٹریک کیا جاسکے۔

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

اسٹریٹیجی کو بنیادی طور پر مندرجہ ذیل مراحل کے ذریعے نافذ کیا جاتا ہے:

  1. ATR اشارے کا حساب لگائیں، ATR مدت nATRPeriod پیرامیٹر کے ذریعہ مقرر کی جاتی ہے، ڈیفالٹ 5 پر؛

  2. ATR قدر کی بنیاد پر سٹاپ نقصان لائن کا حساب لگائیں، سٹاپ نقصان کی مقدار nATRMultip پیرامیٹر کے ذریعہ مقرر کی جاتی ہے، ڈیفالٹ ATR کے 3.5 گنا؛

  3. جب قیمت بڑھتی ہے تو ، اگر پچھلی اسٹاپ نقصان لائن سے زیادہ ہے تو ، اسٹاپ نقصان لائن کو قیمت سے کم اسٹاپ نقصان کی مقدار تک ایڈجسٹ کریں۔ جب قیمت گرتی ہے تو ، اگر پچھلی اسٹاپ نقصان لائن سے کم ہے تو ، اسٹاپ نقصان لائن کو نیچے کی قیمت کے علاوہ اسٹاپ نقصان کی مقدار تک ایڈجسٹ کریں۔

  4. اگر قیمت سٹاپ نقصان کی لائن کو توڑتی ہے تو فیصلہ کریں، اگر توڑتا ہے تو، خریدنے یا فروخت کے سگنل بھیجیں؛

  5. سٹاپ نقصان لائن بریک آؤٹ سگنلز کی بنیاد پر طویل یا مختصر پوزیشنیں داخل کریں، اور جب قیمت دوبارہ سٹاپ نقصان لائن کو چھوتی ہے تو پوزیشنیں بند کریں۔

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

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

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

خطرے کا تجزیہ

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

پیرامیٹرز کو اے ٹی آر مدت اور اسٹاپ نقصان کی شدت کو ایڈجسٹ کرکے بہتر بنایا جاسکتا ہے تاکہ اسٹاپ نقصان اور ٹریلنگ کے مابین بہترین توازن تلاش کیا جاسکے۔ غیر ضروری اسٹاپ نقصان کو کم کرنے کے لئے انٹری ٹائمنگ کو فلٹر کرنے کے لئے دوسرے تکنیکی اشارے بھی استعمال کیے جاسکتے ہیں۔

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

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

خلاصہ

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


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

//@version=3
//@okadoke
////////////////////////////////////////////////////////////
// Based on Average True Range Trailing Stops Strategy by HPotter
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort 
// The related article is copyrighted material from Stocks & Commodities Jun 2009 
////////////////////////////////////////////////////////////
strategy(title="ATR Trailing Stops Strategy", shorttitle="ATRTSS", overlay = true, 
  initial_capital=100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type="percent", commission_value=0.0)
  
nATRPeriod      = input(5, "ATR Period")
nATRMultip      = input(3.5, "ATR Multiplier")
useShorts       = input(false, "Test w/Shorts?")
daysBackMax     = input(defval = 360, title = "Max Days Back to Test", minval = 0)
daysBackMin     = input(defval = 0, title = "Min Days Back to Test", minval = 0)
msBackMax       = 1000 * 60 * 60 * 24 * daysBackMax
msBackMin       = 1000 * 60 * 60 * 24 * daysBackMin

xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = na
xATRTrailingStop := 
 iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
  iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
   iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss))) 
                       
pos = na 
pos := 
 iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1, 
  iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
        
color = pos == -1 ? red: pos == 1 ? green : blue 
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop")

isWithinTimeBounds = (msBackMax == 0 or (time > (timenow - msBackMax))) and (msBackMin == 0 or (time < (timenow - msBackMin)))

buy     = crossover(close, xATRTrailingStop)
sell    = crossunder(close, xATRTrailingStop)

strategy.entry("LONG", long=true, when=buy and isWithinTimeBounds)
strategy.close("LONG", when=sell and isWithinTimeBounds)
strategy.entry("SHORT", long=false, when=useShorts and sell and isWithinTimeBounds)
strategy.close("SHORT", when=useShorts and buy and isWithinTimeBounds)



مزید