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


تخلیق کی تاریخ: 2023-12-01 13:41:41 آخر میں ترمیم کریں: 2023-12-01 13:41:41
کاپی: 0 کلکس کی تعداد: 629
1
پر توجہ دیں
1619
پیروکار

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

جائزہ

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

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

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

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

طاقت کا تجزیہ

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

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

خطرے کا تجزیہ

اس حکمت عملی میں جو اہم خطرہ ہوسکتا ہے وہ یہ ہے کہ اسٹاپ قیمت کی غلط ترتیب سے پیدا ہونے والا خطرہ ہے۔ اسٹاپ قیمت کی حد بہت زیادہ مقرر کی جاسکتی ہے ، جس سے نقصانات میں اضافہ ہوسکتا ہے۔ اسٹاپ قیمت کی حد بہت کم مقرر کی جاسکتی ہے ، جس کی وجہ سے اسٹاپ نقصانات کو کثرت سے متحرک کیا جاسکتا ہے۔ مارکیٹ کے حالات کے مطابق اس کو بہتر بنانے کی ضرورت ہے۔

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

اصلاح کی سمت

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Trailing SL Strategy [QuantNomad]", shorttitle = "TrailingSL [QN]", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50)

////////////
// Inputs //

sl_type    = input("%", options = ["%", "ATR", "Absolute"])

sl_perc    = input(4,     title = "% SL",        type = input.float)
atr_length = input(10,    title = "ATR Length")
atr_mult   = input(2,     title = "ATR Mult",    type = input.float)
sl_absol   = input(10,    title = "Absolute SL", type = input.float)

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

//////////////////
// CALCULATIONS //

// SL values
sl_val = sl_type == "ATR"      ? atr_mult * atr(atr_length) : 
         sl_type == "Absolute" ? sl_absol : 
         close * sl_perc / 100
         
// Init Variables
pos         = 0
trailing_sl = 0.0

// Signals
long_signal  = nz(pos[1]) !=  1 and high > nz(trailing_sl[1])
short_signal = nz(pos[1]) != -1 and low  < nz(trailing_sl[1]) 

// Calculate SL
trailing_sl := short_signal     ? high + sl_val : 
               long_signal      ? low  - sl_val : 
               nz(pos[1]) ==  1 ? max(low  - sl_val, nz(trailing_sl[1])) :  
               nz(pos[1]) == -1 ? min(high + sl_val, nz(trailing_sl[1])) : 
               nz(trailing_sl[1])
               
// Position var               
pos := long_signal  ? 1 : short_signal ? -1 : nz(pos[1]) 

//////////////
// PLOTINGS //

plot(trailing_sl, linewidth = 2, color = pos == 1 ? color.green : color.red)

//////////////
// STRATEGY //

if (time_cond and pos != 1)
    strategy.entry("long",  true, stop = trailing_sl)
  
if (time_cond and pos != -1) 
    strategy.entry("short", false, stop = trailing_sl)