یہ حکمت عملی ایک مخصوص مدت کے دوران حالیہ اعلی اور کم قیمتوں کا حساب لگاتی ہے ، موجودہ قیمت کے ساتھ مل کر ، متحرک وسط لائن تشکیل دیتی ہے۔ پھر حالیہ اتار چڑھاؤ کی بنیاد پر سرخ نیچے کی چینل اور سبز اوپر کی چینل تیار کی جاتی ہے۔ تین چینل لائنیں ایک قابل تجارت رینج تشکیل دیتی ہیں۔ جب قیمت چینل کی حدود کے قریب آتی ہے تو ، منافع کو وسط لائن تک واپس نشانہ بناتے ہوئے ریورس آپریشنز کیے جاتے ہیں۔ اس دوران ، حکمت عملی کے اندر رجحان کا حساب ہوتا ہے تاکہ رجحان کے خلاف تجارت کو فلٹر کیا جاسکے اور بڑے رجحان سے تباہ ہونے سے بچ سکے۔
یہ حکمت عملی بنیادی طور پر منافع کمانے کے لئے مارکیٹ کے اتار چڑھاؤ پر انحصار کرتی ہے۔ ٹرینڈ فلٹرنگ کے ساتھ مل کر بینڈوں کے ساتھ متحرک طور پر قیمتوں کے الٹ پوائنٹس کو پکڑنے سے ، یہ خطرات پر قابو پانے کے دوران اوسط الٹ سے مؤثر طریقے سے فائدہ اٹھا سکتا ہے۔ کلید پیرامیٹر ٹیوننگ میں ہے تاکہ بینڈوں کو ذمہ دار بنایا جاسکے لیکن زیادہ حساس نہ ہو۔ رجحان انڈیکس کو اپنا کردار ادا کرنے کے لئے مناسب ادوار کی بھی ضرورت ہے۔ نظریاتی سازگار رجحان اور رکاوٹوں کے ساتھ ، یہ حکمت عملی اصلاح کے ذریعے مہذب منافع حاصل کرسکتی ہے۔
/*backtest start: 2023-11-25 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Strategy - Bobo PAPATR", overlay=true, default_qty_type = strategy.fixed, default_qty_value = 1, initial_capital = 10000) // === STRATEGY RELATED INPUTS AND LOGIC === len = input(24, minval=1, title="Pivot Length, defines lookback for highs and lows to make pivots") length = input(title="ATR lookback (Lower = bands more responsive to recent price action)", type=input.integer, defval=22) myatr = atr(length) dailyatr = myatr[1] atrmult = input(title="ATR multiplier (Lower = wider bands)", type=input.float, defval=3) pivot0 = (high[1] + low[1] + close[1]) / 3 // PIVOT CALC h = highest(len) h1 = dev(h, len) ? na : h hpivot = fixnan(h1) l = lowest(len) l1 = dev(l, len) ? na : l lpivot = fixnan(l1) pivot = (lpivot + hpivot + pivot0) / 3 upperband1 = (dailyatr * atrmult) + pivot lowerband1 = pivot - (dailyatr * atrmult) middleband = pivot // == TREND CALC === i1=input(2, "Momentum Period", minval=1) //Keep at 2 usually i2=input(20, "Slow Period", minval=1) i3=input(5, "Fast Period", minval=1) i4=input(3, "Smoothing Period", minval=1) i5=input(4, "Signal Period", minval=1) i6=input(50, "Extreme Value", minval=1) hiDif = high - high[1] loDif = low[1] - low uDM = hiDif > loDif and hiDif > 0 ? hiDif : 0 dDM = loDif > hiDif and loDif > 0 ? loDif : 0 ATR = rma(tr(true), i1) DIu = 100 * rma(uDM, i1) / ATR DId = 100 * rma(dDM, i1) / ATR HLM2 = DIu - DId DTI = (100 * ema(ema(ema(HLM2, i2), i3), i4)) / ema(ema(ema(abs(HLM2), i2), i3), i4) signal = ema(DTI, i5) // === RISK MANAGEMENT INPUTS === inpTakeProfit = input(defval = 0, title = "Take Profit (In Market MinTick Value)", minval = 0) inpStopLoss = input(defval = 100, title = "Stop Loss (In Market MinTick Value)", minval = 0) // === RISK MANAGEMENT VALUE PREP === // if an input is less than 1, assuming not wanted so we assign 'na' value to disable it. useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na // === STRATEGY - LONG POSITION EXECUTION === enterLong = (((low<=lowerband1) and (close >lowerband1)) or ((open <= lowerband1) and (close > lowerband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal>signal[3]) exitLong = (high > middleband) strategy.entry(id = "Long", long = true, when = enterLong) strategy.close(id = "Long", when = exitLong) // === STRATEGY - SHORT POSITION EXECUTION === enterShort = (((high>=upperband1) and (close < upperband1)) or ((open >= upperband1) and (close < upperband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal<signal[3]) exitShort = (low < middleband) strategy.entry(id = "Short", long = false, when = enterShort) strategy.close(id = "Short", when = exitShort) // === STRATEGY RISK MANAGEMENT EXECUTION === strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss) strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss) // === CHART OVERLAY === plot(upperband1, color=#C10C00, linewidth=3) plot(lowerband1, color=#23E019, linewidth=3) plot(middleband, color=#00E2E2, linewidth=3) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)