यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए औसत सच्ची सीमा (एटीआर) संकेतक का उपयोग करती है। यह प्रवृत्ति ऊपर जाने पर लंबी जाती है और प्रवृत्ति नीचे जाने पर छोटी जाती है। यह प्रवृत्ति के बाद रणनीति प्रकार से संबंधित है।
रणनीति पहले मूल्य के सरल चलती औसत (एसएमए) और घातीय चलती औसत (ईएमए) की गणना करती है। फिर यह एटीआर संकेतक की गणना करती है, जो पिछले एन दिनों में मूल्य आंदोलन की औसत सीमा है।
यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए ईएमए औसत रेखा, ऊपरी बैंड (ईएमए + एटीआर * गुणांक) और निचले बैंड (ईएमए - एटीआर * गुणांक) का उपयोग करती है। जब कीमत ऊपरी बैंड से ऊपर टूटती है तो यह लंबी जाती है, और जब कीमत निचले बैंड से नीचे टूटती है तो यह छोटी हो जाती है।
कोड में मुख्य तर्कः
एटीआर के आधार पर स्थिति को गतिशील रूप से समायोजित करके, यह प्रभावी रूप से प्रवृत्ति दिशाओं का पालन कर सकता है।
समाधान:
एटीआर ट्रेंड फॉलोइंग रणनीति में एटीआर का उपयोग करके ट्रेंड की दिशा निर्धारित करने के लिए स्पष्ट तर्क है। यह एक विशिष्ट ट्रेंड फॉलोइंग सिस्टम है। इसके फायदे सादगी और ट्रेंड्स का पालन करने की क्षमता हैं। लेकिन इसमें ऐसे जोखिम भी हैं जिनके लिए विभिन्न बाजारों के लिए अनुकूलन की आवश्यकता होती है। कुल मिलाकर, इसकी एक मात्रात्मक ट्रेडिंग टूल के रूप में बड़ी क्षमता और मूल्य है।
/*backtest start: 2023-08-28 00:00:00 end: 2023-09-27 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/ // © Investoz //@version=4 strategy("ATR Strategy FOREX", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) len = input(26, type=input.integer, minval=1, title="Length") mul = input(2.618, type=input.float, minval=0, title="Length") mullow = input(2.386, type=input.float, minval=0, title="Length") price = sma(close, 1) average = ema(close, len) diff = atr(len) * mul difflow = atr(len) * mullow bull_level = average + diff bear_level = average - difflow bull_cross = crossunder(price, bear_level) bear_cross = crossunder(bull_level, price) FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2008, title = "From Year", minval = 2008) 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 = 2020, title = "To Year", minval = 2019) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) startTimeOk() => true if (startTimeOk()) and ema(close,1) > ema(close,528) strategy.entry("KOP", strategy.long, when=bull_cross) strategy.close("KOP", when=bear_cross) if (startTimeOk()) and ema(close,1) < ema(close,528) strategy.entry("SALJ", strategy.short, when=bear_cross) strategy.close("SALJ", when=bull_cross) plot(price, title="price", color=color.black, transp=50, linewidth=2) a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1) a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1) a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1) fill(a0, a1, color=color.green, transp=97) fill(a0, a2, color=color.red, transp=97)