اس حکمت عملی کا بنیادی خیال یہ ہے کہ اوسط حقیقی رینج (اے ٹی آر) اشارے کا استعمال کرتے ہوئے منافع بخش پوزیشنوں کی حفاظت کو زیادہ سے زیادہ کرنے کے لئے ایک انکولی ٹریلنگ اسٹاپ نقصان لائن مرتب کی جائے۔ اے ٹی آر اشارے متحرک طور پر مارکیٹ کی اتار چڑھاؤ کو پکڑ سکتا ہے اور مارکیٹ کی اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان کے فاصلے کو ایڈجسٹ کرسکتا ہے ، اس حکمت عملی میں اسٹاپ نقصان کے امکان کو کم سے کم کرتے ہوئے موثر اسٹاپ نقصان کو یقینی بنایا جاسکتا ہے۔ اس حکمت عملی میں اسٹاپ نقصان کی لائن کی اوپری اور نچلی حدود کو دیکھنے کے لئے بولنگر بینڈ بھی شامل ہیں ، جس میں مارکیٹوں میں وپسا اثر کا مقابلہ کرنے کے لئے وِک پروٹیکشن شامل کرنے کا اختیار ہے۔
اس حکمت عملی میں اے ٹی آر اشارے کی N مدت کی اوسط کو ایک عنصر سے ضرب دیا جاتا ہے جس میں بیس اسٹاپ نقصان کا فاصلہ ہوتا ہے۔ اے ٹی آر کی قیمت جتنی زیادہ ہوگی ، مارکیٹ کی اتار چڑھاؤ اتنی ہی زیادہ ہوگی ، لہذا اسٹاپ نقصان کا فاصلہ اتنا ہی وسیع ہوگا۔ اے ٹی آر کی قیمت جتنی کم ہوگی ، اسٹاپ نقصان کا فاصلہ اتنا ہی تنگ ہوگا۔ اس سے مارکیٹ کی اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان کے فاصلے کی متحرک ایڈجسٹمنٹ کی اجازت ملتی ہے۔
خاص طور پر، حکمت عملی مندرجہ ذیل بنیادی منطق کا استعمال کرتی ہے:
ATR مدت کے ATR قدر کا حساب لگائیں (nATRPeriod).
بیس سٹاپ نقصان کا فاصلہ حاصل کریں nLoss ایک فیکٹر (nATRMultip) کی طرف سے ATR قدر ضرب کی طرف سے.
سٹاپ نقصان کی لائن کو اپ ڈیٹ کریں xATRTrailingStop موجودہ اعلی، کم اور پچھلی مدت کی سٹاپ نقصان کی لائن کی بنیاد پر.
اگر موجودہ کم پچھلے دورانیے کی سٹاپ نقصان لائن کو متحرک کرتا ہے تو ، اسٹاپ نقصان لائن nLoss فاصلے کی کم سے نیچے تک بڑھ جاتی ہے۔
اگر موجودہ اونچائی پچھلے دور کی سٹاپ نقصان لائن کو متحرک کرتی ہے تو ، اسٹاپ نقصان لائن nLoss فاصلے کے ذریعہ اونچائی سے اوپر کی طرف نیچے کی طرف بڑھ جاتی ہے۔
اگر سٹاپ نقصان کو متحرک نہیں کیا جاتا ہے تو، اس کی قیمت کے قریب فاصلے پر مبنی سٹاپ نقصان کی لائن کو ایڈجسٹ کریں.
سٹاپ نقصان لائن کی مزید اصلاح کے لئے اختیاری wick تحفظ کے فاصلے شامل کریں.
سٹاپ نقصان کی لائن کی اوپری اور نچلی حد کو دیکھنے کے لئے بولنگر بینڈس کو پلاٹ کریں.
سٹاپ نقصان لائن کے رنگ کی بنیاد پر پوزیشن سمت کا تعین کریں.
یہ حکمت عملی ATR اشارے کو لچکدار طریقے سے استعمال کرتی ہے تاکہ اسٹاپ نقصان کی لائن کو مارکیٹ کی اتار چڑھاؤ کی بنیاد پر موافقت پذیر طور پر ایڈجسٹ کیا جاسکے ، جس سے مناسب اسٹاپ نقصان کا فاصلہ یقینی بنایا جاسکے جبکہ غیر ضروری اسٹاپ نقصان سے بچنے سے بچنے کے ل.
اس حکمت عملی کے فوائد:
اے ٹی آر اشارے کا استعمال مختلف مارکیٹ کے حالات کو متحرک طور پر اپنانے کے لئے اسٹاپ نقصان کے فاصلے کو ایڈجسٹ کرنے کے لئے کریں۔
اپنی مرضی کے مطابق ضارب سٹاپ نقصان کے فاصلے کی لچکدار ایڈجسٹمنٹ کی اجازت دیتا ہے.
بولنگر بینڈ کا اضافہ سٹاپ نقصان لائن کی اوپری اور نچلی حدود کا تصور فراہم کرتا ہے۔
اختیاری فلیٹ تحفظ مختلف مارکیٹوں میں whipsaw سے بچتا ہے.
منافع بخش پوزیشنوں کی کھپت کو زیادہ سے زیادہ کرنے کے لئے ٹریلنگ سٹاپ نقصان کے طور پر استعمال کیا جا سکتا ہے.
حکمت عملی کی منطق واضح اور سمجھنے میں آسان ہے جس میں کچھ بہتر پیرامیٹرز ہیں۔
متعدد مصنوعات اور ٹائم فریم پر لاگو ہوتا ہے۔
اس حکمت عملی کے کچھ خطرات کو نوٹ کرنا:
اے ٹی آر اشارے مارکیٹ کے جھٹکے پر آہستہ آہستہ ردعمل ظاہر کرتا ہے، جس سے بڑے سٹاپ نقصان کا فاصلہ ہوتا ہے۔
ضرب کی حد سے زیادہ ترتیب بھی سٹاپ نقصان کی دوری کو بڑھا دیتا ہے، نقصان کا خطرہ بڑھاتا ہے.
وِک پروٹیکشن سٹاپ نقصان کی لائن کو بہت لچکدار بنا سکتا ہے جب وِپسا بڑھتی ہے۔
داخلہ کے قوانین پر غور نہیں کیا جاتا ہے، داخلہ / باہر نکلنے کی حکمت عملی کے طور پر استعمال نہیں کیا جا سکتا.
مختلف مصنوعات اور ٹائم فریم کے لئے ضروری پیرامیٹرز کی وسیع پیمانے پر جانچ اور اصلاح۔
سٹاپ نقصان کا خاتمہ نقصانات کو بڑھا سکتا ہے، جس میں مؤثر سرمایہ کاری کی ضرورت ہوتی ہے.
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
سٹاپ نقصان کے فاصلے کو بہتر بنانے کے لیے مختلف اے ٹی آر ادوار کا تجربہ کریں۔
سٹاپ نقصان کے فاصلے اور امکان کے درمیان توازن کے لئے ضارب کو ایڈجسٹ کریں.
whipsaw کی روک تھام کے لئے wick تحفظ کی مدت کو بہتر بنانے کے.
اسٹاپ نقصان کے اوپر انٹری کی شرائط شامل کرنے کی کوشش کریں تاکہ یہ انٹریز/ایگزٹ کی حکمت عملی بن جائے۔
رجحان کی بنیاد پر سٹاپ نقصان کی دوری کو ایڈجسٹ کرنے کے لئے رجحان اشارے شامل کریں.
ایلیٹ ویوز تھیوری کی بنیاد پر سٹاپ نقصان کو ایڈجسٹ کریں.
ایک ہی نقصان کی رقم کو محدود کرنے کے لئے پوزیشن سائزنگ شامل کریں.
یہ حکمت عملی اے ٹی آر اشارے کی انکولی خصوصیت کو متحرک اسٹاپ نقصان کے طریقہ کار کو ڈیزائن کرنے کے لئے استعمال کرتی ہے۔ اسٹاپ نقصان کو یقینی بناتے ہوئے ، یہ غیر ضروری اسٹاپ نقصان کے محرکات کو بھی کم سے کم کرتا ہے۔ حکمت عملی کا منطق آسان اور واضح ہے ، جس سے ضروریات کی بنیاد پر لچکدار اصلاح کی اجازت ملتی ہے۔ یہ منافع کے تحفظ کو زیادہ سے زیادہ کرنے کے لئے ٹریلنگ اسٹاپ نقصان کے طور پر بہترین کام کرتا ہے۔ مناسب پیرامیٹر کی اصلاح اور رسک کنٹرول کے ساتھ ، یہ حکمت عملی مقداری تجارت میں ایک موثر اسٹاپ نقصان کا آلہ بن سکتی ہے۔
/*backtest start: 2022-10-12 00:00:00 end: 2023-10-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v2.0 13/10/2014 // Average True Range Trailing Stops Strategy, by Sylvain Vervoort // The related article is copyrighted material from Stocks & Commodities Jun 2009 // Modified by River to add Bands, and change color of Trailing Stop and add Wick Protection. Now turned into a Strategy for Backtesting Purposes. // After backtesting, it seems clear that it functions well as a Trailing Stop, but not as an Entry/Exit strategy. //////////////////////////////////////////////////////////// strategy(title="ATR Trailing Stop Bands Strategy[R] ", overlay = true) nATRPeriod = input(5) nATRMultip = input(4) length = input(30, "#Periods of Wick Protection", minval=2) bType = input(0, "Max [1] or Avg Wick Protection [0]", minval=0, maxval=1) avgupperwick = sma(close[1] <= open[1] ? high[1] - open[1] : high[1] - close[1], length) maxupperwick = highest(close[1] <= open[1] ? high[1] - open[1] : high[1] - close[1], length) avglowerwick = sma(close[1] > open[1] ? open[1] - low[1] : close[1] - low[1], length) maxlowerwick = highest(close[1] > open[1] ? open[1] - low[1] : close[1] - low[1], length) upperwick = bType == 0 ? avgupperwick : maxupperwick lowerwick = bType == 0 ? avglowerwick : maxlowerwick xATR = atr(nATRPeriod) nLoss = nATRMultip * xATR upperband = iff(high < nz(upperband[1], 0) and high[1] < nz(upperband[1], 0), min(nz(upperband[1]), high + nLoss + upperwick), high + nLoss + upperwick) lowerband = iff(low > nz(lowerband[1], 0) and low[1] > nz(lowerband[1], 0), max(nz(lowerband[1]), low - nLoss - lowerwick), low - nLoss - lowerwick) xATRTrailingStop = iff(low > nz(xATRTrailingStop[1], 0) and low[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), low - nLoss - lowerwick), iff(high < nz(xATRTrailingStop[1], 0) and high[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), high + nLoss + upperwick), // iff(low <= nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), high + nLoss + upperwick, iff(high >= nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), low - nLoss - lowerwick,0)))) iff(low <= nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), upperband[1], iff(high >= nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), lowerband[1],0)))) pos = iff(close[1] > nz(xATRTrailingStop[1], 0) and low <= nz(xATRTrailingStop[1], 0), 1, iff(close[1] < nz(xATRTrailingStop[1], 0) and high >= nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) color = pos == 1 ? red: pos == -1 ? green : blue plot(upperband, color=red, title="ATR Upper") plot(xATRTrailingStop, color=color, title="ATR Trailing Stop", linewidth=2) plot(lowerband, color=green, title="ATR Lower") longCondition = (color == green and color[1] == red) if (longCondition) strategy.entry("Long", strategy.long) longExitCondition = (color == red and color[1] == green) if (longExitCondition) strategy.close("Long") shortCondition = (color == red and color[1] == green) if (shortCondition) strategy.entry("Short", strategy.short) shortexitCondition = (color == green and color[1] == red) if (shortexitCondition) strategy.close("Short")