Keltner چینل رجحان پر مبنی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-03 16:59:39
ٹیگز:

img

جائزہ

یہ حکمت عملی تین اہم اشارے پر مبنی ہے: رجحان اشارے، Keltner چینل اور DM اشارے.

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

انٹری سگنل اس وقت چلتا ہے جب:

  1. ای ایم اے نے ایس ایم اے کو عبور کیا ، جس سے اپ ٹرینڈ کی تصدیق ہوئی
  2. موم بتی اوپری بینڈ کے اوپر کھولتا ہے اور چینل کے اندر اندر بند ہو جاتا ہے
  3. ڈی ایم اشارے بینچ مارک سے اوپر ہے

اس حکمت عملی میں دو منافع لینے کی سطح اور ایک اسٹاپ نقصان کی سطح ہے۔ منافع کو بہتر بنانے کے لئے ٹریلنگ اسٹاپ کا استعمال کیا جاسکتا ہے۔

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

رجحان کی شناخت

ایس ایم اے اور ای ایم اے کراس اوورز کا استعمال رجحان کی سمت کا تعین کرنے کے لئے کیا جاتا ہے۔ ایس ایم اے (46) کے اوپر عبور کرنے والا ای ایم اے (46) بڑھتے ہوئے رجحان کی نشاندہی کرتا ہے۔

کلٹنر چینل

چینل میں تین لائنیں ہیں: درمیانی ، اوپری اور نچلی۔ درمیانی لائن 81. کی لمبائی کے ساتھ قریبی قیمت کی ایس ایم اے ہے۔ اوپر اور نیچے کی بینڈیں درمیانی لائن کے اوپر اور نیچے حقیقی رینج کے ضرب پر رکھی جاتی ہیں۔ یہاں ہم حقیقی رینج کے 2.5 گنا استعمال کرتے ہیں۔

Keltner Channel حمایت اور مزاحمت کی سطح دکھاتا ہے۔ چینل کے سلسلے میں قیمت کی نقل و حرکت کا تجزیہ کیا جاتا ہے۔

ڈی ایم اشارے

ڈی ایم اشارے میں اے ڈی ایکس ، + ڈی آئی اور - ڈی آئی شامل ہیں۔ + ڈی آئی اپ ٹرینڈ کی طاقت کی پیمائش کرتا ہے جبکہ - ڈی آئی ڈاؤن ٹرینڈ کی طاقت کی پیمائش کرتا ہے۔ اے ڈی ایکس ٹرینڈ کی طاقت کو ظاہر کرتا ہے۔

یہاں ADX (10) ، DI (19) کا استعمال کیا جاتا ہے۔ جب +DI بینچ مارک (ڈیفالٹ 27) سے اوپر عبور کرتا ہے تو ، یہ مضبوط اپ ٹرینڈ اور طویل داخلے کے لئے اچھا اشارہ کرتا ہے۔

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

اس حکمت عملی میں رجحان ، چینل اور رفتار کے اشارے کو مل کر مؤثر طریقے سے قیمت کی کارروائیوں اور طویل / مختصر سمت کا تعین کیا جاتا ہے۔ فوائد یہ ہیں:

  1. ٹرینڈ کی نشاندہی نسبتا precise درست ہے تاکہ مخالف رجحان کی تجارت سے گریز کیا جاسکے۔

  2. Keltner چینل واضح حمایت اور مزاحمت کی سطح دکھاتا ہے.

  3. ڈی ایم اشارے سمت کو یقینی بنانے کے لئے طویل / مختصر رفتار کی پیمائش کرتا ہے.

  4. داخلہ کے سخت قوانین جھوٹے فراروں کو فلٹر کرنے میں مدد کرتے ہیں۔

  5. منافع حاصل کرنے اور نقصان کو روکنے کے مقامات منافع حاصل کرنے کی اجازت دیتے ہیں.

خطرے کا تجزیہ

اس کے علاوہ کچھ خطرات پر بھی غور کرنا چاہئے:

  1. جب ای ایم اے ایس ایم اے سے نیچے گزرتا ہے تو رجحان الٹ سکتا ہے ، لہذا بروقت باہر نکلیں۔

  2. چینل مضبوط رجحانات میں ناکام ہوسکتا ہے، نہ کہ سخت حمایت / مزاحمت.

  3. ڈی ایم غلط سگنل پیدا کر سکتا ہے، قیمت کی کارروائی کی جانچ پڑتال.

  4. جھوٹا فرار داخلہ شروع کر سکتا ہے لیکن فوری طور پر fallback، مناسب سٹاپ نقصان کا استعمال کریں.

  5. لے منافع اور سٹاپ نقصان مسلسل مارکیٹ کے حالات کو تبدیل کرنے کے لئے اصلاح کی ضرورت ہے.

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

حکمت عملی کو مزید بہتر بنانے کے کچھ طریقے:

  1. پیرامیٹرز کو ایڈجسٹ کریں اور رجحان کی شناخت کے مختلف طریقوں کا تجربہ کریں۔

  2. چینل پیرامیٹرز کو بہتر بنانے کے لئے حقیقی رینج کو بہتر بنانے کے لئے.

  3. مختلف ڈی ایم پیرامیٹرز کا تجربہ کریں اور بہترین مجموعہ تلاش کریں۔

  4. زیادہ انٹری فلٹرز شامل کریں جیسے حجم۔

  5. زیادہ منافع حاصل کرنے کے لیے اسٹاپ نقصان کو پیچھے چھوڑنے کی کوشش کریں۔

  6. بہترین پیرامیٹر سیٹ تلاش کرنے کے لیے مختلف مصنوعات کے لیے الگ الگ ٹیسٹ کریں۔

نتیجہ

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


/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Original Idea by: Wunderbit Trading

//@version=4
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(46, "Period", step=1)

leadLine1 = ema(close, ribbon_period)
leadLine2 = 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(81, step=1, minval=1)
mult         = input(2.5, step=0.1)

// Calculate Keltner Channel
ma      = sma(source, length)
range   = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

plot(ma, title="Middle", color=color.orange)
p1=plot(upper, title="Upper", color=color.orange)
p2=plot(lower, title="Lower", color=color.orange)
fill(p1,p2)


// 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 = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]

[sig, up, down] = adx(dilen, adxlen)

benchmark=input(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(4.5, title='Long Take Profit 1 %', step=0.1)/100
long_tp1_qty = input(15, title="Long Take Profit 1 Qty", step=1)

long_tp2_inp = input(20, title='Long Take Profit 2%', step=0.1)/100
long_tp2_qty = input(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(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=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", long=true, 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.green, linewidth=1, title="1st Long Take Profit")
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd Long Take Profit")
plot(strategy.position_size > 0 ? long_stop_level : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")

مزید