یہ حکمت عملی رجحان کی سمت کا تعین کرنے کے لئے قیمت کی رفتار کا حساب لگاتی ہے اور منافع میں تالے لگانے کے لئے دو طرفہ ٹریکنگ اسٹاپ قائم کرتی ہے ، رجحان کے بعد اسٹاپ نقصان کا احساس کرتی ہے۔ یہ حکمت عملی ایک مخصوص منافع کے ہدف تک پہنچنے کے بعد ہی ٹریکنگ شروع کرنے کے لئے ایکٹیویشن لیول کو بھی جوڑتی ہے ، مؤثر طریقے سے قبل از وقت اسٹاپ نقصان کو روکتی ہے۔
یہ قیمت کے 12 دورانیے کی رفتار کا حساب لگاتا ہے ، اور اس کے بعد رفتار کے 1 دورانیے کی رفتار کا حساب لگاتا ہے۔ جب تیز رفتار (قیمت کی رفتار کا 1 دورانیہ کی رفتار) 0 سے زیادہ ہوتا ہے تو ، یہ لمبا ہوجاتا ہے۔ جب 0 سے کم ہوتا ہے تو ، یہ مختصر ہوجاتا ہے۔ یہ قیمت کے رجحان کا تعین کرنے کے لئے قیمت کی رفتار کی سمت کی تبدیلی کا فیصلہ کرتا ہے۔
یہ ٹریلنگ اسٹاپ فاصلہ اور ایکٹیویشن لیول کا تعین کرتا ہے۔ ٹریلنگ اسٹاپ فاصلہ کا مطلب ہے جب قیمت نئی اونچائیوں یا نچلی سطحوں تک پہنچ جاتی ہے تو تازہ ترین اعلی یا کم سے مخصوص فاصلے پر اسٹاپ کو ایڈجسٹ کرنا۔ ایکٹیویشن لیول کا مطلب ہے کہ ٹریلنگ اسٹاپ ایک خاص منافع تناسب تک پہنچنے کے بعد ہی شروع ہوتا ہے۔
یہ حکمت عملی سب سے زیادہ قیمت یا سب سے کم قیمت کو ٹریک کرکے منافع میں تالا لگاتی ہے، جب قیمت مقررہ سٹاپ فاصلے سے پیچھے ہٹ جاتی ہے تو بند کرنے کے احکامات بھیجتی ہے۔
دوہری رفتار کا تعین درست طریقے سے رجحان کی سمت کا اندازہ کرتا ہے، تجارت کو کم کرتا ہے، اور پھنسنے سے بچتا ہے.
لچکدار پیچھے رکنے کا فاصلہ خطرے کو کم کرتا ہے اور منافع میں تالا لگاتا ہے۔
ایکٹیویشن لیول اس بات سے روکتا ہے کہ کچھ منافع کا ہدف حاصل کرنے کے بعد ہی ٹریلنگ ممکن ہو جائے۔
دو طرفہ اسٹاپس طویل اور مختصر دونوں کے لئے خطرات کو مکمل طور پر کنٹرول کرتے ہیں.
سادہ اور موثر حساب، سمجھنے اور لاگو کرنے کے لئے آسان.
دوہری رفتار ریورس سگنل پیدا کر سکتے ہیں، رجحان فلٹر کی ضرورت ہے.
بہت زیادہ اسٹاپ فاصلہ اہم نقصانات کا سبب بن سکتا ہے.
اعلی چالو کرنے کی سطح کو روکنے کے مواقع کو یاد کر سکتا ہے.
زیادہ سے زیادہ پیرامیٹر ٹیسٹنگ اور اصلاحات کی ضرورت ہے تاکہ زیادہ سے زیادہ رکاوٹیں مل سکیں۔
رجحان کے فیصلے اور پیرامیٹر کی اصلاح کے ذریعے غلط سگنل کو کم کرسکتے ہیں۔ بہترین ترتیب تلاش کرنے کے لئے مختلف مصنوعات اور پیرامیٹر سیٹوں پر ٹیسٹ کریں۔
رجحان کے لئے مارکیٹ کی ساخت کی شناخت کو یکجا کریں، ریورس ٹریڈنگ سے بچیں.
مزید وقت کی شرائط شامل کریں جیسے حجم میں تبدیلی، سگنل کی درستگی کو بہتر بنانے کے لئے بریک آؤٹ کو سکیڑیں.
مختلف سٹاپ فاصلے اور چالو کرنے کی سطح کی جانچ کی طرف سے پیرامیٹرز کو بہتر بنانے کے.
مارکیٹ کی اتار چڑھاؤ پر منحصر متحرک ٹریلنگ اسٹاپ پر غور کریں۔
بہتر خطرے کے کنٹرول کے لئے جزوی رکاوٹوں یا منتقل رکاوٹوں کو مقرر کریں.
حکمت عملی میں واضح ڈھانچہ ہے ، دوہری رفتار کے ساتھ رجحان کا اندازہ لگانا اور لچکدار ٹریلنگ اسٹاپس کے ساتھ منافع کو مقفل کرنا ، تجارتی خطرات کو مؤثر طریقے سے کنٹرول کرنا۔ یہ سمجھنا اور لاگو کرنا آسان ہے ، جس میں اصلاح کی جگہ ہے۔ مزید تکنیکی اشارے اور پیرامیٹر ٹیسٹنگ شامل کرنے سے حکمت عملی کی کارکردگی میں مزید بہتری آسکتی ہے۔ حکمت عملی اسٹاپ نقصان کے انتظام کو حاصل کرنے کے لئے خیالات اور حوالہ جات فراہم کرتی ہے۔
/*backtest start: 2023-01-01 00:00:00 end: 2023-02-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Trailing Stop Snippet", overlay=true) length = input(12) price = close momentum(seria, length) => mom = seria - seria[length] mom mom0 = momentum(price, length) mom1 = momentum( mom0, 1) tsact = input.float(0.0, "Trailing Stop Activation |", group="strategy", tooltip="Activates the Trailing Stop once this PnL is reached.") / 100 tsact := tsact ? tsact : na ts = input.float(0.0, "Position Trailing Stop |", group="strategy", tooltip="Trails your position with a stop loss at this distance from the highest PnL") / 100 ts := ts ? ts : na in_long = strategy.position_size > 0 in_short = strategy.position_size < 0 var ts_ = array.new_float() ts_size = array.size(ts_) ts_get = ts_size > 0 ? array.get(ts_, ts_size - 1) : 0 if in_long if tsact and high > strategy.position_avg_price + strategy.position_avg_price * tsact if ts_size > 0 and ts_get < high array.push(ts_, high) if ts_size < 1 array.push(ts_, high) if not tsact if ts_size > 0 and ts_get < high array.push(ts_, high) if ts_size < 1 array.push(ts_, high) if in_short if tsact and low < strategy.position_avg_price - strategy.position_avg_price * tsact if ts_size > 0 and ts_get > low array.push(ts_, low) if ts_size < 1 array.push(ts_, low) if not tsact if ts_size > 0 and ts_get > low array.push(ts_, low) if ts_size < 1 array.push(ts_, low) trail = in_long and ts_size > 0 ? low < ts_get - ts_get * ts : in_short and ts_size > 0 ? high > ts_get + ts_get * ts : na if (mom0 > 0 and mom1 > 0) strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE") else strategy.cancel("MomLE") if (mom0 < 0 and mom1 < 0) strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE") else strategy.cancel("MomSE") tsClose = in_long ? ts_get - ts_get * ts : in_short ? ts_get + ts_get * ts : na if trail strategy.close_all() if not strategy.opentrades array.clear(ts_) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr) plotchar(ts_get, "GET", "") plot(strategy.position_avg_price > 0 ? strategy.position_avg_price : na, "Average", color.rgb(251, 139, 64), 2, plot.style_cross) plot(tsClose > 0 ? tsClose : na, "Trailing", color.rgb(251, 64, 64), 2, plot.style_cross) plot(strategy.position_avg_price - strategy.position_avg_price * tsact > 0 ? strategy.position_avg_price - strategy.position_avg_price * tsact : na, "TS Activation", color.fuchsia, 2, plot.style_cross)