یہ حکمت عملی موجودہ ٹائم فریم میں رجحان کی سمت کا تعین کرنے کے لئے متعدد تکنیکی اشارے کے جامع سگنلز کا حساب لگاتی ہے۔ جب اپ ٹرینڈ کے طور پر فیصلہ کیا جاتا ہے تو ، ٹریکنگ اسٹاپ نقصان کی لائن نسبتا high بلند مقام پر طے کی جاتی ہے۔ جب ڈاؤن ٹرینڈ کے طور پر فیصلہ کیا جاتا ہے تو ، ٹریکنگ اسٹاپ نقصان کی لائن نسبتا low کم مقام پر طے کی جاتی ہے۔ یہ حکمت عملی خطرے کے کنٹرول کو حاصل کرنے کے لئے اسٹاپ نقصان کی لائن کو موافقت پذیر طور پر ایڈجسٹ کرسکتی ہے۔
اس حکمت عملی میں متعدد اشارے شامل ہیں جیسے چلتی اوسط ، اے ٹی آر ، کے ڈی ، اور تغیر کی شرح موجودہ ٹائم فریم میں مجموعی رجحان کی سمت کا تعین کرنے کے لئے۔ خاص طور پر ، اس میں درج ذیل ذیلی سگنلز کی جامع قیمت کا حساب لگایا گیا ہے۔
ہر ذیلی سگنل کو ہموار کیا جاتا ہے اور خرید / فروخت کا فیصلہ کرنے کے لئے مختلف حدیں مقرر کی جاتی ہیں۔ پھر موجودہ ٹائم فریم میں مجموعی سگنل کا حساب کتاب کرنے کے لئے ذیلی سگنلز کو وزن دیا جاتا ہے۔ اگر سگنل 0 سے زیادہ ہے تو ، اسے اپ ٹرینڈ سمجھا جاتا ہے۔ اگر سگنل 0 سے کم ہے تو ، اسے ڈاؤن ٹرینڈ سمجھا جاتا ہے۔
جب اپ ٹرینڈ کے طور پر فیصلہ کیا جاتا ہے تو ، حکمت عملی پچھلے اعلی نقطہ کے قریب ٹریکنگ اسٹاپ نقصان کی لائن طے کرتی ہے۔ جب ڈاؤن ٹرینڈ کے طور پر فیصلہ کیا جاتا ہے تو ، یہ پچھلے نچلے نقطہ کے قریب ٹریکنگ اسٹاپ نقصان کی لائن طے کرتا ہے۔ اس سے خطرہ کنٹرول کے مقصد کو حاصل کرنے کے لئے اصل قیمت کی نقل و حرکت کے مطابق اسٹاپ نقصان کی سطح کو متحرک طور پر ایڈجسٹ کیا جاسکتا ہے۔
اس حکمت عملی میں موجودہ رجحان کی سمت کا اندازہ کرنے کے لئے متعدد اشارے شامل ہیں ، جس سے فیصلے کی درستگی میں اضافہ ہوتا ہے۔ اسی وقت ، حکمت عملی مختلف اقسام اور وقت کے فریموں کو مضبوط موافقت کے ساتھ اپنانے کے قابل ہے۔
سب سے اہم بات یہ ہے کہ یہ حکمت عملی سسٹم کے خطرات کو ہیج کرنے کے لئے اسٹاپ نقصان کی لائن کو متحرک طور پر ایڈجسٹ کرسکتی ہے اور اصل رجحان کے مطابق رسک کنٹرول کی سطح کو ایڈجسٹ کرسکتی ہے۔ یہ اس کا سب سے بڑا فائدہ ہے۔
رجحان سگنل کے فیصلے کا معیار اسٹاپ نقصان کی لائن کی ترتیب کو براہ راست متاثر کرتا ہے۔ اگر فیصلہ غلط ہے تو ، اس کی وجہ سے اسٹاپ نقصان کی سطح بہت زیادہ یا بہت سخت مقرر کی جاسکتی ہے۔ اس کے علاوہ ، اسٹاپ نقصان کی لائن مارکیٹ میں تغیرات کے خطرے سے مکمل طور پر بچ نہیں سکتی ہے۔
حکمت عملی کو منافع کی سطح اور اسٹاپ نقصان کے فاصلے کو بھی متوازن کرنے کی ضرورت ہے۔ اگر اسٹاپ نقصان کا فاصلہ بہت قریب ہے تو ، اس سے اسٹاپ نقصان کی زیادہ کثرت پیدا ہوسکتی ہے۔ اگر اسٹاپ نقصان کا فاصلہ بہت دور ہے تو ، یہ خطرات کو مؤثر طریقے سے کنٹرول نہیں کرسکتا ہے۔ اس کے لئے مختلف اقسام اور سائیکلوں کے لئے پیرامیٹر کی اصلاح کی ضرورت ہے۔
مشین لرننگ الگورتھم متعارف کرانے پر غور کریں تاکہ فیصلے کی درستگی کو بہتر بنانے کے لئے تاریخی اعداد و شمار کا استعمال کرتے ہوئے رجحانات کی سمتوں کا فیصلہ کرنے کے لئے ماڈلز کو تربیت دی جاسکے۔
اسٹاپ نقصان کے فاصلے کو بہتر بنانے کے لئے مختلف پیرامیٹر مجموعوں کا تجربہ کریں۔ مثال کے طور پر ، مارکیٹ میں اتار چڑھاؤ میں ہونے والی تبدیلیوں کو اپنانے کے لئے متحرک طور پر اے ٹی آر سائیکل پیرامیٹرز کو ایڈجسٹ کریں۔
حجم توانائی کے اشارے کو حقیقی رجحانات کا تعین کرنے اور قیمتوں کے حجم کے فرق کی وجہ سے سگنل کی غلطیوں کو روکنے کے لئے بھی ملایا جاسکتا ہے۔
حکمت عملی متعدد تکنیکی اشارے کو مربوط کرکے موجودہ رجحان کی سمت کا جائزہ لیتی ہے ، اور اس کے مطابق متحرک طور پر ٹریکنگ اسٹاپ نقصان لائن کو ایڈجسٹ کرتی ہے۔ اس کا مقصد اسٹاپ نقصان اور کنٹرول ٹریڈنگ کے خطرات کی تاثیر کو بہتر بنانا ہے۔ حکمت عملی کا خیال جدید ہے اور مزید اصلاح اور توثیق کے قابل ہے۔ یہ ایک ملٹی ٹائم فریم موافقت پذیر رسک کنٹرول حکمت عملی ہے جس کا حوالہ دیا جاسکتا ہے۔
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 00:00:00 period: 1d basePeriod: 1h 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/ // © jigneshjc //@version=5 strategy("Jigga - Survival Level", shorttitle='Jigga - Survival Level', overlay=true) doBackTesting = input(true, 'Run Back Testing') entryCondition = false exitCondition = false ab21 = 14, gh41 = ab21 gh42 = ab21, ju51 = 14 ki61 = ju51 lkolkp = true ,ab22 = 58 cd31 = 5 , ab23 = 42 aa12 = 29, cd32 = 26 op71 = 5, aa11 = 12 aa13 = 9, op72 = 2.0 movnwx = false kahachale(byju, h, l) => mika = ta.change(h) awer = -ta.change(l) uikmhDM = na(mika) ? na : mika > awer and mika > 0 ? mika : 0 wrtdfcDM = na(awer) ? na : awer > mika and awer > 0 ? awer : 0 bbct = ta.rma(ta.tr, byju) uikmh = fixnan(100 * ta.rma(uikmhDM, byju) / bbct) wrtdfc = fixnan(100 * ta.rma(wrtdfcDM, byju) / bbct) [uikmh, wrtdfc] trial(gh42, gh41, h, l) => [uikmh, wrtdfc] = kahachale(gh42, h, l) uuolop = uikmh + wrtdfc trial = 100 * ta.rma(math.abs(uikmh - wrtdfc) / (uuolop == 0 ? 1 : uuolop), gh41) trial _pr(src, byjugth) => max = ta.highest(byjugth) min = ta.lowest(byjugth) 100 * (src - max) / (max - min) kyukarna(khulmkhula, mikaarwala, nichewala, bandhwala, partiwala) => sig = trial(gh42, gh41, mikaarwala, nichewala) trialIncreasing = sig > ta.ema(sig, 5) ? lkolkp : movnwx rolkmn = ta.ema(bandhwala, aa11) psolkmn = ta.ema(bandhwala, aa12) ujghd = rolkmn - psolkmn wrtycv = ta.ema(ujghd, aa13) kimnjg = ujghd - wrtycv mikalilo = ta.rma(math.max(ta.change(bandhwala), 0), ab21) awerlilo = ta.rma(-math.min(ta.change(bandhwala), 0), ab21) lilo = awerlilo == 0 ? 100 : mikalilo == 0 ? 0 : 100 - 100 / (1 + mikalilo / awerlilo) juylknlilo = ta.ema(lilo, 3) rjuylkn = ta.ema(bandhwala, cd31) psjuylkn = ta.ema(bandhwala, cd32) percentR = _pr(bandhwala, ju51) juylknpercentR = ta.ema(percentR, 3) ad = bandhwala == mikaarwala and bandhwala == nichewala or mikaarwala == nichewala ? 0 : (2 * bandhwala - nichewala - mikaarwala) / (mikaarwala - nichewala) * partiwala kiloValue = math.sum(ad, ki61) / math.sum(partiwala, ki61) liiopn = ta.atr(op71) mikaliiopn = (mikaarwala + nichewala) / 2 - op72 * liiopn mika1liiopn = nz(mikaliiopn[1], mikaliiopn) mikaliiopn := bandhwala[1] > mika1liiopn ? math.max(mikaliiopn, mika1liiopn) : mikaliiopn dnliiopn = (mikaarwala + nichewala) / 2 + op72 * liiopn dn1liiopn = nz(dnliiopn[1], dnliiopn) dnliiopn := bandhwala[1] < dn1liiopn ? math.min(dnliiopn, dn1liiopn) : dnliiopn omnerliiopn = 1 omnerliiopn := nz(omnerliiopn[1], omnerliiopn) omnerliiopn := omnerliiopn == -1 and bandhwala > dn1liiopn ? 1 : omnerliiopn == 1 and bandhwala < mika1liiopn ? -1 : omnerliiopn fitur = ujghd > 0 ? ujghd > wrtycv ? 1 : 0 : ujghd > wrtycv ? 0 : -1 mitur = kimnjg >= 0 ? kimnjg > kimnjg[1] ? 1 : 0 : kimnjg > kimnjg[1] ? 0 : -1 ritur = juylknlilo > ab22 ? 1 : juylknlilo < ab23 ? -1 : 0 circuits = rjuylkn > psjuylkn ? 1 : -1 trialPoints = trialIncreasing ? close > ta.ema(close, 3) ? 1 : -1 : 0 virar = juylknpercentR > -ab23 ? 1 : juylknpercentR < -ab22 ? -1 : 0 chikar = kiloValue > 0.1 ? 1 : kiloValue < -0.1 ? -1 : 0 sitar = omnerliiopn p = fitur + mitur + ritur + circuits + trialPoints + virar + chikar + sitar p currentP = kyukarna(open, high, low, close, volume) currentPNew = currentP >= 0 and currentP[1] <= 0 ? 0 : currentP <= 0 and currentP[1] >= 0 ? 0 : currentP colorPNew = currentPNew == 0 ? color.black : currentPNew >= 0 ? color.green : color.red //plot(currentPNew, color=colorPNew, title='CurrentTimeFrame') LTN = 0.0 LTN := nz(LTN) ? 0.0 : (currentPNew[1] < 0 and currentPNew >= 0) ? high * 1.005 : (currentPNew[1] > 0 and currentPNew <= 0) ? low * 0.995 : LTN[1] LClr = color.green LClr := (currentPNew[1] < 0 and currentPNew >= 0) ? color.green : (currentPNew[1] > 0 and currentPNew <= 0) ? color.red : LClr[1] plot(LTN,color=LClr,title="Level", style=plot.style_circles) entryCondition:= high > LTN and LClr == color.green ? lkolkp : movnwx exitCondition:= low < LTN and LClr == color.red ? lkolkp : movnwx tradeRunning = movnwx tradeRunning := nz(tradeRunning) ? movnwx : (not tradeRunning[1]) and entryCondition ? lkolkp : tradeRunning[1] and exitCondition ? movnwx : tradeRunning[1] plotshape(tradeRunning and (not tradeRunning[1]) and (not doBackTesting), style=shape.labelup, location=location.belowbar, color=color.new(#00FF00, 50), size=size.tiny, title='Buy wrtycv', text='➹', textcolor=color.new(color.black,0)) plotshape((not tradeRunning) and tradeRunning[1] and (not doBackTesting), style=shape.labeldown, location=location.abovebar, color=color.new(#FF0000, 50), size=size.tiny, title='Sell wrtycv', text='➷', textcolor=color.new(color.white, 0)) if entryCondition and doBackTesting strategy.entry(id="Buy",direction=strategy.long) if exitCondition and doBackTesting strategy.close(id="Buy")