यह रणनीति मूविंग एवरेज ट्रेडिंग पर आधारित है। यह दो-दिशात्मक उद्घाटन पदों को लागू करने के लिए लंबी और छोटी प्रविष्टि लाइनों के तीन स्तरों को स्थापित करता है, जो प्रवृत्ति के बाद की रणनीति से संबंधित है। जब कीमत मूविंग एवरेज को तोड़ती है, तो रणनीति लंबित आदेशों को रखकर बैचों में लंबी और छोटी स्थिति खोलती है।
यह रणनीति मुख्य रूप से प्रवृत्ति की दिशा निर्धारित करने के लिए चलती औसत के ब्रेकआउट का उपयोग करती है। विशेष रूप से, यह एक चलती औसत संकेतक प्राप्त करने के लिए उद्घाटन मूल्य, समापन मूल्य, उच्चतम मूल्य, सबसे कम मूल्य आदि के अंकगणितीय औसत की गणना करती है। फिर यह चलती औसत के ऊपर लंबी प्रवेश लाइनें और उसके नीचे छोटी प्रवेश लाइनें स्थापित करती है। जब कीमत नीचे से चलती औसत से टूटती है, तो लंबे आदेश एक-एक करके ट्रिगर किए जाते हैं। जब कीमत ऊपर से टूटती है, तो छोटे आदेश एक-एक करके ट्रिगर किए जाते हैं।
लॉन्ग और शॉर्ट ऑर्डर की संख्या क्रमिक रूप से बढ़ जाती है। लंबित ऑर्डर सेट करके, यह बैच ओपनिंग पोजीशन को लागू करता है। उदाहरण के लिए, एंट्री लाइन 1 1 कॉन्ट्रैक्ट लॉन्ग/शॉर्ट खोलने को ट्रिगर करती है, एंट्री लाइन 2 1 कॉन्ट्रैक्ट जोड़ने को ट्रिगर करती है, और एंट्री लाइन 3 एक और 1 कॉन्ट्रैक्ट जोड़ती है। इससे एंट्री लागत में विविधता लाने में मदद मिलती है और एक ऑर्डर के जोखिम को कम किया जाता है।
रणनीति में एक हेजिंग तंत्र भी होता है। जब स्थिति का आकार 0 नहीं होता है, तो यह चलती औसत कीमत के आधार पर एक ट्रेलिंग स्टॉप लॉस ऑर्डर सेट करेगा। यदि कीमत फिर से चलती औसत को तोड़ती है, तो यह आंशिक लाभ में लॉक करने और पूंजी की रक्षा करने के लिए स्थिति को बंद कर देगी।
संक्षेप में, यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए चलती औसत संकेतक का पूर्ण उपयोग करती है, कई प्रवेश लाइनों के माध्यम से लाभ सीमा को अधिकतम करती है, और स्टॉप लॉस ऑर्डर के साथ जोखिमों को नियंत्रित करती है। यह एक विशिष्ट प्रवृत्ति के बाद की रणनीति है।
इस रणनीति के लाभ इस प्रकार हैंः
प्रवृत्ति की दिशा निर्धारित करने के लिए चलती औसत का उपयोग करना स्पष्ट और व्यवहार्य है। चलती औसत प्रभावी रूप से बाजार शोर को फ़िल्टर कर सकती है और मुख्य प्रवृत्ति की दिशा निर्धारित कर सकती है।
कई प्रविष्टि लाइनें प्रवृत्ति रन के उपयोग को अधिकतम करती हैं। कई प्रविष्टि लाइनों के साथ, यह प्रवृत्ति की पूरी रन रेंज को यथासंभव कैप्चर कर सकता है और लाभ स्थान का विस्तार कर सकता है।
बैचों में पोजीशन खोलने से एकल ऑर्डर का जोखिम कम होता है। कई बार बाजार में प्रवेश करने से ऑर्डर के जोखिम में विविधता आती है और औसत होल्डिंग लागत कम होती है।
हेजिंग स्टॉप लॉस तंत्र जोखिमों को प्रभावी ढंग से नियंत्रित करता है। हेजिंग स्टॉप लॉस ऑर्डर जब कीमत फिर से चलती औसत को तोड़ती है तो तेजी से स्टॉप लॉस का एहसास करती है, जिससे बड़े नुकसान से बचा जाता है।
रणनीति तर्क स्पष्ट और समझने में आसान है, जिसमें लचीली पैरामीटर सेटिंग्स हैं जिन्हें विभिन्न बाजारों के लिए अनुकूलित किया जा सकता है।
इस रणनीति में कुछ जोखिम हैंः
चलती औसत से गलत संकेतों की संभावना। चलती औसत में विलंब होता है और गलत संकेत दे सकता है।
रुझान उलटने का जोखिम नुकसान का कारण बनता है। रणनीति एक रुझान मानती है, इसलिए रुझान उलटने से भारी नुकसान हो सकता है।
बहुत अधिक प्रविष्टि लाइनें व्यापारिक आवृत्ति और फिसलने की लागत को बढ़ाती हैं।
बैच खोलने वाली पोजीशनों में जब पोजीशन का आकार बहुत बड़ा होता है तो एकाग्रता का जोखिम बढ़ जाता है।
गलत स्टॉप लॉस प्वाइंट सेटिंग्स से जल्दी स्टॉप लॉस हो सकता है या स्टॉप लॉस प्वाइंट बहुत छोटा हो सकता है।
संबंधित जोखिम प्रबंधन उपाय:
चलती औसत मापदंडों को अनुकूलित करें और उचित अवधि चुनें।
रुझान उलटने के संकेतों को पहचानने और समय पर हानि रोकने के लिए प्रमुख तकनीकी संकेतकों पर ध्यान दें।
व्यापारिक आवृत्ति को कम करने के लिए प्रवेश रेखाओं के बीच की दूरी को समायोजित करें।
नियंत्रण जोखिम के लिए स्थिति आकार और अनुपात को अनुकूलित करें।
स्टॉप लॉस जोखिम को कम करने के लिए स्टॉप लॉस बिंदुओं का बैकटेस्ट और अनुकूलन करें।
रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
रुझानों को निर्धारित करने के लिए सबसे अच्छा प्रदर्शन करने वाले चलती औसत सूचक का पता लगाने के लिए विभिन्न चलती औसत मापदंडों और डेटा स्रोतों का परीक्षण करें।
इष्टतम मापदंडों को खोजने के लिए लंबी और छोटी प्रवेश लाइनों के अंतराल दूरी और स्थिति आकार अनुपात का अनुकूलन करें।
चलती औसत से गलत संकेतों से बचने के लिए फिल्टर स्थितियों के रूप में अन्य संकेतकों को जोड़ें, जैसे कि एमएसीडी, आरएसआई आदि।
स्टॉप लॉस लाइन की स्थिति को अनुकूलित करें, या एटीआर के आधार पर गतिशील रूप से स्टॉप लॉस बिंदु सेट करें।
सभी पदों को बंद करने के लिए रुझान उलटने का निर्णय जोड़ें।
विभिन्न बाजार अवधियों के लिए मापदंडों का अनुकूलन करें।
खाता उपयोग प्रतिशत के आधार पर स्थिति आकार का गतिशील समायोजन जोड़ें.
यह रणनीति मुख्य रूप से चलती औसत के आधार पर प्रवृत्ति की दिशा का न्याय करती है, और लाभ के स्रोत के रूप में प्रवृत्ति के लाभ का लाभ उठाती है। कई प्रविष्टि लाइनों का उपयोग करके और बैचों में पदों को खोलने से, यह प्रभावी रूप से रुझानों को पकड़ सकता है और लाभ क्षेत्रों का विस्तार कर सकता है। उसी समय, जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस तंत्र का उपयोग किया जाता है। रणनीति तर्क सरल और स्पष्ट है, शुरुआती सीखने के लिए उपयुक्त है, और गहरे अनुकूलन के लिए भी। यह एक विशिष्ट प्रवृत्ति निम्नलिखित रणनीति है।
/*backtest start: 2022-09-19 00:00:00 end: 2023-09-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2019 //@version=4 strategy(title = "Robot WhiteBox Iceberg", shorttitle = "Robot WhiteBox Iceberg", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //Settings capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") len = input(3, minval = 1, title = "MA Length") s = input(defval = "7. OHLC4", options = ["1. Open", "2. High", "3. Low", "4. Close", "5. HL2", "6. HLC3", "7. OHLC4", "8. OC2", "9. PCMA"], title = "Data") short3 = input(true, title = "short 3") short2 = input(true, title = "short 2") short1 = input(true, title = "short 1") long1 = input(true, title = "long 1") long2 = input(true, title = "long 2") long3 = input(true, title = "long 3") 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 lots = 0.0 size = strategy.position_size mult = 1 / syminfo.mintick needtime = true //MA oc2 = (open + close) / 2 pcma = (highest(high, len) + lowest(low, len)) / 2 src = s == "1. Open" ? open : s == "2. High" ? high : s == "3. Low" ? low : s == "4. Close" ? close : s == "5. HL2" ? hl2 : s == "6. HLC3" ? hlc3 : s == "7. OHLC4" ? ohlc4 : s == "8. OC2" ? oc2: close sma = sma(src, len) ma = s == "9. PCMA" ? round(pcma * mult) / mult : round(sma * mult) / mult //Levels longline1 = 0.0 longline2 = 0.0 longline3 = 0.0 shortline1 = 0.0 shortline2 = 0.0 shortline3 = 0.0 longline1 := long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close longline2 := lots[1] == 0 ? long2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close : longline2[1] longline3 := lots[1] == 0 ? long3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close : longline3[1] shortline1 := short1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close shortline2 := lots[1] == 0 ? short2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close : shortline2[1] shortline3 := lots[1] == 0 ? short3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close : shortline3[1] //Lines colorlong1 = long1 ? color.lime : na colorlong2 = long2 ? color.lime : na colorlong3 = long3 ? color.lime : na colorshort1 = short1 ? color.red : na colorshort2 = short2 ? color.red : na colorshort3 = short3 ? color.red : na offset = needoffset ? 1 : 0 plot(shortline3, offset = offset, color = colorshort3, title = "Short line 3") plot(shortline2, offset = offset, color = colorshort2, title = "Short line 2") plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1") plot(ma, offset = offset, color = color.blue, title = "MA line") plot(longline1, offset = offset, color = colorlong1, title = "Long line 1") plot(longline2, offset = offset, color = colorlong2, title = "Long line 2") plot(longline3, offset = offset, color = colorlong3, title = "Long line 3") //Trading lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] if ma > 0 lots := round(size / lot) strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long1 and needtime)) lots := round(size / lot) strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long2 and needtime)) lots := round(size / lot) strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long3 and needtime)) lots := round(size / lot) strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short1 and needtime)) lots := round(size / lot) strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short2 and needtime)) lots := round(size / lot) strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short3 and needtime)) if size > 0 strategy.entry("TPL", strategy.short, 0, limit = ma, when = needtime) if size < 0 strategy.entry("TPS", strategy.long, 0, limit = ma, when = needtime) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all() strategy.cancel("L1") strategy.cancel("L2") strategy.cancel("L3") strategy.cancel("S1") strategy.cancel("S2") strategy.cancel("S3") strategy.cancel("TPL") strategy.cancel("TPS")