
यह रणनीति मूल्य चैनल संकेतक पर आधारित है, गतिशीलता पैरामीटर सेट करता है, विभिन्न चक्रों के उच्चतम और निम्नतम कीमतों के औसत की गणना करके मूल्य चैनल की मध्य रेखा बनाता है, और इस आधार पर, एक लंबी और एक छोटी लाइन सेट करता है। जब कीमत लंबी लाइन को तोड़ती है, तो अधिक करें; जब कीमत छोटी लाइन को तोड़ती है, तो खाली करें। ब्लीडिंग शर्तों के लिए कीमत चैनल की मध्य रेखा पर लौटती है।
यह रणनीति विभिन्न चक्रों के दौरान उच्चतम और निम्नतम कीमतों के औसत को गणना करने के लिए मूल्य चैनल संकेतक का उपयोग करती है, जिससे मूल्य चैनल की मध्य रेखा बनती है। मध्य रेखा को आधार के रूप में लेते हुए, शिफ्ट पैरामीटर के माध्यम से लंबी और छोटी लाइनों को सेट करें। विशेष रूप से, लंबी लाइन की गणना करने के लिए सूत्र हैः मध्य रेखा + ((मध्य रेखा × लंबी लाइन पैरामीटर%); छोटी लाइन की गणना करने के लिए सूत्र हैः मध्य रेखा + ((मध्य रेखा × छोटी लाइन पैरामीटर%) ।
जब कीमत लंबी रेखा से कम हो, तो एक सीमित मूल्य के साथ कई आदेश खोलें; जब कीमत छोटी रेखा से अधिक हो, तो एक सीमित मूल्य के साथ एक खाली आदेश खोलें। बहु-खाली आदेश की हानि को रोकने के लिए कीमतों के लिए चैनल की मध्य रेखा पर लौटें।
इस रणनीति के निम्नलिखित फायदे हैं:
इस रणनीति के कुछ जोखिम भी हैं:
आप अपने जोखिम को कम करने के लिए पैरामीटर को अनुकूलित कर सकते हैं, स्टॉप लॉस ऑर्डर सेट कर सकते हैं, या अन्य सूचकांकों के साथ संयोजन कर सकते हैं।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
इस रणनीति के आधार पर मूल्य चैनल संकेतक डिजाइन विचार स्पष्ट है, तोपखाने का उपयोग करने के लिए जोखिम को प्रभावी ढंग से नियंत्रित कर सकते हैं. लेकिन वहाँ भी पैरामीटर अनुकूलन के लिए एक बड़ा स्थान है, रोकने के लिए क्षति तंत्र में सुधार की जरूरत है और इस तरह के मुद्दों. कुल मिलाकर, इस रणनीति के कुछ व्यावहारिक मूल्य है, और आगे परीक्षण और अनुकूलन के लायक है.
/*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()