ڈائنامک اسٹاپ لاس ٹریلنگ اسٹریٹجی


تخلیق کی تاریخ: 2024-01-03 16:15:29 آخر میں ترمیم کریں: 2024-01-03 16:15:29
کاپی: 0 کلکس کی تعداد: 596
1
پر توجہ دیں
1617
پیروکار

ڈائنامک اسٹاپ لاس ٹریلنگ اسٹریٹجی

جائزہ

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

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

  1. یہ حکمت عملی اسٹوک اشارے پر مبنی ہے جو خرید اور فروخت کے اشارے پیدا کرتی ہے۔ اسٹوک کی کے لائن نیچے سے ڈی لائن کو توڑنے پر خرید کا اشارہ دیتی ہے۔ اسٹوک کی کے لائن اوپر سے نیچے سے ڈی لائن کو توڑنے پر فروخت کا اشارہ دیتی ہے۔

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

  3. جب روکنے کی سطح میں تبدیلی کا پتہ چلتا ہے تو ، حکمت عملی انتباہ کے ذریعہ ترمیم شدہ روکنے کی ہدایات تیار کرتی ہے ، جو حقیقی تجارت میں روکنے کی سطح کو حقیقی وقت میں ایڈجسٹ کرنے کے لئے MT4 / MT5 پر بھیجی جاتی ہے۔ اس کے ساتھ ساتھ ، روکنے کی تبدیلی کو بصری طور پر ظاہر کرنے کے لئے گرافک لیبلنگ پینٹ کی جاتی ہے۔

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

طاقت کا تجزیہ

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

  2. الرٹ فنکشن کا استعمال کرتے ہوئے ، اسٹاپ نقصان کی ایڈجسٹمنٹ کی معلومات کو حقیقی وقت میں ایم ٹی 4 / ایم ٹی 5 پر بھیجا جاسکتا ہے ، جس سے انسانی مداخلت کے بغیر خودکار انتظام ممکن ہے۔

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

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

  5. اسٹوک اشارے کے ساتھ ٹائمنگ کے فیصلے کے ساتھ مل کر ، جعلی توڑ کو مؤثر طریقے سے فلٹر کیا جاسکتا ہے ، جس سے حکمت عملی کی استحکام میں اضافہ ہوتا ہے۔

خطرے کا تجزیہ

  1. اسٹوک اشارے میں بار بار کراس سگنل ہوسکتے ہیں ، جس سے زیادہ غیر موثر کارروائیوں کا خطرہ ہوتا ہے۔ سگنل کو فلٹر کرنے کے لئے پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے۔

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

  3. alert کنکشن میں رکاوٹیں ، تاخیر ، وغیرہ ہوسکتی ہیں ، نتائج کو ریئل ٹائم فیڈ بیک میں ایڈجسٹ کرنے کے قابل نہیں ، غلطی کو برداشت کرنے کی ضرورت ہے۔

  4. متحرک ٹریکنگ اسٹاپ نقصانات کو نسبتا intense زیادہ ایڈجسٹمنٹ کی ضرورت ہوتی ہے ، جس سے زیادہ ٹرانزیکشن لاگت آسکتی ہے۔ ایڈجسٹمنٹ کی وسعت اور لاگت کو متوازن کرنا چاہئے۔

اصلاح کی سمت

  1. بہتر سگنل کے معیار اور حکمت عملی کے نتائج کے ل Stoch اشارے کو بہتر بنانے کے لئے مختلف پیرامیٹرز کے مجموعے کی جانچ کی جاسکتی ہے۔

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

  3. مختلف ٹریکنگ الگورتھم پر تحقیق کی جاسکتی ہے تاکہ ایڈجسٹمنٹ کی تعدد کو کم کرتے ہوئے نقصان کو روکنے کا یقین دلایا جاسکے۔

  4. MT4 / MT5 کے ساتھ رابطے کے طریقوں کو بہتر بنانے کے لئے، انتباہ کو بروقت اور مؤثر بنانے کے لئے، تاخیر کے مسائل کو کم کرنے کے لئے.

  5. خود کار طریقے سے روکنے کے موڈ اور دستی موڈ سوئچ متعارف کرایا جا سکتا ہے، مختلف مارکیٹ کے حالات کے لئے مختلف روکنے کے طریقہ کار کا استعمال کرتے ہوئے.

خلاصہ کریں۔

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Peter_O

//@version=4
strategy(title="Moving Stop-Loss mechanism", overlay=true)

// This script was created for educational purposes only and it is a spin-off of my previous script:
// https://www.tradingview.com/script/9MJO3AgE-TradingView-Alerts-to-MT4-MT5-dynamic-variables-NON-REPAINTING/
// This spin-off adds very often requested Moving Stop-Loss Mechanism - the logic here moves the stop-loss each time 
// a new pivot is detected.
//
// Last lines of the script include alert() function calls, with a syntax compatible with TradingConnector
// for execution in Forex/indices/commodities/crypto markets via MetaTrader.
// Please note that "tradeid=" variable must be passed with each alert, so that MetaTrader knows which
// trade to modify.

TakeProfitLevel=input(400)

// **** Entries logic, based on Stoch **** {
periodK = 13 //input(13, title="K", minval=1)
periodD = 3 //input(3, title="D", minval=1)
smoothK = 4 //input(4, title="Smooth", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

GoLong=crossover(k,d) and k<80
GoShort=crossunder(k,d) and k>20
// } End of entries logic

// **** Pivot-points and stop-loss logic **** {
piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)
var float stoploss_long=low
var float stoploss_short=high

pl=valuewhen(piv_low,piv_low,0)
ph=valuewhen(piv_high,piv_high,0)

if GoLong 
    stoploss_long := low<pl ? low : pl
if GoShort 
    stoploss_short := high>ph ? high : ph

plot(stoploss_long, color=color.red, title="stoploss_long")
plot(stoploss_short, color=color.lime, title="stoploss_short")

// Stop-Loss Updating mechanism
enable_stoploss_mechanism=input(true, title="Enable Stoploss Modification Mechanism")
UpdateLongStopLoss = strategy.position_size>0 and strategy.position_size[1]>0 and piv_low and pl!=stoploss_long and not GoLong and enable_stoploss_mechanism
UpdateShortStopLoss = strategy.position_size<0 and strategy.position_size[1]<0 and piv_high and ph!=stoploss_short and not GoShort and enable_stoploss_mechanism
if UpdateLongStopLoss
    stoploss_long := pl
if UpdateShortStopLoss
    stoploss_short := ph

plotshape(UpdateLongStopLoss ? stoploss_long[1]-300*syminfo.mintick : na, location=location.absolute, style=shape.labelup, color=color.lime, textcolor=color.white, text="SL\nmove")
plotshape(UpdateShortStopLoss ? stoploss_short[1]+300*syminfo.mintick : na, location=location.absolute, style=shape.labeldown, color=color.red, textcolor=color.black, text="SL\nmove")
// } End of Pivot-points and stop-loss logic

// **** Trade counter **** {
var int trade_id=0
if GoLong or GoShort
    trade_id:=trade_id+1
// } End of Trade counter

strategy.entry("Long", strategy.long, when=GoLong)
strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel)
strategy.entry("Short", strategy.short, when=GoShort)
strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel)

if GoLong
    alertsyntax_golong='long slprice=' + tostring(stoploss_long) + ' tradeid=' + tostring(trade_id) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_golong, freq=alert.freq_once_per_bar_close)
if GoShort
    alertsyntax_goshort='short slprice=' + tostring(stoploss_short) + ' tradeid=' + tostring(trade_id) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_goshort, freq=alert.freq_once_per_bar_close)
if UpdateLongStopLoss
    alertsyntax_updatelongstoploss='slmod slprice=' + tostring(stoploss_long) + ' tradeid=' + tostring(trade_id)
    alert(message=alertsyntax_updatelongstoploss, freq=alert.freq_once_per_bar_close)
if UpdateShortStopLoss
    alertsyntax_updateshortstoploss='slmod slprice=' + tostring(stoploss_short) + ' tradeid=' + tostring(trade_id)
    alert(message=alertsyntax_updateshortstoploss, freq=alert.freq_once_per_bar_close)