इस रणनीति का मुख्य विचार आरएसआई रणनीति के आधार पर कुछ प्रमुख ट्रेडिंग प्रबंधन नियमों को जोड़ना है, जिसमें स्टॉप लॉस, ले लाभ, ट्रेलिंग स्टॉप लॉस और लीवरेज ट्रैकिंग स्टॉप लॉस शामिल हैं। यह रणनीति को ट्रेंडिंग बाजारों के दौरान उच्च रिटर्न प्राप्त करने और बैकटेस्ट में रेंजिंग बाजारों के दौरान नुकसान को कम करने की अनुमति देता है।
यह रणनीति पहले आरएसआई सूचक की गणना करती है। जब आरएसआई ओवरसोल्ड स्तर से नीचे होता है तो यह लंबा हो जाता है और जब आरएसआई ओवरबॉट स्तर से ऊपर होता है तो यह छोटा हो जाता है।
लॉन्ग सिग्नल ट्रिगर होने के बाद, उस समय की उच्चतम कीमत को ट्रेलिंग स्टॉप लॉस संदर्भ बिंदु के रूप में दर्ज किया जाता है। यदि कीमत स्टॉप लॉस बिंदु से कम हो जाती है, तो स्टॉप लॉस रेंज को बंद कर दिया जाता है।
शॉर्ट सिग्नल ट्रिगर होने के बाद, उस समय सबसे कम कीमत को ट्रेलिंग स्टॉप लॉस संदर्भ बिंदु के रूप में दर्ज किया जाता है। यदि कीमत स्टॉप लॉस बिंदु प्लस स्टॉप लॉस रेंज से ऊपर बढ़ जाती है, तो स्थिति स्टॉप लॉस द्वारा बंद हो जाती है।
एक ही समय में, फिक्स्ड टेक प्रॉफिट और स्टॉप लॉस डिस्टेंस सेट किए जाते हैं। यदि कीमत टेक प्रॉफिट डिस्टेंस तक पहुंच जाती है, तो प्रॉफिट ले लो और बंद करो। यदि यह स्टॉप लॉस डिस्टेंस तक पहुंच जाती है, तो स्टॉप लॉस द्वारा बंद करो।
इसके अतिरिक्त, लीवरेज ट्रैकिंग स्टॉप लॉस लाइन लीवरेज के आधार पर सेट की जाती है। यदि कीमत लीवरेज ट्रैकिंग स्टॉप लॉस लाइन को छूती है, तो स्थिति स्टॉप लॉस द्वारा बंद हो जाती है।
अपट्रेंड के दौरान उच्चतम मूल्य और डाउनट्रेंड के दौरान सबसे कम मूल्य का अनुसरण करके, निश्चित लाभ लेने और स्टॉप लॉस दूरी के साथ संयुक्त, ट्रेंडिंग बाजारों में उच्च रिटर्न प्राप्त किया जा सकता है। इस बीच, लीवरेज ट्रैकिंग स्टॉप लॉस से बढ़ते नुकसान से बचने में मदद मिलती है।
इस रणनीति का सबसे बड़ा लाभ कई ट्रेडिंग प्रबंधन नियमों की शुरूआत है जो आरएसआई रणनीति की ताकतों का लाभ उठाते हुए जोखिमों को बेहतर ढंग से नियंत्रित करते हैं।
विशेष रूप से, लाभ निम्नलिखित हैंः
ट्रेलिंग स्टॉप लॉस ट्रेंडिंग मार्केट के दौरान अधिक लाभ प्राप्त करने के लिए लगातार प्रवृत्ति का पालन कर सकता है।
फिक्स्ड टेक प्रॉफिट और स्टॉप लॉस कुछ मुनाफे में लॉक करते हैं और ट्रेंड रिवर्स होने पर पूरे मुनाफे को मिटाने से बचते हैं।
लीवरेज स्टॉप लॉस को ट्रैक करने से घाटे का विस्तार होने से बचने में मदद मिलती है और जोखिम को नियंत्रित किया जाता है।
विभिन्न स्टॉप लॉस विधियों का संयोजन विभिन्न बाजार वातावरणों में अपनी ताकत का प्रयोग कर सकता है, जिससे रणनीति की समग्र स्थिरता में सुधार होता है।
रणनीतिक मापदंडों का लचीला समायोजन विभिन्न व्यापारिक साधनों और बाजार वातावरणों के अनुकूल है।
समझने में आसान तर्क सत्यापन, अनुकूलन और अनुप्रयोग की सुविधा प्रदान करता है।
इस रणनीति के मुख्य जोखिम निम्नलिखित से आते हैंः
आरएसआई रणनीति में कुछ जोखिम होते हैं, जो स्टॉप लॉस को ट्रिगर कर सकते हैं। आरएसआई मापदंडों को अनुकूलित किया जा सकता है।
स्टॉप लॉस बिंदुओं के आसपास दोलन अक्सर स्टॉप लॉस को ट्रिगर कर सकता है। स्टॉप लॉस रेंज को बढ़ाया जा सकता है।
ट्रेडिंग बाजारों के दौरान लाभ लेने की दूरी पूरी तरह से लाभ को लॉक नहीं कर सकती है। अन्य संकेतक ट्रेंड समाप्त होने को निर्धारित करने में मदद कर सकते हैं।
फिक्स्ड स्टॉप लॉस दूरी पूरी तरह से नुकसान से बचने के लिए बहुत छोटी हो सकती है। दोलन स्टॉप लॉस या गतिशील स्टॉप लॉस का उपयोग करने पर विचार करें।
अत्यधिक लीवरेज स्टॉप लॉस को प्रवेश मूल्य के बहुत करीब होने का कारण बनता है। निम्न लीवरेज सेटिंग का उपयोग किया जाना चाहिए।
बैकटेस्ट अवधि भविष्य की बाजार स्थितियों का पूरी तरह से प्रतिनिधित्व नहीं कर सकती है। उचित जोखिम नियंत्रण लागू किया जाना चाहिए और विभिन्न अवधि का परीक्षण किया जाना चाहिए।
उपरोक्त जोखिमों को पैरामीटर ट्यूनिंग, स्टॉप लॉस तंत्रों का अनुकूलन, जोखिम नियंत्रण आदि के माध्यम से कम किया जा सकता है। लेकिन कोई भी रणनीति बाजार के जोखिमों से पूरी तरह से बच नहीं सकती। उचित जोखिम नियंत्रण आवश्यक है।
इस रणनीति को निम्नलिखित पहलुओं में और अधिक अनुकूलित किया जा सकता हैः
Whipsaw ट्रेडों को कम करने के लिए आरएसआई मापदंडों को अनुकूलित करें, और विभिन्न बाजारों के लिए इष्टतम मापदंडों का परीक्षण करें।
प्रविष्टियों को फ़िल्टर करने के लिए आरएसआई के साथ संयुक्त केडी, एमएसीडी जैसे अन्य संकेतकों का प्रयास करें।
स्टॉप लॉस और लाभ पैरामीटर को गतिशील रूप से अनुकूलित करने के लिए मशीन लर्निंग का उपयोग करें।
अधिक जटिल स्टॉप लॉस तंत्रों का परीक्षण करें जैसे ऑसिलेटिंग स्टॉप लॉस, औसत स्टॉप लॉस, गतिशील स्टॉप लॉस आदि।
लाभ और जोखिम नियंत्रण पर लाभप्रदता और अध्ययन प्रभावों को अनुकूलित करना।
बाजार व्यवस्था परिवर्तनों के आधार पर ऑटो समायोजन पैरामीटर, जैसे α-डुअल थ्रस्ट।
प्रवृत्ति स्थिरता को निर्धारित करने के लिए अन्य कारकों को शामिल करें, उदाहरण के लिए वॉल्यूम ऊर्जा।
अधिक मजबूत और व्याख्या करने योग्य स्टॉप लॉस तरीके विकसित करने के लिए डीप लर्निंग मॉडल का उपयोग करें।
रणनीति की मजबूती का आकलन करने के लिए विभिन्न साधनों और समय अवधि से डेटा का परीक्षण करें।
यह रणनीति विभिन्न स्टॉप लॉस विधियों के साथ आरएसआई रणनीति का पूरक है, जो रुझानों से लाभ उठाने और जोखिमों को नियंत्रित करने में स्टॉप लॉस के दोहरे प्रभावों को पूरा खेल देती है। अनुकूलन के लिए अभी भी बड़ी जगह है। विचारों को अधिक रणनीतियों और ट्रेडिंग उपकरणों तक बढ़ाया जा सकता है। स्टॉप लॉस रणनीतियाँ गहन शोध के लायक हैं और निरंतर अनुकूलन और सत्यापन के बाद यांत्रिक ट्रेडिंग प्रणालियों का एक बहुत ही महत्वपूर्ण हिस्सा बन सकती हैं।
/*backtest start: 2022-11-06 00:00:00 end: 2023-11-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Adding some essential components to a prebuilt RSI strategy", overlay=true) /////////////// Component Code Start /////////////// testStartYear = input(2011, "Backtest Start Year") testStartMonth = input(8, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2016, "Backtest Stop Year") testStopMonth = input(9, "Backtest Stop Month") testStopDay = input(29, "Backtest Stop Day") // testStopDay = testStartDay + 1 testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true /////////////// Component Code Stop /////////////// ///////////// RSI component ///////////// length = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = rsi(price, length) notna = not na(vrsi) /////////////// STRATEGY /////////////// ts = input(99999, "Trailing Stop") / 100 tp = input(99999, "Take Profit") / 100 sl = input(99999, "Stop Loss") / 100 long = notna and crossover(vrsi, overSold) short = notna and crossunder(vrsi, overBought) last_long = long ? time : nz(last_long[1]) last_short = short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) last_open_long_signal = long_signal ? open : nz(last_open_long_signal[1]) last_open_short_signal = short_signal ? open : nz(last_open_short_signal[1]) last_long_signal = long_signal ? time : nz(last_long_signal[1]) last_short_signal = short_signal ? time : nz(last_short_signal[1]) in_long_signal = last_long_signal > last_short_signal in_short_signal = last_short_signal > last_long_signal last_high = not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1]) last_low = not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1]) long_ts = not na(last_high) and high <= (last_high - ts) //and high >= last_open_long_signal short_ts = not na(last_low) and low >= (last_low + ts) //and low <= last_open_short_signal long_tp = high >= (last_open_long_signal + tp) short_tp = low <= (last_open_short_signal - tp) long_sl = low <= (last_open_long_signal - sl) short_sl = high >= (last_open_short_signal + sl) leverage = input(200, "Leverage") long_call = last_open_long_signal - (0.8 + 0.2 * (1/leverage)) / leverage * last_open_long_signal short_call = last_open_short_signal + (0.78 + 0.2 * (1/leverage)) / leverage * last_open_short_signal long_call_signal = low <= long_call short_call_signal = high >= short_call if testPeriod() strategy.entry("Long", strategy.long, when=long_signal) strategy.entry("Short", strategy.short, when=short_signal) // plot(long_call, color=red) // plot(short_call, color=green) strategy.close("Long", when=long_call_signal) strategy.close("Short", when=short_call_signal) strategy.close("Long", when=long_tp) strategy.close("Short", when=short_tp) strategy.close("Long", when=long_sl) strategy.close("Short", when=short_sl) strategy.close("Long", when=long_ts) strategy.close("Short", when=short_ts)