यह रणनीति मूल्य की ATR अस्थिरता की गणना करती है और स्टॉक ट्रेंड ट्रेडिंग के लिए लंबी प्रवेश और निकास शर्तें निर्धारित करने के लिए विभिन्न अवधि VWAP को जोड़ती है।
यह रणनीति मुख्य रूप से स्टॉक उत्पादों के ट्रेंड ट्रैकिंग के लिए उपयोग की जाती है। एटीआर अस्थिरता की गणना करके और विभिन्न अवधियों की वीडब्ल्यूएपी कीमतों को मिलाकर, यह रुझानों का न्याय और ट्रैक करने के लिए खरीद और बिक्री की शर्तें निर्धारित करता है। यह रणनीति लंबी अवधि और अल्पकालिक के बीच स्विच करने के लिए पर्याप्त लचीली है, मध्यम और लंबी अवधि के रुझानों को पकड़ने के लिए उपयुक्त है।
रणनीति मूल्य अस्थिरता की गणना करने के लिए एटीआर संकेतक का उपयोग करती है और इस आधार पर प्रवृत्ति की दिशा का न्याय करती है कि क्या मूल्य अस्थिरता चैनल से टूटता है। साथ ही यह दीर्घकालिक और अल्पकालिक रुझानों की स्थिरता निर्धारित करने के लिए विभिन्न चक्रों के वीडब्ल्यूएपी मूल्य पेश करता है। विशिष्ट तर्क निम्नानुसार हैः
उपरोक्त रणनीति का मूल तर्क है। एटीआर अस्थिरता अल्पकालिक प्रवृत्ति का न्याय करती है और वीडब्ल्यूएपी मूल्य दीर्घकालिक प्रवृत्ति का न्याय करता है। दोनों को प्रवृत्ति की स्थिरता निर्धारित करने और इस प्रकार व्यापार संकेत उत्पन्न करने के लिए संयुक्त किया जाता है।
रणनीति एटीआर अस्थिरता और वीडब्ल्यूएपी की दोहरी पुष्टि के माध्यम से स्टॉक ट्रेंड ट्रैकिंग को महसूस करती है। मापदंडों को समायोजित करके या अन्य तकनीकी संकेतकों को शामिल करके अनुकूलन के लिए पर्याप्त जगह है। कुल मिलाकर, रणनीति तर्क मध्यम से दीर्घकालिक रुझानों को ट्रैक करने के लिए स्पष्ट और मजबूत है।
/*backtest start: 2023-12-17 00:00:00 end: 2024-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy(title="VWAP MTF STOCK STRATEGY", overlay=true ) // high^2 / 2 - low^2 -2 h=pow(high,2) / 2 l=pow(low,2) / 2 o=pow(open,2) /2 c=pow(close,2) /2 x=(h+l+o+c) / 4 y= sqrt(x) source = y useTrueRange = false length = input(27, minval=1) mult = input(0, step=0.1) ma = sma(source, length) range = useTrueRange ? tr : high - low rangema = sma(range, length) upper = ma + rangema * mult lower = ma - rangema * mult crossUpper = crossover(source, upper) crossLower = crossunder(source, lower) bprice = 0.0 bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1]) sprice = 0.0 sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) crossBcond = false crossBcond := crossUpper ? true : na(crossBcond[1]) ? false : crossBcond[1] crossScond = false crossScond := crossLower ? true : na(crossScond[1]) ? false : crossScond[1] cancelBcond = crossBcond and (source < ma or high >= bprice ) cancelScond = crossScond and (source > ma or low <= sprice ) longOnly = true fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true srcX = input(ohlc4) t = time("W") start = na(t[1]) or t > t[1] sumSrc = srcX * volume sumVol = volume sumSrc := start ? sumSrc : sumSrc + sumSrc[1] sumVol := start ? sumVol : sumVol + sumVol[1] vwapW= sumSrc / sumVol //crossUpper = crossover(source, upper) //crossLower = crossunder(source, lower) shortCondition = close < vwap and time_cond and (close < vwapW) longCondition = close > vwap and time_cond and (close > vwapW) if(longOnly and time_cond) if (crossLower and close < vwapW ) strategy.close("long") if (crossUpper and close>vwapW) strategy.entry("long", strategy.long, stop=bprice)