متحرک لمبائی کے حساب کتاب کے ساتھ VAWSI اور رجحان استقامت کے الٹنے کی حکمت عملی کو یکجا کرنے والا ایک کثیر اشارے والا جامع تجزیہ نظام

VAWSI ATR RSI WMA SMA RMA
تخلیق کی تاریخ: 2024-06-21 15:36:43 آخر میں ترمیم کریں: 2024-06-21 15:36:43
کاپی: 4 کلکس کی تعداد: 567
1
پر توجہ دیں
1617
پیروکار

متحرک لمبائی کے حساب کتاب کے ساتھ VAWSI اور رجحان استقامت کے الٹنے کی حکمت عملی کو یکجا کرنے والا ایک کثیر اشارے والا جامع تجزیہ نظام

جائزہ

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

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

حکمت عملی کا اصول

  1. VAWSI اشارے: یہ ایک اصل اشارے ہے جو RSI کی طرح ہے لیکن RMA کی بجائے VAWMA ((حجم اور اے ٹی آر ویٹڈ موونگ اوسط) کا استعمال کرتا ہے۔ یہ ایک نئے رجحان کی طاقت کی پیمائش کرتا ہے۔

  2. ٹرینڈ تسلسل اشارے: ایک اور اصل اشارے جو ٹرینڈ کے تسلسل کی مدت کی پیمائش کرتا ہے۔ یہ ماخذ کے اعداد و شمار کو ایک مخصوص لمبائی کے اندر سب سے زیادہ / سب سے کم پوائنٹس سے زیادہ سے زیادہ انحراف کا حساب کرتا ہے ، پھر اس انحراف کو جمع کرتا ہے اور طاقت کا اشاریہ بناتا ہے۔

  3. نظر ثانی شدہ اے ٹی آر: اعلی - کم اور ماخذ - ماخذ کے پچھلے ماخذ کی زیادہ سے زیادہ قیمت لیں ، پھر اس کی تبدیلی کی مطلق قیمت لیں اور ماخذ کے اعداد و شمار کو یکساں کریں۔

  4. متحرک لمبائی کا حساب: BlackCat1402 کا استعمال کرتے ہوئے متحرک لمبائی کا حساب لگانے کا طریقہ ، مارکیٹ کے حالات کے مطابق اشارے کی لمبائی کے پیرامیٹرز کو ایڈجسٹ کریں۔

  5. جامع تجزیہ: VAWSI ، رجحان کی مستقل مزاجی اور اے ٹی آر کی پڑھائی کو ایک جامع اشارے کے لئے جوڑیں۔ کم اختتامی نمبر کا مطلب ہے کہ الٹ ہونے والا ہے ، اور زیادہ تعداد کا مطلب ہے کہ مارکیٹ میں عدم استحکام یا ہلچل ہے۔

  6. متحرک سٹاپ نقصان / منافع: متحرک سٹاپ نقصان اور منافع کی سطح جو جامع اشارے اور موجودہ رجحان کی سمت پر مبنی ہے۔

  7. ٹرانزیکشن سگنل: جب قیمت مکمل طور پر حساب سے طے شدہ حد سے گزر جاتی ہے تو ، نظام کراس کی تصدیق کرتا ہے اور ایک ٹرانزیکشن سگنل پیدا کرتا ہے۔

اسٹریٹجک فوائد

  1. کثیر جہتی تجزیہ: متعدد اشارے کے ساتھ مل کر ، حکمت عملی مارکیٹ کو مختلف زاویوں سے تجزیہ کرنے کے قابل بناتی ہے ، جس سے فیصلے کی درستگی میں اضافہ ہوتا ہے۔

  2. انکولی: متحرک لمبائی کا حساب کتاب حکمت عملی کو مختلف مارکیٹ کے حالات کے مطابق ڈھالنے کی اجازت دیتا ہے ، جس سے حکمت عملی کی لچک میں اضافہ ہوتا ہے۔

  3. رسک مینجمنٹ: متحرک اسٹاپ نقصان اور فائدہ اٹھانے کی ترتیبات خطرے کو بہتر طور پر کنٹرول کرنے اور مارکیٹ میں تبدیلیوں کے مطابق ڈھالنے میں مدد کرتی ہیں۔

  4. اصل اشارے: وی اے ڈبلیو ایس آئی اور ٹرینڈ تسلسل اشارے مارکیٹ میں انوکھا بصیرت فراہم کرتے ہیں ، اور ممکنہ طور پر ان اشاروں کو پکڑتے ہیں جن کو روایتی اشارے نظرانداز کرتے ہیں۔

  5. بار اسٹیٹ.isconfirmed کا استعمال کرتے ہوئے اس بات کو یقینی بناتا ہے کہ سگنل کو دوبارہ نہیں بنایا جائے ، جس سے پیمائش کی درستگی میں اضافہ ہوتا ہے۔

  6. حسب ضرورت: متعدد پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے تاکہ حکمت عملی کو مختلف قسم کے تجارت اور وقت کے فریموں کے مطابق بنایا جاسکے۔

اسٹریٹجک رسک

  1. ضرورت سے زیادہ اصلاح: بہت سارے پیرامیٹرز کی وجہ سے ضرورت سے زیادہ اصلاح ہوسکتی ہے ، جس کی وجہ سے وہ اصل میں تجارت میں خراب کارکردگی کا مظاہرہ کرسکتے ہیں۔

  2. مارکیٹ کی موافقت: اگرچہ کچھ مارکیٹوں میں اچھی کارکردگی کا مظاہرہ کیا جاتا ہے ، لیکن یہ مارکیٹ کے تمام حالات پر لاگو نہیں ہوسکتا ہے ، خاص طور پر کم اتار چڑھاؤ والے بازاروں میں۔

  3. پیچیدگی: حکمت عملی کی پیچیدگی اس کو سمجھنے اور برقرار رکھنے کے لئے مشکل بنا سکتی ہے ، جس سے آپریشنل غلطیوں کا خطرہ بڑھ جاتا ہے۔

  4. کمپیوٹنگ کی گہرائی: متعدد اپنی مرضی کے مطابق اشارے اور متحرک حساب کتاب کے نتیجے میں اعلی کمپیوٹنگ کا بوجھ ہوسکتا ہے ، جس سے اس پر عملدرآمد کی رفتار متاثر ہوتی ہے۔

  5. تاریخی اعداد و شمار پر انحصار: حکمت عملی میں بڑی تعداد میں تاریخی اعداد و شمار کا استعمال کیا جاتا ہے ، جو کچھ معاملات میں تاخیر کا سبب بن سکتا ہے۔

اصلاح کی سمت

  1. پیرامیٹرز کی اصلاح: مختلف مارکیٹ کے حالات میں حکمت عملی کی کارکردگی کو بہتر بنانے کے لئے مختلف وزن اور لمبائی کے پیرامیٹرز کو بہتر بنانے کے لئے مشین لرننگ الگورتھم کا استعمال کریں۔

  2. مارکیٹ کی حالت کی شناخت: مارکیٹ کی حالت کی شناخت کا ایک ماڈیول شامل کیا گیا ہے تاکہ مختلف مارکیٹ کے ماحول میں حکمت عملی کے پیرامیٹرز کو خود بخود ایڈجسٹ کیا جاسکے۔

  3. سگنل فلٹرنگ: جعلی سگنل کو کم کرنے کے لئے رجحان کی طاقت کی حد جیسے اضافی فلٹرنگ میکانزم متعارف کرایا گیا ہے۔

  4. ٹرانزیکشن حجم تجزیہ: ٹرانزیکشن حجم کا گہرا تجزیہ ، ٹرانزیکشن حجم کی شکل کی شناخت متعارف کرانے کے لئے ، سگنل کی وشوسنییتا کو بڑھانے کے لئے۔

  5. کثیر ٹائم فریم تجزیہ: تجارتی فیصلوں کی استحکام کو بہتر بنانے کے لئے متعدد ٹائم فریموں کے اشارے کو مربوط کرنا۔

  6. خطرے کے انتظام کو بہتر بنانا: زیادہ پیچیدہ خطرے کے انتظام کی حکمت عملی جیسے متحرک پوزیشن سائزنگ اور کثیر سطح کے نقصانات کو روکنا۔

  7. کمپیوٹنگ کی کارکردگی: کوڈ کو بہتر بنانے کے لئے کمپیوٹنگ کی کارکردگی کو بہتر بنانے کے لئے، خاص طور پر جب بڑے پیمانے پر تاریخی اعداد و شمار کو سنبھالنے کے لئے.

خلاصہ کریں۔

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

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-05-21 00:00:00
end: 2024-06-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("VAWSI and Trend Persistance Reversal", overlay=true, max_bars_back = 4999, process_orders_on_close = true)


//INPUTS
sltp = input.float(title = "Minimum SL/TP", defval = 5.0)
rsi_weight = input.float(title = "Wawsi weight", defval = 100.0)
half_weight= input.float(title = "Trend Persistence Weight", defval = 79.0)
atr_weight = input.float(title = "ATR Weight", defval = 20.0)
com_mult = input.float(title = "Combination Mult", defval = 1, step = .001)
smoothing = input.int(title = "Trend Persistence smooth length", defval = 3)
CycPart = input.float(1.1, step = .001, title = "Length Cycle Decimal")
src = close
hclose = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, src)

//BlackCat1402's Dynamic Length Calculation
EhlersHoDyDC(Price, CycPart) =>
    // Vars: 
    Smooth = 0.00
    Detrender = 0.00
    I1 = 0.00
    Q1 = 0.00
    jI = 0.00
    jQ = 0.00
    I2 = 0.00
    Q2 = 0.00
    Re = 0.00
    Im = 0.00
    Period = 0.00
    SmoothPeriod = 0.00
    pi = 2 * math.asin(1)
    DomCycle = 0.0

    //Hilbert Transform
    Smooth := bar_index > 5 ? (4 * Price + 3 * nz(Price[1]) + 2 * nz(Price[2]) + nz(Price[3])) / 10 : Smooth
    Detrender := bar_index > 5 ? (.0962 * Smooth + .5769 * nz(Smooth[2]) - .5769 * nz(Smooth[4]) - .0962 * nz(Smooth[6])) * (.075 * nz(Period[1]) + .54) : Detrender
    //Compute InPhase and Quadrature components
    Q1 := bar_index > 5 ? (.0962 * Detrender + .5769 * nz(Detrender[2]) - .5769 * nz(Detrender[4]) - .0962 * nz(Detrender[6])) * (.075 * nz(Period[1]) + .54) : Q1
    I1 := bar_index > 5 ? nz(Detrender[3]) : I1

    //Advance the phase of I1 and Q1 by 90 degrees
    jI := (.0962 * I1 + .5769 * nz(I1[2]) - .5769 * nz(I1[4]) - .0962 * nz(I1[6])) * (.075 * nz(Period[1]) + .54)
    jQ := (.0962 * Q1 + .5769 * nz(Q1[2]) - .5769 * nz(Q1[4]) - .0962 * nz(Q1[6])) * (.075 * nz(Period[1]) + .54)

    //Phasor addition for 3 bar averaging
    I2 := I1 - jQ
    Q2 := Q1 + jI

    //Smooth the I and Q components before applying the discriminator
    I2 := .2 * I2 + .8 * nz(I2[1])
    Q2 := .2 * Q2 + .8 * nz(Q2[1])

    //Homodyne Discriminator
    Re := I2 * nz(I2[1]) + Q2 * nz(Q2[1])
    Im := I2 * nz(Q2[1]) - Q2 * nz(I2[1])
    Re := .2 * Re + .8 * nz(Re[1])
    Im := .2 * Im + .8 * nz(Im[1])

    Period := Im != 0 and Re != 0 ? 2 * pi / math.atan(Im / Re) : Period
    Period := Period > 1.5 * nz(Period[1]) ? 1.5 * nz(Period[1]) : Period
    Period := Period < .67 * nz(Period[1]) ? .67 * nz(Period[1]) : Period
    //Limit Period to be within the bounds of 6 bar and 50 bar cycles
    Period := Period < 6 ? 6 : Period
    Period := Period > 50 ? 50 : Period
    Period := .2 * Period + .8 * nz(Period[1])
    SmoothPeriod := .33 * Period + .67 * nz(SmoothPeriod[1])
    //it can add filter to Period here
    DomCycle := math.ceil(CycPart * SmoothPeriod) > 34 ? 34 : math.ceil(CycPart * SmoothPeriod) < 1 ? 1 : math.ceil(CycPart * SmoothPeriod)
    DomCycle

wma(src, length) =>
    wma = 0.0
    sum = 0.0
    norm = length * (length + 1) / 2
    for i = 0 to length - 1
        sum := sum + src[i] * (length - i)
    wma := sum / norm


length = math.round(math.ceil(EhlersHoDyDC(hclose,CycPart)))

// Traditional Function initialization
highest_custom(src, length) =>
    x = src
    for i = 0 to math.min(length, 4999)
        if src[i] > x
            x := src[i]
    x
lowest_custom(src, length) => 
    x = src
    for i = 0 to math.min(length, 4999)
        if src[i] < x
            x := src[i]
    x

rma(src, len) =>
    sum = 0.0
    for i = 0 to len - 1
        math.min(1, len)
        sum += src[i]
    rma = sum / len
    rma := nz(rma[1]) * (len - 1) / len + src / len
    
sma(src, length) =>
    math.sum(src, length) / length

hln(src, length) =>
    TR = math.max(math.abs(src - src[1]), high - low)
    TR := src / math.abs(ta.change(rma(TR, length)))
    TR := (1 / TR) * 100

vawma(src, length) =>
    atr = ta.atr(1)
    aavg = sma(atr, length)
    vavg = sma(volume, length)
    weighted_sum = 0.0
    sum_weights = 0.0
    weighted = 0.0
    for i = 0 to length
        weight = ((volume[i] / vavg + (atr[i]) / aavg) / 2)
        weighted_sum += src[i] * weight
        sum_weights += weight
    a = (weighted_sum / sum_weights)

vawsi(src, len) =>
    rmaUp = vawma(math.max(ta.change(src), 0), len)
    rmaDown = vawma(-math.min(ta.change(src), 0), len)
    rsi = 100 - (100 / (1 + rmaUp / rmaDown))

trendPersistence(src, length, smoothing) =>
    trendu = math.abs(src - highest_custom(src, length))
    trendd = math.abs(src - lowest_custom(src, length))
    trendu := wma(trendu, smoothing)
    trendd := wma(trendd, smoothing)
    trendu := ta.change(ta.cum(trendu))
    trendd := ta.change(ta.cum(trendd))
    trend = wma(math.max(trendu, trendd), smoothing)
    rmaUp = rma(math.max(ta.change(trend), 0), length)
    rmaDown = rma(-math.min(ta.change(trend), 0), length)
    rsi = 100 - (100 / (1 + rmaUp / rmaDown))

//Strategy Calculations
sl = ((100 - sltp) / 100) * close
tp = ((100 + sltp) / 100) * close

var bool crossup = na
var bool crossdown = na
var float dir = na
var float BearGuy = 0

BullGuy = ta.barssince(crossup or crossdown)
if na(BullGuy)
    BearGuy += 1
else
    BearGuy := math.min(BullGuy, 4999)


rsiw = rsi_weight / 100
cew = half_weight / 100
atrw = atr_weight / 100

atr = hln(hclose, length) * atrw
ce = 1 / trendPersistence(hclose, length, smoothing)
com = 1 / math.max(math.abs(vawsi(hclose, length) - 50) * 2, 20)

comfin = (((com * rsiw) + (ce * cew) - atr)) * com_mult

lower = highest_custom(math.min((math.max(highest_custom(src, BearGuy) * (1 - comfin), sl)), src[1]), BearGuy)
upper = lowest_custom(math.max((math.min(lowest_custom(src, BearGuy) * (1 + comfin), tp)), src[1]), BearGuy)

var float thresh = na

if na(thresh)
    thresh := lower
if na(dir)
    dir := 1
if crossdown
    dir := -1
if crossup
    dir := 1
if dir == 1
    thresh := lower
if dir == -1
    thresh := upper

crossup := ta.crossover(hclose, thresh) and barstate.isconfirmed
crossdown := ta.crossunder(hclose, thresh) and barstate.isconfirmed

//STRATEGY
if crossup
    strategy.entry("long", strategy.long)
if crossdown
    strategy.entry("Short", strategy.short)

//PLOTTING
col = hclose > thresh ? color.lime : color.red
plot(thresh, linewidth = 2, color = color.new(col[1], 0))