यह रणनीति बोलिंगर बैंड और एटीआर संकेतक पर आधारित है। यह बोलिंगर बैंड का उपयोग करके मूल्य उतार-चढ़ाव को पकड़ता है, प्रवेश संकेतों के रूप में बैंड के ऊपर या नीचे मूल्य ब्रेकआउट का उपयोग करता है, और एटीआर को ट्रेलिंग स्टॉप लॉस के रूप में नियोजित करता है। यह रणनीति तब पदों को बंद करती है जब मूल्य सरल चलती औसत को पार करता है। इसका उद्देश्य ट्रेंडिंग बाजारों को पकड़ना, प्रवृत्ति की दिशा में पदों में प्रवेश करना और प्रवृत्ति उलट जाने पर तुरंत पदों को बंद करना है।
बोलिंगर बैंड एटीआर ट्रेंड फॉलोइंग रणनीति बोलिंगर बैंड और एटीआर संकेतक का उपयोग करके ट्रेंडिंग बाजारों को कैप्चर करती है। इसमें ट्रेंड फॉलोइंग, समय पर स्टॉप लॉस और सादगी के फायदे हैं। हालांकि, इसमें पैरामीटर संवेदनशीलता, चंचल बाजारों और ट्रेंड रिवर्स जैसे जोखिमों का भी सामना करना पड़ता है। पैरामीटर अनुकूलन, फ़िल्टर जोड़ने और स्थिति प्रबंधन के माध्यम से रणनीति के प्रदर्शन को और अनुकूलित किया जा सकता है।
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands and ATR Strategy", overlay=true) // Veri Çekme symbol = "AAPL" timeframe = "D" src = close // Bollinger Bantları Hesaplama len = 20 mult = 2 sum1 = 0.0, sum2 = 0.0 for i = 0 to len - 1 sum1 += src[i] basis = sum1 / len for i = 0 to len - 1 diff = src[i] - basis sum2 += diff * diff dev = math.sqrt(sum2 / len) upper_band = basis + dev * mult lower_band = basis - dev * mult // ATR Hesaplama atr_period = input(10, title="ATR Period") atr_value = 0.0 for i = 0 to atr_period - 1 atr_value += math.abs(src[i] - src[i + 1]) atr_value /= atr_period loss = input(1, title="Key Value (Sensitivity)") atr_trailing_stop = src[1] if src > atr_trailing_stop[1] atr_trailing_stop := math.max(atr_trailing_stop[1], src - loss * atr_value) else if src < atr_trailing_stop[1] atr_trailing_stop := math.min(atr_trailing_stop[1], src + loss * atr_value) else atr_trailing_stop := src - loss * atr_value // Sinyal Üretme long_condition = src < lower_band and src[1] >= lower_band[1] short_condition = src > upper_band and src[1] <= upper_band[1] close_long = src > basis close_short = src < basis buy_signal = src > atr_trailing_stop[1] and src[1] <= atr_trailing_stop[1] sell_signal = src < atr_trailing_stop[1] and src[1] >= atr_trailing_stop[1] if (long_condition) strategy.entry("Long", strategy.long, comment="Long Signal") if (short_condition) strategy.entry("Short", strategy.short, comment="Short Signal") if (close_long) strategy.close("Long", comment="Close Long") if (close_short) strategy.close("Short", comment="Close Short") if (buy_signal) strategy.entry("Long", strategy.long, comment="Buy Signal") if (sell_signal) strategy.entry("Short", strategy.short, comment="Sell Signal") // Çizim plot(upper_band, color=#0000FF, linewidth=2, title="Upper Band") plot(lower_band, color=#0000FF, linewidth=2, title="Lower Band") plot(basis, color=#808080, linewidth=2, title="SMA") plot(atr_trailing_stop, color=#FFA500, linewidth=2, title="ATR Trailing Stop") plot(src, color=#FFA500, linewidth=2, title="Price") // Sinyal İşaretleri plotshape(long_condition, style=shape.arrowup, color=#00FF00, location=location.belowbar, size=size.small, title="Long Signal") plotshape(short_condition, style=shape.arrowdown, color=#FF0000, location=location.abovebar, size=size.small, title="Short Signal") plotshape(buy_signal, style=shape.diamond, color=#00FF00, location=location.belowbar, size=size.small, title="Buy Signal") plotshape(sell_signal, style=shape.diamond, color=#FF0000, location=location.abovebar, size=size.small, title="Sell Signal")