اس حکمت عملی میں 24 پیریڈ ڈونچیان چینل کو 200 پیریڈ کے چلتے ہوئے اوسط کے ساتھ مل کر اہم تجارتی سگنل کے طور پر استعمال کیا جاتا ہے۔ جب قیمت نیچے کی طرف اتار چڑھاؤ کرتی ہے تو مختصر پوزیشنیں اور جب یہ اوپر کی طرف اتار چڑھاؤ کرتی ہے تو لمبی پوزیشنیں کھولی جاتی ہیں۔
حکمت عملی کا منطق بنیادی طور پر مندرجہ ذیل نکات پر مبنی ہے:
ڈونچیئن چینل کو پچھلے 24 ادوار کے دوران سب سے زیادہ اعلی اور سب سے کم کم استعمال کرتے ہوئے تعمیر کیا جاتا ہے۔ جب قیمت اس چینل سے باہر نکلتی ہے تو ، اس سے زیادہ بڑی حرکتیں اوپر یا نیچے ہونے کا امکان ظاہر ہوتا ہے۔
200 مدت کی حرکت پذیر اوسط طویل / مختصر تعصب کے لئے فلٹر کے طور پر کام کرتی ہے۔ اگر قیمت ڈونچیئن چینل کو توڑتی ہے اور حرکت پذیر اوسط کے دوسری طرف ہے تو ، الٹ جانے کا امکان ہوسکتا ہے۔
انٹری سگنل یہ ہیں:
مختصر پوزیشنوں کے لئے اسٹاپ نقصان پچھلے 3 باروں میں سب سے زیادہ اعلی پر مقرر کیا جاتا ہے۔ منافع حاصل کریں لاگ ان قیمت سے کم 3 گنا اسٹاپ نقصان اور لاگ ان قیمت کے درمیان فرق پر مقرر کیا جاتا ہے۔ طویل پوزیشن اسٹاپ نقصان اور منافع حاصل کرنے کا منطق اس کے برعکس ہے۔
اس حکمت عملی کا فائدہ یہ ہے کہ ڈونچیئن چینل اور حرکت پذیر اوسط فلٹر کو جوڑ کر ، یہ ایک ہی اشارے پر انحصار کرنے سے غلط سگنل سے بچتا ہے ، جس سے جیت کی شرح میں نمایاں اضافہ ہوتا ہے۔
اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:
اعلی جیت کی شرح: ڈونچیئن چینل اور حرکت پذیر اوسط فلٹر کو جوڑ کر ، ایک ہی اشارے سے غلط سگنلز کی وجہ سے غیر ضروری نقصانات سے گریز کیا جاتا ہے۔
قابو پانے والا خطرہ: اسٹاپ نقصان کی سطح کے طور پر حالیہ اعلی ترین اعلی / کم سے کم کم کا استعمال کرتے ہوئے نقصان دہ تجارت پر مؤثر طریقے سے نیچے کا انتظام کرتا ہے۔ 3: 1 منافع سے نقصان کا تناسب پرکشش ہے۔
سادہ اور لاگو کرنے میں آسان: منطق سادہ، بدیہی اشارے استعمال کرتی ہے جو سمجھنے اور عمل کرنے میں آسان ہیں.
مارکیٹوں اور ٹائم فریموں میں استحکام: نسبتا few کم پیرامیٹرز کے ساتھ ، حکمت عملی مختلف مصنوعات اور ٹائم فریموں میں مستحکم ہے۔
اس حکمت عملی سے نمٹنے والے اہم خطرات یہ ہیں:
مارکیٹ کی انتہائی حرکتیں: بہت مضبوط یکطرفہ رجحانات اسٹاپ نقصانات کو متحرک کرسکتے ہیں جس سے نقصانات میں اضافہ ہوتا ہے۔ اس کو اسٹاپ کو بڑھا کر یا پوزیشن کا سائز کم کرکے کم کیا جاسکتا ہے۔
قبل از وقت باہر نکلنے کے سگنل کا خطرہ: نئے مخالف سگنلز پر باہر نکلنے سے بار بار داخل ہونے اور باہر نکلنے کی وجہ سے ہلکی مارکیٹوں میں زیادہ تجارت ہوسکتی ہے۔ باہر نکلنے کی منطق کو بہتر بنانا اس سے نمٹنے میں مدد کرسکتا ہے۔
پیرامیٹر کی اصلاح کا خطرہ: ڈونچیئن چینل کے نظرثانی کی مدت یا چلتی اوسط کی ناقص پیرامیٹر ٹوننگ کے نتیجے میں تاخیر یا کثرت سے سگنل ہوسکتے ہیں۔ سخت اصلاح اور مجموعی جانچ کے ذریعہ اس کو کم سے کم کیا جاسکتا ہے۔
اسٹریٹیجی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
پیرامیٹرز کے بہترین مجموعہ کو تلاش کرنے کے لئے ڈونچیئن چینل اور چلتی اوسط نظرثانی کی مدت کو بہتر بنائیں.
جیت کی شرح بمقابلہ انعام / خطرے کو متوازن کرنے کے لئے منافع کے تناسب لینے کے لئے مختلف سٹاپ نقصان کا تجربہ کریں.
مضبوطی کو بہتر بنانے کے لئے ایم اے سی ڈی، آر ایس آئی وغیرہ جیسے اشارے کا استعمال کرتے ہوئے انٹری سگنل پر اضافی فلٹر شامل کریں۔
متضاد منڈیوں میں غیر ضروری اخراجات سے بچنے کے لئے باہر نکلنے کی منطق کو بہتر بنائیں۔ باہر نکلنے کے لئے رجحان کی پیمائش پر بھی غور کیا جاسکتا ہے۔
اس حکمت عملی کے فریم ورک کا استعمال کرتے ہوئے نئے مجموعے تیار کریں ، مثال کے طور پر دوسرے چینلز ، بینڈ اشارے وغیرہ کے ساتھ۔
سست حرکت پذیر اوسط حکمت عملی میں سگنل کی تخلیق کے لئے ڈونچیئن چینل اور حرکت پذیر اوسط کے امتزاج کا استعمال کرتے ہوئے واضح ، سمجھنے میں آسان منطق ہے۔ یہ ہائبرڈ نقطہ نظر استحکام اور جیت کی شرح کو نمایاں طور پر بہتر بناتا ہے۔ 3: 1 منافع سے نقصان کا تناسب بھی اچھی انعامی صلاحیت فراہم کرتا ہے۔ اگرچہ انتہائی حرکتوں اور سگنل کی غلطیوں کے لحاظ سے خطرات موجود ہیں ، بہت سارے اصلاح کے مواقع کارکردگی کو بہتر بنا سکتے ہیں اور بنیادی حکمت عملی کو بڑھا سکتے ہیں۔
/*backtest start: 2023-11-06 00:00:00 end: 2023-12-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Mysteriown //@version=4 strategy("Lagged Donchian Channel + EMA", overlay = true) //tradePeriod = time(timeframe.period,"0000-0000:1234567")?true:false // ------------------------------------------ // // ----------------- Inputs ----------------- // // ------------------------------------------ // period = input(24, title="Channel's periods") Pema = input(200, title="EMA's periods ?") ratio = input(3, title="Ratio TP", type=input.float) loss = input(20, title="Risk Loss ($)") lev = input(5, title="Leverage *...") chan = input(title="Plot channel ?", type=input.bool, defval=false) Bpos = input(title="Plot Bull positions ?", type=input.bool, defval=false) bpos = input(title="Plot Bear positions ?", type=input.bool, defval=false) labels = input(title="Plot labels of bets ?", type=input.bool, defval=true) supp = input(title="Delete last labels ?", type=input.bool, defval=true) // ------------------------------------------ // // ---------- Canal, EMA and arrow ---------- // // ------------------------------------------ // pema = ema(close,Pema) plot(pema, title="EMA", color=color.blue) canalhaut = highest(period)[1] canalbas = lowest(period)[1] bear = close[1] > canalhaut[1] and close < open and high > pema bull = close[1] < canalbas[1] and open < close and low < pema canalhautplot = plot(chan? canalhaut:na, color=color.yellow) canalbasplot = plot(chan? canalbas:na, color=color.yellow) plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0) plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0) // ------------------------------------------ // // ------------- Position Short ------------- // // ------------------------------------------ // SlShort = highest(3) BidShort = close[1] TpShort = BidShort-((SlShort-BidShort)*ratio) deltaShort = (SlShort-BidShort)/BidShort betShort = round(loss/(lev*deltaShort)*100)/100 cryptShort = round(betShort*lev/BidShort*1000)/1000 // if bear[1] and labels //and low < low[1] // Lbear = label.new(bar_index, na, text="SHORT\n\nSL: " + tostring(SlShort) + "\n\nBid: " + tostring(BidShort) + "\n\nTP: " + tostring(TpShort) + "\n\nMise: " + tostring(betShort) + "\n\nCryptos: " + tostring(cryptShort), color=color.red, textcolor=color.white, style=label.style_labeldown, yloc=yloc.abovebar) // label.delete(supp ? Lbear[1] : na) var bentry=0.0 var bsl=0.0 var btp=0.0 if bear[1] and low < low[1] bentry:=BidShort bsl:=SlShort btp:=TpShort pbentry = plot(bpos? bentry:na, color=color.orange) plot(bpos? (bentry+btp)/2:na, color=color.gray) pbsl = plot(bpos? bsl:na, color=color.red) pbtp = plot(bpos? btp:na, color=color.green) fill(pbentry,pbsl, color.red, transp=70) fill(pbentry,pbtp, color.green, transp=70) // ------------------------------------------ // // ------------- Position Long -------------- // // ------------------------------------------ // SlLong = lowest(3) BidLong = close[1] TpLong = BidLong + ((BidLong - SlLong) * ratio) deltaBull = (BidLong - SlLong)/BidLong betLong = round(loss/(lev*deltaBull)*100)/100 cryptLong = round(betLong*lev/BidLong*1000)/1000 // if bull[1] and labels //and high > high[1] // Lbull = label.new(bar_index, na, text="LONG\n\nSL: " + tostring(SlLong) + "\n\nBid: " + tostring(BidLong) + "\n\nTP: " + tostring(TpLong) + "\n\nMise: " + tostring(betLong) + "\n\nCryptos: " + tostring(cryptLong), color=color.green, textcolor=color.white, style=label.style_labelup, yloc=yloc.belowbar) // label.delete(supp ? Lbull[1] : na) var Bentry=0.0 var Bsl=0.0 var Btp=0.0 if bull[1] and high > high[1] Bentry:=BidLong Bsl:=SlLong Btp:=TpLong pBentry = plot(Bpos?Bentry:na, color=color.orange) plot(Bpos?(Bentry+Btp)/2:na, color=color.gray) pBsl = plot(Bpos?Bsl:na, color=color.red) pBtp = plot(Bpos?Btp:na, color=color.green) fill(pBentry,pBsl, color.red, transp=70) fill(pBentry,pBtp, color.green, transp=70) // ------------------------------------------ // // --------------- Strategie ---------------- // // ------------------------------------------ // Bear = bear[1] and low < low[1] Bull = bull[1] and high > high[1] if (Bear and strategy.opentrades==0) strategy.order("short", false, 1, limit=BidShort) strategy.exit("exit", "short", limit = TpShort, stop = SlShort) strategy.cancel("short", when = high > SlShort or low < (BidShort+TpShort)/2) strategy.close("short", when=bull) if (Bull and strategy.opentrades==0) strategy.order("long", true, 1, limit=BidLong) strategy.exit("exit", "long", limit = TpLong, stop = SlLong) strategy.cancel("long", when = low < SlLong or high > (BidLong+TpLong)/2) strategy.close("long", when=bear)