الٹیمیٹ بیلنس آسکیلیٹر ٹریڈنگ حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جو متعدد تکنیکی اشارے سے سگنلز کو ذہین طور پر جوڑتی ہے۔ شرح تبدیلی (آر او سی) ، رشتہ دار طاقت انڈیکس (آر ایس آئی) ، کموڈٹی چینل انڈیکس (سی سی آئی) ، ولیمز٪ آر اور اوسط سمت انڈیکس (اے ڈی ایکس) جیسے اشارے کی طاقت کو استعمال کرکے ، یہ مارکیٹ کے رجحان کا تعین کرنے اور تجارتی سگنل پیدا کرنے کے لئے ایک جامع آسکیلیٹر کا حساب لگاتا ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ یہ مارکیٹوں کا معروضی اور منظم انداز میں جائزہ لینے کی صلاحیت رکھتا ہے تاکہ زیادہ سے زیادہ اندراج اور باہر نکلنے کے مقامات کی نشاندہی کی جاسکے۔ جب آسکیلیٹر لائن 0.75 سے زیادہ خریدنے کی سطح سے تجاوز کرتی ہے تو یہ خریدنے کا اشارہ اور 0.25 سے زیادہ فروخت کی سطح سے تجاوز کرتے وقت باہر نکلنے کا اشارہ چلاتا ہے۔
الٹیمیٹ بیلنس آسکیلیٹر ٹریڈنگ حکمت عملی کا بنیادی حصہ ایک جامع آسکیلیٹر اشارے کا حساب کتاب ہے۔ اس اشارے کا حساب لگانے کے اقدامات یہ ہیں:
انفرادی تکنیکی اشارے: ROC، RSI، CCI، Williams %R، اور ADX کی اقدار کا حساب لگائیں
موازنہ کرنے کے لئے ان اشارے کی اقدار کو 0-1 کی حد تک معیاری بنائیں
کمپوزٹ آسکیلیٹر ویلیو کا حساب لگانے کے لئے ایک وزن شدہ اوسط طریقہ کار کا استعمال کریں۔ ہر اشارے کا سایڈست وزن ہوتا ہے ، جس میں ڈیفالٹ اقدار 2 کے لئے ROC ، 0.5 کے لئے RSI ، 2 کے لئے CCI ، 0.5 کے لئے %R ، اور 0.5 کے لئے ADX ہوتا ہے۔ ہر معیاری اشارے کو اس کے وزن سے ضرب دیں ، ان کا مجموعہ کریں ، اور مجموعی وزن سے تقسیم کریں تاکہ 0-1 کمپوزٹ ویلیو حاصل ہو۔
ٹرگر ٹریڈ سگنلز جب یہ مرکب آسکیلیٹر مناسب طریقے سے مقرر کردہ oversold اور oversold سطحوں کو عبور کرتا ہے.
جیسا کہ واضح ہے ، حکمت عملی متعدد اشارے سے سگنلز کا لچکدار استعمال کرتی ہے اور مارکیٹ کے رجحان کا تعین کرنے اور تجارتی فیصلے کرنے کے لئے ان پر منظم طریقے سے کارروائی کرتی ہے۔ اس سے کسی ایک اشارے سے مارکیٹ کے شور سے بچنے میں مدد ملتی ہے اور مختلف حالات میں مضبوط فیصلے برقرار رکھنے میں مدد ملتی ہے۔
الٹیمیٹ بیلنس اوسیلیٹر ٹریڈنگ کی حکمت عملی میں کئی اہم فوائد ہیں:
ایک واحد آلے کی حدود پر قابو پانے اور قابل عمل ، مقدار سے چلنے والے سگنل پیدا کرنے کے لئے متعدد اشارے کا استعمال کرتے ہوئے ایک معروضی ، منظم مارکیٹ تجزیہ طریقہ کار فراہم کرتا ہے۔
انٹری اور آؤٹ ٹائمنگ / درستگی کو درست اقدار اور آسکیلیٹر کی معیاری کاری کے ذریعے بہتر بناتا ہے۔
انتہائی مرضی کے مطابق اور انفرادی تجارتی طرزوں اور مارکیٹ کے حالات کے مطابق ایڈجسٹ کرنے کے قابل اشارے وزن اور پیرامیٹرز کے ذریعے.
ریئل ٹائم الرٹ سسٹم تاکہ تاجروں کو خرید/خرید کے نئے سگنل سے آگاہ کیا جا سکے اور مارکیٹ کی تازہ ترین پیشرفت سے آگاہ کیا جا سکے۔
تاریخی اعداد و شمار کے مقابلے میں کارکردگی کا اندازہ کرنے اور حکمت عملی کو بہتر بنانے کے لئے پیرامیٹرز کو ٹھیک کرنے کے لئے سخت بیک ٹیسٹنگ اور اصلاح.
اس کے فوائد کے باوجود، عملی درخواست میں کچھ اہم خطرات میں شامل ہیں:
پیرامیٹر کی اصلاح کا خطرہ سب سے بہتر اشارے کے وزن اور ترتیبات سے براہ راست کارکردگی کو نقصان پہنچاتا ہے۔ مثالی پیرامیٹرز کو دریافت کرنے کے لئے وسیع پیمانے پر بیک ٹیسٹنگ کی ضرورت ہے۔
مارکیٹ کے وسیع تر حالات اور جذبات سے متعلق غلط حد کی ترتیب سے زیادہ فروخت / زیادہ خریدنے کی سطح کا خطرہ۔
متفرق اشارے مرکب آسکیلیٹر اقدار کو مسخ کرنے کا خطرہ رکھتے ہیں۔ غلط اشارے کے وزن کو ہٹانے یا کم کرنے پر غور کریں۔
کوانٹم ماڈل کی حدود جہاں مارکیٹ کے کچھ حالات کارکردگی کو خراب کرسکتے ہیں۔ ایک پریکٹیشنر کی حیثیت سے رسک بیداری کو برقرار رکھنا انتہائی ضروری ہے۔
خطرات کو کم کرنے کے لئے ، ماڈل کی حدود کو سمجھنے کے لئے جامع بیک ٹسٹنگ ، کیلیبریشن ، براہ راست کارکردگی کی نگرانی ، اور بدلتے ہوئے حالات کی بنیاد پر پیرامیٹرز یا وزن کو ایڈجسٹ کرنے میں لچک کی سختی سے سفارش کی جاتی ہے۔ دستی اوور رائڈز بھی کبھی کبھی انمول ثابت ہوتے ہیں۔
حکمت عملی کو مزید بہتر بنانے کے کچھ طریقے شامل ہیں:
پیش گوئی کی درستگی کو بہتر بنانے کے لئے زیادہ متنوع تکنیکی اشارے کے ساتھ ملٹی فیکٹر ماڈل کو بڑھانا۔
مشین لرننگ تکنیک جیسے نیورل نیٹ ورکس کا اطلاق کرتے ہوئے خفیہ سگنل کو دریافت کرنے اور اشارے کی قیمتوں کی پیش گوئی کرنے کے لئے۔
بنیادی اعداد و شمار کو شامل کرنا جیسے آمدنی کی رپورٹیں اور معاشی اشارے کو مقدار کے عوامل کو بڑھانے کے لئے.
مارکیٹ کے بدلتے منظر نامے کی بنیاد پر وزن اور ترتیبات کو متحرک طور پر تبدیل کرنے کے لئے موافقت پذیر پیرامیٹر ٹوننگ متعارف کرانا۔
انفرادی تجارتوں پر نیچے کی طرف فعال طور پر کنٹرول کرنے کے لئے سٹاپ نقصان کے میکانزم کی تعمیر.
مقداری سرمائے کے انتظام کے لئے اکاؤنٹ کے سائز پر مبنی پوزیشن سائزنگ ماڈلز کو ضم کرنا۔
الٹیمیٹ بیلنس آسکیلیٹر ٹریڈنگ حکمت عملی ایک بقایا مقدار کا نقطہ نظر ہے ، جو مارکیٹ کی تشخیص کے لئے متعدد تکنیکی اشارے کے جوہر کو ایک سخت طریقہ کار میں مرتب کرتی ہے۔ انفرادی ضروریات کے مطابق بہت زیادہ حسب ضرورت کے ساتھ ، یہ خوردہ منظم تاجروں کو ترقی کے لئے ایک بلیو پرنٹ فراہم کرتا ہے۔ کسی بھی مقدار کی حکمت عملی کی طرح ، مارکیٹ کے ماحول میں ماڈل کی استحکام کو بڑھانے کے لئے بیک ٹیسٹنگ ، اصلاح اور جدت طرازی کے ذریعے مسلسل بہتری کلیدی حصول بنی ہوئی ہے۔ مجموعی طور پر ، یہ حکمت عملی اپنے تجارتی ٹول کٹ کو بڑھانے کے خواہاں کوانٹس کو انمول رہنمائی اور سیکھنے کی پیش کش کرتی ہے۔ اور وقت کے ساتھ ، ماڈلز اور منڈیوں کی زیادہ پختگی کے ساتھ ، غیر معمولی کارکردگی کا مظاہرہ کرنا چاہئے۔
/*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")