حتمی بیلنس آسکیلیٹر ٹریڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-12 14:08:33
ٹیگز:

img

جائزہ

الٹیمیٹ بیلنس آسکیلیٹر ٹریڈنگ حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جو متعدد تکنیکی اشارے سے سگنلز کو ذہین طور پر جوڑتی ہے۔ شرح تبدیلی (آر او سی) ، رشتہ دار طاقت انڈیکس (آر ایس آئی) ، کموڈٹی چینل انڈیکس (سی سی آئی) ، ولیمز٪ آر اور اوسط سمت انڈیکس (اے ڈی ایکس) جیسے اشارے کی طاقت کو استعمال کرکے ، یہ مارکیٹ کے رجحان کا تعین کرنے اور تجارتی سگنل پیدا کرنے کے لئے ایک جامع آسکیلیٹر کا حساب لگاتا ہے۔

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

حکمت عملی منطق

الٹیمیٹ بیلنس آسکیلیٹر ٹریڈنگ حکمت عملی کا بنیادی حصہ ایک جامع آسکیلیٹر اشارے کا حساب کتاب ہے۔ اس اشارے کا حساب لگانے کے اقدامات یہ ہیں:

  1. انفرادی تکنیکی اشارے: ROC، RSI، CCI، Williams %R، اور ADX کی اقدار کا حساب لگائیں

  2. موازنہ کرنے کے لئے ان اشارے کی اقدار کو 0-1 کی حد تک معیاری بنائیں

  3. کمپوزٹ آسکیلیٹر ویلیو کا حساب لگانے کے لئے ایک وزن شدہ اوسط طریقہ کار کا استعمال کریں۔ ہر اشارے کا سایڈست وزن ہوتا ہے ، جس میں ڈیفالٹ اقدار 2 کے لئے ROC ، 0.5 کے لئے RSI ، 2 کے لئے CCI ، 0.5 کے لئے %R ، اور 0.5 کے لئے ADX ہوتا ہے۔ ہر معیاری اشارے کو اس کے وزن سے ضرب دیں ، ان کا مجموعہ کریں ، اور مجموعی وزن سے تقسیم کریں تاکہ 0-1 کمپوزٹ ویلیو حاصل ہو۔

  4. ٹرگر ٹریڈ سگنلز جب یہ مرکب آسکیلیٹر مناسب طریقے سے مقرر کردہ oversold اور oversold سطحوں کو عبور کرتا ہے.

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

فوائد

الٹیمیٹ بیلنس اوسیلیٹر ٹریڈنگ کی حکمت عملی میں کئی اہم فوائد ہیں:

  1. ایک واحد آلے کی حدود پر قابو پانے اور قابل عمل ، مقدار سے چلنے والے سگنل پیدا کرنے کے لئے متعدد اشارے کا استعمال کرتے ہوئے ایک معروضی ، منظم مارکیٹ تجزیہ طریقہ کار فراہم کرتا ہے۔

  2. انٹری اور آؤٹ ٹائمنگ / درستگی کو درست اقدار اور آسکیلیٹر کی معیاری کاری کے ذریعے بہتر بناتا ہے۔

  3. انتہائی مرضی کے مطابق اور انفرادی تجارتی طرزوں اور مارکیٹ کے حالات کے مطابق ایڈجسٹ کرنے کے قابل اشارے وزن اور پیرامیٹرز کے ذریعے.

  4. ریئل ٹائم الرٹ سسٹم تاکہ تاجروں کو خرید/خرید کے نئے سگنل سے آگاہ کیا جا سکے اور مارکیٹ کی تازہ ترین پیشرفت سے آگاہ کیا جا سکے۔

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

خطرات

اس کے فوائد کے باوجود، عملی درخواست میں کچھ اہم خطرات میں شامل ہیں:

  1. پیرامیٹر کی اصلاح کا خطرہ سب سے بہتر اشارے کے وزن اور ترتیبات سے براہ راست کارکردگی کو نقصان پہنچاتا ہے۔ مثالی پیرامیٹرز کو دریافت کرنے کے لئے وسیع پیمانے پر بیک ٹیسٹنگ کی ضرورت ہے۔

  2. مارکیٹ کے وسیع تر حالات اور جذبات سے متعلق غلط حد کی ترتیب سے زیادہ فروخت / زیادہ خریدنے کی سطح کا خطرہ۔

  3. متفرق اشارے مرکب آسکیلیٹر اقدار کو مسخ کرنے کا خطرہ رکھتے ہیں۔ غلط اشارے کے وزن کو ہٹانے یا کم کرنے پر غور کریں۔

  4. کوانٹم ماڈل کی حدود جہاں مارکیٹ کے کچھ حالات کارکردگی کو خراب کرسکتے ہیں۔ ایک پریکٹیشنر کی حیثیت سے رسک بیداری کو برقرار رکھنا انتہائی ضروری ہے۔

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

بہتر مواقع

حکمت عملی کو مزید بہتر بنانے کے کچھ طریقے شامل ہیں:

  1. پیش گوئی کی درستگی کو بہتر بنانے کے لئے زیادہ متنوع تکنیکی اشارے کے ساتھ ملٹی فیکٹر ماڈل کو بڑھانا۔

  2. مشین لرننگ تکنیک جیسے نیورل نیٹ ورکس کا اطلاق کرتے ہوئے خفیہ سگنل کو دریافت کرنے اور اشارے کی قیمتوں کی پیش گوئی کرنے کے لئے۔

  3. بنیادی اعداد و شمار کو شامل کرنا جیسے آمدنی کی رپورٹیں اور معاشی اشارے کو مقدار کے عوامل کو بڑھانے کے لئے.

  4. مارکیٹ کے بدلتے منظر نامے کی بنیاد پر وزن اور ترتیبات کو متحرک طور پر تبدیل کرنے کے لئے موافقت پذیر پیرامیٹر ٹوننگ متعارف کرانا۔

  5. انفرادی تجارتوں پر نیچے کی طرف فعال طور پر کنٹرول کرنے کے لئے سٹاپ نقصان کے میکانزم کی تعمیر.

  6. مقداری سرمائے کے انتظام کے لئے اکاؤنٹ کے سائز پر مبنی پوزیشن سائزنگ ماڈلز کو ضم کرنا۔

نتیجہ

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


/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Julien_Eche

//@version=5
strategy("Ultimate Balance Oscillator Strategy", overlay=true)

// Indicator Weights
weightROC = input.float(2, "Rate of Change (ROC) Weight", group="Weightings")
weightRSI = input.float(0.5, "Relative Strength Index (RSI) Weight", group="Weightings")
weightCCI = input.float(2, "Commodity Channel Index (CCI) Weight", group="Weightings")
weightWilliamsR = input.float(0.5, "Williams %R Weight", group="Weightings")
weightADX = input.float(0.5, "Average Directional Index (ADX) Weight", group="Weightings")

// ROC Settings
rocLength = input.int(20, "Length", minval=1, group="ROC")

// RSI Settings
rsiLength = input.int(14, "Length", minval=1, group="RSI")

// CCI Settings
cciLength = input.int(20, "Length", minval=1, group="CCI")

// Williams %R Settings
williamsRLength = input.int(14, "Length", minval=1, group="Williams %R")

// ADX Settings
adxLength = input.int(14, "ADX Length", minval=1, group="ADX")
adxDiLength = input.int(14, "DI Length", minval=1, group="ADX")

// Source
source_options = input.string("hlc3", "Source", options=["open", "high", "low", "close", "hl2", "hlc3", "ohlc4"])

price_open = request.security(syminfo.tickerid, "D", open)
price_high = request.security(syminfo.tickerid, "D", high)
price_low = request.security(syminfo.tickerid, "D", low)
price_close = request.security(syminfo.tickerid, "D", close)
price_hl2 = request.security(syminfo.tickerid, "D", hl2)
price_hlc3 = request.security(syminfo.tickerid, "D", hlc3)
price_ohlc4 = request.security(syminfo.tickerid, "D", ohlc4)

get_source(source_option) =>
    price = price_close
    if source_option == "open"
        price := price_open
    else if source_option == "high"
        price := price_high
    else if source_option == "low"
        price := price_low
    else if source_option == "close"
        price := price_close
    else if source_option == "hl2"
        price := price_hl2
    else if source_option == "hlc3"
        price := price_hlc3
    else
        price := price_ohlc4
    price

src = get_source(source_options)

// Overbought/Oversold Levels
obLevel = input.float(0.75, "Overbought Level")
osLevel = input.float(0.25, "Oversold Level")

// Calculating the indicators
rocValue = ta.change(close, rocLength)
rsiValue = ta.rsi(close, rsiLength)
cciValue = (src - ta.sma(src, cciLength)) / (0.015 * ta.dev(src, cciLength))
williamsRValue = -100 * (ta.highest(high, williamsRLength) - close) / (ta.highest(high, williamsRLength) - ta.lowest(low, williamsRLength))

dirmov(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truerange = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
    minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

adxValue = adx(adxDiLength, adxLength)

// Normalizing the values
normalize(value, min, max) =>
    (value - min) / (max - min)

normalizedROC = normalize(rocValue, ta.lowest(rocValue, rocLength), ta.highest(rocValue, rocLength))
normalizedRSI = normalize(rsiValue, 0, 100)
normalizedCCI = normalize(cciValue, ta.lowest(cciValue, cciLength), ta.highest(cciValue, cciLength))
normalizedWilliamsR = normalize(williamsRValue, ta.lowest(williamsRValue, williamsRLength), ta.highest(williamsRValue, williamsRLength))
normalizedADX = normalize(adxValue, 0, 50)

// Calculating the combined oscillator line
oscillatorLine = (normalizedROC * weightROC + normalizedRSI * weightRSI + normalizedCCI * weightCCI + normalizedWilliamsR * weightWilliamsR + normalizedADX * weightADX) / (weightROC + weightRSI + weightCCI + weightWilliamsR + weightADX)

// Strategy conditions
enterLong = ta.crossover(oscillatorLine, obLevel)
exitLong = ta.crossunder(oscillatorLine, osLevel)

// Strategy orders
if (enterLong)
    strategy.entry("Buy", strategy.long)
if (exitLong)
    strategy.close("Buy")

// Alert conditions
if (enterLong)
    alert("Buy signal")
if (exitLong)
    alert("Exit signal")


مزید