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

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

مصنف:چاؤ ژانگ، تاریخ: 2023-11-27 11:45:04
ٹیگز:

img

جائزہ

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

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

یہ قیمت کے 12 دورانیے کی رفتار کا حساب لگاتا ہے ، اور اس کے بعد رفتار کے 1 دورانیے کی رفتار کا حساب لگاتا ہے۔ جب تیز رفتار (قیمت کی رفتار کا 1 دورانیہ کی رفتار) 0 سے زیادہ ہوتا ہے تو ، یہ لمبا ہوجاتا ہے۔ جب 0 سے کم ہوتا ہے تو ، یہ مختصر ہوجاتا ہے۔ یہ قیمت کے رجحان کا تعین کرنے کے لئے قیمت کی رفتار کی سمت کی تبدیلی کا فیصلہ کرتا ہے۔

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

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

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

  1. دوہری رفتار کا تعین درست طریقے سے رجحان کی سمت کا اندازہ کرتا ہے، تجارت کو کم کرتا ہے، اور پھنسنے سے بچتا ہے.

  2. لچکدار پیچھے رکنے کا فاصلہ خطرے کو کم کرتا ہے اور منافع میں تالا لگاتا ہے۔

  3. ایکٹیویشن لیول اس بات سے روکتا ہے کہ کچھ منافع کا ہدف حاصل کرنے کے بعد ہی ٹریلنگ ممکن ہو جائے۔

  4. دو طرفہ اسٹاپس طویل اور مختصر دونوں کے لئے خطرات کو مکمل طور پر کنٹرول کرتے ہیں.

  5. سادہ اور موثر حساب، سمجھنے اور لاگو کرنے کے لئے آسان.

خطرے کا تجزیہ

  1. دوہری رفتار ریورس سگنل پیدا کر سکتے ہیں، رجحان فلٹر کی ضرورت ہے.

  2. بہت زیادہ اسٹاپ فاصلہ اہم نقصانات کا سبب بن سکتا ہے.

  3. اعلی چالو کرنے کی سطح کو روکنے کے مواقع کو یاد کر سکتا ہے.

  4. زیادہ سے زیادہ پیرامیٹر ٹیسٹنگ اور اصلاحات کی ضرورت ہے تاکہ زیادہ سے زیادہ رکاوٹیں مل سکیں۔

رجحان کے فیصلے اور پیرامیٹر کی اصلاح کے ذریعے غلط سگنل کو کم کرسکتے ہیں۔ بہترین ترتیب تلاش کرنے کے لئے مختلف مصنوعات اور پیرامیٹر سیٹوں پر ٹیسٹ کریں۔

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

  1. رجحان کے لئے مارکیٹ کی ساخت کی شناخت کو یکجا کریں، ریورس ٹریڈنگ سے بچیں.

  2. مزید وقت کی شرائط شامل کریں جیسے حجم میں تبدیلی، سگنل کی درستگی کو بہتر بنانے کے لئے بریک آؤٹ کو سکیڑیں.

  3. مختلف سٹاپ فاصلے اور چالو کرنے کی سطح کی جانچ کی طرف سے پیرامیٹرز کو بہتر بنانے کے.

  4. مارکیٹ کی اتار چڑھاؤ پر منحصر متحرک ٹریلنگ اسٹاپ پر غور کریں۔

  5. بہتر خطرے کے کنٹرول کے لئے جزوی رکاوٹوں یا منتقل رکاوٹوں کو مقرر کریں.

نتیجہ

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


/*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)

مزید