पुलिंग रणनीति डोंचियन चैनलों पर आधारित एक प्रवृत्ति के बाद की रणनीति है। यह प्रवृत्ति की दिशा की पहचान करने और पॉलबैक पर प्रवेश करने के लिए तेज़ और धीमे डोंचियन चैनलों का उपयोग करता है। इस रणनीति के फायदे यह हैं कि यह प्रवृत्तियों को स्वचालित रूप से ट्रैक कर सकती है और समय में नुकसान काट सकती है जब प्रवृत्ति बदलती है। लेकिन इसमें ड्रॉडाउन और स्टॉप लॉस के बहुत करीब होने के जोखिम भी हैं।
रणनीति पहले तेज चैनल अवधि को 20 बार और धीमी चैनल अवधि को 50 बार के रूप में परिभाषित करती है। तेज चैनल का उपयोग स्टॉप लॉस मूल्य निर्धारित करने के लिए किया जाता है, जबकि धीमी चैनल का उपयोग प्रवृत्ति दिशा और प्रवेश समय निर्धारित करने के लिए किया जाता है।
सबसे पहले, फास्ट चैनल के उच्चतम उच्च और निम्नतम निम्न की गणना की जाती है, और मध्य बिंदु को स्टॉप लॉस लाइन के रूप में लिया जाता है। एक ही समय में, धीमी चैनल के उच्चतम उच्च और निम्नतम निम्न की गणना की जाती है, और चैनल के शीर्ष और नीचे का उपयोग प्रवेश लाइनों के रूप में किया जाता है।
जब कीमत धीमी चैनल के ऊपर से टूटती है, तो लंबी हो जाती है। जब कीमत धीमी चैनल के नीचे से टूटती है, तो छोटी हो जाती है। स्थिति में प्रवेश करने के बाद, तेजी से चैनल के मध्य बिंदु पर स्टॉप लॉस सेट करें।
तो धीमी चैनल प्रमुख प्रवृत्ति दिशा निर्धारित करता है, जबकि तेजी से चैनल स्टॉप लॉस बिंदु निर्धारित करने के लिए एक छोटी सीमा के भीतर मामूली ब्रेकआउट ट्रैक करता है। जब प्रमुख प्रवृत्ति उलट जाती है, तो कीमत पहले स्टॉप लॉस को महसूस करने के लिए तेजी से चैनल की स्टॉप लॉस लाइन को तोड़ देगी।
स्वचालित रूप से रुझानों को ट्रैक करें और समय पर घाटे में कटौती करें। डबल चैनल संरचना स्वचालित रूप से रुझानों को ट्रैक कर सकती है और रुझानों के उलट होने पर तेजी से घाटे में कटौती कर सकती है।
कुछ ट्रेंड फिल्टरिंग प्रभाव के साथ पिलबैक पर प्रवेश करें। केवल जब कीमत चैनल की सीमाओं के माध्यम से टूटती है तो कुछ झूठे ब्रेकआउट को वास्तविक ट्रेंड के बिना फ़िल्टर कर सकते हैं।
नियंत्रण योग्य जोखिम। बंद स्टॉप हानि दूरी एकल हानि को नियंत्रित कर सकती है।
प्रवृत्ति के अनुसरण करने वाली रणनीतियों में अपेक्षाकृत बड़ी कमी हो सकती है जिसके लिए मनोवैज्ञानिक तैयारी की आवश्यकता होती है।
स्टॉप लॉस बहुत करीब है. फास्ट चैनल पीरियड छोटा है इसलिए स्टॉप लॉस करीब है, बंद होने का खतरा है. हम उचित रूप से फास्ट चैनल पीरियड को आराम दे सकते हैं.
बहुत अधिक ट्रेड. डबल चैनल संरचना अत्यधिक प्रविष्टियों का उत्पादन कर सकती है, जिसके लिए उचित स्थिति आकार की आवश्यकता होती है.
प्रवेश फ़िल्टर जोड़ें. हम पर्याप्त प्रवृत्ति शक्ति के बिना ब्रेकआउट को फ़िल्टर करने के लिए प्रवेश स्थितियों में अस्थिरता आदि जोड़ सकते हैं.
चैनल अवधि मापदंडों का अनुकूलन. हम अनुकूलन चैनल मापदंड संयोजन व्यवस्थित रूप से मिल सकता है.
कई समय सीमाओं को मिलाकर उच्च समय सीमाओं पर मुख्य प्रवृत्ति का निर्धारण करना और कम समय सीमाओं पर व्यापार करना।
गतिशील स्टॉप लॉस दूरी. बाजार की अस्थिरता के आधार पर गतिशील रूप से स्टॉप दूरी समायोजित करें.
पुलिंग रणनीति एक मानक प्रवृत्ति के बाद की रणनीति है। यह प्रवृत्ति की दिशा निर्धारित करने के लिए मूल्य चैनलों का उपयोग करती है और जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस सेट करती है। रणनीति के कुछ फायदे हैं लेकिन ड्रॉडाउन और स्टॉप लॉस के बहुत करीब होने की समस्याएं भी हैं। हम चैनल मापदंडों को समायोजित करके, फिल्टर आदि जोड़कर इसे अनुकूलित कर सकते हैं। लेकिन हमें ध्यान देना चाहिए कि प्रवृत्ति के बाद की रणनीतियों को ड्रॉडाउन को सहन करने के लिए मजबूत मनोविज्ञान की आवश्यकता होती है।
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-30 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2020 //@version=4 strategy("Noro's RiskTurtle Strategy", shorttitle = "RiskTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") risk = input(2, minval = 0.1, maxval = 99, title = "Risk size, %") fast = input(20, minval = 1, title = "Fast channel (for stop-loss)") slow = input(50, minval = 1, title = "Slow channel (for entries)") showof = input(true, defval = true, title = "Show offset") showll = input(true, defval = true, title = "Show lines") showdd = input(true, defval = true, title = "Show label (drawdown)") showbg = input(true, defval = true, 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") //Donchian price channel fast hf = highest(high, fast) lf = lowest(low, fast) center = (hf + lf) / 2 //Donchian price chennal slow hs = highest(high, slow) ls = lowest(low, slow) //Lines colorpc = showll ? color.blue : na colorsl = showll ? color.red : na offset = showof ? 1 : 0 plot(hs, offset = offset, color = colorpc, title = "Slow channel high") plot(ls, offset = offset, color = colorpc, title = "Slow channel low") plot(center, offset = offset, color = colorsl, title = "Fast channel stop-loss") //Background size = strategy.position_size colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na bgcolor(colorbg, transp = 70) //Var loss = 0.0 maxloss = 0.0 equity = 0.0 truetime = true //Lot size risksize = -1 * risk risklong = ((center / hs) - 1) * 100 coeflong = abs(risksize / risklong) lotlong = (strategy.equity / close) * coeflong riskshort = ((center / ls) - 1) * 100 coefshort = abs(risksize / riskshort) lotshort = (strategy.equity / close) * coefshort //Orders strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and hs > 0 and truetime) strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and ls > 0 and truetime) strategy.exit("LongExit", "Long", stop = center, when = needlong and strategy.position_size > 0) strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all() strategy.cancel("Long") strategy.cancel("Short") if showdd //Drawdown max = 0.0 max := max(strategy.equity, nz(max[1])) dd = (strategy.equity / max - 1) * 100 min = 100.0 min := min(dd, nz(min[1])) //Max loss size equity := strategy.position_size == 0 ? strategy.equity : equity[1] loss := equity < equity[1] ? ((equity / equity[1]) - 1) * 100 : 0 maxloss := min(nz(maxloss[1]), loss) //Label min := round(min * 100) / 100 maxloss := round(maxloss * 100) / 100 labeltext = "Drawdown: " + tostring(min) + "%" + "\nMax.loss " + tostring(maxloss) + "%" var label la = na label.delete(la) tc = min > -100 ? color.white : color.red osx = timenow + round(change(time)*10) osy = highest(100) // la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)