ڈبل بریکآؤٹ اتار چڑھاؤ چینل کی حکمت عملی چینل کے وسط ، اوپری اور نچلے بینڈ کا حساب لگاتی ہے اور مارکیٹ کی سمت اور رفتار کا تعین کرنے کے لئے رجحان اور حجم کے اشارے استعمال کرتی ہے۔ یہ چینل کے دونوں اطراف بریکآؤٹ سگنل طے کرتا ہے تاکہ کم خریدنے اور زیادہ فروخت کرنے کے مقصد کو حاصل کیا جاسکے۔
اس حکمت عملی کا بنیادی اشارے شمعدان کی لائنوں کا اعدادوشمار پر مبنی اتار چڑھاؤ چینل ہے۔ درمیانی بینڈ حرکت پذیر اوسط الگورتھم کو اپناتا ہے اور اوپری اور نچلی بینڈ قیمتوں میں اتار چڑھاؤ کی حدود کو متحرک طور پر پکڑنے کے لئے اوسط حقیقی رینج کا طریقہ اپناتے ہیں۔ اسی وقت ، حکمت عملی میں غلط بریکآؤٹس سے بچنے کے لئے ڈی ایم آئی اور حجم کے معیار شامل ہیں۔
خاص طور پر ، جب قیمت نچلی ریل سے چینل میں ٹوٹ جاتی ہے تو ، ڈی ایم آئی کی + ڈی آئی لائن - ڈی آئی لائن اور مقرر کردہ اے ڈی ایکس بینچ مارک سے زیادہ ہوجاتی ہے ، اور تجارتی حجم میں اضافہ ہوتا ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ اس کے برعکس ، جب قیمت اوپری ریل سے نیچے کی طرف چینل سے ٹوٹ جاتی ہے تو ، فیصلے کے اصول مذکورہ بالا کے برعکس ہوتے ہیں ، فروخت کا اشارہ پیدا کرتے ہیں۔
اس حکمت عملی کا سب سے بڑا فائدہ قیمتوں کی اہم پیشرفت کی سمت پر قبضہ کرنا ہے۔ ڈبل بریک آؤٹ فیصلے سے ضمنی اور جھٹکا مارکیٹس سے مؤثر طریقے سے بچنے اور اسٹاپ نقصانات کی تعداد کو کم کرنے میں مدد ملتی ہے۔ سادہ حرکت پذیر اوسط حکمت عملیوں کے مقابلے میں ، اتار چڑھاؤ چینل بریک آؤٹ فیصلے قیمتوں میں اتار چڑھاؤ کے ل more زیادہ موافقت پذیر ہے۔
اس کے علاوہ ، معاون اشارے ڈی ایم آئی اور حجم کا تعارف بھی ایک اچھا فلٹرنگ کا کردار ادا کرتا ہے ، غلط اشاروں سے بچنے سے بچتا ہے۔ لہذا جیت کی شرح اور منافع-نقصان تناسب کے نقطہ نظر سے ، اس حکمت عملی کے کچھ فوائد ہیں۔
ڈبل بریکآؤٹ حکمت عملی کا سب سے بڑا خطرہ یہ ہے کہ یہ مارکیٹ کی تبدیلیوں کا فیصلہ نہیں کرسکتا ہے۔ اگر مارکیٹ میں V شکل کی تبدیلی واقع ہوتی ہے تو ، اسٹاپ نقصان کا نقطہ آسانی سے متحرک ہوسکتا ہے۔ اس کے علاوہ ، پیرامیٹر کی غلط ترتیبات بھی تجارتی نظام کو منفی طور پر متاثر کرسکتی ہیں۔
خطرات سے نمٹنے کے لئے ، ہم پیرامیٹرز کی ترتیبات کو مزید بہتر بناسکتے ہیں اور خطرات کو کم کرنے کے لئے اسٹاپ نقصانات کو محدود کرسکتے ہیں۔ یقینا ، تجارتی نظام کبھی بھی نقصانات سے مکمل طور پر بچ نہیں سکتے ، کلید خطرات پر قابو پانا ہے۔
اسٹریٹیجی میں بھی اصلاحات کی بڑی صلاحیت ہے ، جسے مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
پیرامیٹر کی اصلاح ، جیسے ڈی ایم آئی
فلٹرنگ کے حالات کو بڑھانا، جیسے غلط بریک آؤٹ سے بچنے کے لئے MACD اور دیگر اشارے کو یکجا کرنا
منافع لینے اور نقصان کو روکنے کے لئے خودکار ٹریکنگ کو لاگو کریں تاکہ خطرات کو مزید کنٹرول کیا جاسکے
مختلف مصنوعات کے لئے پیرامیٹر کی ترتیبات اور فلٹرنگ کے قوانین کو بہتر بنائیں
عام طور پر ، دوہری بریک آؤٹ اتار چڑھاؤ چینل کی حکمت عملی ایک موثر بریک آؤٹ سسٹم ہے۔ یہ اہم رجحان کی سمت اور رفتار کو مؤثر طریقے سے طے کرسکتا ہے ، اور اس میں اصلاح اور رسک کنٹرول میں بہت زیادہ صلاحیت موجود ہے۔ اگر منظم طریقے سے بہتر اور بہتر بنایا جائے تو ، حکمت عملی طویل مدتی میں مستقل منافع حاصل کرسکتی ہے۔
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Original Idea by: Wunderbit Trading //@version=5 strategy('Keltner Channel ETH/USDT 1H', overlay=true, initial_capital=1000, pyramiding=0, currency='USD', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.07) /// TREND ribbon_period = input.int(46, 'Period', step=1) leadLine1 = ta.ema(close, ribbon_period) leadLine2 = ta.sma(close, ribbon_period) // p3 = plot(leadLine1, color= #53b987, title="EMA", transp = 50, linewidth = 1) // p4 = plot(leadLine2, color= #eb4d5c, title="SMA", transp = 50, linewidth = 1) // fill(p3, p4, transp = 60, color = leadLine1 > leadLine2 ? #53b987 : #eb4d5c) //Upward Trend UT = leadLine2 < leadLine1 DT = leadLine2 > leadLine1 ///////////////////////////////////////INDICATORS // KELTNER // source = close useTrueRange = input(true) length = input.int(81, step=1, minval=1) mult = input.float(2.5, step=0.1) // Calculate Keltner Channel ma = ta.sma(source, length) range_1 = useTrueRange ? ta.tr : high - low rangema = ta.sma(range_1, length) upper = ma + rangema * mult lower = ma - rangema * mult plot(ma, title='Middle', color=color.new(color.orange, 0)) p1 = plot(upper, title='Upper', color=color.new(color.orange, 0)) p2 = plot(lower, title='Lower', color=color.new(color.orange, 0)) fill(p1, p2, transp=90) // DMI INDICATOR // adxlen = 10 // input(10, title="ADX Smoothing") dilen = input(19, title='DI Length') keyLevel = 23 // input(23, title="key level for ADX") dirmov(len) => up = ta.change(high) down = -ta.change(low) truerange = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(up > down and up > 0 ? up : 0, len) / truerange) minus = fixnan(100 * ta.rma(down > up and down > 0 ? down : 0, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) [adx, plus, minus] [sig, up, down] = adx(dilen, adxlen) benchmark = input.int(title='DMI Benchmark', defval=27, minval=1, step=1) // plot(sig, color=color.red, title="ADX") // plot(up, style=plot.style_histogram, color=color.green, title="+DI") // plot(down, style=plot.style_histogram, color=color.red, title="-DI") // plot(keyLevel, color=color.white, title="Key Level") /////////////////////////////////////////////////////////// ////////////////////////////////////////////////////Component Code Start testStartYear = input(2019, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) testStopYear = input(9999, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(31, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => true ///// Component Code Stop ////////////////////////////////////////// //////////////// STRATEGY EXECUTION ////////////////////////// //LONG SET UP // Take Profit / Stop Loss long_tp1_inp = input.float(4.5, title='Long Take Profit 1 %', step=0.1) / 100 long_tp1_qty = input.int(15, title='Long Take Profit 1 Qty', step=1) long_tp2_inp = input.float(20, title='Long Take Profit 2%', step=0.1) / 100 long_tp2_qty = input.int(100, title='Long Take Profit 2 Qty', step=1) long_take_level_1 = strategy.position_avg_price * (1 + long_tp1_inp) long_take_level_2 = strategy.position_avg_price * (1 + long_tp2_inp) long_sl_inp = input.float(4, title='Long Stop Loss %', step=0.1) / 100 long_stop_level = strategy.position_avg_price * (1 - long_sl_inp) // STRATEGY CONDITION // LONG entry_long = open > lower and open < upper and close > upper and up > down and up > benchmark // and volume[0] > volume[1] entry_price_long = ta.valuewhen(entry_long, close, 0) SL_long = entry_price_long * (1 - long_sl_inp) exit_long = close < lower or low < SL_long // STRATEGY EXECUTION if testPeriod() // LONG if UT strategy.entry(id='Long', direction=strategy.long, when=entry_long, comment='INSERT ENTER LONG COMMAND') strategy.exit('TP1', 'Long', qty_percent=long_tp1_qty, limit=long_take_level_1) // PLACE TAKE PROFIT IN WBT BOT SETTINGS strategy.exit('TP2', 'Long', qty_percent=long_tp2_qty, limit=long_take_level_2) // PLACE TAKE PROFIT IN WBT BOT SETTINGS strategy.close(id='Long', when=exit_long, comment='INSERT EXIT LONG COMMAND') //PLOT FIXED SLTP LINE // LONG POSITION plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='1st Long Take Profit') plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='2nd Long Take Profit') plot(strategy.position_size > 0 ? long_stop_level : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Stop Loss')