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