یہ حکمت عملی بولنگر بینڈ کے بریک آؤٹ کی تجارت کرتی ہے ، جب قیمت بالائی یا نچلی بینڈ کو مکمل طور پر پار کرتی ہے تو انسداد رجحان کی پوزیشنیں لیتی ہے۔ اس کا مقصد غیر معمولی اتار چڑھاؤ کے بعد اوسط واپسی کو پکڑنا ہے۔ یہ تیز منافع کی تلاش میں سرگرم تاجروں کے لئے موزوں ہے۔
حکمت عملی موجودہ اتار چڑھاؤ کی حد کی وضاحت کرنے کے لئے بولنگر بینڈ کا استعمال کرتی ہے۔ جب قیمت اوپری بینڈ سے اوپر یا نچلے بینڈ سے نیچے ایک مکمل موم بتی بناتی ہے تو ، یہ انتہائی اتار چڑھاؤ کی حالت اور اوسط کی طرف ممکنہ الٹ کی نشاندہی کرتی ہے۔
خاص طور پر ، درمیانی ، اوپری اور نچلی بینڈ کا حساب 20 مدت کی بندش کی قیمتوں کا استعمال کرتے ہوئے کیا جاتا ہے۔ ایک لمبا سگنل اس وقت پیدا ہوتا ہے جب قیمت زیادہ کھلنے کے بعد نچلی بینڈ سے نیچے بند ہوجاتی ہے۔ ایک مختصر سگنل اس وقت شروع ہوتا ہے جب قیمت کم کھلنے کے بعد اوپری بینڈ سے اوپر بند ہوجاتی ہے۔ بریک آؤٹ پوائنٹ اسٹاپ نقصان کے طور پر کام کرتا ہے اور درمیانی بینڈ ابتدائی منافع کا ہدف ہے۔
اہم فوائد یہ ہیں:
بولنگر بینڈ مارکیٹ کی اتار چڑھاؤ کو مؤثر طریقے سے غیر معمولی شناخت کرنے کے لئے اندازہ کرتے ہیں.
خطرہ کو کنٹرول کرنے کے لئے بریک آؤٹ پوائنٹ ایک واضح سٹاپ نقصان کی سطح ہے.
درمیانی بینڈ اوسط ریورس کے لئے ایک معقول ہدف پیش کرتا ہے.
مکمل موم بتیاں زیادہ سگنل کی وشوسنییتا کے ساتھ جھوٹے وقفوں کو فلٹر کرتی ہیں۔
سادہ پیرامیٹرز عمل درآمد اور اصلاح کو آسان بناتے ہیں۔
صاف منطق کوڈ میں واضح طور پر بیان کی گئی ہے.
کچھ خطرات میں شامل ہیں:
غریب بی بی پیرامیٹرز حکمت عملی کو باطل کر سکتے ہیں.
بریکآؤٹس رجحان کے آغاز کا اشارہ کر سکتے ہیں، قبل از وقت باہر نکلنے کا خطرہ.
درمیانی بینڈ کے اہداف بہت زیادہ قدامت پسند ہوسکتے ہیں، فوائد کو محدود کرتے ہیں.
چوڑائیوں میں مکمل طور پر بھرنے کے لئے نہیں ہو سکتا ہے، سلائڈنگ کا سبب بنتا ہے.
وِپساؤس مختلف مارکیٹوں میں بے معنی تجارت کا باعث بن سکتے ہیں۔
کچھ اضافہ غور:
ترتیب یا تعدد کو ایڈجسٹ کرنے کے لئے رجحان کی طاقت کا اندازہ کریں.
انٹری ٹائمنگ کو ٹھیک کرنے کے لئے دوسرے اشارے شامل کریں.
سٹاپ نقصان کو اتار چڑھاؤ کی بنیاد پر ایڈجسٹ کریں۔
ہموار منافع کے لئے ابتدائی اہداف کو بہتر بنائیں.
کمپاؤنڈ منافع میں واپسی کے طریقہ کار کو نافذ کریں۔
خراب تجارت سے بچنے کے لئے بریک آؤٹ کی صداقت کا اندازہ کریں۔
یہ حکمت عملی فعال تاجروں کے لئے موزوں قلیل مدتی منافع کے لئے بی بی بریکآؤٹس کی تجارت کرتی ہے۔ پیشہ واضح طور پر رسک کنٹرول ہوتے ہیں جبکہ cons ابتدائی باہر نکلنے اور منافع کی حد ہوتی ہے۔ ٹھیک ٹیوننگ پیرامیٹرز ، فلٹرز وغیرہ شامل کرنا کارکردگی کو بہتر بنا سکتا ہے۔
/*backtest start: 2023-09-06 00:00:00 end: 2023-10-06 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Bishnu103 //@version=4 strategy(title="Full Candle Outside BB [v1.0][Bishnu103]",shorttitle="OUTSIDE BB",overlay=true,calc_on_every_tick=true,backtest_fill_limits_assumption=2) // *********************************************************************************************************************** // input variables buy_session = input(title="Buy Session", type=input.session, defval="0915-1430") exit_inraday = input(title="Exit Intraday?", type=input.bool, defval=true) entry_distance = input(title="Entry distance from alert", minval=1, maxval=10, defval=3) show_bb_switch = input(title="Show BB", type=input.bool, defval=true) // bbLength = input(title="BB Length", minval=1, defval=20) bbStdDev = input(title="BB StdDev", minval=1, defval=2) // *********************************************************************************************************************** // global variables long_entry = false short_entry = false long_exit = false short_exit = false // variable values available across candles var entry_price = 0.0 var sl_price = 0.0 var exit_price = 0.0 var candle_count = 0 // *********************************************************************************************************************** // function to return bollinger band values based on candle poition passed getBB(pos) => [mBB, uBB, lBB] = bb(close[pos], bbLength, bbStdDev) // function returns true if current time is within intraday byuing session set in input BarInSession(sess) => time(timeframe.period, sess) != 0 // *********************************************************************************************************************** // strategy // // get current bb value [mBB_0,uBB_0,lBB_0] = getBB(0) // check if full candle outside upper BB outside_uBB = low > uBB_0 and close <= open outside_lBB = high < lBB_0 and close >= open // *********************************************************************************************************************** // entry conditions long_entry := outside_lBB short_entry := outside_uBB // keep candle count since the alert generated so that order can be cancelled after N number of candle calling it out as invalid alert candle_count := candle_count + 1 if long_entry or short_entry candle_count := 0 // *********************************************************************************************************************** // risk management // // decide entry and sl price if long_entry entry_price := high if short_entry entry_price := low if long_entry sl_price := low if short_entry sl_price := high // first exit is when price hits middle BB, gets updated for each candle based on it's middle BB value exit_price := mBB_0 // *********************************************************************************************************************** // position sizing price = if close[0] > 25000 25000 else price = close[0] qty = 25000/price // *********************************************************************************************************************** // entry //if long_entry and strategy.position_size == 0 // strategy.entry("BUY", strategy.long, qty, stop=entry_price, comment="BUY @ "+ tostring(entry_price)) if long_entry and strategy.position_size == 0 strategy.order("BUY", strategy.long, qty, stop=entry_price, comment="BUY @ "+ tostring(entry_price)) //if short_entry and strategy.position_size == 0 // strategy.entry("SELL", strategy.short, qty, stop=entry_price, comment="SELL @ "+ tostring(entry_price)) if short_entry and strategy.position_size == 0 strategy.order("SELL", strategy.short, qty, stop=entry_price, comment="SELL @ "+ tostring(entry_price)) // cancel an order if N number of candles are completed after alert candle strategy.cancel_all(candle_count > entry_distance) // if current time is outside byuing session then do not enter intraday trade strategy.cancel_all(timeframe.isintraday and not BarInSession(buy_session)) // *********************************************************************************************************************** // exit if strategy.position_size > 0 strategy.cancel("EXIT at MBB", true) strategy.cancel("EXIT at SL", true) strategy.order("EXIT at MBB", strategy.short, abs(strategy.position_size), limit=exit_price, comment="EXIT TG @ "+ tostring(exit_price)) strategy.order("EXIT at SL", strategy.short, abs(strategy.position_size), stop=sl_price, comment="EXIT SL @ "+ tostring(sl_price)) if strategy.position_size < 0 strategy.cancel("EXIT at MBB", true) strategy.cancel("EXIT at SL", true) strategy.order("EXIT at MBB", strategy.long, abs(strategy.position_size), limit=exit_price, comment="EXIT TG @ "+ tostring(exit_price)) strategy.order("EXIT at SL", strategy.long, abs(strategy.position_size), stop=sl_price, comment="EXIT SL @ "+ tostring(sl_price)) // if intraday trade, close the trade at open of 15:15 candle //!!!!!!!!!!!!!!!!!!!!! TO BE CORRECTED !!!!!!!!!!!!!!!!!!!!!!! if timeframe.isintraday and exit_inraday and hour == 15 and minute == 00 strategy.close("BUY", when=strategy.position_size > 0, qty=strategy.position_size, comment="EXIT @ "+ tostring(close)) strategy.close("SELL", when=strategy.position_size < 0, qty=strategy.position_size, comment="EXIT @ "+ tostring(close)) // *********************************************************************************************************************** // plots // // plot BB [mBBp,uBBp,lBBp] = getBB(0) p_mBB = plot(show_bb_switch ? mBBp : na, color=color.teal) p_uBB = plot(show_bb_switch ? uBBp : na, color=color.teal) p_lBB = plot(show_bb_switch ? lBBp : na, color=color.teal) fill(p_uBB,p_lBB,color=color.teal,transp=95)