دو طرفہ پیش رفت K-لائن اتار چڑھاؤ چینل کی حکمت عملی


تخلیق کی تاریخ: 2024-01-31 10:24:00 آخر میں ترمیم کریں: 2024-01-31 10:24:00
کاپی: 1 کلکس کی تعداد: 568
1
پر توجہ دیں
1617
پیروکار

دو طرفہ پیش رفت K-لائن اتار چڑھاؤ چینل کی حکمت عملی

جائزہ

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

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

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

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

طاقت کا تجزیہ

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

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

خطرے کا تجزیہ

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

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

اصلاح کی سمت

اس حکمت عملی میں بہتری کے لئے بہت زیادہ امکانات ہیں، خاص طور پر مندرجہ ذیل پہلوؤں میں:

  1. پیرامیٹرز کو بہتر بنائیں ، جیسے ڈی ایم آئی کی ڈی آئی اور اے ڈی ایکس کی لمبائی ، کے لائن چینلز کی مدت اور ضرب کی ترتیب

  2. فلٹرنگ کے حالات کو شامل کریں ، جیسے کہ MACD اور دیگر اشارے کے ساتھ مل کر جھوٹے اختراعات سے بچنے کے لئے

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*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')