
اس حکمت عملی کا بنیادی خیال یہ ہے کہ محور کے اہم حصوں کو استعمال کرتے ہوئے تجارت کی مقدار کی جائے۔ یہ اہم محور کی اونچائی اور کم کی تلاش کرتا ہے ، اور جب قیمت ان اہم نکات کو توڑ دیتی ہے تو اس کی واپسی کی جاتی ہے۔
اس حکمت عملی میں پہلے محور کے اونچے اور نچلے پوائنٹس کی تلاش کے لیے ایک فنکشن pivotHighSig() اور ایک فنکشن pivotLowSig() کی وضاحت کی گئی ہے۔ یہ دونوں فنکشن بائیں اور دائیں جانب سے موزوں محور کے پوائنٹس کی تلاش کرتے ہیں۔
خاص طور پر ، محور کی اونچائی کے لئے ، یہ بائیں طرف لگاتار متعدد اونچی اونچائیوں کی تلاش کرے گا ، اور دائیں طرف لگاتار متعدد کم اونچائیوں کی تلاش کرے گا۔ اس طرح محور کی اونچائی ایک نسبتا higher اعلی پوزیشن پر ہے۔ محور کی نچلی سطح کے فیصلے کی شرائط اس کے برعکس ، یہ بائیں اور دائیں دونوں طرف اعلی اور کم نچلی سطحوں کی تلاش کرے گی۔
محور کے اعلی اور کم پوائنٹس کی تلاش کے بعد ، حکمت عملی محور کے محور پوائنٹس کو مزید منتخب کرتی ہے ، یعنی محور پوائنٹس میں اہم پوائنٹس۔ یہ محور کے اعلی اور کم پوائنٹس کی متعدد تاریخی متغیرات جیسے ph1 ، ph2 وغیرہ کی وضاحت کرکے حاصل کیا جاتا ہے۔
آخر میں ، جب قیمت محور کے محور سے ٹوٹ جاتی ہے تو ، ریورس ٹریڈنگ کی جاتی ہے۔
اس طرح کی ایک محور پر مبنی پیمائش کی حکمت عملی کے درج ذیل فوائد ہیں:
اس حکمت عملی کے کچھ خطرات بھی ہیں:
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
اس حکمت عملی نے مجموعی طور پر اچھی کارکردگی کا مظاہرہ کیا ہے۔ اس حکمت عملی کا بنیادی خیال اہم محوروں کو تلاش کرنا اور ان کے ٹوٹنے پر واپسی کی تجارت کرنا ہے۔ مزید اصلاحات کے ذریعہ ، اس حکمت عملی سے زیادہ مستحکم اور قابل اعتماد سگنل حاصل کیے جاسکتے ہیں ، جس سے اچھی آمدنی حاصل ہوسکتی ہے۔
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Pivot of Pivot Reversal Strategy [QuantNomad]", shorttitle = "PoP Reversal Strategy [QN]", overlay=true)
// Inputs
leftBars = input(4, title = 'PP Left Bars')
rightBars = input(2, title = 'PP Right Bars')
atr_length = input(14, title = 'ATR Length')
atr_mult = input(0.1, title = 'ATR Mult')
// Pivot High Significant Function
pivotHighSig(left, right) =>
pp_ok = true
atr = atr(atr_length)
for i = 1 to left
if (high[right] < high[right+i] + atr * atr_mult)
pp_ok := false
for i = 0 to right-1
if (high[right] < high[i] + atr * atr_mult)
pp_ok := false
pp_ok ? high[right] : na
// Pivot Low Significant Function
pivotLowSig(left, right) =>
pp_ok = true
atr = atr(atr_length)
for i = 1 to left
if (low[right] > low[right+i] - atr * atr_mult)
pp_ok := false
for i = 0 to right-1
if (low[right] > low[i] - atr * atr_mult)
pp_ok := false
pp_ok ? low[right] : na
swh = pivotHighSig(leftBars, rightBars)
swl = pivotLowSig (leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
// Pivots of pivots
ph1 = 0.0
ph2 = 0.0
ph3 = 0.0
pl1 = 0.0
pl2 = 0.0
pl3 = 0.0
pphprice = 0.0
pplprice = 0.0
ph3 := swh_cond ? nz(ph2[1]) : nz(ph3[1])
ph2 := swh_cond ? nz(ph1[1]) : nz(ph2[1])
ph1 := swh_cond ? hprice : nz(ph1[1])
pl3 := swl_cond ? nz(pl2[1]) : nz(pl3[1])
pl2 := swl_cond ? nz(pl1[1]) : nz(pl2[1])
pl1 := swl_cond ? lprice : nz(pl1[1])
pphprice := swh_cond and ph2 > ph1 and ph2 > ph3 ? ph2 : nz(pphprice[1])
pplprice := swl_cond and pl2 < pl1 and pl2 < pl3 ? pl2 : nz(pplprice[1])
if (le)
strategy.entry("PP_RevLE", strategy.long, comment="PP_RevLE", stop=pphprice + syminfo.mintick)
if (se)
strategy.entry("PP_RevSE", strategy.short, comment="PP_RevSE", stop=pplprice - syminfo.mintick)
// Plotting
plot(lprice, color = color.red, transp = 55)
plot(hprice, color = color.green, transp = 55)
plot(pplprice, color = color.red, transp = 0, linewidth = 2)
plot(pphprice, color = color.green, transp = 0, linewidth = 2)