یہ حکمت عملی بولنگر بینڈ اور اے ٹی آر اشارے پر مبنی ہے۔ یہ بولنگر بینڈ کا استعمال کرتے ہوئے قیمتوں میں اتار چڑھاؤ کو پکڑتا ہے ، بینڈ کے اوپر یا نیچے قیمت کے وقفے کو انٹری سگنل کے طور پر استعمال کرتا ہے ، اور اے ٹی آر کو ٹریلنگ اسٹاپ نقصان کے طور پر استعمال کرتا ہے۔ یہ حکمت عملی اس وقت پوزیشنیں بند کرتی ہے جب قیمت سادہ حرکت پذیر اوسط سے تجاوز کرتی ہے۔ اس کا مقصد رجحان سازی کی مارکیٹوں کو پکڑنا ، رجحان کی سمت میں پوزیشنیں داخل کرنا ، اور رجحان کے الٹ جانے پر فوری طور پر پوزیشنیں بند کرنا ہے۔
بولنگر بینڈ اے ٹی آر ٹرینڈ فالونگ حکمت عملی بولنگر بینڈ اور اے ٹی آر اشارے کا استعمال کرتے ہوئے رجحانات کی مارکیٹوں کو پکڑتی ہے۔ اس کے رجحان کی پیروی ، بروقت اسٹاپ نقصان اور سادگی کے فوائد ہیں۔ تاہم ، اس میں پیرامیٹر حساسیت ، ہلکی مارکیٹوں اور رجحانات کے الٹ جیسے خطرات کا بھی سامنا کرنا پڑتا ہے۔ پیرامیٹر کی اصلاح ، فلٹرز شامل کرنے اور پوزیشن مینجمنٹ کے ذریعے حکمت عملی کی کارکردگی کو مزید بہتر بنایا جاسکتا ہے۔
/*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")