यह रणनीति ब्रेकआउट उच्च और निम्न कीमतों को सेट करके क्रिप्टोकरेंसी की कीमत प्रवृत्ति को ट्रैक करती है। यह तब लंबी जाती है जब कीमत उच्चतम मूल्य से ऊपर टूट जाती है और जब कीमत प्रवृत्ति को पकड़ने के लिए सबसे कम मूल्य से नीचे टूट जाती है तो यह छोटी हो जाती है।
यह रणनीति मुख्य रूप से यह निर्धारित करने के लिए भारित चलती औसत विधि का उपयोग करती है कि क्या एक स्पष्ट ऊपर या नीचे की प्रवृत्ति है। विशेष रूप से, यह एक निश्चित अवधि में उच्चतम और निम्नतम कीमतों को रिकॉर्ड करेगा। जब वास्तविक ट्रेडिंग मूल्य रिकॉर्ड की गई उच्चतम कीमत से अधिक हो जाता है, तो यह माना जाता है कि एक ऊपर की प्रवृत्ति हुई है, और यह लंबी जाएगी। जब वास्तविक ट्रेडिंग मूल्य रिकॉर्ड की गई सबसे कम कीमत से कम होता है, तो यह माना जाता है कि एक नीचे की प्रवृत्ति हुई है, और यह छोटी जाएगी।
लॉन्ग और शॉर्ट के लिए शुरुआती कीमतें
विशेष रूप से, रणनीति का मुख्य तर्क हैः
इस लॉजिक लूप के माध्यम से, यह मूल्य के ऊपर और नीचे के रुझानों को पकड़ सकता है और प्रवृत्ति का पालन कर सकता है।
इस रणनीति का सबसे बड़ा लाभ यह है कि पैरामीटर को समायोजित करके, यह स्वचालित रूप से प्रवृत्ति की दिशा के मैन्युअल निर्णय की आवश्यकता के बिना मूल्य रुझानों को पकड़ सकता है। जब तक पैरामीटर उचित रूप से सेट किए जाते हैं, तब तक यह स्वचालित रूप से क्रिप्टोकरेंसी के मूल्य उतार-चढ़ाव को ट्रैक कर सकता है।
इसके अतिरिक्त, यह रणनीति मात्रात्मक व्यापार के लिए बहुत उपयुक्त है और आसानी से स्वचालित ऑर्डर प्लेसमेंट प्राप्त कर सकती है। मैन्युअल ऑपरेशन के बिना, यह भावनात्मक व्यापार के जोखिम को कम करता है और व्यापार दक्षता में काफी सुधार करता है।
अंत में, यह रणनीति मापदंडों को समायोजित करके रिटर्न को भी अधिकतम कर सकती है। विभिन्न प्रवेश और निकास मापदंडों का परीक्षण करके, अधिकतम रिटर्न के लिए इष्टतम मापदंडों का पता लगाया जा सकता है।
इस रणनीति का सबसे बड़ा जोखिम यह है कि अनुचित पैरामीटर सेटिंग्स से अत्यधिक बार-बार ट्रेडिंग हो सकती है, ट्रेडिंग फीस बढ़ सकती है और स्लिपजेज नुकसान हो सकता है। यदि ENTRY बहुत कम और EXIT बहुत अधिक सेट किया जाता है, तो गलत ट्रेडिंग सिग्नल आसानी से उत्पन्न होते हैं।
इसके अतिरिक्त, अनुचित पैरामीटर ट्यूनिंग से समय पर मूल्य रुझानों को पकड़ने में विफलता भी हो सकती है, व्यापार के अवसरों को याद करना। इसके लिए इष्टतम मापदंडों को खोजने के लिए बहुत सारे बैकटेस्टिंग की आवश्यकता होती है।
अंत में, यह रणनीति अल्पकालिक बाजार शोर के प्रति अति संवेदनशील है, जिससे गलत ट्रेडिंग सिग्नल उत्पन्न हो सकते हैं। व्यापार चक्र समय मापदंडों को उचित रूप से सेट करके इससे बचना होगा।
इस रणनीति के लिए निम्नलिखित पहलुओं को और अधिक अनुकूलित किया जा सकता हैः
स्टॉप लॉस लॉजिक जोड़ें. यह अधिक नुकसान से बचने के लिए एक निश्चित प्रतिशत से अधिक नुकसान होने पर स्टॉप लॉस की अनुमति देता है.
अल्पकालिक शोर के कारण बहुत अधिक व्यापार से बचने के लिए समग्र प्रवृत्ति का न्याय करने के लिए चलती औसत, केडीजे जैसे तकनीकी संकेतक फ़िल्टर जोड़ें।
पैरामीटर सेटिंग लॉजिक को अनुकूलित करें। अनुकूलनशील परिवर्तन तंत्र को स्थिर सेटिंग के बजाय ENTRY और EXIT पैरामीटर के लिए सेट किया जा सकता है ताकि वे बाजार की स्थितियों के आधार पर समायोजित कर सकें।
इष्टतम मापदंडों को प्रशिक्षित करने के लिए मशीन लर्निंग का उपयोग करें। बड़े पैमाने पर ऐतिहासिक डेटा प्रशिक्षण के माध्यम से वर्तमान बाजार वातावरण के लिए इष्टतम प्रवेश और निकास सेटिंग प्राप्त करें।
इस रणनीति का सबसे बड़ा लाभ यह है कि मूल्य रुझानों को पकड़कर यह स्वचालित व्यापार प्राप्त करता है, जो व्यापार पर मानव भावनाओं के प्रभाव को कम कर सकता है, जोखिम को कम कर सकता है, और दक्षता में सुधार कर सकता है।
रणनीति के मुख्य जोखिम अनुचित पैरामीटर सेटिंग और बाजार शोर के प्रति अतिसंवेदनशीलता हैं। इसे स्टॉप लॉस, संकेतक फिल्टर, अनुकूलन पैरामीटर अनुकूलन और अधिक के माध्यम से सुधार करने की आवश्यकता है।
कुल मिलाकर, यह मात्रात्मक और स्वचालित व्यापार के लिए उपयुक्त रणनीति का पालन करने वाला एक सरल और प्रभावी प्रवृत्ति है। निरंतर अनुकूलन द्वारा, रणनीति की स्थिरता में और सुधार किया जा सकता है।
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 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/ // © JstMtlQC //@version=4 strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100) /////////////// INPUT ENTRY EXIT entry= input(100, "ENTRY H/L") exit= input(50, "EXIT H/L") /////////////// Backtest Input FromYear = input(2015, "Backtest Start Year") FromMonth = input(1, "Backtest Start Month") FromDay = input(1, "Backtest Start Day") ToYear = input(2999, "Backtest End Year") ToMonth = input(1, "Backtest End Month") ToDay = input(1, "Backtest End Day") /////////////// Backtest Setting start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => time >= start and time <= finish ? true : false /////////////// BUY OPEN PLOT highestpricelong = highest(high,entry)[1] plot(highestpricelong, color=color.green, linewidth=2) /////////////// BUY CLOSE PLOT lowestpricelong = lowest(high,exit)[1] plot(lowestpricelong, color=color.green, linewidth=2) /////////////// SHORT OPEN PLOT lowestpriceshort = lowest(low,entry)[1] plot(lowestpriceshort, color=color.red, linewidth=2) /////////////// SHORT CLOSE PLOT highestpriceshort = highest(low,exit)[1] plot(highestpriceshort, color=color.red, linewidth=2) /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////// CONDITION LONG SHORT ////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////// SHORT entryshort= crossunder(close, lowestpriceshort) exitshort= crossover(close,highestpriceshort) /////////////// LONG exitlong= crossover(close, lowestpricelong) entrylong= crossover(close,highestpricelong) /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////// LONG and SHORT ORDER ////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////// LONG if (entrylong) strategy.entry("LongEntry", strategy.long, when = window()) if (exitlong or entryshort) strategy.close("LongEntry", when=window()) /////////////// SHORT if (entryshort) strategy.entry("short", strategy.short, when = window()) if (exitshort or entrylong) strategy.close("short", when=window())