پلنگ حکمت عملی ڈونچیان چینلز پر مبنی رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ رجحان کی سمت کی نشاندہی کرنے اور پل بیک میں داخل ہونے کے لئے تیز اور سست ڈونچیان چینلز کا استعمال کرتی ہے۔ اس حکمت عملی کے فوائد یہ ہیں کہ یہ رجحانات کو خود بخود ٹریک کرسکتا ہے اور جب رجحان بدلتا ہے تو وقت میں نقصانات کو کاٹ سکتا ہے۔ لیکن اس میں بھی خطرہ ہے کہ کھوج اور اسٹاپ نقصان بہت قریب ہے۔
حکمت عملی سب سے پہلے تیز چینل کی مدت کو 20 بار اور سست چینل کی مدت کو 50 بار کے طور پر بیان کرتی ہے۔ تیز چینل کو اسٹاپ نقصان کی قیمت طے کرنے کے لئے استعمال کیا جاتا ہے ، جبکہ سست چینل کو رجحان کی سمت اور انٹری ٹائمنگ کا تعین کرنے کے لئے استعمال کیا جاتا ہے۔
سب سے پہلے ، فاسٹ چینل کا سب سے زیادہ اونچا اور سب سے کم کم حساب لگایا جاتا ہے ، اور وسط نقطہ کو اسٹاپ نقصان کی لائن کے طور پر لیا جاتا ہے۔ اسی وقت ، سست چینل کا سب سے زیادہ اونچا اور سب سے کم کم حساب لگایا جاتا ہے ، اور چینل کے اوپری اور نچلے حصے کو انٹری لائنوں کے طور پر استعمال کیا جاتا ہے۔
جب قیمت سست چینل کے اوپری حصے سے گزرتی ہے تو ، طویل ہوجائیں۔ جب قیمت سست چینل کے نیچے سے گزرتی ہے تو ، مختصر ہوجائیں۔ پوزیشن میں داخل ہونے کے بعد ، اسٹاپ نقصان کو تیز چینل کے وسط میں ترتیب دیں۔
لہذا سست چینل اہم رجحان کی سمت کا تعین کرتا ہے ، جبکہ تیز چینل اسٹاپ نقصان کے نقطہ کا تعین کرنے کے لئے ایک چھوٹی سی حد کے اندر معمولی خرابیوں کا سراغ لگاتا ہے۔ جب اہم رجحان الٹ جاتا ہے تو ، قیمت پہلے اسٹاپ نقصان کا احساس کرنے کے لئے تیز چینل کی اسٹاپ نقصان لائن کو توڑ دے گی۔
خود بخود رجحانات کو ٹریک کریں اور وقت میں نقصانات کو کم کریں۔ ڈبل چینل ڈھانچہ خود بخود رجحانات کو ٹریک کرسکتا ہے اور رجحانات کے الٹ جانے پر تیزی سے نقصانات کو کم کرسکتا ہے۔
کچھ رجحان فلٹرنگ اثر کے ساتھ، pullbacks پر درج کریں. صرف جب قیمت چینل کی حدود سے گزرتی ہے تو اندراجات لینے سے حقیقی رجحان کے بغیر کچھ جھوٹے وقفے کو فلٹر کیا جا سکتا ہے.
قابو پانے والا خطرہ۔ قریبی سٹاپ نقصان کا فاصلہ واحد نقصان کو کنٹرول کرسکتا ہے۔
بڑے کھپت۔ رجحان کی پیروی کرنے والی حکمت عملیوں میں نسبتا large بڑے کھپت ہوسکتے ہیں جس کے لئے نفسیاتی تیاری کی ضرورت ہوتی ہے۔
اسٹاپ نقصان بہت قریب ہے۔ فاسٹ چینل کی مدت مختصر ہے لہذا اسٹاپ نقصان قریب ہے ، روکنے کا امکان ہے۔ ہم مناسب طریقے سے فاسٹ چینل کی مدت کو آرام دے سکتے ہیں۔
بہت زیادہ تجارت۔ ڈبل چینل ڈھانچہ بہت زیادہ اندراجات پیدا کرسکتا ہے ، جس کی وجہ سے مناسب پوزیشن سائزنگ کی ضرورت ہوتی ہے۔
انٹری فلٹرز شامل کریں۔ ہم کافی رجحان کی طاقت کے بغیر بریکآؤٹس کو فلٹر کرنے کے لئے انٹری شرائط میں اتار چڑھاؤ وغیرہ شامل کرسکتے ہیں۔
چینل کی مدت کے پیرامیٹرز کو بہتر بنائیں۔ ہم چینل پیرامیٹرز کے بہترین مجموعے کو منظم طریقے سے تلاش کرسکتے ہیں۔
متعدد ٹائم فریم کو یکجا کرنا۔ زیادہ ٹائم فریم پر اہم رجحان کا تعین کریں اور کم ٹائم فریم پر تجارت کریں۔
متحرک سٹاپ نقصان کا فاصلہ۔ مارکیٹ کی اتار چڑھاؤ کی بنیاد پر متحرک طور پر اسٹاپ فاصلہ ایڈجسٹ کریں۔
پلنگ حکمت عملی ایک معیاری رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ رجحان کی سمت کا تعین کرنے کے لئے قیمت چینلز کا استعمال کرتی ہے اور خطرات پر قابو پانے کے لئے اسٹاپ نقصان کا تعین کرتی ہے۔ اس حکمت عملی کے کچھ فوائد ہیں لیکن اس کے ساتھ ساتھ ڈراؤونگ اور اسٹاپ نقصان کے بہت قریب ہونے کے مسائل بھی ہیں۔ ہم چینل کے پیرامیٹرز کو ایڈجسٹ کرکے ، فلٹرز وغیرہ شامل کرکے اس کو بہتر بنا سکتے ہیں۔ لیکن ہمیں یہ نوٹ کرنا چاہئے کہ رجحان کی پیروی کرنے والی حکمت عملیوں میں ڈراؤونگ برداشت کرنے کے لئے مضبوط نفسیات کی ضرورت ہوتی ہے۔
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-30 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2020 //@version=4 strategy("Noro's RiskTurtle Strategy", shorttitle = "RiskTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") risk = input(2, minval = 0.1, maxval = 99, title = "Risk size, %") fast = input(20, minval = 1, title = "Fast channel (for stop-loss)") slow = input(50, minval = 1, title = "Slow channel (for entries)") showof = input(true, defval = true, title = "Show offset") showll = input(true, defval = true, title = "Show lines") showdd = input(true, defval = true, title = "Show label (drawdown)") showbg = input(true, defval = true, title = "Show background") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Donchian price channel fast hf = highest(high, fast) lf = lowest(low, fast) center = (hf + lf) / 2 //Donchian price chennal slow hs = highest(high, slow) ls = lowest(low, slow) //Lines colorpc = showll ? color.blue : na colorsl = showll ? color.red : na offset = showof ? 1 : 0 plot(hs, offset = offset, color = colorpc, title = "Slow channel high") plot(ls, offset = offset, color = colorpc, title = "Slow channel low") plot(center, offset = offset, color = colorsl, title = "Fast channel stop-loss") //Background size = strategy.position_size colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na bgcolor(colorbg, transp = 70) //Var loss = 0.0 maxloss = 0.0 equity = 0.0 truetime = true //Lot size risksize = -1 * risk risklong = ((center / hs) - 1) * 100 coeflong = abs(risksize / risklong) lotlong = (strategy.equity / close) * coeflong riskshort = ((center / ls) - 1) * 100 coefshort = abs(risksize / riskshort) lotshort = (strategy.equity / close) * coefshort //Orders strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and hs > 0 and truetime) strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and ls > 0 and truetime) strategy.exit("LongExit", "Long", stop = center, when = needlong and strategy.position_size > 0) strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all() strategy.cancel("Long") strategy.cancel("Short") if showdd //Drawdown max = 0.0 max := max(strategy.equity, nz(max[1])) dd = (strategy.equity / max - 1) * 100 min = 100.0 min := min(dd, nz(min[1])) //Max loss size equity := strategy.position_size == 0 ? strategy.equity : equity[1] loss := equity < equity[1] ? ((equity / equity[1]) - 1) * 100 : 0 maxloss := min(nz(maxloss[1]), loss) //Label min := round(min * 100) / 100 maxloss := round(maxloss * 100) / 100 labeltext = "Drawdown: " + tostring(min) + "%" + "\nMax.loss " + tostring(maxloss) + "%" var label la = na label.delete(la) tc = min > -100 ? color.white : color.red osx = timenow + round(change(time)*10) osy = highest(100) // la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)