यह रणनीति मूल्य चैनल संकेतक पर आधारित है। एक गति पैरामीटर सेट करके, यह मूल्य चैनल की मध्य रेखा बनाने के लिए विभिन्न चक्रों में उच्चतम और निम्नतम कीमतों के औसत मूल्य की गणना करता है, और इसके आधार पर लंबी और छोटी लाइनें निर्धारित करता है। जब कीमत लंबी रेखा के माध्यम से टूटती है, तो यह लंबी जाती है; जब कीमत छोटी रेखा के माध्यम से टूटती है, तो यह छोटी जाती है। समापन शर्त यह है कि कीमत चैनल की मध्य रेखा पर वापस जाती है।
यह रणनीति चैनल की मध्य रेखा बनाने के लिए विभिन्न चक्रों में उच्चतम और निम्नतम कीमतों के औसत मूल्य की गणना करने के लिए मूल्य चैनल संकेतक का उपयोग करती है। मध्य रेखा के आधार पर, शिफ्ट पैरामीटर के माध्यम से लंबी और छोटी रेखाएं निर्धारित की जाती हैं। विशेष रूप से लंबी रेखा गणना सूत्र हैः मध्य रेखा + (मध्य रेखा × लंबी रेखा पैरामीटर%); छोटी रेखा गणना सूत्र हैः मध्य रेखा + (मध्य रेखा × छोटी रेखा पैरामीटर%) ।
जब कीमत लंबी रेखा से कम हो, तो सीमा आदेशों के साथ लंबी स्थिति खोलें; जब कीमत छोटी रेखा से अधिक हो, तो सीमा आदेशों के साथ छोटी स्थिति खोलें। लंबी और छोटी स्थिति के लिए स्टॉप लॉस विधि चैनल मिडलाइन में मूल्य प्रतिगमन है।
इस रणनीति के निम्नलिखित फायदे हैंः
इस रणनीति में कुछ जोखिम भी हैं:
उपरोक्त जोखिमों को मापदंडों को अनुकूलित करके, स्टॉप लॉस ऑर्डर सेट करके या निर्णय के लिए अन्य संकेतकों को मिलाकर कम किया जा सकता है।
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
मूल्य चैनल संकेतक के आधार पर इस रणनीति का डिजाइन विचार स्पष्ट है। पदों को खोलने के लिए ब्रेकआउट का उपयोग करके जोखिमों को प्रभावी ढंग से नियंत्रित किया जा सकता है। लेकिन बड़े पैरामीटर अनुकूलन स्थान और स्टॉप लॉस तंत्र भी हैं जिन्हें सुधारने की आवश्यकता है। कुल मिलाकर, रणनीति का एक निश्चित व्यावहारिक मूल्य है और आगे परीक्षण और अनुकूलन के लायक है।
/*backtest start: 2022-11-29 00:00:00 end: 2023-12-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's PCMA Strategy v1.0", shorttitle = "PCMA 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(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") per = input(3, title = "Length") 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") //Price Channel h = highest(high, per) l = lowest(low, per) c = (h + l) / 2 ll = c + ((c / 100) * longlevel) sl = c + ((c / 100) * shortlevel) //Lines shortcolor = needshort ? red : na longcolor = needlong ? lime : na plot(sl, linewidth = 2, color = shortcolor, title = "Short line") plot(c, linewidth = 2, color = blue, title = "SMA line") plot(ll, linewidth = 2, color = longcolor, 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 = ll, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[per])) and size == 0 and needshort strategy.entry("S", strategy.short, lot, limit = sl, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[per])) and size > 0 strategy.entry("Close", strategy.short, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[per])) and size < 0 strategy.entry("Close", strategy.long, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()