وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ٹرپل سٹینڈرڈ ڈویژن بولنگر بینڈس بریکآؤٹ حکمت عملی 100 دن کی حرکت پذیر اوسط کی اصلاح کے ساتھ

مصنف:چاؤ ژانگ، تاریخ: 2024-12-13 11:20:13
ٹیگز:ایم اےبی بیایس ایم اےایس ڈی

img

جائزہ

یہ حکمت عملی بولنگر بینڈ بریک آؤٹ پر مبنی ایک مقداری تجارتی نظام ہے ، جس میں اوپری بینڈ کے لئے 3 معیاری انحراف اور نچلے بینڈ کے لئے 1 معیاری انحراف کا استعمال کیا جاتا ہے ، جس میں درمیانی بینڈ کے طور پر 100 دن کی حرکت پذیر اوسط کے ساتھ مل کر ہے۔ یہ حکمت عملی بنیادی طور پر اوپری بینڈ سے اوپر کی قیمتوں میں بریک آؤٹ کا پتہ لگاکر طویل مدتی رجحانات کو پکڑتی ہے اور نچلے بینڈ کو اسٹاپ نقصان سگنل کے طور پر استعمال کرتی ہے۔ بنیادی تصور یہ ہے کہ مضبوط بریک آؤٹ کے دوران پوزیشنوں میں داخل ہوں اور جب قیمتیں نچلی بینڈ سے نیچے آجائیں تو باہر نکلیں ، جس سے کنٹرول شدہ رسک رجحان کے بعد حاصل ہوتا ہے۔

حکمت عملی کے اصول

بنیادی اصول بولنگر بینڈ کی شماریاتی خصوصیات پر مبنی ہے۔ اوپری بینڈ 3 معیاری انحرافات کا استعمال کرتا ہے ، جس کا مطلب ہے کہ عام تقسیم کے مفروضوں کے تحت ، اس سطح سے اوپر کی قیمت توڑنے کا امکان صرف 0.15٪ ہے ، جس سے یہ ظاہر ہوتا ہے کہ جب بریک آؤٹ ہوتے ہیں تو اہم رجحان کی تشکیل ہوتی ہے۔ درمیانی بینڈ 100 دن کا چلتا ہوا اوسط استعمال کرتا ہے ، جو قلیل مدتی مارکیٹ شور کو مؤثر طریقے سے فلٹر کرنے کے لئے کافی لمبا عرصہ ہوتا ہے۔ نچلا بینڈ 1 معیاری انحراف کو اسٹاپ نقصان لائن کے طور پر استعمال کرتا ہے ، جو نسبتا conser محافظ ترتیب ہے جو بروقت باہر نکلنے میں مدد کرتی ہے۔ حکمت عملی طویل سگنل پیدا کرتی ہے جب قیمت اوپری بینڈ سے اوپر ٹوٹ جاتی ہے اور جب قیمت نچلی بینڈ سے نیچے آجاتی ہے تو باہر نکل جاتی ہے۔

حکمت عملی کے فوائد

  1. مضبوط رجحان کی گرفتاری کی صلاحیت: 3 معیاری انحراف کی ترتیب مؤثر طریقے سے اہم رجحان توڑنے کے مواقع پر قبضہ کرتی ہے.
  2. معقول خطرہ کنٹرول: سٹاپ نقصان کی لائن کے طور پر 1 معیاری انحراف کا استعمال کرتے ہوئے خطرہ کا محتاط انتظام فراہم کرتا ہے۔
  3. پیرامیٹرز کی اعلی موافقت: معیاری انحراف کے ضارب اور چلتی اوسط مدت کو مختلف مارکیٹ کی خصوصیات کے مطابق ایڈجسٹ کیا جاسکتا ہے۔
  4. منظم نقطہ نظر: کارکردگی کی درست نگرانی کے لئے جامع بیک ٹیسٹنگ کی صلاحیتوں کے ساتھ واضح حکمت عملی منطق.
  5. وسیع اطلاق: اسٹاک اور کریپٹو کرنسیوں سمیت مختلف مارکیٹوں پر لاگو کیا جاسکتا ہے۔

حکمت عملی کے خطرات

  1. جھوٹے بریک آؤٹ کا خطرہ: مارکیٹوں میں قلیل مدتی بریک آؤٹ دکھائی دے سکتے ہیں جس کے بعد فوری الٹ پڑتی ہے ، جس سے غلط سگنل ملتے ہیں۔
  2. اہم ڈراپ ڈاؤن: انتہائی اتار چڑھاؤ والے بازاروں میں بڑے ڈراپ ڈاؤن ہو سکتے ہیں۔
  3. تاخیر کا خطرہ: 100 دن کی چلتی اوسط میں فطری تاخیر ہوتی ہے ، ممکنہ طور پر کچھ تیز رفتار مارکیٹ کی حرکت کو یاد کرنا۔
  4. مارکیٹ کے ماحول پر انحصار: مختلف مارکیٹوں میں زیادہ تجارت پیدا ہوسکتی ہے ، جس کی وجہ سے ٹرانزیکشن کے اخراجات زیادہ ہوتے ہیں۔

حکمت عملی کی اصلاح کی ہدایات

  1. حجم کی تصدیق شامل کریں: سگنل کی وشوسنییتا کو بہتر بنانے کے لئے حجم بریک آؤٹ کی تصدیق کا طریقہ شامل کریں۔
  2. اسٹاپ نقصان کے طریقہ کار کو بہتر بنائیں: زیادہ لچکدار باہر نکلنے کے انتظام کے لئے ٹرائلنگ اسٹاپ یا اے ٹی آر پر مبنی متحرک اسٹاپ کو نافذ کرنے پر غور کریں۔
  3. رجحان فلٹرز شامل کریں: صرف بنیادی رجحان کی سمت میں تجارت کرنے کے لئے طویل مدتی رجحان کی نشاندہی کرنے والے اشارے شامل کریں۔
  4. پوزیشن مینجمنٹ کو بہتر بنائیں: بریک آؤٹ طاقت کی بنیاد پر پوزیشن سائز کو متحرک طور پر ایڈجسٹ کریں۔
  5. وقت کے فلٹرز شامل کریں: مخصوص مارکیٹ کے اوقات کے دوران تجارت سے گریز کریں۔

خلاصہ

یہ واضح منطق کے ساتھ حکمت عملی کے بعد ایک اچھی طرح سے ڈیزائن کیا گیا رجحان ہے۔ بولنگر بینڈ کی شماریاتی خصوصیات اور چلتی اوسط کی رجحان کی خصوصیات کے ذریعہ ، یہ مؤثر طریقے سے مارکیٹ کے اہم مواقع پر قبضہ کرتا ہے۔ اگرچہ ڈراؤونگ کے خطرات موجود ہیں ، لیکن حکمت عملی معقول اسٹاپ نقصان کی ترتیبات اور رسک کنٹرول کے ذریعے عملی قدر برقرار رکھتی ہے۔ مزید اصلاح کی صلاحیت سگنل کی تصدیق ، اسٹاپ نقصان کے طریقہ کار اور پوزیشن مینجمنٹ کے پہلوؤں میں ہے۔


/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MounirTrades007

// @version=6
strategy("Bollinger Bands", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=200)

// Get user input
var g_bb        = "Bollinger Band Settings"
upperBandSD     = input.float(title="Upper Band Std Dev", defval=3.0, tooltip="Upper band's standard deviation multiplier", group=g_bb)
lowerBandSD     = input.float(title="Lower Band Std Dev", defval=1.0, tooltip="Lower band's standard deviation multiplier", group=g_bb)
maPeriod        = input.int(title="Middle Band MA Length", defval=100, tooltip="Middle band's SMA period length", group=g_bb)
var g_tester    = "Backtester Settings"
drawTester      = input.bool(title="Draw Backtester", defval=true, group=g_tester, tooltip="Turn on/off inbuilt backtester display")

// Get Bollinger Bands
[bbIgnore1, bbHigh, bbIgnore2] = ta.bb(close, maPeriod, upperBandSD)
[bbMid, bbIgnore3, bbLow]      = ta.bb(close, maPeriod, lowerBandSD)

// Prepare trade persistent variables
drawEntry   = false
drawExit    = false

// Detect bollinger breakout
if close > bbHigh and barstate.isconfirmed and strategy.position_size == 0
    drawEntry := true
    strategy.entry(id="Trade", direction=strategy.long)
    alert("Bollinger Breakout Detected for " + syminfo.ticker, alert.freq_once_per_bar_close)

// Detect bollinger sell signal
if close < bbLow and barstate.isconfirmed and strategy.position_size != 0
    drawExit := true
    strategy.close(id="Trade")
    alert("Bollinger Exit detected for " + syminfo.ticker, alert.freq_once_per_bar_close)

// Draw bollinger bands
plot(bbMid, color=color.blue, title="Middle SMA")
plot(bbHigh, color=color.green, title="Upper Band")
plot(bbLow, color=color.red, title="Lower Band")

// Draw signals
plotshape(drawEntry, style=shape.triangleup, color=color.green, location=location.belowbar, size=size.normal, title="Buy Signal")
plotshape(drawExit, style=shape.xcross, color=color.red, location=location.belowbar, size=size.normal, title="Sell Signal")

// // =============================================================================
// // START BACKTEST CODE
// // =============================================================================

// // Prepare stats table
// var table testTable = table.new(position.top_right, 2, 2, border_width=1)
// f_fillCell(_table, _column, _row, _title, _value, _bgcolor, _txtcolor) =>
//     _cellText = _title + "\n" + _value
//     table.cell(_table, _column, _row, _cellText, bgcolor=_bgcolor, text_color=_txtcolor)

// // Draw stats table
// var bgcolor = color.black
// if barstate.islastconfirmedhistory
//     if drawTester
//         dollarReturn = strategy.equity - strategy.initial_capital
//         f_fillCell(testTable, 0, 0, "Total Trades:", str.tostring(strategy.closedtrades), bgcolor, color.white)
//         f_fillCell(testTable, 0, 1, "Win Rate:", str.tostring(strategy.wintrades / strategy.closedtrades * 100, "##.##") + "%", bgcolor, color.white)
//         f_fillCell(testTable, 1, 0, "Equity:", "$" + str.tostring(strategy.equity, "###,###.##"), bgcolor, color.white)
//         f_fillCell(testTable, 1, 1, "Return:", str.tostring((strategy.netprofit / strategy.initial_capital) * 100, "##.##") + "%", dollarReturn > 0 ? color.green : color.red, color.white)

// // =============================================================================
// // END BACKTEST CODE
// // =============================================================================

متعلقہ

مزید