
یہ حکمت عملی بروئنگ بینڈ ((Bollinger Bands) اور 5 دن کی اشاریہ منتقل اوسط ((5-day EMA) کے ساتھ مل کر ٹریڈنگ سگنل پیدا کرتی ہے۔ جب قیمت بروئنگ بینڈ سے آگے نکل جاتی ہے اور 5 دن کے EMA سے نیچے بند ہوجاتی ہے تو ، ایک خالی پوزیشن کھولی جاتی ہے۔ جب قیمت بروئنگ بینڈ سے نیچے گرتی ہے اور 5 دن کے EMA سے اوپر بند ہوجاتی ہے تو ، ایک کثیر پوزیشن کھولی جاتی ہے۔ اس کے ساتھ ہی ، جب ایک الٹ سگنل ہوتا ہے تو ، حکمت عملی موجودہ پوزیشنوں کو ختم کردیتی ہے اور ایک نئی الٹ پوزیشن کھولی جاتی ہے۔ اس حکمت عملی کا مقصد مارکیٹ میں اتار چڑھاو اور رجحان کی تبدیلیوں کو پکڑنا ہے ، جس میں بروئنگ کے ذریعہ قیمتوں کے نسبتا high اعلی اور کم کا فیصلہ کیا جاتا ہے ، اور ای ایم اے کو رجحان کے جال کے طور پر استعمال کیا جاتا ہے تاکہ اس سگنل کو تجارت میں پیدا کیا جاسکے۔
اس حکمت عملی کو بروئنگ بینڈ اور ای ایم اے کے امتزاج کے ذریعہ بروئنگ بینڈ اور ای ایم اے کے امتزاج کے ذریعہ ٹریڈنگ کی حکمت عملی کے لئے موزوں رجحانات اور اتار چڑھاؤ کے مواقع کو زیادہ مؤثر طریقے سے پکڑنے کے لئے استعمال کیا جاسکتا ہے۔ تاہم ، اس حکمت عملی کی افادیت کو بہتر طور پر استعمال کرنے کے لئے پیرامیٹرز کی اصلاح ، پوزیشن پر قابو پانے اور خطرے کے انتظام پر توجہ دینے کی ضرورت ہے ، اور دیگر تکنیکی اشارے اور بنیادی تجزیہ کے ساتھ مل کر۔ حکمت عملی کی کارکردگی مارکیٹ کی حالت سے متاثر ہوسکتی ہے ، جس کو حقیقی حالات کے مطابق ایڈجسٹ اور بہتر بنانے کی ضرورت ہے۔
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands and EMA Strategy", overlay=true)
// Define the Bollinger Bands
length = input.int(20, title="BB Length")
src = input(close, title="BB Source")
mult = input.float(2.0, title="BB Multiplier")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plot Bollinger Bands
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)
plot(basis, "Middle Band", color=color.blue) // Use plot instead of hline for basis
// Define the 5-period EMA
ema5 = ta.ema(close, 5)
// Plot the 5 EMA
plot(ema5, "5 EMA", color=color.orange)
// Generate signals
var float entry_price = na
var string trade_direction = "none"
if (na(close[1]))
trade_direction := "none"
// Condition for entering a short trade
if (open > upper and close < ema5)
if (trade_direction != "short")
strategy.entry("Short", strategy.short)
entry_price := close
trade_direction := "short"
// Condition for entering a long trade
if (open < lower and close > ema5)
if (trade_direction != "long")
strategy.entry("Long", strategy.long)
entry_price := close
trade_direction := "long"
// Close short trade on a long signal
if (trade_direction == "short" and open < lower and close > ema5)
strategy.close("Short")
strategy.entry("Long", strategy.long)
entry_price := close
trade_direction := "long"
// Close long trade on a short signal
if (trade_direction == "long" and open > upper and close < ema5)
strategy.close("Long")
strategy.entry("Short", strategy.short)
entry_price := close
trade_direction := "short"
// Close trades when opposite signal is generated
if (trade_direction == "long" and open > upper and close < ema5)
strategy.close("Long")
trade_direction := "none"
if (trade_direction == "short" and open < lower and close > ema5)
strategy.close("Short")
trade_direction := "none"