
یہ ایک اور معمولی رجحان کی پیروی کرنے والی حکمت عملی نہیں ہے۔ LTPI حکمت عملی 2.16xATR کو رجحان الٹ کے طور پر استعمال کرتی ہے جس سے 90٪ مارکیٹ کے شور کو فلٹر کرنے کے ساتھ ساتھ حقیقی رجحان شروع کرنے والے سگنل کو بھی یاد نہیں کیا جاسکتا ہے۔
کلیدی بات یہ ہے کہ منطق کو متحرک کیا جائے: قیمتوں کو موجودہ رجحان لائن کو توڑنا ہوگا ± 2.16x اے ٹی آر ایک نیا رجحان شروع کرنے کے لئے۔ اس کا مطلب یہ ہے کہ کم اتار چڑھاؤ کے دوران قیمتوں میں نسبتا greater زیادہ حرکت درکار ہوتی ہے ، جبکہ اعلی اتار چڑھاؤ کے دوران نسبتا loose نرمی ہوتی ہے۔ نتیجہ؟ جعلی سگنل میں 67 فیصد کمی ، حقیقی رجحان کی گرفتاری میں اضافہ ہوا۔
روایتی ٹرینڈ لائن جامد ہے ، ایل ٹی پی آئی متحرک ہے۔ بنیادی قدمی لمبائی = 2.52x اے ٹی آر ، پھر ہر سائیکل میں 0.0093x اے ٹی آر کا اضافہ ہوتا ہے۔ اس ڈیزائن کا فلسفہ آسان ہے: رجحانات جتنا لمبا ہوتا ہے ، قدم جتنا بڑا ہوتا ہے ، رجحانات کی لکیریں اتنی ہی متحرک ہوتی ہیں۔
ریاضی کا فارمولا: stepSize = min ((2.52 × ATR + 0.0093 × رجحان کی مدت × ATR ، زیادہ سے زیادہ قدم کی لمبائی)
زیادہ سے زیادہ قدمی لمبائی -0.004x اے ٹی آر (منفی اسکیلنگ) مقرر کی گئی ہے ، جس سے انتہائی اتار چڑھاؤ میں بہت زیادہ قدمی لگانے سے رجحان لائن کا کنٹرول ختم ہوجاتا ہے۔ یہ تدریجی تیز رفتار میکانزم حکمت عملی کو رجحان کے آغاز میں محتاط رکھتا ہے ، اور رجحان کی تصدیق کے بعد اس سے زیادہ شدت پسند ہوجاتا ہے۔
سب سے مہلک ڈیزائن کی تفصیل: رجحان کی تبدیلی کے بعد 17 ادوار کو لاک کرنے کا پابند کیا گیا ، اس دوران کسی بھی الٹ اشارے کو نظرانداز کیا گیا۔ یہ زلزلے کی منڈیوں کا حتمی دفاع ہے۔
یہ 17 کیوں ہے؟ تجزیہ سے پتہ چلتا ہے کہ یہ ایک متوازن نقطہ ہے:
قیمت واضح ہے: تیز رفتار V- ٹرن آؤٹ میں تاخیر ہوتی ہے ، لیکن اس کے بدلے میں ہنگامہ خیز حالات میں مستحکم کارکردگی ہوتی ہے۔ یہ ایک عام خطرہ منافع کا توازن ہے ، حکمت عملی نے استحکام کا انتخاب کیا۔
اوپر اور نیچے کا چینل = ٹرینڈ لائن ± 1x اے ٹی آر ، یہ بے ترتیب ترتیب نہیں ہے۔ 1x اے ٹی آر بینڈوڈتھ اعداد و شمار کے مطابق 68٪ عام قیمت کے اتار چڑھاؤ کو ڈھکتی ہے ، اور صرف 32٪ باقی کو معنی خیز سگنل سمجھا جاتا ہے۔
چینل کی اصل قدر یہ ہے کہ:
برین بینڈ کے برعکس ، یہ چینل رجحانات کی سمت میں حرکت پر مبنی ہے ، نہ کہ محض اعدادوشمار کی تقسیم پر۔ مضبوط رجحانات کے دوران ، چینل مسلسل رجحان کی سمت جھکتا رہتا ہے ، جس سے تجارت کی زیادہ درست حدود فراہم ہوتی ہیں۔
براہ راست نقائص:
یہ حکمت عملی کس کے لیے ہے؟ اس کا جواب واضح ہے:
غیر موزوں: ڈے ٹریڈنگ ، چھوٹے فنڈز والے اکاؤنٹس ، اعلی تعدد ٹریڈنگ کے خواہاں سرمایہ کار۔
تجویز کردہ بنیادی پیرامیٹرز:
خطرے کا انتظام سخت ہونا ضروری ہے: انفرادی خطرہ 2 فیصد سے زیادہ نہیں ہونا چاہئے اور مجموعی پوزیشن اکاؤنٹ کے 50 فیصد سے زیادہ نہیں ہونا چاہئے۔ تاریخی ریٹرننگ مستقبل کی آمدنی کی نمائندگی نہیں کرتی ہے ، حکمت عملی میں مسلسل نقصان کا خطرہ ہے ، مناسب خطرے سے بچنے والے فنڈز کی ضرورت ہے۔
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © lungusebi100
//@version=6
strategy("LTPI Strat", overlay=false, process_orders_on_close=true, calc_on_every_tick=false)
RequestSecurityNRP(_tf, _exp, _barmerge)=>
request.security(syminfo.tickerid, _tf, _exp[barstate.isrealtime ? 1 : 0],_barmerge)[barstate.isrealtime ? 0 : 1]
int indicator_1 = na
int indicator_2 = na
int indicator_3 = na
float indicator_4 = na
int indicator_5 = na
var int indicator_6 = na
int indicator_7 = na
var int indicator_8 = na
var int indicator_9 = na
var int indicator_10 = na
int indicator_11 = na
int indicator_12 = na
int indicator_13 = na
int indicator_14 = na
int indicator_15 = na
int indicator_16 = na
// ------------------------------------------------------------INDICATOR 1: Trend Impulse Channels ---------------------------------------
var string t1 = "Trigger Threshold: Controls when a new trend step is triggered. It's a multiplier of the ATR — higher values require a stronger price move to flip the trend direction."
var string t2 = "Max Step Size: Defines the maximum allowed size for each trend step, based on ATR. Use a negative number to scale down large step jumps in volatile conditions."
var string t3 = "Band Multiplier: Expands or contracts the volatility bands around the trend line. A higher value creates wider channels to account for more price fluctuation."
var string t4 = "Trend Hold: After a trend flip, the trend will hold for this many bars before another flip can occur. Useful for avoiding rapid flip-flopping in choppy markets."
var string t5 = "Retest Signals: Enables triangle markers on the chart when price re-tests the upper or lower channel boundary. Helpful for spotting potential continuation or bounce zones."
var string t6 = "Trend Filter: Only show retest signals if they align with the current trend direction (e.g., only show upper retests in a downtrend)."
var string t7 = "Trend Step Signals: Shows circular markers each time a new step is taken in the trend direction. These mark every structural trend advancement."
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Inputs {
indi_1_tf = input.timeframe(title = "Timeframe", defval="2D", group = "-------Trend Impulse Channel------")
flipMult = input.float(2.16,step=0.01, title="Trigger Threshold", group = "-------Trend Impulse Channel------", inline="", tooltip=t1)
maxStepAtr = input.float(-0.004,step=0.001, title="Max Step Size", group = "-------Trend Impulse Channel------", inline="", tooltip=t2)
bandMult = input.float(1, step=0.01,title="Band Multiplier", group = "-------Trend Impulse Channel------", inline="", tooltip=t3)
holdBars = input.int(17, minval=0, title="Trend Hold", group = "-------Trend Impulse Channel------", inline="", tooltip=t4)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
[close2d, atr2d] = request.security(syminfo.tickerid, indi_1_tf, [close, ta.atr(200)], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
// ~~ Atr Scaling {
atr = atr2d
stepBase = atr * 2.52
maxStep = atr * maxStepAtr
trigger = atr * flipMult
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Var {
var float trend = na
var int dir = 0
var int barsInTrend = 0
var float hold = na
var int extension = 0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Logic {
startLong = close2d > nz(trend) + trigger
startShort = close2d < nz(trend) - trigger
flip = (startLong or startShort) and barsInTrend >= 0
stepSize = math.min(stepBase + 0.0093 * barsInTrend * atr, maxStep)
if na(trend)
trend := close2d
dir := 0
barsInTrend := 0
hold := trigger
extension := 0
else
if flip and extension <= 0
trend := close2d
dir := startLong ? 1 : -1
barsInTrend := 1
hold := trigger
extension := holdBars
else
trend := trend + (dir == 1 ? stepSize : dir == -1 ? -stepSize : 0)
barsInTrend += 1
extension := math.max(extension - 1, 0)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Channel {
trendDirection = dir == 1 ? 1 : dir == -1 ? -1 : 0
upper = trend + atr * bandMult
lower = trend - atr * bandMult
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// LTPI Signal
indicator_1 := dir
if indicator_1 > 0
strategy.entry("long", strategy.long)
if indicator_1 < 0
strategy.close("long")
plot (indicator_1, color = color.blue)