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

ڈبل بریک آؤٹ Volatility Channel حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-31 10:24:00
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

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

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

فوائد کا تجزیہ

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

اس کے علاوہ ، معاون اشارے ڈی ایم آئی اور حجم کا تعارف بھی ایک اچھا فلٹرنگ کا کردار ادا کرتا ہے ، غلط اشاروں سے بچنے سے بچتا ہے۔ لہذا جیت کی شرح اور منافع-نقصان تناسب کے نقطہ نظر سے ، اس حکمت عملی کے کچھ فوائد ہیں۔

خطرے کا تجزیہ

ڈبل بریکآؤٹ حکمت عملی کا سب سے بڑا خطرہ یہ ہے کہ یہ مارکیٹ کی تبدیلیوں کا فیصلہ نہیں کرسکتا ہے۔ اگر مارکیٹ میں V شکل کی تبدیلی واقع ہوتی ہے تو ، اسٹاپ نقصان کا نقطہ آسانی سے متحرک ہوسکتا ہے۔ اس کے علاوہ ، پیرامیٹر کی غلط ترتیبات بھی تجارتی نظام کو منفی طور پر متاثر کرسکتی ہیں۔

خطرات سے نمٹنے کے لئے ، ہم پیرامیٹرز کی ترتیبات کو مزید بہتر بناسکتے ہیں اور خطرات کو کم کرنے کے لئے اسٹاپ نقصانات کو محدود کرسکتے ہیں۔ یقینا ، تجارتی نظام کبھی بھی نقصانات سے مکمل طور پر بچ نہیں سکتے ، کلید خطرات پر قابو پانا ہے۔

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

اسٹریٹیجی میں بھی اصلاحات کی بڑی صلاحیت ہے ، جسے مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. پیرامیٹر کی اصلاح ، جیسے ڈی ایم آئی کی ڈی آئی اور اے ڈی ایکس لمبائی کی باریک بینی ، اتار چڑھاؤ چینلز کی مدت اور ضرب کی ترتیبات وغیرہ۔

  2. فلٹرنگ کے حالات کو بڑھانا، جیسے غلط بریک آؤٹ سے بچنے کے لئے MACD اور دیگر اشارے کو یکجا کرنا

  3. منافع لینے اور نقصان کو روکنے کے لئے خودکار ٹریکنگ کو لاگو کریں تاکہ خطرات کو مزید کنٹرول کیا جاسکے

  4. مختلف مصنوعات کے لئے پیرامیٹر کی ترتیبات اور فلٹرنگ کے قوانین کو بہتر بنائیں

خلاصہ

عام طور پر ، دوہری بریک آؤٹ اتار چڑھاؤ چینل کی حکمت عملی ایک موثر بریک آؤٹ سسٹم ہے۔ یہ اہم رجحان کی سمت اور رفتار کو مؤثر طریقے سے طے کرسکتا ہے ، اور اس میں اصلاح اور رسک کنٹرول میں بہت زیادہ صلاحیت موجود ہے۔ اگر منظم طریقے سے بہتر اور بہتر بنایا جائے تو ، حکمت عملی طویل مدتی میں مستقل منافع حاصل کرسکتی ہے۔


/*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')



مزید