
اس حکمت عملی میں بولنگ بینڈ اور انڈیکس منتقل اوسط ((ای ایم اے) کے دو تکنیکی اشارے شامل ہیں ، جس کا مقصد مارکیٹ میں قلیل مدتی قیمتوں میں اتار چڑھاؤ کو پکڑنا ہے۔ بولنگ بینڈ قیمتوں کی اتار چڑھاؤ کی پیمائش کرنے کے لئے استعمال کیا جاتا ہے ، جبکہ ای ایم اے کو رجحان کی سمت کا اندازہ کرنے کے لئے استعمال کیا جاتا ہے۔ جب اختتامی قیمت ای ایم اے کو توڑ دیتی ہے اور اس سے زیادہ ہوتی ہے تو ، اس کا اشارہ ہوتا ہے کہ بڑھتی ہوئی رجحان جاری رہ سکتا ہے ، اس وقت زیادہ پوزیشن کھولی جاتی ہے۔ اس کے برعکس ، جب اختتامی قیمت ای ایم اے کو توڑ دیتی ہے اور اس سے کم ہوتی ہے تو ، اس کا اشارہ ہوتا ہے کہ گرتی ہوئی رجحان جاری رہ سکتا ہے ، اس وقت خالی پوزیشن کھولی جاتی ہے۔ اس حکمت عملی میں نیچے جانے والے خطرے کو کنٹرول کرنے اور منافع کو مقفل کرنے کے لئے اسٹاپ نقصان اور کراسنگ جیسی رسک مینجمنٹ تکنیک بھی شامل ہیں۔
اس حکمت عملی کا بنیادی مقصد بولنگ بینڈ اور ای ایم اے کے امتزاج کا استعمال کرتے ہوئے ممکنہ تجارتی مواقع کی نشاندہی کرنا ہے۔ بولنگ بینڈ تین لائنوں پر مشتمل ہوتا ہے: درمیانی سلائی ((عام طور پر ایک سادہ حرکت پذیر اوسط) ، اوپری سلائی ((درمیانی سلائی کے علاوہ ایک خاص ضرب کا معیاری فرق) اور نچلی سلائی ((درمیانی سلائی کے بعد ایک خاص ضرب کا معیاری فرق) ۔ قیمتوں کے ٹوٹنے سے اوپر کی سلائی یا نیچے کی سلائی عام طور پر مارکیٹ میں شدید اتار چڑھاؤ کی نشاندہی کرتی ہے ، جبکہ قیمتیں درمیانی سلائی کے قریب چلتی ہیں اس سے مارکیٹ نسبتا مستحکم ہے۔ ای ایم اے ایک رجحان سے باخبر رہنے والا اشارے ہے جو حالیہ قیمتوں میں تبدیلی کو زیادہ وزن دیتا ہے ، لہذا قیمتوں میں تبدیلی کا ردعمل سادہ حرکت پذیر اوسط سے زیادہ حساس ہے۔
اس حکمت عملی کے تحت تجارت کی منطق درج ذیل ہے:
بولنگ بینڈ اور ای ایم اے ٹرینڈ ٹریکنگ حکمت عملی مارکیٹ میں قلیل مدتی قیمتوں میں اتار چڑھاؤ کو پکڑنے کے لئے ایک منظم طریقہ فراہم کرتی ہے ، اس میں اتار چڑھاؤ کے اشارے اور رجحان سے باخبر رہنے کے اشارے شامل ہیں۔ اس حکمت عملی کا فائدہ مارکیٹ کے رجحانات کو مؤثر طریقے سے پہچاننے اور ان کا سراغ لگانے کے قابل ہونا ہے ، جبکہ خطرے کے انتظام اور پوزیشن مینجمنٹ کی تکنیک کو جوڑ دیا گیا ہے۔ تاہم ، اس حکمت عملی کو پیرامیٹرز کی حساسیت ، مارکیٹ شور ، رجحان الٹ جانے جیسے خطرات کا بھی سامنا کرنا پڑتا ہے۔ اس میں پیرامیٹرز کی اصلاح ، رجحان کی تصدیق ، متحرک اسٹاپ نقصانات ، پوزیشن مینجمنٹ کی اصلاح اور کثیر المیعاد تجزیہ فریم ورک کے ذریعہ بہتری اور اصلاح کی ضرورت ہے۔
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands and EMA Strategy", overlay=true)
// Bollinger Bands Inputs
bb_length = input.int(20, minval=1, title="Bollinger Bands Length")
bb_mult = input.float(2.0, minval=0.001, maxval=50, title="Bollinger Bands StdDev")
bb_src = input(close, title="Bollinger Bands Source")
bb_offset = input.int(0, title="Bollinger Bands Offset", minval=-500, maxval=500)
// EMA Inputs
ema_period = input.int(9, minval=1, title="EMA Period")
ema_src = input(close, title="EMA Source")
ema_offset = input.int(0, title="EMA Offset", minval=-500, maxval=500)
// Calculate Bollinger Bands
bb_basis = ta.sma(bb_src, bb_length)
bb_dev = bb_mult * ta.stdev(bb_src, bb_length)
bb_upper = bb_basis + bb_dev
bb_lower = bb_basis - bb_dev
// Plot Bollinger Bands
plot(bb_basis, "BB Basis", color=color.blue, offset=bb_offset)
p1 = plot(bb_upper, "BB Upper", color=color.red, offset=bb_offset)
p2 = plot(bb_lower, "BB Lower", color=color.green, offset=bb_offset)
fill(p1, p2, title="BB Background", color=color.rgb(33, 150, 243, 95))
// Calculate EMA
ema_value = ta.ema(ema_src, ema_period)
// Plot EMA
plot(ema_value, title="EMA", color=color.orange, offset=ema_offset)
// Strategy Conditions
long_condition = ta.crossover(close, ema_value) and close > bb_upper
short_condition = ta.crossunder(close, ema_value) and close < bb_lower
// Define Stop Loss and Take Profit Levels
stop_loss_pct = input.float(0.5, title="Stop Loss (%)")
take_profit_pct = input.float(1.0, title="Take Profit (%)")
stop_loss_level_long = close * (1 - stop_loss_pct / 100)
take_profit_level_long = close * (1 + take_profit_pct / 100)
stop_loss_level_short = close * (1 + stop_loss_pct / 100)
take_profit_level_short = close * (1 - take_profit_pct / 100)
// Calculate Position Size Based on Risk Per Trade
risk_per_trade = input.float(1.0, title="Risk Per Trade (%)")
capital_at_risk = strategy.equity * risk_per_trade / 100
risk_per_unit_long = math.abs(close - stop_loss_level_long)
risk_per_unit_short = math.abs(close - stop_loss_level_short)
position_size_long = capital_at_risk / risk_per_unit_long
position_size_short = capital_at_risk / risk_per_unit_short
// Enter Long and Short Trades
if long_condition
strategy.entry("Long", strategy.long, qty=position_size_long)
strategy.exit("Take Profit", "Long", limit=take_profit_level_long)
strategy.exit("Stop Loss", "Long", stop=stop_loss_level_long)
if short_condition
strategy.entry("Short", strategy.short, qty=position_size_short)
strategy.exit("Take Profit", "Short", limit=take_profit_level_short)
strategy.exit("Stop Loss", "Short", stop=stop_loss_level_short)