یہ حکمت عملی بولنگر بینڈ اشارے پر مبنی ایک قلیل مدتی الٹ ٹریڈنگ حکمت عملی ہے۔ یہ قیمتوں میں غیر معمولی طور پر منتشر ہونے پر الٹ ٹریڈنگ کے مواقع تلاش کرنے کے لئے حرکت پذیر اوسط ، معیاری انحراف اور بولنگر بینڈ کو یکجا کرتی ہے۔
چلتی اوسط اور معیاری انحراف کا حساب لگائیں۔ معیاری انحراف کا حساب لگانے کے لئے SMA () فنکشن اور stdev () فنکشن کا استعمال کریں۔
چلتی اوسط اور معیاری انحراف کے مطابق بولنگر بینڈ کے اوپری اور نچلے ریل کا حساب لگائیں۔ اوپری ریل قیمت + معیاری انحراف ہے۔1 اور نچلی ریل قیمت معیاری انحراف ہے1.
جب قیمت اوپری یا نچلی ریل کو توڑتی ہے تو ، اس سے یہ ظاہر ہوتا ہے کہ قیمت غیر معمولی ہے۔ اس وقت ، ہم ریورس ٹریڈنگ کرنے کا فیصلہ کرتے ہیں۔
خاص طور پر، اگر قیمت کم ریل سے کم ہے، ہم طویل جاتے ہیں؛ اگر قیمت اوپر ریل سے زیادہ ہے، ہم مختصر جاتے ہیں.
غیر معمولی قیمتوں کا فیصلہ کرنے کے لئے بولنگر بینڈ چینل کا استعمال کریں، جو ریورس ٹریڈنگ کی بنیاد فراہم کرتا ہے۔
چلتی اوسط فیکٹر کے ساتھ مل کر ، کچھ شور مچانے والی تجارت کو مؤثر طریقے سے فلٹر کیا جاسکتا ہے۔
سٹینڈرڈ ڈیوی ایشن فیکٹر کا تعارف غیر معمولی قیمتوں کا بہتر اندازہ کرنے کے لئے بولنگر بینڈ چینل کو زیادہ متحرک بناتا ہے۔
اس حکمت عملی میں نسبتاً کم استعمال اور ایک خاص استحکام ہے۔
بولنگر بینڈ کا اشارے قیمتوں کی غیر معمولی صورتحال کا مکمل طور پر تعین نہیں کر سکتا۔ جھوٹے بریک آؤٹ ہو سکتے ہیں۔
تجارتی تعدد بہت زیادہ ہوسکتا ہے۔ تجارتی تعدد کو کنٹرول کرنے کے لئے پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کرنے کی سفارش کی جاتی ہے۔
اوپری اور نچلی بولنگر بینڈ کے بریک آؤٹ سگنل طویل عرصے تک جاری رہ سکتے ہیں۔ بہتر الٹ اثرات حاصل کرنے کے لئے پیرامیٹرز کی مناسب ایڈجسٹمنٹ کی ضرورت ہے۔
خطرات کو کنٹرول کرنے کے لئے مناسب طریقے سے سٹاپ نقصان متعارف کروائیں.
زیادہ معقول بولنگر بینڈ چینل حاصل کرنے کے لئے چلتی اوسط سائیکل اور معیاری انحراف پیرامیٹرز کو بہتر بنائیں۔
کچھ سگنلز کو فلٹر کرنے کے لئے ای ایم اے اور ایم اے سی ڈی جیسے معاون عوامل میں اضافہ کریں۔
سٹاپ نقصان اور پوزیشن کنٹرول میکانیزم متعارف کرانے.
پوزیشن سائز اور پوزیشن کنٹرول کے اقدامات کو بہتر بنائیں.
یہ حکمت عملی بولنگر بینڈ اشارے کے ذریعے غیر معمولی قیمتوں کا فیصلہ کرتی ہے اور چلتی اوسط اور معیاری انحراف پیرامیٹرز کے ساتھ الٹ ٹریڈز کرتی ہے۔ اس میں ایک خاص استحکام ہے۔ ہمیں پیرامیٹر کی اصلاح ، معاون عوامل کے تعارف ، اسٹاپ نقصان کے انتظام اور پوزیشن کنٹرول جیسے ذرائع سے حکمت عملی کے زیادہ سے زیادہ ڈراؤڈاؤن کو مزید کم کرنے اور استحکام کو بہتر بنانے کی ضرورت ہے۔
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("BCE Version of EMA, SMA Mean Reversion", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Inputs st_yr_inp = input(defval=2017, title='Backtest Start Year') st_mn_inp = input(defval=01, title='Backtest Start Month') st_dy_inp = input(defval=01, title='Backtest Start Day') en_yr_inp = input(defval=2025, title='Backtest End Year') en_mn_inp = input(defval=01, title='Backtest End Month') en_dy_inp = input(defval=01, title='Backtest End Day') sma_lookback = input(defval=100, title="Lookback Period For SMA") ema_lookback = input(defval=10, title="Lookback Period For EMA") long_diff_perc = input(defval=6, title="Percentage Deviation From SMA to go Long")/100 short_diff_perc = input(defval=20, title="Percentage Deviation From SMA to go Short")/100 ema_filter_bars = input(defval=4, title="The number of bars the EMA must rise/fall") lng_allwd = input(defval=true, title="Allow Longs?") srt_allwd = input(defval=true, title="Allow Shorts?") use_stop = input(defval=true, title="Use Stoploss?") stop_perc = input(defval=30, title="Stop Loss Percentage")/100 // Dates start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00) end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00) can_trade = time >= start and time <= end // Indicators Setup sma = sma(close, sma_lookback) ema = ema(close, ema_lookback) // Strategy Calcuations close_stdev = stdev(close, sma_lookback) sd1_upper = close + (close_stdev * 1) sd1_lower = close - (close_stdev * 1) close_diff = (close - sma) / sma // Entries and Exits longCondition = close > sma and open > sma if (time >= start and time <= end) if (longCondition) strategy.entry("Long", strategy.long) if use_stop stop_price = close * (1 - stop_perc) strategy.order("Long Stoploss", false, stop=stop_price) shortCondition = close < sma and open < sma if (shortCondition) // strategy.entry("Short", strategy.short) // if use_stop // stop_price = close * (1 + stop_perc) // strategy.order("Short Stoploss", true, stop=stop_price) //if (time >= start) strategy.close("Long", when=close < sma and open < sma) //strategy.cancel("Long Stoploss", when=sma < sma[1]) // strategy.close("Short", when=close > sma and open > sma) //strategy.cancel("Short Stoploss", when=close_diff<=0) // Plotting sma_col = sma > sma[1] ? green : red ema_fill = close_diff <= -long_diff_perc ? lime : close_diff >= short_diff_perc ? maroon : aqua p_sma = plot(sma, color=sma_col, linewidth=3) p_ema = plot(ema, color=black, linewidth=2) p_sd1 = plot(sd1_upper, color=black, linewidth=1, transp=85) p_sd2 = plot(sd1_lower, color=black, linewidth=1, transp=85) fill(p_sd1, p_sd2, title='STDEV Fill', color=silver, transp=80) fill(p_sma, p_ema, title='EMA > Mean Percentage', color=ema_fill, transp=80)