
इस रणनीति के केंद्र में एंड्रयू अब्राहम द्वारा सितंबर 1998 में ट्रेडिंग ट्रेंड्स और ट्रेडिंग जर्नल TASC कॉलम में प्रकाशित लेख में विकसित किए गए एक सूचक पर आधारित है। यह सूचक बाजार की प्रवृत्ति की दिशा का आकलन करने के लिए औसत वास्तविक उतार-चढ़ाव की सीमा और मूल्य चैनल का उपयोग करता है, और मध्य-लंबी प्रवृत्ति को पकड़ने के लिए MACD सूचक के साथ मिलकर ट्रेडिंग सिग्नल फ़िल्टरिंग करता है।
इस रणनीति में पहले 21 दिन के औसत वास्तविक अस्थिरता रेंज (ATR) के भारित चलती औसत को आधार अस्थिरता रेंज के रूप में गणना की जाती है। फिर पिछले 21 दिनों की उच्चतम और निम्नतम कीमतों की गणना की जाती है और वर्तमान K-लाइन समापन मूल्य की तुलना आधार अस्थिरता रेंज के ऊपरी और निचले सीमाओं से की जाती है, यह निर्धारित करने के लिए कि क्या कीमतों ने चैनल को तोड़ दिया है, जिससे प्रवृत्ति की दिशा निर्धारित की जा सकती है।
विशेष रूप से, चैनल की ऊपरी सीमा को पिछले 21 दिनों के उच्चतम मूल्य से 3 गुना आधार एटीआर घटाकर परिभाषित किया गया है, और चैनल की निचली सीमा पिछले 21 दिनों के निम्नतम मूल्य से 3 गुना आधार एटीआर जोड़कर परिभाषित की गई है। जब समापन मूल्य चैनल की ऊपरी सीमा से अधिक होता है, तो इसे एक आशावादी प्रवृत्ति के रूप में माना जाता है; जब समापन मूल्य चैनल की निचली सीमा से कम होता है, तो इसे एक आशावादी प्रवृत्ति के रूप में माना जाता है।
प्रवृत्ति की दिशा निर्धारित करते हुए, रणनीति ने MACD सूचक को फ़िल्टर करने के लिए भी पेश किया। यह केवल खरीदारी के संकेत देता है जब MACD स्तंभ रेखा सही होती है, ताकि खरीदारी के बिंदु को याद न किया जा सके।
इस रणनीति में प्रवृत्ति का आकलन और सूचक फ़िल्टरिंग शामिल है, जो बाजार में दीर्घकालिक प्रवृत्ति की दिशा का प्रभावी ढंग से आकलन करने में मदद करता है, जिससे बाजार में अल्पकालिक उतार-चढ़ाव से भ्रामक होने से बचा जा सकता है। इसके विशिष्ट फायदे इस प्रकार हैंः
इस रणनीति में कुछ जोखिम भी हैं, जो मुख्य रूप से निम्नलिखित पहलुओं में दिखाई देते हैंः
इसके लिए, अनुकूलित पैरामीटर सेटिंग, सख्त स्थिति आकार, और समय पर रोक के माध्यम से जोखिम को कम किया जा सकता है।
इस रणनीति को निम्नलिखित क्षेत्रों में अनुकूलित किया जा सकता हैः
विभिन्न Length पैरामीटर या Multiplier पैरामीटर के संयोजनों का परीक्षण किया जा सकता है, ताकि यह पता लगाया जा सके कि कौन सा पैरामीटर संयोजन सबसे अच्छा रिटर्न देता है।
आरएसआई, केडीजे और अन्य संकेतकों के साथ संयोजन में परीक्षण किया जा सकता है ताकि यह देखा जा सके कि रिटर्न दर में सुधार हो सकता है या नहीं।
बाजार की स्थितियों के आधार पर पैरामीटर को गतिशील रूप से समायोजित किया जा सकता है, जैसे कि प्रवृत्ति स्पष्ट होने पर उचित चैनल रेंज को ढीला करना और उतार-चढ़ाव के दौरान उचित चैनल रेंज को कसना।
समग्र रूप से, यह रणनीति एक अपेक्षाकृत मजबूत प्रवृत्ति ट्रैकिंग रणनीति है। यह मूल्य चैनल प्रवृत्ति दिशा निर्धारित करने और 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)