इस रणनीति का मूल सूत्र एंड्रयू अब्राहम द्वारा TASC पत्रिका के सितंबर 1998 अंक में प्रकाशित लेख
यह रणनीति पहले औसत वास्तविक सीमा (एटीआर) के 21-दिवसीय भारित चलती औसत की गणना आधार रेखा अस्थिरता सीमा के रूप में करती है। फिर यह पिछले 21 दिनों में उच्चतम और निम्नतम कीमतों की गणना करती है। वर्तमान बंद मूल्य की तुलना आधार रेखा सीमा की ऊपरी और निचली सीमाओं के साथ करके, यह आकलन करती है कि क्या मूल्य प्रवृत्ति की दिशा निर्धारित करने के लिए चैनल से बाहर निकलता है।
विशेष रूप से, ऊपरी चैनल सीमा को पिछले 21 दिनों में सबसे अधिक मूल्य माइनस 3 बार बेसलाइन एटीआर के रूप में परिभाषित किया गया है, और निचली चैनल सीमा पिछले 21 दिनों में सबसे कम मूल्य प्लस 3 बार बेसलाइन एटीआर है। जब बंद मूल्य ऊपरी सीमा से अधिक होता है, तो यह एक तेजी की प्रवृत्ति का संकेत देता है। जब बंद मूल्य निचली सीमा से कम होता है, तो यह एक मंदी की प्रवृत्ति का संकेत देता है।
प्रवृत्ति की दिशा निर्धारित करते हुए, यह रणनीति फ़िल्टरिंग के लिए MACD संकेतक भी पेश करती है। यह केवल खरीद संकेत उत्पन्न करती है जब MACD हिस्टोग्राम सकारात्मक होता है ताकि खरीदारी के अवसरों को याद न किया जा सके।
यह रणनीति रुझान निर्धारण और सूचक फ़िल्टरिंग को जोड़ती है, जो अल्पकालिक उतार-चढ़ावों से भ्रमित किए बिना मध्यम-लंबी अवधि के बाजार रुझान की दिशा को प्रभावी ढंग से पहचान सकती है। मुख्य लाभ हैंः
इस रणनीति में कुछ जोखिम भी हैं, मुख्य रूप से निम्नलिखित पहलुओं मेंः
इन जोखिमों को मापदंडों का अनुकूलन, सख्त स्थिति आकार और समय पर स्टॉप लॉस करके कम किया जा सकता है।
इस रणनीति को निम्नलिखित मुख्य पहलुओं में अनुकूलित किया जा सकता हैः
लंबाई या गुणक के विभिन्न संयोजनों का परीक्षण करें ताकि बैकटेस्ट के आधार पर उच्चतम रिटर्न देने वाले पैरामीटर संयोजन का पता लगाया जा सके।
संकेतों को फ़िल्टर करने और लाभप्रदता में सुधार के लिए आरएसआई, केडीजे और अन्य संकेतकों को शामिल करने वाला परीक्षण।
बाजार की स्थितियों के आधार पर गतिशील रूप से मापदंडों को अनुकूलित करें, जैसे कि जब प्रवृत्ति मजबूत हो, तो चैनल रेंज को उचित रूप से चौड़ा करना, या जब बाजार अधिक रेंज-बाउंड हो, तो रेंज को कसना।
संक्षेप में, यह एक समग्र मजबूत प्रवृत्ति अनुसरण रणनीति है। मूल्य चैनल प्रवृत्ति निर्धारण और एमएसीडी फ़िल्टरिंग को जोड़कर, यह प्रभावी रूप से मध्यम-लंबी अवधि के रुझानों की पहचान कर सकता है और स्थिर रिटर्न उत्पन्न कर सकता है। पैरामीटर अनुकूलन, जोखिम प्रबंधन और उचित समायोजन के साथ, यह रणनीति एक व्यापार प्रणाली का एक अभिन्न अंग बन सकती है।
/*backtest start: 2023-01-26 00:00:00 end: 2024-02-01 00:00:00 period: 1d basePeriod: 1h 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/ // © melihtuna //@version=1 strategy("Trend Trader Strategy with MACD", overlay=true) // === Trend Trader Strategy === Length = input(21), Multiplier = input(3, minval=1) MacdControl = input(true, title="Control 'MACD Histogram is positive?' when Buy condition") avgTR = wma(atr(1), Length) highestC = highest(Length) lowestC = lowest(Length) hiLimit = highestC[1]-(avgTR[1] * Multiplier) loLimit = lowestC[1]+(avgTR[1] * Multiplier) ret = iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0))) pos = iff(close > ret, 1, iff(close < ret, -1, nz(pos[1], 0))) barcolor(pos == -1 ? red: pos == 1 ? green : blue ) plot(ret, color= blue , title="Trend Trader Strategy with MACD") // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2020, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // === MACD === [macdLine, signalLine, histLine] = macd(close, 12, 26, 9) macdCond= MacdControl ? histLine[0] > 0 ? true : false : true strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond) strategy.entry("SELL", strategy.short, when = window() and pos == -1)