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

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

مصنف:چاؤ ژانگ، تاریخ: 2023-12-01 13:41:41
ٹیگز:

img

جائزہ

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

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

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

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

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

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

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

خطرے کا تجزیہ

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

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

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

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

  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)

مزید