वोर्टेक्स ऑसिलेटर ट्रेंड फॉलोइंग रणनीति वोर्टेक्स इंडिकेटर पर आधारित एक ट्रेंड ट्रैकिंग रणनीति है। यह संभावित मूल्य रुझानों की पहचान करने के लिए वोर्टेक्स इंडिकेटर का निर्माण करने के लिए कई समय सीमाओं के चलती औसत का उपयोग करता है, और कम जोखिम वाले ट्रेंड ट्रैकिंग संचालन को प्राप्त करने के लिए सहायक निर्णय के रूप में एक छोटी अवधि के चलती औसत के साथ संयुक्त होता है।
इस रणनीति का मुख्य संकेतक वर्टेक्स इंडिकेटर है। वर्टेक्स इंडिकेटर में कई समय सीमाओं के अल्पकालिक, मध्यमकालिक और दीर्घकालिक चलती औसत होते हैं। विशेष रूप से, रणनीति में 6 दिन, 27 दिन, 72 दिन और 234 दिनों के चलती औसत का उपयोग किया जाता है। अल्पकालिक चलती औसत कीमतों के नवीनतम प्रवृत्ति को दर्शाता है, जबकि दीर्घकालिक चलती औसत दीर्घकालिक प्रवृत्ति को दर्शाता है। संकेतक का मुख्य तर्क यह है कि जब अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से ऊपर जाता है, तो यह इंगित करता है कि ऊपर की गति मजबूत हो रही है और यह खरीदने का समय है। जब अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से नीचे जाता है, तो यह इंगित करता है कि ऊपर की गति कमजोर हो रही है और हमें बेचना चाहिए।
वोर्टेक्स सूचक का महत्वपूर्ण लाभ यह है कि यह सटीक रूप से रुझानों का न्याय करता है और प्रभावी रूप से बाजार शोर को फ़िल्टर करता है। हालांकि, इसकी प्रतिक्रिया समय पर मोड़ बिंदुओं को पकड़ने के लिए पर्याप्त संवेदनशील नहीं है। इसलिए, रणनीति में एक सहायक निर्णय संकेतक का निर्माण करने के लिए एक अधिक संवेदनशील 6-दिवसीय चलती औसत शामिल है। खरीदें जब दोनों वोर्टेक्स सूचक और सहायक संकेतक शून्य रेखा से ऊपर पार करते हैं, और बेचते हैं जब दोनों संकेतक शून्य रेखा से नीचे पार करते हैं। यह एक बहु-पुष्टि तर्क बनाता है जहां वोर्टेक्स सूचक प्रवृत्ति की दिशा और ताकत निर्धारित करता है जबकि सहायक संकेतक विशिष्ट प्रवेश और निकास बिंदुओं को निर्धारित करता है, जो संचालन की संवेदनशीलता में सुधार करते हुए झूठे संकेतों को फ़िल्टर करता है।
इस रणनीति का सबसे बड़ा लाभ निर्णय की सटीकता और संचालन की संवेदनशीलता है। वर्टेक्स संकेतक और सहायक संकेतकों का संयोजन एक दूसरे के साथ हस्तक्षेप से बचते हुए प्रवृत्ति निर्णय और विशिष्ट प्रवेश / निकास बिंदुओं के निर्धारण की एक कार्बनिक एकता प्राप्त करता है। बहु-पुष्टि तंत्र प्रभावी रूप से बाजार शोर को फ़िल्टर कर सकता है और गलत ट्रेडों से बच सकता है। साथ ही, सहायक संकेतक का जोड़ने से रणनीति के संचालन की संवेदनशीलता भी सुनिश्चित होती है।
एकल संकेतक रणनीतियों की तुलना में, इस रणनीति का लाभ यह है कि यह बाजार परिवर्तनों की पहचान करने और प्रतिक्रिया करने में मजबूत क्षमताओं को प्राप्त करने के लिए कई संकेतकों को जोड़ती है। एक अपरिवर्तित प्रमुख प्रवृत्ति के तहत, रणनीति स्थिर लाभ प्राप्त कर सकती है। जब प्रमुख रुझान बदलते हैं, तो रणनीति नुकसान को कम करने के लिए तेजी से प्रतिक्रिया भी दे सकती है।
इस रणनीति के मुख्य जोखिम संकेतकों की अनुचित पैरामीटर सेटिंग और चरम घटनाओं के प्रभाव से आते हैं। चलती औसत के मापदंडों को संवेदनशीलता और शोर हस्तक्षेप प्रतिरोध को संतुलित करने की आवश्यकता होती है। अनुचित पैरामीटर सेटिंग्स असामान्य रणनीति व्यवहार का कारण बनेंगी। इसके अलावा, प्रमुख घटनाएं भी चरम मूल्य अस्थिरता का कारण बन सकती हैं जो संकेतकों को अक्षम करती हैं, जिसके परिणामस्वरूप गलत ट्रेड होते हैं।
इन जोखिमों को कम करने के लिए, संकेतकों के प्रदर्शन को स्थिर करने के लिए मापदंडों को अनुकूलित और बैकटेस्ट किया जाना चाहिए। इसके अलावा, प्रमुख घटनाओं से बाजार के प्रभावों पर ध्यान दें, असामान्य अस्थिरता अवधि के दौरान गलतियों से बचने के लिए आवश्यक होने पर रणनीतियों को रोकें। जैसे-जैसे कीमतें नीचे की ओर बढ़ती हैं, धीरे-धीरे पदों को कम करना भी एक प्रभावी पूंजी संरक्षण उपाय है।
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
संकेतकों के शोर प्रतिरोध और संचालन संवेदनशीलता में सुधार के लिए चलती औसत मापदंडों का अनुकूलन करें। चिकनी लेकिन संवेदनशील संकेतकों का चयन करने के लिए लंबाई के लिए विभिन्न पैरामीटर संयोजनों का प्रयास करें।
स्टॉप लॉस तंत्र जोड़ें. आगे के नुकसान से बचने के लिए जब कीमतें प्रतिकूल दिशाओं में प्रमुख समर्थन स्तरों को तोड़ती हैं तो स्टॉप लॉस बिंदु सेट करें.
रणनीति की स्थिरता बढ़ाने के लिए अन्य सूचक निर्णयों को शामिल करें, उदाहरण के लिए केवल संकेत लेने के लिए जब व्यापारिक मात्रा बढ़ जाती है।
बाजार के विभिन्न चरणों के आधार पर अलग-अलग पैरामीटर सेट का उपयोग करें। उदाहरण के लिए, बैल बाजारों के दौरान अधिक आक्रामक पैरामीटर, और भालू बाजारों में अधिक स्थिर सेटिंग्स।
वोर्टेक्स ऑसिलेटर ट्रेंड फॉलोइंग स्ट्रेटेजी सफलतापूर्वक ट्रेंड जजमेंट और निष्पादन को वोर्टेक्स इंडिकेटर के माध्यम से जोड़ती है जो मूल्य ट्रेंड दिशा/शक्ति को निर्धारित करता है और एक संवेदनशील अल्पकालिक चलती औसत विशिष्ट प्रवेश/निकास समय को इंगित करता है। मापदंडों को अनुकूलित करके, स्टॉप लॉस जोड़कर और राज्य तंत्रों को पेश करके, रणनीति में अपनी जोखिम प्रतिरोध क्षमताओं को और बढ़ाने और बेहतर बैकटेस्टिंग मीट्रिक और लाइव प्रदर्शन प्राप्त करने की क्षमता है।
/*backtest start: 2022-11-30 00:00:00 end: 2023-12-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //swap strategy line for study line to enable backtesting strategy(title="Vortex Ocillator" ) //study(title = "Vortex Oscillator", precision = 6) // Component Code Start // Example usage: // if testPeriod() // strategy.entry("LE", strategy.long) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2048, "Backtest Stop Year") testStopMonth = input(7, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") 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 //vortex histogram short_input = input(6, minval = 1) long_input = input(27, minval = 1) longer_input = input(72, minval = 1) longest_input = input(234, minval = 1) short = sma(close, short_input) long = sma(close, long_input) longer = sma(close, longer_input) longest = sma(close, longest_input) hist = short - long longhist = short - longer longesthist = short - longest hist_fractal = input(3, minval = 0) longhist_fractal = input(2, minval = 0) longesthist_fractal = input(4, minval = 0) vortexhist = avg((hist / hist_fractal), (longhist / longhist_fractal), (longesthist / longesthist_fractal)) crossover_calc = vortexhist > 0 and vortexhist[1] < 0 crossunder_calc = vortexhist < 0 and vortexhist[1] > 0 crossover2 = crossover(vortexhist, 0) crossunder2 = crossunder(vortexhist, 0) hist_color = hist > 0? fuchsia : purple longhist_color = longhist > 0? olive : orange longesthist_color = longesthist > 0? teal : blue vortexhist_color = vortexhist >= 0? green : red plot(longesthist, "Longest Ocillator", style = histogram, color = longesthist_color, transp = 5) plot(longhist, "Longer Ocillator", style = histogram, color = longhist_color, transp = 30) plot(hist, "Short Ocillator", style = histogram, color = hist_color, transp = 30) plot(vortexhist, "Vortex Ocillator", style = columns, color = vortexhist_color, transp = 40) plotshape(crossover_calc,title = "Crossover",location = location.bottom, style = shape.triangleup, size = size.small, color = green) plotshape(crossunder_calc,title = "Crossunder",location = location.bottom, style = shape.triangledown, size = size.small, color = red) //micro micro_ema_length = input(6,"Micro EMA Length") micro = ema(vortexhist, micro_ema_length) plot(micro, title = "micro", linewidth = 1, color = white) microup = crossover(vortexhist, micro) microdown = crossunder(vortexhist, micro) //new micro signals xmicroup = microup and vortexhist >=0 or crossover_calc xmicrodown = microdown and vortexhist >=0 or crossunder_calc plotshape(xmicroup, title = "Micro up", style = shape.circle, color = olive, location = location.bottom, size = size.tiny) plotshape(xmicrodown, title = "Micro down", style = shape.circle, color = fuchsia, location = location.bottom, size = size.tiny) //optional strategy options for backtesting, comment out the alertcondition rows and swap the top study row for the strategy row to compile as strategy if testPeriod() strategy.entry("buy", true, 1, when = xmicroup, limit = low) if testPeriod() strategy.close("buy", when = xmicrodown) //if (xmicroup) //strategy.entry("My Long Entry Id", strategy.long) //if (xmicroup) //strategy.exit("My Short Exit Id", "My Short Entry Id") //if (xmicrodown) //strategy.exit("My Long Exit Id", "My Long Entry Id")