
اسٹریٹجی اسٹوک اشارے کا استعمال کرتے ہوئے داخلے کے سگنل کا فیصلہ کرتی ہے ، داخلے کے بعد قیمت کی نئی اونچائی یا نئی کم کو حقیقی وقت میں ٹریک کرتی ہے ، جس سے اسٹاپ نقصان کی سطح کو متحرک طور پر ایڈجسٹ کیا جاسکتا ہے۔ اس کے علاوہ ، حکمت عملی انتباہ کے ذریعہ اسٹاپ نقصان میں ترمیم کی معلومات کو ایم ٹی 4 / ایم ٹی 5 پر بھیجی جاتی ہے ، تاکہ حقیقی وقت میں حقیقی تجارت میں پوزیشن کو ایڈجسٹ کیا جاسکے۔
یہ حکمت عملی اسٹوک اشارے پر مبنی ہے جو خرید اور فروخت کے اشارے پیدا کرتی ہے۔ اسٹوک کی کے لائن نیچے سے ڈی لائن کو توڑنے پر خرید کا اشارہ دیتی ہے۔ اسٹوک کی کے لائن اوپر سے نیچے سے ڈی لائن کو توڑنے پر فروخت کا اشارہ دیتی ہے۔
مارکیٹ میں داخل ہونے کے بعد ، حکمت عملی متحرک اسٹاپ نقصان کے طور پر کم ترین قیمت کی تازہ ترین کم اور اعلی ترین قیمت کی تازہ ترین اونچائی کو ٹریک کرے گی۔ خاص طور پر ، کم سے کم قیمت کی تازہ ترین کم کو اسٹاپ نقصان کے طور پر ٹریک کیا جائے گا۔
جب روکنے کی سطح میں تبدیلی کا پتہ چلتا ہے تو ، حکمت عملی انتباہ کے ذریعہ ترمیم شدہ روکنے کی ہدایات تیار کرتی ہے ، جو حقیقی تجارت میں روکنے کی سطح کو حقیقی وقت میں ایڈجسٹ کرنے کے لئے MT4 / MT5 پر بھیجی جاتی ہے۔ اس کے ساتھ ساتھ ، روکنے کی تبدیلی کو بصری طور پر ظاہر کرنے کے لئے گرافک لیبلنگ پینٹ کی جاتی ہے۔
اس حکمت عملی میں دستی کنٹرول کی حمایت کی گئی ہے کہ آیا متحرک اسٹاپ کا طریقہ کار چالو کیا گیا ہے۔ اس کے چالو ہونے کے بعد ، اسٹاپ ٹریکنگ کی قیمتوں کو مارکیٹ میں اتار چڑھاؤ کے مطابق اصل وقت میں ایڈجسٹ کیا جاسکتا ہے۔
متحرک ٹریکنگ اسٹاپ میکانیزم کا استعمال کرتے ہوئے ، مارکیٹ میں اتار چڑھاو کے مطابق اسٹاپ نقصان کی پوزیشن کو لچکدار طریقے سے ایڈجسٹ کیا جاسکتا ہے ، تاکہ اسٹاپ نقصان کی پیروی کی جاسکے ، اور خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکے۔
الرٹ فنکشن کا استعمال کرتے ہوئے ، اسٹاپ نقصان کی ایڈجسٹمنٹ کی معلومات کو حقیقی وقت میں ایم ٹی 4 / ایم ٹی 5 پر بھیجا جاسکتا ہے ، جس سے انسانی مداخلت کے بغیر خودکار انتظام ممکن ہے۔
اسٹاپ نقصان کی ایڈجسٹمنٹ کی معلومات کو گرافکس پر بصری طور پر نشان زد کریں ، تاکہ اسٹاپ نقصان کی ٹریکنگ کے اثر کو دیکھنے اور اس کی تصدیق کرنے میں آسانی ہو۔
اسٹاپ نقصان کا سراغ لگانے کے طریقہ کار کو فعال کرنے یا نہ کرنے کے لئے دستی کنٹرول کی حمایت کریں ، مختلف مارکیٹ کے حالات کے مطابق لچکدار ہوں۔
اسٹوک اشارے کے ساتھ ٹائمنگ کے فیصلے کے ساتھ مل کر ، جعلی توڑ کو مؤثر طریقے سے فلٹر کیا جاسکتا ہے ، جس سے حکمت عملی کی استحکام میں اضافہ ہوتا ہے۔
اسٹوک اشارے میں بار بار کراس سگنل ہوسکتے ہیں ، جس سے زیادہ غیر موثر کارروائیوں کا خطرہ ہوتا ہے۔ سگنل کو فلٹر کرنے کے لئے پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے۔
انتہائی صورت حال میں ، اسٹاپ نقصان کو توڑ دیا جاسکتا ہے ، جس سے بڑے نقصانات کا خطرہ مکمل طور پر نہیں بچا جاسکتا ہے۔ پوزیشن کے خطرے کی نگرانی مناسب طریقے سے کی جانی چاہئے۔
alert کنکشن میں رکاوٹیں ، تاخیر ، وغیرہ ہوسکتی ہیں ، نتائج کو ریئل ٹائم فیڈ بیک میں ایڈجسٹ کرنے کے قابل نہیں ، غلطی کو برداشت کرنے کی ضرورت ہے۔
متحرک ٹریکنگ اسٹاپ نقصانات کو نسبتا intense زیادہ ایڈجسٹمنٹ کی ضرورت ہوتی ہے ، جس سے زیادہ ٹرانزیکشن لاگت آسکتی ہے۔ ایڈجسٹمنٹ کی وسعت اور لاگت کو متوازن کرنا چاہئے۔
بہتر سگنل کے معیار اور حکمت عملی کے نتائج کے ل Stoch اشارے کو بہتر بنانے کے لئے مختلف پیرامیٹرز کے مجموعے کی جانچ کی جاسکتی ہے۔
دوسرے اشارے کے ساتھ مل کر سگنل کو فلٹر کیا جاسکتا ہے یا ایڈجسٹمنٹ کی چوڑائی کا تعین کیا جاسکتا ہے ، اور اسٹریٹجک استحکام کو بہتر بنانے کے لئے اسٹاپ نقصان کے طریقہ کار کو بہتر بنایا جاسکتا ہے۔
مختلف ٹریکنگ الگورتھم پر تحقیق کی جاسکتی ہے تاکہ ایڈجسٹمنٹ کی تعدد کو کم کرتے ہوئے نقصان کو روکنے کا یقین دلایا جاسکے۔
MT4 / MT5 کے ساتھ رابطے کے طریقوں کو بہتر بنانے کے لئے، انتباہ کو بروقت اور مؤثر بنانے کے لئے، تاخیر کے مسائل کو کم کرنے کے لئے.
خود کار طریقے سے روکنے کے موڈ اور دستی موڈ سوئچ متعارف کرایا جا سکتا ہے، مختلف مارکیٹ کے حالات کے لئے مختلف روکنے کے طریقہ کار کا استعمال کرتے ہوئے.
یہ حکمت عملی پہلے اسٹوک اشارے کی بنیاد پر خرید و فروخت کے وقت کا تعین کرتی ہے ، پھر پوزیشن کے دوران قیمت کے اتار چڑھاؤ کو روکنے کے لئے روکنے کی جگہ کو ٹریک کرتی ہے ، اور الرٹ ہدایات کے ذریعہ خود کار طریقے سے ایڈجسٹمنٹ کی معلومات بھیجتی ہے۔ اس طرح کے متحرک اسٹاپ نقصان کا طریقہ کار مارکیٹ میں تبدیلیوں کے مطابق پوزیشن کے خطرے کو فعال طور پر منظم کرسکتا ہے ، اور انسانی مداخلت کو کم کرکے کارکردگی کو بہتر بنا سکتا ہے۔ اس کے ساتھ ساتھ بصری اسٹاپ نقصان ایڈجسٹمنٹ کے نشانات کی نگرانی کرنا بھی آسان ہے۔ اس حکمت عملی سے سگنل فلٹرنگ اور اسٹاپ نقصان کے الگورتھم کو مزید بہتر بنایا جاسکتا ہے۔ مجموعی طور پر ، متحرک اسٹاپ ٹریکنگ حکمت عملی بہت زیادہ بدلتی ہوئی مارکیٹوں کو ٹریک کرنے کے لئے موزوں ہے ، اور خود بخود پوزیشن کے خطرے کو ایڈجسٹ کرتی ہے۔
/*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)