यह रणनीति स्टॉक संकेतक का उपयोग प्रवेश संकेत उत्पन्न करने के लिए करती है। एक स्थिति में प्रवेश करने के बाद, यह स्टॉप लॉस को गतिशील रूप से समायोजित करने के लिए वास्तविक समय में नए उच्च या निम्न को ट्रैक करेगा। साथ ही, रणनीति वास्तविक व्यापार में पदों को समायोजित करने के लिए अलर्ट फ़ंक्शन के माध्यम से एमटी 4 / एमटी 5 को स्टॉप लॉस संशोधन जानकारी भी भेजेगी।
यह रणनीति स्टॉक सूचक के आधार पर खरीद और बिक्री संकेत उत्पन्न करती है। जब स्टॉक के लाइन नीचे से डी लाइन के ऊपर से गुजरती है, तो एक खरीद संकेत उत्पन्न होता है। जब के लाइन ऊपर से डी लाइन के नीचे से गुजरती है, तो एक बिक्री संकेत उत्पन्न होता है।
एक स्थिति में प्रवेश करने के बाद, रणनीति गतिशील स्टॉप लॉस स्तरों के रूप में वास्तविक समय में सबसे कम कीमत के नवीनतम निम्न और उच्चतम मूल्य के नवीनतम उच्च को ट्रैक करती है। विशेष रूप से, लंबी पदों के लिए, सबसे कम मूल्य के नवीनतम निम्न बिंदु को स्टॉप लॉस स्तर के रूप में ट्रैक किया जाता है। शॉर्ट पदों के लिए, उच्चतम मूल्य के नवीनतम उच्च बिंदु को स्टॉप लॉस स्तर के रूप में ट्रैक किया जाता है।
जब स्टॉप लॉस स्तर में परिवर्तन का पता चलता है, तो रणनीति अलर्ट फ़ंक्शन के माध्यम से स्टॉप लॉस ऑर्डर को संशोधित करती है और इसे वास्तविक समय में वास्तविक ट्रेडों के स्टॉप लॉस स्तर को समायोजित करने के लिए MT4/MT5 को भेजती है। स्टॉप लॉस परिवर्तनों के सहज प्रदर्शन के लिए ग्राफिक एनोटेशन भी ग्राफ किए गए हैं।
यह रणनीति डायनामिक स्टॉप लॉस तंत्र को सक्षम करने के लिए मैन्युअल नियंत्रण का समर्थन करती है। जब सक्षम किया जाता है, तो बाजार में उतार-चढ़ाव के अनुसार वास्तविक समय में स्टॉप लॉस को समायोजित किया जा सकता है।
गतिशील ट्रेलिंग स्टॉप लॉस तंत्र जोखिम को प्रभावी ढंग से नियंत्रित करने के लिए बाजार में उतार-चढ़ाव के अनुसार स्टॉप लॉस के स्तर को लचीलापन से समायोजित कर सकता है।
अलर्ट फ़ंक्शन मैन्युअल हस्तक्षेप के बिना स्वचालित प्रबंधन के लिए MT4/MT5 में स्टॉप लॉस समायोजन की जानकारी को वास्तविक समय में भेजने में सक्षम बनाता है।
चार्ट पर स्टॉप लॉस समायोजनों के दृश्य एनोटेशन ट्रैलिंग स्टॉप लॉस प्रभावों को देखने और सत्यापित करने में सुविधा प्रदान करते हैं।
स्टॉप लॉस ट्रैलिंग तंत्र को मैन्युअल रूप से नियंत्रित करने के लिए समर्थन विभिन्न बाजार स्थितियों के लिए लचीले अनुकूलन की अनुमति देता है।
अवसर निर्धारित करने के लिए स्टॉक संकेतक के साथ संयुक्त, रणनीति प्रभावी रूप से झूठे ब्रेकआउट को फ़िल्टर कर सकती है और स्थिरता में सुधार कर सकती है।
स्टोच सूचक अक्सर क्रॉसओवर सिग्नल उत्पन्न कर सकता है, जिससे अधिक अप्रभावी संचालन का खतरा पैदा हो सकता है। पैरामीटर को फ़िल्टर सिग्नल के अनुसार समायोजित किया जा सकता है।
चरम बाजार स्थितियों में, स्टॉप लॉस में प्रवेश किया जा सकता है, जो भारी नुकसान से पूरी तरह से बचने में असमर्थ है। स्थिति जोखिमों की समय पर निगरानी की जानी चाहिए।
अलर्ट कनेक्शन समस्याएं जैसे रुकावटें और देरी हो सकती है, जो समायोजनों की वास्तविक समय प्रतिक्रिया को रोकती है। उचित दोष सहिष्णुता उपायों को लागू करने की आवश्यकता है।
गतिशील ट्रेलिंग स्टॉप लॉस के लिए अपेक्षाकृत लगातार समायोजन की आवश्यकता होती है, जिससे संभावित रूप से अधिक ट्रेडिंग लागत उत्पन्न होती है। समायोजन सीमा को लागतों के साथ संतुलित किया जाना चाहिए।
बेहतर संकेत गुणवत्ता और रणनीति प्रदर्शन के लिए स्टोच संकेतक को अनुकूलित करने के लिए विभिन्न पैरामीटर संयोजनों का परीक्षण किया जा सकता है।
अन्य संकेतकों को संकेतों को फ़िल्टर करने या रणनीति स्थिरता में सुधार के लिए समायोजन सीमाओं को निर्धारित करने के लिए जोड़ा जा सकता है।
स्टॉप लॉस प्रभाव सुनिश्चित करते हुए समायोजन आवृत्ति को कम करने के लिए विभिन्न ट्रैकिंग एल्गोरिदम का अध्ययन किया जा सकता है।
समय पर और कुशल अलर्ट सुनिश्चित करने और देरी को कम करने के लिए 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)