یہ ایک مقداری تجارتی حکمت عملی ہے جس میں بل ولیمز
حکمت عملی سب سے پہلے ولیمز فریکٹلز کا حساب لگاتی ہے تاکہ یہ معلوم کیا جاسکے کہ موجودہ فریکٹل بڑھ رہا ہے یا گر رہا ہے۔ اگر یہ بڑھتا ہوا فریکٹل ہے تو ، یہ خیال کیا جاتا ہے کہ موجودہ رجحان اوپر کی طرف ہے۔ اگر یہ گرتا ہوا فریکٹل ہے تو ، یہ خیال کیا جاتا ہے کہ موجودہ رجحان نیچے کی طرف ہے۔
اس کے بعد یہ ZZ اشارے
اس طرح کے مجموعے کے ذریعے ، رجحانات میں ہونے والی تبدیلیوں کو بروقت انداز میں پکڑنا اور رجحانات کی پیروی کرنے والی تجارتوں کو نافذ کرنا ممکن ہے۔
اس حکمت عملی میں دو مختلف تکنیکی تجزیہ کے طریقوں کو یکجا کیا گیا ہے - ولیمز فریکٹلز اور زیڈ زیڈ اشارے - مزید تجارتی مواقع کو ظاہر کرنے کے لئے.
یہ بروقت مارکیٹ کے رجحانات کے موڑ کا اندازہ لگا سکتا ہے اور اس میں اہم رجحان کی سمت کو پکڑنے کے لئے اسٹاپ نقصان / منافع حاصل کرنے کے اچھے معیار ہیں۔ اس کے علاوہ ، زیڈ زیڈ اشارے غیر ضروری نقصانات سے بچنے کے لئے کچھ جھوٹے بریک آؤٹس کو فلٹر کرسکتا ہے۔
عام طور پر، یہ حکمت عملی خطرات اور واپسی کو متوازن کرنے کے لئے رجحان کا فیصلہ اور مخصوص انٹری پوائنٹ کے انتخاب دونوں پر غور کرتی ہے.
اس حکمت عملی کا سب سے بڑا خطرہ یہ ہے کہ فریکٹل فیصلے اور زیڈ زیڈ اشارے غلط تجارتی سگنل جاری کرسکتے ہیں ، جس سے غیر ضروری نقصانات ہوسکتے ہیں۔ مثال کے طور پر ، مزاحمت کی لائن کو توڑنے کے بعد ، قیمتیں تیزی سے پیچھے گر سکتی ہیں ، جو اپ ٹرینڈ کو برقرار رکھنے میں ناکام رہتی ہیں۔
اس کے علاوہ ، فراکٹلز کا حساب لگانے کا طریقہ غلط اندازوں کا باعث بن سکتا ہے اگر ٹائم فریم کو غلط طریقے سے ترتیب دیا جائے۔ ٹائم فریم کو بہت مختصر کرنا غلط بریک آؤٹ کا امکان بڑھاتا ہے۔
ان خطرات کو کم کرنے کے لئے ، فرکٹلز کے حساب کے پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کریں اور غلط سگنلز کو کم کرنے کے لئے فلٹرنگ کے حالات میں اضافہ کریں۔ اس کے علاوہ ، ایک ہی تجارت کے نقصان کے سائز پر قابو پانے کے لئے وسیع اسٹاپ نقصان مقرر کریں۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:
کچھ جھوٹے بریکآؤٹس سے بچنے کے لئے ایم اے سی ڈی یا بولنگر بینڈ جیسے رفتار اشارے فلٹر شامل کریں۔
فریکٹل پیرامیٹر کی ترتیبات کو بہتر بنائیں اور اعلی اور کم کی حساب کتاب کو ایڈجسٹ کریں اور زیادہ درست رجحانات کے فیصلے حاصل کرنے کے لئے ٹائم فریم کو کم کریں.
رجحان کی درستگی کا فیصلہ کرنے اور انسانی حدود سے بچنے کے لئے مشین لرننگ الگورتھم میں اضافہ کریں۔
مارکیٹ کی اتار چڑھاؤ کی بنیاد پر موافقت پذیر سٹاپ نقصان میکانزم شامل کریں.
مجموعی پیرامیٹر کی ترتیبات کو بہتر بنانے کے لئے گہری سیکھنے کے الگورتھم کا استعمال کریں.
اس حکمت عملی میں مارکیٹ کے رجحانات میں ہونے والی تبدیلیوں کا بروقت پتہ لگانے اور ان پر قبضہ کرنے کے لئے ولیمز فریکٹل تھیوری اور زیڈ زیڈ اشارے کو مہارت سے جوڑنا شامل ہے۔ یہ اعلی جیت کی شرح کو برقرار رکھتا ہے اور طویل مدتی اضافی واپسی حاصل کرنے کی توقع کرتا ہے۔ اگلے قدم میں مزید فلٹرز اور اے آئی کی صلاحیتوں کو متعارف کرانے سے ، حکمت عملی کے استحکام اور واپسی کی شرح کو مزید بہتر بنانے کی توقع ہے۔
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "robotrading ZZ-8 fractals", shorttitle = "ZZ-8", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(false, defval = true, title = "Short") filterBW = input(false, title="filter Bill Williams Fractals") showll = input(true, title = "Show levels") showff = input(true, title = "Show fractals (repaint!)") showdd = input(true, title = "Show dots (repaint!)") showbg = input(false, title = "Show background") showlb = input(false, title = "Show drawdown") startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", type = input.time, inline = "time1") finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", type = input.time, inline = "time1") //Variables loss = 0.0 maxloss = 0.0 equity = 0.0 truetime = true //Fractals isRegularFractal(mode) => ret = mode == 1 ? high[4] < high[3] and high[3] < high[2] and high[2] > high[1] and high[1] > high[0] : mode == -1 ? low[4] > low[3] and low[3] > low[2] and low[2] < low[1] and low[1] < low[0] : false isBWFractal(mode) => ret = mode == 1 ? high[4] < high[2] and high[3] <= high[2] and high[2] >= high[1] and high[2] > high[0] : mode == -1 ? low[4] > low[2] and low[3] >= low[2] and low[2] <= low[1] and low[2] < low[0] : false filteredtopf = filterBW ? isRegularFractal(1) : isBWFractal(1) filteredbotf = filterBW ? isRegularFractal(-1) : isBWFractal(-1) //Triangles plotshape(filteredtopf and showff, title='Filtered Top Fractals', style=shape.triangledown, location=location.abovebar, color= color.red, offset=-2) plotshape(filteredbotf and showff, title='Filtered Bottom Fractals', style=shape.triangleup, location=location.belowbar, color= color.lime, offset=-2) //Levels hh = 0.0 ll = 0.0 hh := filteredtopf ? high[2] : hh[1] ll := filteredbotf ? low[2] : ll[1] //Trend trend = 0 trend := high >= hh[1] ? 1 : low <= ll[1] ? -1 : trend[1] //Lines hcol = showll and hh == hh[1] and close < hh ? color.lime : na lcol = showll and ll == ll[1] and close > ll ? color.red : na plot(hh, color = hcol) plot(ll, color = lcol) //Dots // var line hline = na // if hh != hh[1] and showdd // hline := line.new(bar_index - 0, hh[0], bar_index - 2, hh[0], xloc = xloc.bar_index, extend = extend.none, style = line.style_dotted, color = color.lime, width = 1) // var line lline = na // if ll != ll[1] and showdd // lline := line.new(bar_index - 0, ll[0] - syminfo.mintick, bar_index - 2, ll[0] - syminfo.mintick, xloc = xloc.bar_index, extend = extend.none, style = line.style_dotted, color = color.red, width = 1) //Background bgcol = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na bgcolor(bgcol, transp = 80) //Orders if hh > 0 and needlong strategy.entry("Long", strategy.long, na, stop = hh, when = needlong and truetime) strategy.exit("Exit Long", "Long", stop = ll, when = needshort == false) if ll > 0 and startTime strategy.entry("Short", strategy.short, na, stop = ll, when = needshort and truetime) strategy.exit("Exit Short", "Short", stop = hh, when = needlong == false) if time > finalTime strategy.close_all() strategy.cancel("Long") strategy.cancel("Short") if showlb //Drawdown max = 0.0 max := max(strategy.equity, nz(max[1])) dd = (strategy.equity / max - 1) * 100 min = 100.0 min := min(dd, nz(min[1])) //Max loss size equity := strategy.position_size != strategy.position_size[1] ? strategy.equity : equity[1] loss := equity < equity[1] ? ((equity / equity[1]) - 1) * 100 : 0 maxloss := min(nz(maxloss[1]), loss) //Label min := round(min * 100) / 100 maxloss := round(maxloss * 100) / 100 labeltext = "Drawdown: " + tostring(min) + "%" + "\nMax.loss " + tostring(maxloss) + "%" var label la = na label.delete(la) tc = min > -100 ? color.white : color.red osx = timenow + round(change(time)*50) osy = highest(100) la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)