
یہ حکمت عملی ایک متحرک وسط محور تشکیل دیتی ہے جس میں حالیہ اعلی ترین اور کم ترین قیمتوں کا حساب لگایا جاتا ہے ، جو موجودہ قیمتوں کے ساتھ مل کر ہیں۔ اس کے بعد حالیہ اتار چڑھاؤ کی بنیاد پر سرخ نیچے جانے والا چینل اور سبز اوپر جانے والا چینل تیار کیا جاتا ہے۔ یہ تینوں چینل لائنیں ایک قابل تجارت حد تشکیل دیتی ہیں۔ جب قیمت چینل کی سرحد کے قریب ہوتی ہے تو ، ریورس آپریشن کیا جاتا ہے ، جس کا مقصد وسط محور پر منافع کمانا ہے۔
اس حکمت عملی کا فائدہ مارکیٹ کی اتار چڑھاؤ کی خصوصیات پر ہے۔ متحرک چینل کے ذریعے قیمت کے الٹ پوائنٹس کو پکڑنا ، اور رجحان فلٹرنگ کے ساتھ مل کر ، الٹ ٹریڈنگ کا فائدہ اٹھانا ، جبکہ خطرے کو کنٹرول کرنا۔ کلیدی بات یہ ہے کہ پیرامیٹرز کے ساتھ ایڈجسٹ کیا جائے ، چینل لائن کو حقیقی وقت میں قیمتوں کی پیروی کرنے کی ضرورت ہے ، نہ کہ زیادہ حساس ہو۔ اس کے علاوہ ، رجحاناتی اشارے کو فلٹرنگ کا کردار ادا کرنے کے لئے مناسب مدت کا انتخاب کرنے کی بھی ضرورت ہے۔ یہ حکمت عملی نظریاتی طور پر ہموار ہے اور اس کا نقصان ہے ، عملی استعمال میں پیرامیٹرز کی اصلاح کے ذریعہ اس سے اچھا منافع حاصل کیا جاسکتا ہے۔
/*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)