यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए मूल्य की गति की गणना करती है और लाभ में लॉक करने के लिए द्विदिश ट्रैकिंग स्टॉप सेट करती है, प्रवृत्ति के बाद स्टॉप लॉस का एहसास करती है। यह रणनीति निर्दिष्ट लाभ लक्ष्य तक पहुंचने के बाद ही ट्रैकिंग शुरू करने के लिए सक्रियण स्तरों को भी जोड़ती है, प्रभावी रूप से समय से पहले स्टॉप लॉस को रोकती है।
यह मूल्य के 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)