मल्टी-लेवल शिफ्ट मूविंग एवरेज ट्रेडिंग रणनीति विभिन्न मापदंडों के साथ कई शिफ्ट मूविंग एवरेज लाइनों को सेट करके कई स्तरों पर नुकसान दर्ज करती है और रोकती है। रणनीति पहले 3 लंबी लाइनों और 3 छोटी लाइनों की गणना करती है। यह लंबी लाइनों के नीचे छोटी लाइनों के नीचे होने पर लंबी जाती है, और लंबी लाइनों के नीचे छोटी लाइनों के नीचे होने पर छोटी जाती है। रणनीति चलती औसत अवधि, शिफ्ट अनुपात, ट्रेड करने योग्य समय सीमा आदि जैसे मापदंडों के अनुकूलन की अनुमति देती है। यह मध्यम-लंबी अवधि के ट्रेंड ट्रेडिंग के लिए उपयुक्त है।
आधार रेखा के रूप में एसआरसी मूल्य के सरल चलती औसत की गणना करें।
लंबी और छोटी पंक्तियों की संख्या को लंबी और छोटी मापदंडों के आधार पर सेट करें।
लोंगलाइन1 आदि को लोंगलेवल1 आदि अनुपातों के अनुसार आधार रेखा को स्थानांतरित करके सेट किया जाता है। शॉर्टलाइन को इसी तरह सेट किया जाता है।
व्यापार के समय के भीतर मूल्य रेखाओं को पार करने पर कई स्तरों पर ट्रेड करें।
मूल्य आधार रेखा को छूने पर हानि रोकें.
अंत समय के बाद सभी पदों को बंद करने के लिए बल।
इस रणनीति के निम्नलिखित फायदे हैंः
बहुस्तरीय प्रवेश प्रवृत्ति के विभिन्न चरणों में लाभ कमाने की अनुमति देता है।
विभिन्न उत्पादों और व्यापारिक शैलियों के लिए मापदंडों के साथ अत्यधिक अनुकूलन योग्य।
चलती औसत के आधार पर विश्वसनीय ब्रेकआउट प्रणाली।
व्यापार करने योग्य समय सीमा निर्धारित करके प्रमुख घटनाओं से बचें।
स्टॉप लॉस के माध्यम से प्रतिबंधित हानि।
रणनीति के कुछ जोखिमः
पिरामिडिंग पदों से उच्च जोखिम, पर्याप्त पूंजी की आवश्यकता होती है।
अनुचित मापदंडों से अधिक व्यापार हो सकता है।
फिक्स्ड एग्जिट टाइम लेट ट्रेंड प्रॉफिट को मिस कर सकता है।
ओवरनाइट पदों और ले जाने की लागत के लिए कोई विचार नहीं।
स्थिति आकार पर कोई नियंत्रण नहीं।
इस रणनीति में निम्नलिखित पहलुओं में सुधार किया जा सकता हैः
निश्चित बाहर निकलने के समय के बजाय पीछे स्टॉप हानि जोड़ें.
ओवरनाइट पदों के लिए ले जाने की लागत पर विचार करें।
देर से मुनाफे को कैप्चर करने के लिए स्टॉप लॉस जोड़ें।
वर्तमान जोखिम के आधार पर गतिशील रूप से आकार की स्थिति।
विभिन्न उत्पादों पर मापदंडों का परीक्षण और निर्माण अनुकूलन विधियों।
अनावश्यक स्टॉप से बचने के लिए स्टॉप लॉस स्तरों को अनुकूलित करें।
मल्टी-लेवल शिफ्ट मूविंग एवरेज रणनीति मूविंग एवरेज के आधार पर मल्टी-लेवल एंट्री के माध्यम से रुझानों से लाभ करती है। ट्रेड करने योग्य समय और स्टॉप लॉस कंट्रोल का जोखिम अच्छा होता है। कैरी कॉस्ट कंट्रोल, पैरामीटर ऑप्टिमाइजेशन, स्टॉप लॉस ऑप्टिमाइजेशन आदि में और सुधार रणनीति को बढ़ा सकते हैं और शोध के लायक हैं।
/*backtest start: 2022-09-16 00:00:00 end: 2023-09-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2019 //@version=4 strategy(title = "Noro's ShiftMA-multi Strategy v1.1", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //Settings long = input(3, defval = 3, minval = 0, maxval = 3, title = "Lines for long") short = input(3, defval = 3, minval = 0, maxval = 3, title = "Lines for short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") len = input(3, minval = 1, title = "MA Length") src = input(ohlc4, title = "MA Source") shortlevel3 = input(15.0, title = "Short line 3") shortlevel2 = input(10.0, title = "Short line 2") shortlevel1 = input(5.0, title = "Short line 1") longlevel1 = input(-5.0, title = "Long line 1") longlevel2 = input(-10.0, title = "Long line 2") longlevel3 = input(-15.0, title = "Long line 3") needoffset = input(true, title = "Offset") 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") //Variables size = strategy.position_size mult = 1 / syminfo.mintick //MA ma = sma(src, len) longline1 = long >= 1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close longline2 = long >= 2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close longline3 = long >= 3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close shortline1 = short >= 1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close shortline2 = short >= 2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close shortline3 = short >= 3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close //Lines colorlong1 = long >= 1 ? color.lime : na colorlong2 = long >= 2 ? color.lime : na colorlong3 = long >= 3 ? color.lime : na colorshort1 = short >= 1 ? color.red : na colorshort2 = short >= 2 ? color.red : na colorshort3 = short >= 3 ? color.red : na offset = needoffset ? 1 : 0 plot(shortline3, offset = offset, color = colorshort1) plot(shortline2, offset = offset, color = colorshort2) plot(shortline1, offset = offset, color = colorshort3) plot(ma, offset = offset, color = color.blue) plot(longline1, offset = offset, color = colorlong1) plot(longline2, offset = offset, color = colorlong2) plot(longline3, offset = offset, color = colorlong3) //Trading lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] lots = 0.0 needtime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59) if ma > 0 lots := round(size / lot) strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long >= 1 and needtime)) lots := round(size / lot) strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long >= 2 and needtime)) lots := round(size / lot) strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long >= 3 and needtime)) lots := round(size / lot) strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short >= 1 and needtime)) lots := round(size / lot) strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short >= 2 and needtime)) lots := round(size / lot) strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short >= 3 and needtime)) if size > 0 strategy.entry("TPL", strategy.short, 0, limit = ma) if size < 0 strategy.entry("TPS", strategy.long, 0, limit = ma) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()