یہ حکمت عملی تین اہم اشارے پر مبنی ہے: رجحان اشارے، Keltner چینل اور DM اشارے.
رجحان اشارے میں ایس ایم اے اور ای ایم اے شامل ہیں۔ کیلٹنر چینل موم بتیوں کی کھلی اور بند قیمت کا تعین کرنے کے لئے استعمال ہوتا ہے۔ ڈی ایم اشارے طویل اور مختصر کی سمت کا فیصلہ کرنے کے لئے ہے۔
انٹری سگنل اس وقت چلتا ہے جب:
اس حکمت عملی میں دو منافع لینے کی سطح اور ایک اسٹاپ نقصان کی سطح ہے۔ منافع کو بہتر بنانے کے لئے ٹریلنگ اسٹاپ کا استعمال کیا جاسکتا ہے۔
ایس ایم اے اور ای ایم اے کراس اوورز کا استعمال رجحان کی سمت کا تعین کرنے کے لئے کیا جاتا ہے۔ ایس ایم اے (46) کے اوپر عبور کرنے والا ای ایم اے (46) بڑھتے ہوئے رجحان کی نشاندہی کرتا ہے۔
چینل میں تین لائنیں ہیں: درمیانی ، اوپری اور نچلی۔ درمیانی لائن 81. کی لمبائی کے ساتھ قریبی قیمت کی ایس ایم اے ہے۔ اوپر اور نیچے کی بینڈیں درمیانی لائن کے اوپر اور نیچے حقیقی رینج کے ضرب پر رکھی جاتی ہیں۔ یہاں ہم حقیقی رینج کے 2.5 گنا استعمال کرتے ہیں۔
Keltner Channel حمایت اور مزاحمت کی سطح دکھاتا ہے۔ چینل کے سلسلے میں قیمت کی نقل و حرکت کا تجزیہ کیا جاتا ہے۔
ڈی ایم اشارے میں اے ڈی ایکس ، + ڈی آئی اور - ڈی آئی شامل ہیں۔ + ڈی آئی اپ ٹرینڈ کی طاقت کی پیمائش کرتا ہے جبکہ - ڈی آئی ڈاؤن ٹرینڈ کی طاقت کی پیمائش کرتا ہے۔ اے ڈی ایکس ٹرینڈ کی طاقت کو ظاہر کرتا ہے۔
یہاں ADX (10) ، DI (19) کا استعمال کیا جاتا ہے۔ جب +DI بینچ مارک (ڈیفالٹ 27) سے اوپر عبور کرتا ہے تو ، یہ مضبوط اپ ٹرینڈ اور طویل داخلے کے لئے اچھا اشارہ کرتا ہے۔
اس حکمت عملی میں رجحان ، چینل اور رفتار کے اشارے کو مل کر مؤثر طریقے سے قیمت کی کارروائیوں اور طویل / مختصر سمت کا تعین کیا جاتا ہے۔ فوائد یہ ہیں:
ٹرینڈ کی نشاندہی نسبتا precise درست ہے تاکہ مخالف رجحان کی تجارت سے گریز کیا جاسکے۔
Keltner چینل واضح حمایت اور مزاحمت کی سطح دکھاتا ہے.
ڈی ایم اشارے سمت کو یقینی بنانے کے لئے طویل / مختصر رفتار کی پیمائش کرتا ہے.
داخلہ کے سخت قوانین جھوٹے فراروں کو فلٹر کرنے میں مدد کرتے ہیں۔
منافع حاصل کرنے اور نقصان کو روکنے کے مقامات منافع حاصل کرنے کی اجازت دیتے ہیں.
اس کے علاوہ کچھ خطرات پر بھی غور کرنا چاہئے:
جب ای ایم اے ایس ایم اے سے نیچے گزرتا ہے تو رجحان الٹ سکتا ہے ، لہذا بروقت باہر نکلیں۔
چینل مضبوط رجحانات میں ناکام ہوسکتا ہے، نہ کہ سخت حمایت / مزاحمت.
ڈی ایم غلط سگنل پیدا کر سکتا ہے، قیمت کی کارروائی کی جانچ پڑتال.
جھوٹا فرار داخلہ شروع کر سکتا ہے لیکن فوری طور پر fallback، مناسب سٹاپ نقصان کا استعمال کریں.
لے منافع اور سٹاپ نقصان مسلسل مارکیٹ کے حالات کو تبدیل کرنے کے لئے اصلاح کی ضرورت ہے.
حکمت عملی کو مزید بہتر بنانے کے کچھ طریقے:
پیرامیٹرز کو ایڈجسٹ کریں اور رجحان کی شناخت کے مختلف طریقوں کا تجربہ کریں۔
چینل پیرامیٹرز کو بہتر بنانے کے لئے حقیقی رینج کو بہتر بنانے کے لئے.
مختلف ڈی ایم پیرامیٹرز کا تجربہ کریں اور بہترین مجموعہ تلاش کریں۔
زیادہ انٹری فلٹرز شامل کریں جیسے حجم۔
زیادہ منافع حاصل کرنے کے لیے اسٹاپ نقصان کو پیچھے چھوڑنے کی کوشش کریں۔
بہترین پیرامیٹر سیٹ تلاش کرنے کے لیے مختلف مصنوعات کے لیے الگ الگ ٹیسٹ کریں۔
اس حکمت عملی میں رجحان ، معاونت / مزاحمت اور رفتار کا تعین کرنے کے لئے متعدد اشارے شامل ہیں ، جو رجحانات کو مؤثر طریقے سے پکڑنے اور خطرات پر قابو پانے کی اجازت دیتا ہے۔ لیکن خطرات کو محسوس کرنے کی ضرورت ہے اور پیرامیٹرز کو مارکیٹ کی تبدیلیوں کے مطابق اصلاح کی ضرورت ہے۔ مجموعی طور پر ، یہ ایک حکمت عملی ہے جس میں مضبوط عملی ہے۔
/*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")