محور نقطہ اور فبونیکی ریٹریسیشن کی بنیاد پر خودکار رجحان کی پیروی کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-05 11:34:17
ٹیگز:

img

جائزہ

یہ حکمت عملی خودکار طور پر محور پوائنٹس اور فبونیکی ریٹریکشن تناسب کی بنیاد پر اسٹاک کی قیمتوں میں اے بی سی پیٹرن کی نشاندہی کرتی ہے ، اور طویل / مختصر سگنل تیار کرتی ہے۔ یہ قیمت کی لہروں کا تعین کرنے کے لئے محور پوائنٹس کا استعمال کرتی ہے اور اے بی سی لہروں کے مابین فبونیکی ریٹریکشن تناسب کا حساب لگاتی ہے۔ اگر تناسب کچھ معیارات پر پورا اترتا ہے تو ، تجارتی سگنل تیار کیے جاتے ہیں۔

حکمت عملی منطق

  1. اسٹاک کے محور کے اعلی اور کم پوائنٹس کا حساب لگائیں
  2. فیصلہ کریں کہ قیمت پچھلے اعلی نقطہ سے گر گئی ہے یا پچھلے کم نقطہ سے بڑھ گئی ہے
  3. موجودہ لہر اور پچھلی لہر کے درمیان فبونیکی ریٹریکشن تناسب کا حساب لگائیں
  4. اگر دونوں اوپر اور نیچے لہروں کے retracement تناسب مناسب حدود کے اندر اندر ہیں، ایک ممکنہ ABC پیٹرن کا تعین
  5. اے بی سی پیٹرن کی تصدیق کے بعد ، اسٹاپ نقصان کو نقطہ سی پر طویل اور نقطہ اے کو مختصر کے لئے مقرر کریں۔ قیمت کی لہر کی حد سے 1.5 گنا منافع حاصل کریں۔

فوائد کا تجزیہ

  1. پییوٹ پوائنٹس سگنل کی درستگی کو بہتر بنانے کے لئے اہم سپورٹ / مزاحمت کی سطح کی شناخت کرتے ہیں
  2. فبونیکی ریٹریسیشنز اے بی سی پیٹرن کی نشاندہی کرکے رجحان کی موڑ کے مقامات کو پکڑتے ہیں
  3. واضح منافع/نقصان کے قوانین سے بڑے نقصانات سے بچنا

خطرے کا تجزیہ

  1. محور پوائنٹس اور فبونیکی ریٹریکشن ہر رجحان موڑ کے نقطہ کی کامل شناخت کو یقینی نہیں بناسکتے ہیں۔ غلط تشخیص ہوسکتی ہے۔
  2. پوائنٹ سی اور پوائنٹ اے سٹاپز کو توڑ دیا جا سکتا ہے، بڑے نقصانات کی قیادت
  3. فبونیکی ریٹریکشن تناسب کی حدوں جیسے پیرامیٹرز کو مزید اصلاح کی ضرورت ہے

اصلاح کی ہدایات

  1. سگنل کی درستگی کو بہتر بنانے کے لئے اے بی سی پیٹرن کی تصدیق میں مدد کے لئے مزید تکنیکی اشارے شامل کریں
  2. زیادہ سے زیادہ مارکیٹ کے حالات کے مطابق فبونیکی ریٹریکشن تناسب کی حدوں کو بہتر بنائیں
  3. اے بی سی پیٹرن کی شناخت کے ماڈلز کو تربیت دینے کے لئے مشین لرننگ کے طریقوں کا استعمال کریں

نتیجہ

یہ حکمت عملی اہم سپورٹ / مزاحمت کی سطحوں کی محور نقطہ کی توثیق اور فبونیکی ریٹریکشن تناسب کے حساب کتاب کی بنیاد پر ، رجحان موڑ کے مقامات پر طویل / مختصر سگنل پیدا کرنے کے لئے اے بی سی پیٹرن کی نشاندہی کرتی ہے۔ منطق آسان اور صاف ہے ، معقول منافع / نقصان کے قواعد کے ساتھ جو خطرات کو مؤثر طریقے سے کنٹرول کرتی ہے۔ تاہم ، کچھ غلط تشخیص کے خطرات باقی ہیں ، جس میں زیادہ سے زیادہ مارکیٹ کے حالات کے مطابق مزید اصلاحات اور بہتری کی ضرورت ہے۔


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-19 23:59:59
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © kerok3g

//@version=5
strategy("ABCD Strategy", shorttitle="ABCDS", overlay=true, commission_value=0.04)
calcdev(fprice, lprice, fbars, lbars) =>
    rise = lprice - fprice
    run = lbars - fbars
    avg = rise/run
    ((bar_index - lbars) * avg) + lprice

len = input(5)

ph = ta.pivothigh(len, len)
pl = ta.pivotlow(len, len)

var bool ishigh = false
ishigh := ishigh[1]

var float currph = 0.0
var int currphb = 0
currph := nz(currph)
currphb := nz(currphb)

var float oldph = 0.0
var int oldphb = 0
oldph := nz(oldph)
oldphb := nz(oldphb)

var float currpl = 0.0
var int currplb = 0
currpl := nz(currpl)
currplb := nz(currplb)

var float oldpl = 0.0
var int oldplb = 0
oldpl := nz(oldpl)
oldplb := nz(oldplb)

if (not na(ph))
    ishigh := true
    oldph := currph
    oldphb := currphb
    currph := ph
    currphb := bar_index[len]
else
    if (not na(pl))
        ishigh := false
        oldpl := currpl
        oldplb := currplb
        currpl := pl
        currplb := bar_index[len]

endHighPoint = calcdev(oldph, currph, oldphb, currphb)
endLowPoint = calcdev(oldpl, currpl, oldplb, currplb)

plotshape(ph, style=shape.triangledown, color=color.red, location=location.abovebar, offset=-len)
plotshape(pl, style=shape.triangleup, color=color.green, location=location.belowbar, offset=-len)

// var line lnhigher = na
// var line lnlower = na
// lnhigher := line.new(oldphb, oldph, bar_index, endHighPoint)
// lnlower := line.new(oldplb, oldpl, bar_index, endLowPoint)
// line.delete(lnhigher[1])
// line.delete(lnlower[1])

formlong = oldphb < oldplb and oldpl < currphb and currphb < currplb
longratio1 = (currph - oldpl) / (oldph - oldpl)
longratio2 = (currph - currpl) / (currph - oldpl)

formshort = oldplb < oldphb and oldphb < currplb and currplb < currphb
shortratio1 = (oldph - currpl) / (oldph - oldpl)
shortratio2 = (currph - currpl) / (oldph - currpl)

// prevent multiple entry for one pattern
var int signalid = 0
signalid := nz(signalid[1])

longCond = formlong and 
           longratio1 < 0.7 and 
           longratio1 > 0.5 and 
           longratio2 > 1.1 and 
           longratio2 < 1.35 and 
           close < oldph and 
           close > currpl and 
           signalid != oldplb
if (longCond)
    signalid := oldplb
    longsl = currpl - ta.tr
    longtp = ((close - longsl) * 1.5) + close
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", limit=math.min(longtp, oldph), stop=longsl)

shortCond = formshort and 
             shortratio1 < 0.7 and 
             shortratio1 > 0.5 and 
             shortratio2 > 1.1 and 
             shortratio2 < 1.35 and 
             close > oldpl and 
             close < currph and 
             signalid != oldphb

if (shortCond)
    signalid := oldphb
    shortsl = currph + ta.tr
    shorttp = close - ((shortsl - close) * 1.5)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", limit=math.max(shorttp, oldpl), stop=shortsl)


مزید