यह एक चलती औसत चैनल ब्रेकआउट रणनीति है जो चलती औसत और रेंज चैनलों पर आधारित है। यह ट्रेडिंग संकेतों के लिए ब्रेकआउट निर्धारित करने के लिए चलती औसत लाइनों और ऊपरी/निम्न चैनल लाइनों का उपयोग करता है।
इस रणनीति का मूल तर्क यह हैः
मध्य रेखा के रूप में एक निश्चित अवधि की चलती औसत रेखा सेट करें।
मध्य रेखा को कुछ प्रतिशत से गुणा करके ऊपरी और निचले चैनल लाइनें सेट करें। ऊपरी रेखा मध्य रेखा * (100% + पूर्व निर्धारित प्रतिशत) है। निचली रेखा मध्य रेखा * (100% - पूर्व निर्धारित प्रतिशत) है।
जब कीमत ऊपरी रेखा से ऊपर टूट जाती है, तो शॉर्ट करें। जब कीमत निचली रेखा से नीचे टूट जाती है, तो लंबी करें।
संबंधित ऊपरी/नीचे पंक्तियों पर ऑर्डर मूल्य निर्धारित करें।
जब कीमत मध्य रेखा पर वापस आती है, तब पदों को बंद करें।
तो यह चलती औसत चैनल के ब्रेकआउट के आधार पर व्यापार करता है।
इस रणनीति के लाभ इस प्रकार हैंः
सरल और स्पष्ट अवधारणा, समझने और लागू करने में आसान।
विभिन्न बाजार स्थितियों के अनुरूप समायोज्य मापदंड।
मध्य रेखा और चैनल रेंज बाजार शोर को फ़िल्टर कर सकते हैं और रुझानों को पकड़ सकते हैं।
सीमा आदेश नियंत्रण जोखिम।
जब कीमत मध्य रेखा पर वापस आती है तो घाटे में कटौती करें।
कुछ जोखिम भी हैं:
गलत पैरामीटर सेटिंग्स से अधिक/अपर्याप्त व्यापार हो सकता है।
झूठे ब्रेकआउट और स्टॉप लॉस की उच्च संभावना।
बाजार में भारी उतार-चढ़ाव के कारण मध्य और चैनल लाइनों में विफलता।
मध्य रेखा पर बंद करने के लिए मजबूर होने पर समय से पहले बाहर निकलना।
समाधान:
एमए अवधि और चैनल प्रतिशत जैसे मापदंडों का अनुकूलन करें।
झूठे ब्रेकआउट से बचने के लिए वॉल्यूम जैसे अन्य संकेतक जोड़ें।
मैन्युअल हस्तक्षेप बढ़ाएँ।
अधिक समय तक एमए अवधि और व्यापक चैनल रेंज का प्रयोग करें।
इस रणनीति में निम्नलिखित पहलुओं से सुधार किया जा सकता हैः
घाटे को सीमित करने के लिए स्टॉप लॉस विधियों जैसे ट्रेलिंग स्टॉप को जोड़ें।
झूठे संकेतों को कम करने के लिए एमएसीडी जैसे फ़िल्टरिंग संकेतक जोड़ें।
स्वचालित पैरामीटर अनुकूलन सक्षम करें.
ब्रेकआउट के बाद अधिक खुली स्थिति मानदंड जोड़ें.
एमए और चैनल मापदंडों को अनुकूलित करें.
निष्कर्ष में, यह एक व्यावहारिक एमए चैनल ब्रेकआउट रणनीति है। इसका उपयोग करने में आसान होने के लिए एक सरल तर्क है, जबकि चैनल रेंज शोर को फ़िल्टर कर सकती है। यह ट्रेंडिंग बाजारों में अच्छा प्रदर्शन करता है। लेकिन जोखिम मौजूद हैं और अतिरिक्त फ़िल्टर के साथ पैरामीटर को वास्तविक व्यापार के लिए अनुकूलन की आवश्यकता है। रणनीति का कुछ व्यावहारिक और विकास मूल्य है।
/*backtest start: 2023-01-01 00:00:00 end: 2023-08-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Robot WhiteBox ShiftMA", shorttitle = "Robot WhiteBox ShiftMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") per = input(3, title = "Length") src = input(ohlc4, title = "Source") shortlevel = input(10.0, title = "Short line (red)") longlevel = input(-5.0, title = "Long line (lime)") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //SMAs sma = sma(src, per) shortline = sma * ((100 + shortlevel) / 100) longline = sma * ((100 + longlevel) / 100) plot(shortline, linewidth = 2, color = red, title = "Short line") plot(sma, linewidth = 2, color = blue, title = "SMA line") plot(longline, linewidth = 2, color = lime, title = "Long line") //Trading size = strategy.position_size lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] if (not na(close[per])) and size == 0 and needlong strategy.entry("L", strategy.long, lot, limit = longline) if (not na(close[per])) and size == 0 and needshort strategy.entry("S", strategy.short, lot, limit = shortline) if (not na(close[per])) and size > 0 strategy.entry("Close", strategy.short, 0, limit = sma) if (not na(close[per])) and size < 0 strategy.entry("Close", strategy.long, 0, limit = sma) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()