यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए ZigZag संकेतक का उपयोग करती है और एक बार पुष्टि होने के बाद प्रवृत्ति का अनुसरण करती है। यह प्रवृत्ति के बाद की रणनीति से संबंधित है।
रणनीति मुख्य रूप से मूल्य प्रवृत्ति दिशा निर्धारित करने के लिए ZigZag संकेतक का उपयोग करती है। ZigZag बाजार शोर को फ़िल्टर कर सकता है और मूल्य उतार-चढ़ाव की प्रमुख दिशाओं की पहचान कर सकता है। यह व्यापार संकेत उत्पन्न करता है जब कीमतें नए उच्च या निम्न स्तर तक पहुंचती हैं।
विशेष रूप से, रणनीति पहले ज़िगज़ैग मूल्यों की गणना करती है। जब कीमतें एक उच्च उच्च तक पहुंचती हैं, तो ज़िगज़ैग मूल्य उच्च मूल्य बन जाता है। जब कीमतें एक निम्न निम्न तक पहुंचती हैं, तो ज़िगज़ैग मूल्य कम मूल्य बन जाता है। इस प्रकार, ज़िगज़ैग स्पष्ट रूप से मुख्य मूल्य उतार-चढ़ाव की दिशा को प्रतिबिंबित कर सकता है।
रणनीति ZigZag मूल्यों के आधार पर प्रवृत्ति दिशा निर्धारित करती है। जब ZigZag बढ़ता है, तो यह एक ऊपर की प्रवृत्ति को इंगित करता है। जब ZigZag गिरता है, तो यह एक नीचे की प्रवृत्ति को इंगित करता है। जब ZigZag प्रवृत्ति की दिशा का पालन करने के लिए मुड़ता है तो रणनीति पद खोलती है।
विशेष रूप से, जब ZigZag एक नए उच्च स्तर पर बदल जाता है, तो रणनीति लंबी हो जाती है, और जब ZigZag एक नए निम्न स्तर पर बदल जाता है, तो यह छोटी हो जाती है। निकास की स्थिति तब होती है जब ZigZag फिर से घूमता है। यह प्रवृत्ति पहचान के लिए ZigZag के आधार पर ऑटो ट्रेडिंग प्राप्त करता है।
जोखिमों को निम्न द्वारा कम किया जा सकता हैः
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
एकल हानि जोखिम को नियंत्रित करने के लिए स्टॉप लॉस जोड़ें, जैसे कि ट्रेलिंग स्टॉप या स्टॉप लिमिट ऑर्डर।
ट्रेंड रिवर्स डिटेक्शन मैकेनिज्म जोड़ें, जैसे एमएसीडी, मूविंग एवरेज। रिवर्स का पता चलने पर पोजीशन बंद करें।
प्रवृत्ति जारी रहने पर पिरामिड की स्थिति जोड़ें।
ट्रेंड डिटेक्शन में सहायता के लिए LSTM जैसे मशीन लर्निंग मॉडल जोड़ें।
ड्रॉडाउन या सहसंबंध सिद्धांतों के आधार पर पूंजी प्रबंधन को अनुकूलित करना।
बैकटेस्टिंग और संदर्भ विशेषज्ञता द्वारा ज़िगज़ैग अवधि जैसे मापदंडों को व्यापक रूप से अनुकूलित करें।
रणनीति ZigZag द्वारा प्रवृत्ति की दिशा की पहचान करती है और प्रवृत्ति का व्यापार करती है। तर्क सरल और लागू करना आसान है। लेकिन एकल संकेतक निर्भरता और प्रवृत्ति उलटापन जैसे जोखिम मौजूद हैं। हम इसे अधिक मजबूत और तर्कसंगत बनाने के लिए स्टॉप लॉस, सहायक संकेतक, पुनः प्रवेश, मशीन लर्निंग मॉडल आदि के माध्यम से अनुकूलित कर सकते हैं। उचित मापदंडों और जोखिम नियंत्रण के साथ, यह प्रभावी रूप से मध्यम और दीर्घकालिक रुझानों को ट्रैक कर सकता है।
/*backtest start: 2022-10-23 00:00:00 end: 2023-04-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's ZZ Strategy v1.0", shorttitle = "ZZ str 1.0", 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(false, defval = false, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") tf = input('W', title='Timeframe for ZigZag') showzz = input(false, defval = false, title = "Show ZigZag") showbg = input(false, defval = false, title = "Show Background") 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") //ZigZag zigzag() => _isUp = close >= open _isDown = close <= open _direction = _isUp[1] and _isDown ? -1 : _isDown[1] and _isUp ? 1 : nz(_direction[1]) _zigzag = _isUp[1] and _isDown and _direction[1] != -1 ? highest(2) : _isDown[1] and _isUp and _direction[1] != 1 ? lowest(2) : na useAltTF = true zz = useAltTF ? (change(time(tf)) != 0 ? request.security(syminfo.tickerid, tf, zigzag()) : na) : zigzag() zzcolor = showzz ? black : na plot(zz, title = 'ZigZag', color = zzcolor, linewidth = 2) //Levels dot = zz > 0 ? zz : dot[1] uplevel = dot > dot[1] ? dot : uplevel[1] dnlevel = dot < dot[1] ? dot : dnlevel[1] colorup = close[1] < uplevel[1] and uplevel == uplevel[1] ? lime : na colordn = close[1] > dnlevel[1] and dnlevel == dnlevel[1] ? red : na plot(uplevel, color = colorup, linewidth = 3) plot(dnlevel, color = colordn, linewidth = 3) //Background size = strategy.position_size bgcol = showbg == false ? na : size != size[1] ? blue : na bgcolor(bgcol, transp = 50) //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if uplevel > 0 and dnlevel > 0 strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel + syminfo.mintick) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel - syminfo.mintick) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()