کثیر ٹائم فریم موافقت پذیر ٹریکنگ سٹاپ نقصان کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-21 11:07:44
ٹیگز:

img

جائزہ

یہ حکمت عملی موجودہ ٹائم فریم میں رجحان کی سمت کا تعین کرنے کے لئے متعدد تکنیکی اشارے کے جامع سگنلز کا حساب لگاتی ہے۔ جب اپ ٹرینڈ کے طور پر فیصلہ کیا جاتا ہے تو ، ٹریکنگ اسٹاپ نقصان کی لائن نسبتا high بلند مقام پر طے کی جاتی ہے۔ جب ڈاؤن ٹرینڈ کے طور پر فیصلہ کیا جاتا ہے تو ، ٹریکنگ اسٹاپ نقصان کی لائن نسبتا low کم مقام پر طے کی جاتی ہے۔ یہ حکمت عملی خطرے کے کنٹرول کو حاصل کرنے کے لئے اسٹاپ نقصان کی لائن کو موافقت پذیر طور پر ایڈجسٹ کرسکتی ہے۔

اصول

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

  1. حرکت پذیر اوسط سمت کا اشارہ
  2. KD اشارے overboughtoversold سگنل
  3. قیمت اور حجم کے فرق کا اشارہ
  4. چینل کے ذریعے سگنل
  5. ملٹی ٹائم فریم مشترکہ ٹرائل اینڈ ایرر سگنل
  6. فی صد R سگنل
  7. حرکت پذیر اوسط رجسٹریشن سگنل
  8. اے ٹی آر چینل کی نشاندہی

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



مزید