इस रणनीति का मुख्य विचार विभिन्न चक्रों के आरएसआई संकेतकों को मिलाकर वर्तमान मूल्य सीमा निर्धारित करना है, और जब बड़े चक्र आरएसआई में ब्रेकआउट होता है तो छोटे चक्रों में संबंधित खरीद या बिक्री कार्रवाई करना है। यह रणनीति विभिन्न अवधियों में तकनीकी संकेतकों का लाभ उठाती है ताकि वर्तमान मूल्य के सापेक्ष मूल्य को कई समय आयामों से न्याय किया जा सके और बेहतर प्रवेश बिंदुओं का पता लगाया जा सके।
मूल्य सीमा निर्धारित करने और व्यापार के अवसर खोजने के लिए इस रणनीति के मुख्य कदम निम्नलिखित हैंः
उदाहरण के लिए, जब दैनिक आरएसआई अपने पिछले उच्च में टूट जाता है, तो हम यह मानते हैं कि यह वर्तमान में एक बैल बाजार है। और जब दैनिक आरएसआई अपने पिछले निम्न से नीचे टूट जाता है, तो हम इसे भालू बाजार के रूप में मानते हैं। दोनों मामलों में हम 5 मिनट के चार्ट में क्रमशः लंबे और छोटे कार्यों को लेते हैं।
पारंपरिक रणनीतियों की तुलना में, जो केवल एक अवधि पर ध्यान केंद्रित करती हैं, इस रणनीति के निम्नलिखित फायदे हैंः
वर्तमान सापेक्ष मूल्य मूल्य का अधिक सटीक आकलन। दैनिक जैसे बड़े चक्र अल्पकालिक बाजार शोर को फ़िल्टर कर सकते हैं और समग्र प्रवृत्ति और मूल्य क्षेत्र निर्धारित कर सकते हैं।
विभिन्न अवधियों में संकेतकों का संयोजन सिग्नल की विश्वसनीयता में सुधार करता है। केवल एकल अवधियों के संकेतकों पर भरोसा करना झूठे संकेतों को अधिक आसानी से उत्पन्न कर सकता है, जबकि कई अवधियों के समवर्ती संकेत अधिक विश्वसनीय होते हैं।
लघु अवधि के अवसरों का अधिक प्रभावी ढंग से लाभ उठाना। बड़े चक्र ब्रेकआउट समग्र दिशा की ओर इशारा करते हैं, जबकि हमें लाभ के लिए केवल 5 मिनट जैसे छोटे चक्रों में अवसरों का पता लगाने की आवश्यकता है।
छोटे ड्रॉडाउन. क्रॉस पीरियड्स को जोड़ने से फंसने से बचने में मदद मिलती है. जब बड़े चक्र संकेतक उलटना शुरू करते हैं तो हम जल्दी से बाहर निकल सकते हैं.
इस रणनीति के मुख्य जोखिम निम्नलिखित में निहित हैंः
बड़े चक्र संकेतकों में गलत निर्णय। दैनिक आरएसआई आदि में अप्रभावी मूल्य क्षेत्र निर्धारण दोषपूर्ण संकेतों का कारण बन सकता है। सटीकता में सुधार के लिए आरएसआई के पैरामीटर ट्यूनिंग की आवश्यकता होती है।
छोटे चक्र मूल्य आंदोलन और बड़े चक्र निर्धारण के बीच विचलन। कभी कभी अल्पकालिक आंदोलन बड़ी तस्वीर प्रवृत्तियों का मुकाबला करते हैं। हमें नुकसान को नियंत्रित करने के लिए उचित स्टॉप लॉस सेट करने की आवश्यकता है।
अनुचित जोखिम प्रबंधन। खराब स्थिति आकार के कारण एकल व्यापार में अत्यधिक नुकसान अपरिवर्तनीय ड्रॉडाउन का कारण बन सकता है। उचित आकार के नियमों को लागू किया जाना चाहिए।
इस रणनीति में सुधार के लिए अभी भी काफी गुंजाइश है, मुख्य रूप से निम्नलिखित पहलुओं सेः
पीरियड पैरामीटर ट्यूनिंग. इष्टतम पैरामीटर खोजने के लिए अधिक अवधि संयोजनों का परीक्षण करें.
आरएसआई पैरामीटर ट्यूनिंग. न्याय की सटीकता में सुधार के लिए आरएसआई लुकबैक आदि मापदंडों को समायोजित करें.
अधिक संकेतक जोड़ें. प्रवृत्ति की दिशा का न्याय करने में सहायता के लिए एमए जैसे अधिक संकेतक लाएं.
स्टॉप लॉस तंत्र में सुधार करें। ड्रॉडाउन स्थितियों के आधार पर स्टॉप लॉस बिंदुओं को गतिशील रूप से समायोजित करें।
स्थिति आकार के नियमों को अनुकूलित करें प्रत्येक व्यापार के लिए विशिष्ट स्थिति आकार को अधिक वैज्ञानिक रूप से प्रबंधित करें।
यह रणनीति क्रॉस पीरियड आरएसआई में तेजी की स्थिति का आकलन करके विभिन्न समय आयामों के बीच क्रॉस पीरियड आर्बिट्रेज का एहसास करती है। क्रॉस पीरियड जजमेंट का ऐसा विचार आगे के शोषण का हकदार है। हम इसे अधिक फायदेमंद बनाने के लिए पैरामीटर ट्यूनिंग, स्टॉप लॉस ऑप्टिमाइजेशन, संकेतक संयोजन के माध्यम से इसे सुधारते रह सकते हैं। कुल मिलाकर, इस रणनीति में एक अनूठा विचार है और इसे बढ़ाने की बहुत संभावना है।
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Swing MTF", shorttitle="Swing MTF", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5) // otf_period = input(defval=2, title="Look Back Period (2nd Timeframe)") otf = input(defval="180", title="Second Momentum Timeframe") // Function to dectect a new bar is_newbar(res) => t = time(res) change(t) != 0 ? true : false // Check how many bars are in our upper timeframe since_new_bar = barssince(is_newbar(otf)) otf_total_bars = na otf_total_bars := since_new_bar == 0 ? since_new_bar[1] : otf_total_bars[1] //Calculate RSI Values ctf_rsi = rsi(open, otf_period) breakline=input(title="Breaks in lines", defval = true, type=bool) so = request.security(syminfo.tickerid, otf, rsi(open, otf_period)) sc = request.security(syminfo.tickerid, otf, rsi(close, otf_period)) final_otf_so = na final_otf_so := barstate.isrealtime ? since_new_bar == otf_total_bars ? so : final_otf_so[1] : so final_otf_sc = na final_otf_sc := barstate.isrealtime ? since_new_bar == otf_total_bars ? sc : final_otf_sc[1] : sc barsback = input(11, title='Bars back to check for a swing') // showsig = input(false, title='Show Signal Markers') swing_detection(index)=> swing_high = false swing_low = false start = (index*2) - 1 // -1 so we have an even number of swing_point_high = final_otf_so[index] swing_point_low = final_otf_sc[index] //Swing Highs for i = 0 to start swing_high := true if i < index if final_otf_so[i] > swing_point_high swing_high := false break // Have to do checks before pivot and after seperately because we can get // two highs of the same value in a row. Notice the > and >= difference if i > index if final_otf_so[i] >= swing_point_high swing_high := false break //Swing lows for i = 0 to start swing_low := true if i < index if final_otf_sc[i] < swing_point_low swing_low := false break // Have to do checks before pivot and after seperately because we can get // two lows of the same value in a row. Notice the > and >= difference if i > index if final_otf_sc[i] <= swing_point_low swing_low := false break [swing_high, swing_low] // Check for a swing [swing_high, swing_low] = swing_detection(barsback) long = final_otf_so > final_otf_sc short = final_otf_so < final_otf_sc if swing_low and long strategy.entry("My Long Entry Id", strategy.long) if swing_high and short strategy.entry("My Short Entry Id", strategy.short)