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